1#! /bin/sh
2# Generated from testsuite.at by GNU Autoconf 2.69.
3#
4# Test cases Copyright (C) 2020 Free Software Foundation, Inc.
5#
6# Written by Keisuke Nishida, Roger While, Simon Sobisch, Edward Hart,
7# Ron Norman, Brian Tiffin, Dave Pitts
8#
9# Copyright (C) 2009-2012 Free Software Foundation, Inc.
10#
11# This test suite is free software; the Free Software Foundation gives
12# unlimited permission to copy, distribute and modify it.
13## -------------------- ##
14## M4sh Initialization. ##
15## -------------------- ##
16
17# Be more Bourne compatible
18DUALCASE=1; export DUALCASE # for MKS sh
19if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
20  emulate sh
21  NULLCMD=:
22  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
23  # is contrary to our usage.  Disable this feature.
24  alias -g '${1+"$@"}'='"$@"'
25  setopt NO_GLOB_SUBST
26else
27  case `(set -o) 2>/dev/null` in #(
28  *posix*) :
29    set -o posix ;; #(
30  *) :
31     ;;
32esac
33fi
34
35
36as_nl='
37'
38export as_nl
39# Printing a long string crashes Solaris 7 /usr/bin/printf.
40as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
41as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
42as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
43# Prefer a ksh shell builtin over an external printf program on Solaris,
44# but without wasting forks for bash or zsh.
45if test -z "$BASH_VERSION$ZSH_VERSION" \
46    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
47  as_echo='print -r --'
48  as_echo_n='print -rn --'
49elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
50  as_echo='printf %s\n'
51  as_echo_n='printf %s'
52else
53  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
54    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
55    as_echo_n='/usr/ucb/echo -n'
56  else
57    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
58    as_echo_n_body='eval
59      arg=$1;
60      case $arg in #(
61      *"$as_nl"*)
62	expr "X$arg" : "X\\(.*\\)$as_nl";
63	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
64      esac;
65      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
66    '
67    export as_echo_n_body
68    as_echo_n='sh -c $as_echo_n_body as_echo'
69  fi
70  export as_echo_body
71  as_echo='sh -c $as_echo_body as_echo'
72fi
73
74# The user is always right.
75if test "${PATH_SEPARATOR+set}" != set; then
76  PATH_SEPARATOR=:
77  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
78    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
79      PATH_SEPARATOR=';'
80  }
81fi
82
83
84# IFS
85# We need space, tab and new line, in precisely that order.  Quoting is
86# there to prevent editors from complaining about space-tab.
87# (If _AS_PATH_WALK were called with IFS unset, it would disable word
88# splitting by setting IFS to empty value.)
89IFS=" ""	$as_nl"
90
91# Find who we are.  Look in the path if we contain no directory separator.
92as_myself=
93case $0 in #((
94  *[\\/]* ) as_myself=$0 ;;
95  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
96for as_dir in $PATH
97do
98  IFS=$as_save_IFS
99  test -z "$as_dir" && as_dir=.
100    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
101  done
102IFS=$as_save_IFS
103
104     ;;
105esac
106# We did not find ourselves, most probably we were run as `sh COMMAND'
107# in which case we are not to be found in the path.
108if test "x$as_myself" = x; then
109  as_myself=$0
110fi
111if test ! -f "$as_myself"; then
112  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
113  exit 1
114fi
115
116# Unset variables that we do not need and which cause bugs (e.g. in
117# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
118# suppresses any "Segmentation fault" message there.  '((' could
119# trigger a bug in pdksh 5.2.14.
120for as_var in BASH_ENV ENV MAIL MAILPATH
121do eval test x\${$as_var+set} = xset \
122  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
123done
124PS1='$ '
125PS2='> '
126PS4='+ '
127
128# NLS nuisances.
129LC_ALL=C
130export LC_ALL
131LANGUAGE=C
132export LANGUAGE
133
134# CDPATH.
135(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
136
137if test "x$CONFIG_SHELL" = x; then
138  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
139  emulate sh
140  NULLCMD=:
141  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
142  # is contrary to our usage.  Disable this feature.
143  alias -g '\${1+\"\$@\"}'='\"\$@\"'
144  setopt NO_GLOB_SUBST
145else
146  case \`(set -o) 2>/dev/null\` in #(
147  *posix*) :
148    set -o posix ;; #(
149  *) :
150     ;;
151esac
152fi
153"
154  as_required="as_fn_return () { (exit \$1); }
155as_fn_success () { as_fn_return 0; }
156as_fn_failure () { as_fn_return 1; }
157as_fn_ret_success () { return 0; }
158as_fn_ret_failure () { return 1; }
159
160exitcode=0
161as_fn_success || { exitcode=1; echo as_fn_success failed.; }
162as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
163as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
164as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
165if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
166
167else
168  exitcode=1; echo positional parameters were not saved.
169fi
170test x\$exitcode = x0 || exit 1
171test -x / || exit 1"
172  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
173  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
174  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
175  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
176test \$(( 1 + 1 )) = 2 || exit 1"
177  if (eval "$as_required") 2>/dev/null; then :
178  as_have_required=yes
179else
180  as_have_required=no
181fi
182  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
183
184else
185  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
186as_found=false
187for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
188do
189  IFS=$as_save_IFS
190  test -z "$as_dir" && as_dir=.
191  as_found=:
192  case $as_dir in #(
193	 /*)
194	   for as_base in sh bash ksh sh5; do
195	     # Try only shells that exist, to save several forks.
196	     as_shell=$as_dir/$as_base
197	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
198		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
199  CONFIG_SHELL=$as_shell as_have_required=yes
200		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
201  break 2
202fi
203fi
204	   done;;
205       esac
206  as_found=false
207done
208$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
209	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
210  CONFIG_SHELL=$SHELL as_have_required=yes
211fi; }
212IFS=$as_save_IFS
213
214
215      if test "x$CONFIG_SHELL" != x; then :
216  export CONFIG_SHELL
217             # We cannot yet assume a decent shell, so we have to provide a
218# neutralization value for shells without unset; and this also
219# works around shells that cannot unset nonexistent variables.
220# Preserve -v and -x to the replacement shell.
221BASH_ENV=/dev/null
222ENV=/dev/null
223(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
224case $- in # ((((
225  *v*x* | *x*v* ) as_opts=-vx ;;
226  *v* ) as_opts=-v ;;
227  *x* ) as_opts=-x ;;
228  * ) as_opts= ;;
229esac
230exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
231# Admittedly, this is quite paranoid, since all the known shells bail
232# out after a failed `exec'.
233$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
234exit 255
235fi
236
237    if test x$as_have_required = xno; then :
238  $as_echo "$0: This script requires a shell more modern than all"
239  $as_echo "$0: the shells that I found on your system."
240  if test x${ZSH_VERSION+set} = xset ; then
241    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
242    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
243  else
244    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
245$0: including any error possibly output before this
246$0: message. Then install a modern shell, or manually run
247$0: the script under such a shell if you do have one."
248  fi
249  exit 1
250fi
251fi
252fi
253SHELL=${CONFIG_SHELL-/bin/sh}
254export SHELL
255# Unset more variables known to interfere with behavior of common tools.
256CLICOLOR_FORCE= GREP_OPTIONS=
257unset CLICOLOR_FORCE GREP_OPTIONS
258
259## --------------------- ##
260## M4sh Shell Functions. ##
261## --------------------- ##
262# as_fn_unset VAR
263# ---------------
264# Portably unset VAR.
265as_fn_unset ()
266{
267  { eval $1=; unset $1;}
268}
269as_unset=as_fn_unset
270
271# as_fn_set_status STATUS
272# -----------------------
273# Set $? to STATUS, without forking.
274as_fn_set_status ()
275{
276  return $1
277} # as_fn_set_status
278
279# as_fn_exit STATUS
280# -----------------
281# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
282as_fn_exit ()
283{
284  set +e
285  as_fn_set_status $1
286  exit $1
287} # as_fn_exit
288
289# as_fn_mkdir_p
290# -------------
291# Create "$as_dir" as a directory, including parents if necessary.
292as_fn_mkdir_p ()
293{
294
295  case $as_dir in #(
296  -*) as_dir=./$as_dir;;
297  esac
298  test -d "$as_dir" || eval $as_mkdir_p || {
299    as_dirs=
300    while :; do
301      case $as_dir in #(
302      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
303      *) as_qdir=$as_dir;;
304      esac
305      as_dirs="'$as_qdir' $as_dirs"
306      as_dir=`$as_dirname -- "$as_dir" ||
307$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
308	 X"$as_dir" : 'X\(//\)[^/]' \| \
309	 X"$as_dir" : 'X\(//\)$' \| \
310	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
311$as_echo X"$as_dir" |
312    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
313	    s//\1/
314	    q
315	  }
316	  /^X\(\/\/\)[^/].*/{
317	    s//\1/
318	    q
319	  }
320	  /^X\(\/\/\)$/{
321	    s//\1/
322	    q
323	  }
324	  /^X\(\/\).*/{
325	    s//\1/
326	    q
327	  }
328	  s/.*/./; q'`
329      test -d "$as_dir" && break
330    done
331    test -z "$as_dirs" || eval "mkdir $as_dirs"
332  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
333
334
335} # as_fn_mkdir_p
336
337# as_fn_executable_p FILE
338# -----------------------
339# Test if FILE is an executable regular file.
340as_fn_executable_p ()
341{
342  test -f "$1" && test -x "$1"
343} # as_fn_executable_p
344# as_fn_append VAR VALUE
345# ----------------------
346# Append the text in VALUE to the end of the definition contained in VAR. Take
347# advantage of any shell optimizations that allow amortized linear growth over
348# repeated appends, instead of the typical quadratic growth present in naive
349# implementations.
350if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
351  eval 'as_fn_append ()
352  {
353    eval $1+=\$2
354  }'
355else
356  as_fn_append ()
357  {
358    eval $1=\$$1\$2
359  }
360fi # as_fn_append
361
362# as_fn_arith ARG...
363# ------------------
364# Perform arithmetic evaluation on the ARGs, and store the result in the
365# global $as_val. Take advantage of shells that can avoid forks. The arguments
366# must be portable across $(()) and expr.
367if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
368  eval 'as_fn_arith ()
369  {
370    as_val=$(( $* ))
371  }'
372else
373  as_fn_arith ()
374  {
375    as_val=`expr "$@" || test $? -eq 1`
376  }
377fi # as_fn_arith
378
379
380# as_fn_error STATUS ERROR [LINENO LOG_FD]
381# ----------------------------------------
382# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
383# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
384# script with STATUS, using 1 if that was 0.
385as_fn_error ()
386{
387  as_status=$1; test $as_status -eq 0 && as_status=1
388  if test "$4"; then
389    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
390    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
391  fi
392  $as_echo "$as_me: error: $2" >&2
393  as_fn_exit $as_status
394} # as_fn_error
395
396if expr a : '\(a\)' >/dev/null 2>&1 &&
397   test "X`expr 00001 : '.*\(...\)'`" = X001; then
398  as_expr=expr
399else
400  as_expr=false
401fi
402
403if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
404  as_basename=basename
405else
406  as_basename=false
407fi
408
409as_me=`$as_basename -- "$0" ||
410$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
411	 X"$0" : 'X\(//\)$' \| \
412	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
413$as_echo X/"$0" |
414    sed '/^.*\/\([^/][^/]*\)\/*$/{
415	    s//\1/
416	    q
417	  }
418	  /^X\/\(\/\/\)$/{
419	    s//\1/
420	    q
421	  }
422	  /^X\/\(\/\).*/{
423	    s//\1/
424	    q
425	  }
426	  s/.*/./; q'`
427
428if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
429  as_dirname=dirname
430else
431  as_dirname=false
432fi
433
434# Avoid depending upon Character Ranges.
435as_cr_letters='abcdefghijklmnopqrstuvwxyz'
436as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
437as_cr_Letters=$as_cr_letters$as_cr_LETTERS
438as_cr_digits='0123456789'
439as_cr_alnum=$as_cr_Letters$as_cr_digits
440
441
442  as_lineno_1=$LINENO as_lineno_1a=$LINENO
443  as_lineno_2=$LINENO as_lineno_2a=$LINENO
444  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
445  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
446  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
447  sed -n '
448    p
449    /[$]LINENO/=
450  ' <$as_myself |
451    sed '
452      s/[$]LINENO.*/&-/
453      t lineno
454      b
455      :lineno
456      N
457      :loop
458      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
459      t loop
460      s/-\n.*//
461    ' >$as_me.lineno &&
462  chmod +x "$as_me.lineno" ||
463    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
464
465  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
466  # already done that, so ensure we don't try to do so again and fall
467  # in an infinite loop.  This has already happened in practice.
468  _as_can_reexec=no; export _as_can_reexec
469  # Don't try to exec as it changes $[0], causing all sort of problems
470  # (the dirname of $[0] is not the place where we might find the
471  # original and so on.  Autoconf is especially sensitive to this).
472  . "./$as_me.lineno"
473  # Exit status is that of the last command.
474  exit
475}
476
477ECHO_C= ECHO_N= ECHO_T=
478case `echo -n x` in #(((((
479-n*)
480  case `echo 'xy\c'` in
481  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
482  xy)  ECHO_C='\c';;
483  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
484       ECHO_T='	';;
485  esac;;
486*)
487  ECHO_N='-n';;
488esac
489
490rm -f conf$$ conf$$.exe conf$$.file
491if test -d conf$$.dir; then
492  rm -f conf$$.dir/conf$$.file
493else
494  rm -f conf$$.dir
495  mkdir conf$$.dir 2>/dev/null
496fi
497if (echo >conf$$.file) 2>/dev/null; then
498  if ln -s conf$$.file conf$$ 2>/dev/null; then
499    as_ln_s='ln -s'
500    # ... but there are two gotchas:
501    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
502    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
503    # In both cases, we have to default to `cp -pR'.
504    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
505      as_ln_s='cp -pR'
506  elif ln conf$$.file conf$$ 2>/dev/null; then
507    as_ln_s=ln
508  else
509    as_ln_s='cp -pR'
510  fi
511else
512  as_ln_s='cp -pR'
513fi
514rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
515rmdir conf$$.dir 2>/dev/null
516
517if mkdir -p . 2>/dev/null; then
518  as_mkdir_p='mkdir -p "$as_dir"'
519else
520  test -d ./-p && rmdir ./-p
521  as_mkdir_p=false
522fi
523
524as_test_x='test -x'
525as_executable_p=as_fn_executable_p
526
527# Sed expression to map a string onto a valid CPP name.
528as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
529
530# Sed expression to map a string onto a valid variable name.
531as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
532
533
534
535
536
537SHELL=${CONFIG_SHELL-/bin/sh}
538
539# How were we run?
540at_cli_args="$@"
541
542
543# Not all shells have the 'times' builtin; the subshell is needed to make
544# sure we discard the 'times: not found' message from the shell.
545at_times_p=false
546(times) >/dev/null 2>&1 && at_times_p=:
547
548# CLI Arguments to pass to the debugging scripts.
549at_debug_args=
550# -e sets to true
551at_errexit_p=false
552# Shall we be verbose?  ':' means no, empty means yes.
553at_verbose=:
554at_quiet=
555# Running several jobs in parallel, 0 means as many as test groups.
556at_jobs=1
557at_traceon=:
558at_trace_echo=:
559at_check_filter_trace=:
560
561# Shall we keep the debug scripts?  Must be `:' when the suite is
562# run by a debug script, so that the script doesn't remove itself.
563at_debug_p=false
564# Display help message?
565at_help_p=false
566# Display the version message?
567at_version_p=false
568# List test groups?
569at_list_p=false
570# --clean
571at_clean=false
572# Test groups to run
573at_groups=
574# Whether to rerun failed tests.
575at_recheck=
576# Whether a write failure occurred
577at_write_fail=0
578
579# The directory we run the suite in.  Default to . if no -C option.
580at_dir=`pwd`
581# An absolute reference to this testsuite script.
582case $as_myself in
583  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
584  * ) at_myself=$at_dir/$as_myself ;;
585esac
586# Whether -C is in effect.
587at_change_dir=false
588
589# Whether to enable colored test results.
590at_color=auto
591# List of the tested programs.
592at_tested='cobc
593cobcrun'
594# As many question marks as there are digits in the last test group number.
595# Used to normalize the test group numbers so that `ls' lists them in
596# numerical order.
597at_format='????'
598# Description of all the test groups.
599at_help_all="1;used_binaries.at:27;compiler help and information;runmisc cobc;
6002;used_binaries.at:50;compiler warnings;runmisc cobc warning;
6013;used_binaries.at:178;compiler outputs (general);runmisc cobc;
6024;used_binaries.at:218;compiler outputs (file specified);runmisc cobc gen-c-line-directives gen-c-labels gen line labels;
6035;used_binaries.at:263;compiler outputs (path specified);runmisc cobc;
6046;used_binaries.at:292;compiler outputs (assembler);runmisc cobc;
6057;used_binaries.at:327;source file not found;cobc runmisc;
6068;used_binaries.at:337;temporary path invalid;cobc runmisc;
6079;used_binaries.at:372;use of full path for cobc;runmisc;
60810;used_binaries.at:390;C Compiler optimizations;runmisc cobc optimization;
60911;used_binaries.at:427;invalid cobc option;runmisc cobc;
61012;used_binaries.at:447;cobcrun help and information;runmisc cobcrun;
61113;used_binaries.at:462;cobcrun validation;runmisc;
61214;used_binaries.at:502;cobcrun -M DSO entry argument;runmisc;
61315;used_binaries.at:562;cobcrun -M directory/ default;runmisc;
61416;used_binaries.at:601;cobcrun -M directory/dso alternate;runmisc;
61517;used_binaries.at:652;cobcrun -M DSO entry multiple arguments;runmisc;
61618;used_binaries.at:698;cobcrun error messages;runmisc;
61719;used_binaries.at:721;run job after compilation;runmisc cobcrun;
61820;used_binaries.at:740;run job after compilation (path specified);runmisc cobcrun;
61921;used_binaries.at:760;run job with optional arguments;runmisc cobcrun;
62022;used_binaries.at:782;compile from stdin;runmisc cobc cobcrun;
62123;used_binaries.at:812;run job after compilation from stdin;runmisc cobc cobcrun;
62224;configuration.at:22;cobc with standard configuration file;configuration misc;
62325;configuration.at:43;cobc dialect features for all -std;configuration misc;
62426;configuration.at:101;cobc with configuration file via -std;configuration misc;
62527;configuration.at:122;cobc with standard configuration file via -conf;configuration misc;
62628;configuration.at:143;cobc with own configuration file via -conf;configuration misc;
62729;configuration.at:172;cobc configuration: recursive include;configuration misc;
62830;configuration.at:210;cobc with -std and -conf;configuration misc;
62931;configuration.at:237;cobc compiler flag on command line;configuration misc;
63032;configuration.at:256;cobc compiler flag on command line (priority);configuration misc;
63133;configuration.at:289;cobc configuration: entries;configuration misc;
63234;configuration.at:336;cobc configuration: conf missing;configuration misc;
63335;configuration.at:364;cobc configuration: conf optional;configuration misc;
63436;configuration.at:400;cobc configuration: incomplete;configuration misc;
63537;configuration.at:524;runtime configuration;configuration misc;
63638;configuration.at:543;runtime configuration file;configuration misc;
63739;configuration.at:586;runtime configuration: recursive include;configuration misc;
63840;configuration.at:615;runtime configuration: environment priority;configuration misc;
63941;configuration.at:628;runtime configuration: entries;configuration misc;
64042;configuration.at:709;runtime configuration: conf missing;configuration misc;
64143;configuration.at:738;runtime configuration: conf optional;configuration misc;
64244;configuration.at:751;runtime configuration: strings and environment;configuration environment variable;
64345;configuration.at:765;validation of COB_CONFIG_DIR;runtime configuration environment variable;
64446;syn_copy.at:21;COPY: IN / OF / -I;copy cobc;
64547;syn_copy.at:123;COPY: relative copybooks;copy cobc;
64648;syn_copy.at:168;COPY: extension;copy cobc in of -i;
64749;syn_copy.at:255;COPY: within comment;copy;
64850;syn_copy.at:284;COPY: file not found;copy case fold-copy;
64951;syn_copy.at:340;COPY: recursive;copy;
65052;syn_copy.at:380;COPY: replacement order;copy;
65153;syn_copy.at:407;COPY: separators;copy;
65254;syn_copy.at:436;COPY: partial replacement;copy;
65355;syn_copy.at:466;COPY: LEADING replacement;copy;
65456;syn_copy.at:496;COPY: TRAILING replacement;copy;
65557;syn_copy.at:526;COPY: recursive replacement;copy;
65658;syn_copy.at:556;COPY: fixed/free format;copy;
65759;syn_definition.at:25;Invalid source name;definition;
65860;syn_definition.at:37;Invalid PROGRAM-ID;definition;
65961;syn_definition.at:54;Invalid PROGRAM-ID type clause (1);definition;
66062;syn_definition.at:71;invalid PROGRAM-ID type clause (2);definition;
66163;syn_definition.at:88;INITIAL / RECURSIVE before COMMON;program-id definition;
66264;syn_definition.at:120;Undefined data name;definition;
66365;syn_definition.at:139;Undefined group name;definition;
66466;syn_definition.at:161;Undefined data name in group;definition;
66567;syn_definition.at:185;Reference not a group name;definition;
66668;syn_definition.at:207;Incomplete 01 definition;definition;
66769;syn_definition.at:225;error handling in conditions;definition;
66870;syn_definition.at:298;Same labels in different sections;definition;
66971;syn_definition.at:322;Redefinition of 01 items;definition;
67072;syn_definition.at:351;Redefinition of 01 and 02 items;definition;
67173;syn_definition.at:371;Redefinition of 02 items;definition;
67274;syn_definition.at:392;Redefinition of 77 items;definition;
67375;syn_definition.at:412;Redefinition of 01 and 77 items;definition;
67476;syn_definition.at:432;Redefinition of 88 items;definition;
67577;syn_definition.at:453;Redefinition of program-name by other programs;definition;
67678;syn_definition.at:533;Redefinition of program-name within program;definition;
67779;syn_definition.at:563;Redefinition of function-prototype name;definition;
67880;syn_definition.at:588;PROCEDURE DIVISION RETURNING OMITTED: main;runmisc;
67981;syn_definition.at:608;PROCEDURE DIVISION RETURNING OMITTED: FUNCTION;runmisc;
68082;syn_definition.at:627;PROCEDURE DIVISION RETURNING item;runmisc;
68183;syn_definition.at:722;Data item with same name as program-name;definition;
68284;syn_definition.at:749;Ambiguous reference to 02 items;definition;
68385;syn_definition.at:776;Ambiguous reference to 02 and 03 items;definition;
68486;syn_definition.at:802;Ambiguous reference with qualification;definition;
68587;syn_definition.at:831;Unique reference with ambiguous qualifiers;definition;
68688;syn_definition.at:867;Undefined procedure name;definition;
68789;syn_definition.at:887;Redefinition of section names;definition;
68890;syn_definition.at:912;Redefinition of section and paragraph names;definition;
68991;syn_definition.at:938;Redefinition of label and variable names;definition;
69092;syn_definition.at:975;Redefinition of paragraph names;definition;
69193;syn_definition.at:1001;Ambiguous reference to paragraph name;definition;
69294;syn_definition.at:1027;Non-matching level numbers (extension);definition;
69395;syn_definition.at:1051;CALL BY VALUE alphanumeric item (extension);definition content;
69496;syn_definition.at:1073;CALL BY VALUE national item (extension);definition content;
69597;syn_definition.at:1096;CALL BY VALUE figurative constants;definition;
69698;syn_definition.at:1130;Duplicate identification division header;definition;
69799;syn_definition.at:1145;RETURNING in STOP RUN / GOBACK / EXIT PROGRAM;definition return-code;
698100;syn_definition.at:1196;Invalid ENVIRONMENT DIVISION order;definition;
699101;syn_definition.at:1221;Function without END FUNCTION;definition functions;
700102;syn_definition.at:1235;Nested programs without END PROGRAM;definition;
701103;syn_definition.at:1257;Nested programs not in procedure division;definition;
702104;syn_definition.at:1276;Screen section starts with 78-level;screen definition;
703105;syn_definition.at:1292;Invalid PICTURE strings;definition usage;
704106;syn_definition.at:1552;PICTURE string with control character;definition;
705107;syn_definition.at:1570;PICTURE strings invalid with BLANK WHEN ZERO;definition;
706108;syn_definition.at:1593;PICTURE strings invalid with USAGE;definition;
707109;syn_definition.at:1613;ALPHABET definition;definition;
708110;syn_definition.at:1636;PROGRAM COLLATING SEQUENCE;definition alphabet;
709111;syn_definition.at:1819;RENAMES item;definition 66;
710112;syn_definition.at:1893;RENAMES of 01-, 66- and 77-level items;definition 66 extensions;
711113;syn_definition.at:1919;SAME AS clause;definition external global;
712114;syn_definition.at:1983;TYPEDEF clause;definition external global type usage listing symbols;
713115;syn_definition.at:2214;LIKE clause;definition external global;
714116;syn_definition.at:2272;APPLY COMMIT clause;definition i-o-control rollback;
715117;syn_subscripts.at:23;Non-numeric subscript;subscripts;
716118;syn_subscripts.at:50;Subscript range check;subscripts;
717119;syn_subscripts.at:98;Subscript bounds with OCCURS DEPENDING ON;runsubscripts subscripts odo;
718120;syn_subscripts.at:125;Subscripted item requires OCCURS clause;subscripts;
719121;syn_subscripts.at:151;Number of subscripts;subscripts;
720122;syn_subscripts.at:195;SET SSRANGE syntax;subscripts directive extensions;
721123;syn_occurs.at:29;OCCURS with level 01 and 77;;
722124;syn_occurs.at:84;OCCURS with level 66;renames;
723125;syn_occurs.at:103;OCCURS with level 78;;
724126;syn_occurs.at:121;OCCURS with level 88;;
725127;syn_occurs.at:141;OCCURS with variable-occurrence data item;nested depending extensions odo;
726128;syn_occurs.at:189;OCCURS data-items for INDEXED and KEY;ascending descending;
727129;syn_occurs.at:229;Nested OCCURS clause;;
728130;syn_occurs.at:266;OCCURS DEPENDING with wrong size;range;
729131;syn_occurs.at:305;OCCURS DEPENDING followed by another field;extensions;
730132;syn_occurs.at:347;OCCURS with unmatched DEPENDING / TO phrases;odo;
731133;syn_occurs.at:390;OCCURS INDEXED before KEY;ascending descending;
732134;syn_occurs.at:428;OCCURS size check;limit;
733135;syn_redefines.at:28;REDEFINES: not following entry-name;redefines;
734136;syn_redefines.at:53;REDEFINES: level 02 by 01;redefines;
735137;syn_redefines.at:74;REDEFINES: level 03 by 02;redefines;
736138;syn_redefines.at:96;REDEFINES: level 66;redefines;
737139;syn_redefines.at:118;REDEFINES: level 88;redefines;
738140;syn_redefines.at:147;REDEFINES: lower level number;redefines;
739141;syn_redefines.at:173;REDEFINES: with OCCURS;redefines;
740142;syn_redefines.at:194;REDEFINES: with subscript;redefines;
741143;syn_redefines.at:216;REDEFINES: with variable occurrence;redefines;
742144;syn_redefines.at:251;REDEFINES: with qualification;redefines;
743145;syn_redefines.at:277;REDEFINES: multiple redefinition;redefines;
744146;syn_redefines.at:305;REDEFINES: size exceeds;redefines;
745147;syn_redefines.at:338;REDEFINES: with VALUE;redefines;
746148;syn_redefines.at:370;REDEFINES: with intervention;redefines;
747149;syn_redefines.at:399;REDEFINES: within REDEFINES;redefines;
748150;syn_redefines.at:420;REDEFINES: non-referenced ambiguous item;redefines extensions;
749151;syn_value.at:43;Numeric item (integer);value size;
750152;syn_value.at:70;Numeric item (non-integer);value size;
751153;syn_value.at:94;Numeric item with picture P;value size;
752154;syn_value.at:126;Signed numeric literal;value;
753155;syn_value.at:152;Alphabetic item;value size;
754156;syn_value.at:179;Alphanumeric item;value size;
755157;syn_value.at:204;Alphanumeric group item;value size;
756158;syn_value.at:239;Numeric-edited item;value editing size;
757159;syn_value.at:272;Alphanumeric-edited item;value editing size;
758160;syn_value.at:340;Implicit picture from value;value;
759161;syn_file.at:23;Missing SELECT;file;
760162;syn_file.at:50;Duplicated SELECT;file;
761163;syn_file.at:82;Missing FD;file;
762164;syn_file.at:108;Duplicated FD;file;
763165;syn_file.at:137;ASSIGN to device-name;file disk device;
764166;syn_file.at:204;ASSIGN to printer-name;file printer print device;
765167;syn_file.at:271;ASSIGN to lsq-device-name;file printer device;
766168;syn_file.at:326;ASSIGN to variable;file;
767169;syn_file.at:431;SELECT without ASSIGN;file;
768170;syn_file.at:459;START on SEQUENTIAL file;file;
769171;syn_file.at:496;OPEN SEQUENTIAL file REVERSED;file;
770172;syn_file.at:544;OPEN SEQUENTIAL file NO REWIND;file;
771173;syn_file.at:583;valid key items;file record alternate;
772174;syn_file.at:633;INDEXED file invalid key items;record alternate split;
773175;syn_file.at:697;variable record length;file;
774176;syn_file.at:808;variable record length DEPENDING item;file;
775177;syn_file.at:882;DECLARATIVES invalid procedure reference (1);file;
776178;syn_file.at:971;DECLARATIVES invalid procedure reference (2);file;
777179;syn_file.at:1012;EXTERNAL file;file;
778180;syn_file.at:1040;RECORDING MODE;file extensions;
779181;syn_file.at:1069;CODE-SET clause;file;
780182;syn_file.at:1103;CODE-SET FOR clause;file extensions;
781183;syn_file.at:1137;WRITE / REWRITE FROM clause and FILE;file record condition-name level-88 88;
782184;syn_file.at:1198;Clauses following invalid ACCESS clause;file;
783185;syn_file.at:1222;RELATIVE KEY type checks;relative file;
784186;syn_file.at:1282;Mismatched KEY clause;file relative indexed;
785187;syn_file.at:1309;RECORD DELIMITER;file;
786188;syn_file.at:1417;FILE STATUS;file status;
787189;syn_file.at:1516;VSAM status;file status extensions;
788190;syn_file.at:1562;INDEXED file PASSWORD clause;file external split key;
789191;syn_file.at:1613;RECORD clause equal limits;file;
790192;syn_file.at:1653;FILE ... FROM literal;file;
791193;syn_file.at:1712;WRITE / REWRITE on LINE SEQUENTIAL files;file;
792194;syn_file.at:1747;WRITE / REWRITE on REPORT files;file;
793195;syn_file.at:1784;SELECT without fd-name;file;
794196;syn_file.at:1805;Undeclared FILE-ID variable;file;
795197;syn_file.at:1830;Undeclared ASSIGN variable;file global;
796198;syn_file.at:1909;OPEN I-O with LINE SEQUENTIAL;file;
797199;syn_file.at:1934;ACCESS RANDOM with ORG SEQUENTIAL;file;
798200;syn_file.at:1961;ALTERNATE RECORD KEY SUPPRESS WHEN;file;
799201;syn_file.at:2006;RECORD definition with SOURCE IS / =;file;
800202;syn_file.at:2057;ALTERNATE RECORD definition WITH NO DUPLICATES;file;
801203;syn_file.at:2087;ALTERNATE RECORD definition omitting RECORD;file;
802204;syn_file.at:2116;SELECT/OPEN syntax extensions;file select open mass-update bulk-addition lock;
803205;syn_file.at:2211;GLOBAL FD nested progam;global-fd;
804206;syn_file.at:2249;Invalid file name in SELECT;file;
805207;syn_reportwriter.at:23;REPORT error/warning;report;
806208;syn_reportwriter.at:124;REPORT not positive integers in COL / LINE PLUS;lines cols columns;
807209;syn_reportwriter.at:177;Missing DETAIL line;report;
808210;syn_reportwriter.at:220;REPORT LINE PLUS ZERO;report;
809211;syn_reportwriter.at:270;Incorrect REPORT NAME;report;
810212;syn_reportwriter.at:387;REPORT with PLUS RIGHT/CENTER;report;
811213;syn_reportwriter.at:480;PAGE LIMITS clause;report;
812214;syn_reportwriter.at:515;Report FD without period;report;
813215;syn_reportwriter.at:548;REPORT with unreferenced control field;report;
814216;syn_reportwriter.at:576;Incorrect USAGE clause;report;
815217;syn_refmod.at:25;valid reference modification;refmod;
816218;syn_refmod.at:51;Static out of bounds;refmod;
817219;syn_refmod.at:95;constant-folding out of bounds;refmod expression;
818220;syn_misc.at:23;ambiguous AND/OR;misc expression;
819221;syn_misc.at:54;warn constant expressions;misc expression;
820222;syn_misc.at:87;warn literal size;misc numeric constant expression;
821223;syn_misc.at:352;warn literal size in constant expr. (level 88);misc numeric constant expression;
822224;syn_misc.at:402;Invalid conditional expression (1);misc;
823225;syn_misc.at:515;Invalid conditional expression (2);misc;
824226;syn_misc.at:571;Invalid conditional expression (3);expression condition;
825227;syn_misc.at:635;Valid conditional expression;misc;
826228;syn_misc.at:668;missing headers;misc;
827229;syn_misc.at:718;one line program;misc;
828230;syn_misc.at:737;empty program;misc;
829231;syn_misc.at:783;INITIALIZE constant;misc;
830232;syn_misc.at:810;CLASS duplicate values;misc;
831233;syn_misc.at:843;INSPECT invalid size;misc refmod;
832234;syn_misc.at:884;INSPECT invalid target;misc;
833235;syn_misc.at:907;INSPECT missing keyword;misc;
834236;syn_misc.at:928;INSPECT repeated keywords;misc;
835237;syn_misc.at:964;INSPECT incomplete clause;misc;
836238;syn_misc.at:986;INSPECT multiple BEFORE/AFTER clauses;misc;
837239;syn_misc.at:1009;maximum data size;misc;
838240;syn_misc.at:1038;unreachable statement;misc extensions;
839241;syn_misc.at:1088;CRT STATUS;special-names misc;
840242;syn_misc.at:1130;SPECIAL-NAMES clause;misc extensions cursor crt status;
841243;syn_misc.at:1219;CURRENCY SIGN;special-names misc;
842244;syn_misc.at:1331;SWITCHES;runmisc extensions;
843245;syn_misc.at:1457;unexpected mnemonic-name location;misc;
844246;syn_misc.at:1484;wrong device for mnemonic-name;misc accept display special-names;
845247;syn_misc.at:1509;missing mnemonic-name declaration;misc accept special-names;
846248;syn_misc.at:1530;unknown device in dialect;misc accept display special-names;
847249;syn_misc.at:1560;ACCEPT WITH ( NO ) UPDATE / DEFAULT;misc extensions;
848250;syn_misc.at:1585;ACCEPT WITH AUTO / TAB;auto-skip autoterminate misc extensions screen;
849251;syn_misc.at:1610;ACCEPT WITH LOWER / UPPER;misc extensions screen;
850252;syn_misc.at:1632;ACCEPT WITH SIZE;protected size misc extensions screen;
851253;syn_misc.at:1661;DISPLAY WITH SIZE;size misc extensions screen;
852254;syn_misc.at:1686;source text after program-text area;misc fixed;
853255;syn_misc.at:1707;line overflow in fixed-form / free-form;misc;
854256;syn_misc.at:1755;missing newline in fixed-form / free-form;misc;
855257;syn_misc.at:1788;continuation Indicator - too many lines;misc fixed literals listing;
856258;syn_misc.at:2345;continuation of COBOL words;misc fixed literals;
857259;syn_misc.at:2366;literal too long;misc literals literal-length continuation listing;
858260;syn_misc.at:2601;line and floating comments;misc extensions indicator;
859261;syn_misc.at:2766;word length;misc word-length;
860262;syn_misc.at:2929;Segmentation Module;misc;
861263;syn_misc.at:3021;ACCEPT FROM ESCAPE KEY;misc;
862264;syn_misc.at:3046;Numeric literals;misc numeric-literal-length;
863265;syn_misc.at:3225;floating-point literals;misc;
864266;syn_misc.at:3332;X literals;misc;
865267;syn_misc.at:3359;national literals;misc;
866268;syn_misc.at:3397;NX literals;misc;
867269;syn_misc.at:3435;binary literals;misc extensions;
868270;syn_misc.at:3471;binary-hexadecimal literals;misc extensions;
869271;syn_misc.at:3500;HP COBOL octal literals;misc extensions;
870272;syn_misc.at:3536;ACUCOBOL literals;misc acu extensions binary octal hexadecimal;
871273;syn_misc.at:3598;ACUCOBOL 32bit literal size;extensions literals;
872274;syn_misc.at:3629;ACUCOBOL USAGE FLOAT / DOUBLE;misc acu extensions reserved;
873275;syn_misc.at:3658;ACUCOBOL USAGE HANDLE;misc acu extensions reserved call destroy;
874276;syn_misc.at:3766;ACUCOBOL WINDOW statements;misc acu extensions screen;
875277;syn_misc.at:3851;ACUCOBOL GRAPHICAL controls;misc acu extensions screen modify inquire;
876278;syn_misc.at:3930;DISPLAY MESSAGE BOX;misc acu extensions screen;
877279;syn_misc.at:3973;DISPLAY OMITTED;misc extensions screen;
878280;syn_misc.at:3994;CGI: EXTERNAL-FORM;misc acu extensions accept display;
879281;syn_misc.at:4049;adding/removing reserved words;misc extensions configuration;
880282;syn_misc.at:4079;adding aliases;misc extensions configuration reserved;
881283;syn_misc.at:4113;overriding default words;misc extensions configuration reserved;
882284;syn_misc.at:4143;complete specified word list;misc extensions configuration reserved;
883285;syn_misc.at:4163;ANY LENGTH item as formal parameter;misc;
884286;syn_misc.at:4198;ANY LENGTH item as BY VALUE formal parameter;misc by value;
885287;syn_misc.at:4221;swapped SOURCE- and OBJECT-COMPUTER;misc extensions;
886288;syn_misc.at:4243;CONF. SECTION paragraphs in wrong order;misc extensions;
887289;syn_misc.at:4315;NOT ON EXCEPTION with STATIC CALL convention;misc call-convention;
888290;syn_misc.at:4363;NOT ON EXCEPTION phrases before ON EXCEPTION;misc;
889291;syn_misc.at:4427;wrong dialect hints;misc configuration reserved;
890292;syn_misc.at:4451;redundant periods;misc;
891293;syn_misc.at:4481;IF-ELSE statement list with invalid syntax;misc;
892294;syn_misc.at:4514;EVALUATE statement with invalid syntax;misc expression;
893295;syn_misc.at:4564;MF reserved word directives;extensions addrsv addsyn makesyn override remove;
894296;syn_misc.at:4620;TURN directive;misc;
895297;syn_misc.at:4653;STRING / UNSTRING with invalid syntax;misc;
896298;syn_misc.at:4718;UNSTRING COUNT clause;misc;
897299;syn_misc.at:4766;use of program-prototypes;misc;
898300;syn_misc.at:4793;invalid INSPECT/TRANSFORM operands;misc inspect transform;
899301;syn_misc.at:4837;SIGN clause checks;misc;
900302;syn_misc.at:4862;conflicting entry conventions;misc entry-convention call-convention linkage;
901303;syn_misc.at:4931;conflicting call conventions;misc call-convention linkage;
902304;syn_misc.at:4960;dangling LINKAGE items;misc;
903305;syn_misc.at:5016;duplicate PROCEDURE DIVISION/ENTRY USING items;misc division entry reference;
904306;syn_misc.at:5037;duplicate CALL USING BY REFERENCE items;misc;
905307;syn_misc.at:5063;ADD / SUBTRACT TABLE;misc;
906308;syn_misc.at:5106;USE FOR DEBUGGING invalid ref-mod / subscripts;misc;
907309;syn_misc.at:5151;USE FOR DEBUGGING duplicate targets;misc;
908310;syn_misc.at:5204;USE FOR DEBUGGING implicit statements;misc;
909311;syn_misc.at:5252;USE FOR DEBUGGING syntax-checks;misc;
910312;syn_misc.at:5323;Empty PERFORM with DEBUGGING MODE;misc;
911313;syn_misc.at:5351;whitespace handling;misc;
912314;syn_misc.at:5439;STOP identifier;misc extensions;
913315;syn_misc.at:5465;01 CONSTANT;mirc reserved;
914316;syn_misc.at:5513;78 VALUE;constant;
915317;syn_misc.at:5560;level 78 NEXT / START OF;extensions constant length;
916318;syn_misc.at:5619;SYMBOLIC CONSTANT;misc special-names;
917319;syn_misc.at:5668;Constant Expressions (1);condition expression refmod if evaluate;
918320;syn_misc.at:5793;Constant Expressions (2);condition expression unreachable 78;
919321;syn_misc.at:5849;Constant Expressions (3);condition expression refmod undefined;
920322;syn_misc.at:5940;Constant Expressions (4);condition expression refmod;
921323;syn_misc.at:5973;Constant Expressions (5);condition expression unreachable;
922324;syn_misc.at:6073;Missing imperative statements;condition expression if evaluate when perform;
923325;syn_misc.at:6165;Fall-Through to WHEN OTHER;condition expression evaluate when;
924326;syn_misc.at:6203;CONSTANT LENGTH / BYTE-LENGTH;misc;
925327;syn_misc.at:6227;ANY LENGTH/NUMERIC with incorrect PIC;misc;
926328;syn_misc.at:6273;VOLATILE clause;extensions;
927329;syn_misc.at:6316;SET SOURCEFORMAT syntax checks;misc extensions directives;
928330;syn_misc.at:6349;WHEN-COMPILED register in dialect;misc extensions;
929331;syn_misc.at:6375;LIN / COL register;misc extensions;
930332;syn_misc.at:6407;tokens consisting of multiple words;misc;
931333;syn_misc.at:6434;zero-length literals;misc;
932334;syn_misc.at:6495;@OPTIONS parsing;misc options;
933335;syn_misc.at:6537;system routines with wrong number of parameters;misc call 91 c\$toupper cbl_gc_fork;
934336;syn_misc.at:6566;invalid use of condition-name;misc move string unstring compute;
935337;syn_misc.at:6630;XML GENERATE syntax checks;extensions;
936338;syn_misc.at:6848;BASED clause, ALLOCATE / FREE statements;based;
937339;syn_misc.at:6906;CONTINUE statement;based;
938340;syn_misc.at:6950;conflict markers;;
939341;syn_misc.at:7009;SORT syntax;misc fundamental key;
940342;syn_misc.at:7063;OSVS I/O extensions;ibm file extensions;
941343;syn_misc.at:7130;long literal in error message;misc literals;
942344;syn_misc.at:7162;literal missing terminating character;misc literals terminator;
943345;syn_misc.at:7183;EQUALS in expressions;misc;
944346;syn_misc.at:7209;Invalid parentheses around condition;misc;
945347;syn_misc.at:7232;DISPLAY directive (1);misc directive;
946348;syn_misc.at:7255;DISPLAY directive (2);misc extension directive;
947349;syn_misc.at:7275;DISPLAY directive (3);misc extension directive;
948350;syn_misc.at:7294;conditional / define directives (1);misc directive;
949351;syn_misc.at:7319;conditional / define directives (2);misc directive;
950352;syn_misc.at:7347;conditional / define directives (3);misc directive;
951353;syn_misc.at:7377;conditional / define directives (4);misc directive;
952354;syn_misc.at:7399;error handling in conditional directives;misc directive;
953355;syn_misc.at:7425;conditional directives with lvl 78 (1);misc extensions directive;
954356;syn_misc.at:7460;conditional directives with lvl 78 (2);misc extensions directive;
955357;syn_move.at:37;MOVE SPACE TO numeric or numeric-edited item;move editing;
956358;syn_move.at:63;MOVE ZERO TO alphabetic item;move;
957359;syn_move.at:89;MOVE alphabetic TO x;move;
958360;syn_move.at:120;MOVE alphanumeric TO x;move;
959361;syn_move.at:148;MOVE alphanumeric-edited TO x;move editing;
960362;syn_move.at:179;MOVE numeric (integer) TO x;move;
961363;syn_move.at:209;MOVE numeric (non-integer) TO x;move;
962364;syn_move.at:241;MOVE numeric-edited TO x;move editing;
963365;syn_move.at:276;CORRESPONDING - Operands must be groups;move;
964366;syn_move.at:306;CORRESPONDING - Target has no matching items;move;
965367;syn_move.at:332;MOVE to erroneous field;move;
966368;syn_move.at:355;Overlapping MOVE;move;
967369;syn_move.at:454;invalid source for MOVE;move label program-prototype;
968370;syn_move.at:484;invalid target for MOVE;move constant label program-prototype;
969371;syn_move.at:520;SET error;set-move;
970372;syn_move.at:552;MOVE FIGURATIVE to NUMERIC;move;
971373;syn_multiply.at:28;Category check of Format 1;multiply;
972374;syn_multiply.at:64;Category check of Format 2;multiply;
973375;syn_multiply.at:102;Category check of literals;multiply;
974376;syn_screen.at:24;Flexible ACCEPT/DISPLAY syntax;screen accept display;
975377;syn_screen.at:92;Duplicate ACCEPT/DISPLAY clauses;screen accept display;
976378;syn_screen.at:121;AT clause;screen extensions;
977379;syn_screen.at:165;ACCEPT/DISPLAY extensions detection;at line column accept display screen extensions;
978380;syn_screen.at:211;FROM clause;screen;
979381;syn_screen.at:237;Incorrect USAGE clause;screen;
980382;syn_screen.at:268;SCREEN SECTION clause numbers;screen;
981383;syn_screen.at:300;Screen clauses;screen;
982384;syn_screen.at:326;ACCEPT ON EXCEPTION/ESCAPE;screen;
983385;syn_screen.at:356;Referencing 88-level;screen;
984386;syn_screen.at:387;Conflicting screen clauses;screen;
985387;syn_screen.at:448;Redundant screen clauses;screen;
986388;syn_screen.at:481;Screen item OCCURS w-/wo relative LINE/COL;occurs;
987389;syn_screen.at:541;VALUE clause missing;screen;
988390;syn_screen.at:565;FULL on numeric item;screen;
989391;syn_screen.at:589;Compiler-specific SCREEN SECTION clause rules;screen;
990392;syn_screen.at:747;MS-COBOL position-spec;screen position lin col;
991393;syn_screen.at:795;Screen with invalid FROM clause;screen constant;
992394;syn_set.at:24;SET ADDRESS OF item;set;
993395;syn_set.at:53;SET item TO 88-level;set;
994396;syn_functions.at:22;ANY LENGTH / NUMERIC as function RETURNING item;functions extensions;
995397;syn_functions.at:64;REPOSITORY INTRINSIC phrase;functions;
996398;syn_functions.at:87;REPOSITORY FUNCTION phrase;functions;
997399;syn_functions.at:135;Redundant REPOSITORY entries;functions;
998400;syn_functions.at:174;Missing prototype/definition;functions programs prototypes;
999401;syn_functions.at:205;Empty function;functions;
1000402;syn_functions.at:232;Function definition inside program;functions;
1001403;syn_functions.at:255;Intrinsic functions: dialect;functions;
1002404;syn_functions.at:280;Intrinsic functions: replaced;functions substitute;
1003405;syn_functions.at:324;Intrinsic functions: number of arguments;functions;
1004406;syn_functions.at:364;Intrinsic functions: reference modification;functions refmod;
1005407;syn_functions.at:412;Intrinsic functions: argument type;functions;
1006408;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;
1007409;syn_functions.at:516;invalid formats w/ DECIMAL-POINT IS COMMA;functions formatted-time formatted-datetime;
1008410;syn_functions.at:550;Specified offset and SYSTEM-OFFSET;functions formatted-time formatted-datetime;
1009411;syn_functions.at:574;FUNCTION LENGTH / BYTE-LENGTH;functions prefixed;
1010412;listings.at:21;Minimal lines per listing pages;listing symbols options;
1011413;listings.at:85;COPY within comment;listing;
1012414;listings.at:161;Replacement w/o strings;listing symbols;
1013415;listings.at:224;COPY replacement order;listing symbols;
1014416;listings.at:327;COPY separators;listing symbols;
1015417;listings.at:393;COPY partial replacement;listing symbols;
1016418;listings.at:609;COPY LEADING replacement;listing symbols;
1017419;listings.at:679;COPY TRAILING replacement;listing symbols;
1018420;listings.at:750;COPY recursive replacement;listing symbols;
1019421;listings.at:816;COPY multiple files;listing symbols based external global;
1020422;listings.at:1037;Error/Warning messages;listing error warning warnings symbols;
1021423;listings.at:1423;Two source files;listing;
1022424;listings.at:1491;Multiple programs in one file;listing symbols;
1023425;listings.at:1710;Multiple programs in one compilation group;listing;
1024426;listings.at:1898;Wide listing;listing;
1025427;listings.at:1986;Symbols: simple;listing comp;
1026428;listings.at:2140;Symbols: pointer;listing 64bit;
1027429;listings.at:2420;Symbols: multiple programs/functions;listing program function;
1028430;listings.at:2547;Symbols: OCCURS/REDEFINES;listing;
1029431;listings.at:2660;Conditional compilation;listing;
1030432;listings.at:2771;File descriptions;listing;
1031433;listings.at:3127;Invalid PICTURE strings;listing;
1032434;listings.at:3631;Variable format;listing;
1033435;listings.at:3675;LISTING directive;listing;
1034436;listings.at:3776;Listing-directive statements;listing directive eject skip1 skip2 skip3 title;
1035437;listings.at:3845;Eject page;listing directive;
1036438;listings.at:4043;Cross reference;listing xref;
1037439;listings.at:5570;Report Writer;listing;
1038440;listings.at:5879;huge REPLACE;listing;
1039441;listings.at:6801;Long concatenated literal;;
1040442;run_fundamental.at:24;DISPLAY literals;fundamental;
1041443;run_fundamental.at:86;DISPLAY literals, DECIMAL-POINT is COMMA;fundamental;
1042444;run_fundamental.at:125;Hexadecimal literal;fundamental;
1043445;run_fundamental.at:166;DISPLAY data items with VALUE clause;fundamental;
1044446;run_fundamental.at:213;DISPLAY data items with MOVE statement;fundamental;
1045447;run_fundamental.at:267;MOVE to edited item (1);fundamental editing;
1046448;run_fundamental.at:316;MOVE to edited item (2);fundamental editing;
1047449;run_fundamental.at:365;MOVE to item with simple and floating insertion;fundamental edited editing;
1048450;run_fundamental.at:400;MOVE to JUSTIFIED item;fundamental;
1049451;run_fundamental.at:445;MOVE integer literal to alphanumeric;fundamental;
1050452;run_fundamental.at:470;Compare FLOAT-LONG with floating-point literal;fundamental literal exponent;
1051453;run_fundamental.at:523;Check for equality of FLOAT-SHORT / FLOAT-LONG;fundamental;
1052454;run_fundamental.at:646;Overlapping MOVE;fundamental;
1053455;run_fundamental.at:747;Overlapping MOVE;fundamental;
1054456;run_fundamental.at:789;IBM MOVE;fundamental;
1055457;run_fundamental.at:828;ALPHABETIC test;fundamental;
1056458;run_fundamental.at:860;ALPHABETIC-UPPER test;fundamental;
1057459;run_fundamental.at:892;ALPHABETIC-LOWER test;fundamental;
1058460;run_fundamental.at:924;GLOBAL at same level;fundamental;
1059461;run_fundamental.at:973;GLOBAL at lower level;fundamental;
1060462;run_fundamental.at:1022;GLOBAL CONSTANT;fundamental;
1061463;run_fundamental.at:1106;GLOBAL identifiers from ENVIRONMENT DIVISION;fundamental function currency sign returning;
1062464;run_fundamental.at:1187;function with variable-length RETURNING item;fundamental udf;
1063465;run_fundamental.at:1270;Entry point visibility (1);fundamental call;
1064466;run_fundamental.at:1302;Entry point visibility (2);fundamental call;
1065467;run_fundamental.at:1336;Contained program visibility (1);fundamental call;
1066468;run_fundamental.at:1391;Contained program visibility (2);fundamental call;
1067469;run_fundamental.at:1444;Contained program visibility (3);fundamental call;
1068470;run_fundamental.at:1495;Contained program visibility (4);fundamental call;
1069471;run_fundamental.at:1550;CALL/CANCEL with program-prototype-name;fundamental;
1070472;run_fundamental.at:1623;GLOBAL FD (1);fundamental;
1071473;run_fundamental.at:1673;GLOBAL FD (2);fundamental;
1072474;run_fundamental.at:1723;GLOBAL FD (3);fundamental;
1073475;run_fundamental.at:1773;GLOBAL FD (4);fundamental;
1074476;run_fundamental.at:1823;CANCEL test (1);fundamental;
1075477;run_fundamental.at:1850;CANCEL test (2);fundamental;
1076478;run_fundamental.at:1890;CANCEL test (3);fundamental;
1077479;run_fundamental.at:1933;Separate sign positions (1);fundamental;
1078480;run_fundamental.at:1957;Separate sign positions (2);fundamental;
1079481;run_fundamental.at:1990;Context sensitive words (1);fundamental byte-length;
1080482;run_fundamental.at:2013;Context sensitive words (2);fundamental yyyymmdd;
1081483;run_fundamental.at:2037;Context sensitive words (3);fundamental yyyyddd;
1082484;run_fundamental.at:2061;Context sensitive words (4);fundamental intrinsic;
1083485;run_fundamental.at:2086;Context sensitive words (5);fundamental recursive;
1084486;run_fundamental.at:2109;Context sensitive words (6);fundamental normal;
1085487;run_fundamental.at:2131;Context sensitive words (7);fundamental compute away-from-zero;
1086488;run_fundamental.at:2158;Context sensitive words (8);fundamental ibm unbounded attributes;
1087489;run_fundamental.at:2185;ROUNDED AWAY-FROM-ZERO;fundamental compute;
1088490;run_fundamental.at:2248;ROUNDED NEAREST-AWAY-FROM-ZERO;fundamental compute;
1089491;run_fundamental.at:2311;ROUNDED NEAREST-EVEN;fundamental compute;
1090492;run_fundamental.at:2374;ROUNDED NEAREST-TOWARD-ZERO;fundamental compute;
1091493;run_fundamental.at:2437;ROUNDED TOWARD-GREATER;fundamental compute;
1092494;run_fundamental.at:2500;ROUNDED TOWARD-LESSER;fundamental compute;
1093495;run_fundamental.at:2563;ROUNDED TRUNCATION;fundamental compute;
1094496;run_fundamental.at:2626;Numeric operations (1);fundamental add subtract;
1095497;run_fundamental.at:2670;Numeric operations (2);fundamental add subtract;
1096498;run_fundamental.at:2976;Numeric operations (3);fundamental add subtract;
1097499;run_fundamental.at:3282;Numeric operations (4);fundamental add subtract;
1098500;run_fundamental.at:3588;Numeric operations (5);fundamental add subtract;
1099501;run_fundamental.at:3894;Numeric operations (6);fundamental add;
1100502;run_fundamental.at:3963;Numeric operations (7);fundamental add compute literal;
1101503;run_fundamental.at:4255;Numeric operations (8);fundamental compute literal;
1102504;run_fundamental.at:4305;ADD CORRESPONDING;fundamental corresponding;
1103505;run_fundamental.at:4353;ADD CORRESPONDING no match;fundamental corresponding;
1104506;run_fundamental.at:4403;SYNC in OCCURS;fundamental synchronize;
1105507;run_fundamental.at:4443;88 level with THRU;runmisc;
1106508;run_fundamental.at:4538;88 level with FILLER;runmisc;
1107509;run_fundamental.at:4567;88 level with FALSE IS clause;runmisc;
1108510;run_fundamental.at:4595;BLANK WHEN ZERO;fundamental;
1109511;run_fundamental.at:4625;MULTIPLY BY literal in INITIAL program;decimal constants fundamental;
1110512;run_fundamental.at:4649;debugging lines (not active);fundamental;
1111513;run_fundamental.at:4672;debugging lines (-fdebugging-line);fundamental;
1112514;run_fundamental.at:4695;debugging lines (WITH DEBUGGING MODE);fundamental extensions;
1113515;run_fundamental.at:4721;debugging lines, free format (not active);fundamental extensions;
1114516;run_fundamental.at:4744;debugging lines, free format (-fdebugging-line);fundamental extensions;
1115517;run_fundamental.at:4767;USE FOR DEBUGGING (no DEBUGGING MODE);fundamental;
1116518;run_fundamental.at:4812;USE FOR DEBUGGING (COB_SET_DEBUG deactivated);fundamental;
1117519;run_fundamental.at:4857;USE FOR DEBUGGING ON ALL PROCEDURES;fundamental;
1118520;run_fundamental.at:4908;USE FOR DEBUGGING ON procedure;fundamental;
1119521;run_fundamental.at:4956;USE FOR DEBUGGING (COB_SET_DEBUG switched);fundamental;
1120522;run_fundamental.at:5005;USE FOR DEBUGGING ON [ALL] REFERENCES OF field;fundamental;
1121523;run_fundamental.at:5073;USE FOR DEBUGGING, reference within DEBUGGING;fundamental;
1122524;run_fundamental.at:5114;USE FOR DEBUGGING, time of execution;fundamental debugging;
1123525;run_fundamental.at:5164;USE FOR DEBUGGING, reference with OCCURS;fundamental debugging;
1124526;run_fundamental.at:5197;USE FOR DEBUGGING, referencing BASED item;fundamental debugging free allocate;
1125527;run_fundamental.at:5234;USE FOR DEBUGGING file;fundamental open write read close;
1126528;run_fundamental.at:5277;Abbreviated Expressions;expression conditional;
1127529;run_fundamental.at:5383;integer arithmetic on floating-point var;fundamental literal;
1128530;run_fundamental.at:5425;TYPEDEF application;fundamental external;
1129531;run_subscripts.at:26;Subscript out of bounds;runsubscripts subscripts;
1130532;run_subscripts.at:71;Value of DEPENDING ON N out of bounds;runsubscripts subscripts;
1131533;run_subscripts.at:122;Subscript bounds with OCCURS DEPENDING ON (1);runsubscripts subscripts odo;
1132534;run_subscripts.at:148;Subscript bounds with OCCURS DEPENDING ON (2);runsubscripts subscripts odo if;
1133535;run_subscripts.at:176;Subscript bounds with OCCURS DEPENDING ON (3);runsubscripts subscripts odo evaluate when;
1134536;run_subscripts.at:211;Subscript by arithmetic expression;runsubscripts subscripts;
1135537;run_subscripts.at:242;length of ODO w/- reference modification;runsubscripts subscripts;
1136538;run_subscripts.at:298;SEARCH ALL with OCCURS DEPENDING ON;runsubscripts subscripts odo;
1137539;run_subscripts.at:351;enable / disable subscript check;runsubscripts subscripts debug exception-name turn bound nobound;
1138540;run_subscripts.at:396;BOUND and NOBOUND directives;runsubscripts subscripts extensions directive;
1139541;run_subscripts.at:465;SSRANGE and NOSSRANGE directives;runsubscripts subscripts extensions directive;
1140542;run_subscripts.at:501;CALL with OCCURS DEPENDING ON;runsubscripts subscripts odo;
1141543;run_refmod.at:25;Static reference modification;refmod;
1142544;run_refmod.at:57;Dynamic reference modification;refmod;
1143545;run_refmod.at:94;Offset underflow;refmod;
1144546;run_refmod.at:118;Offset overflow;refmod;
1145547;run_refmod.at:145;Length underflow;refmod;
1146548;run_refmod.at:189;Length overflow;refmod;
1147549;run_refmod.at:231;Length overflow with offset (1);refmod;
1148550;run_refmod.at:254;Length overflow with offset (2);refmod if;
1149551;run_refmod.at:280;Length overflow with offset (3);refmod evaluate when;
1150552;run_refmod.at:313;enable / disable ref-mod check;refmod debug exception-name;
1151553;run_refmod.at:388;MF SSRANGE and NOSSRANGE directives;refmod extensions directive;
1152554;run_accept.at:28;ACCEPT OMITTED (simple);extensions;
1153555;run_accept.at:50;ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (1);inspect converting;
1154556;run_accept.at:117;ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (2);configuration cob_current_date;
1155557;run_accept.at:200;ACCEPT DATE / DAY and intrinsic functions (1);function integer-of-date day-of-integer;
1156558;run_accept.at:237;ACCEPT DATE / DAY and intrinsic functions (2);configuration function integer-of-date day-of-integer cob_current_date;
1157559;run_accept.at:284;ACCEPT OMITTED (SCREEN);extensions;
1158560;run_initialize.at:27;INITIALIZE group entry with OCCURS;initialize;
1159561;run_initialize.at:55;INITIALIZE OCCURS with numeric edited;initialize editing;
1160562;run_initialize.at:88;INITIALIZE OCCURS with SIGN LEADING / TRAILING;initialize display;
1161563;run_initialize.at:159;INITIALIZE complex group (1);initialize;
1162564;run_initialize.at:187;INITIALIZE complex group (2);initialize;
1163565;run_initialize.at:215;INITIALIZE group item;initialize;
1164566;run_initialize.at:325;INITIALIZE with REDEFINES;initialize;
1165567;run_initialize.at:352;INITIALIZE with FILLER;initialize;
1166568;run_initialize.at:419;INITIALIZE of EXTERNAL data items;initialize;
1167569;run_initialize.at:470;INITIALIZE with reference modification;initialize;
1168570;run_misc.at:23;Comma separator without space;runmisc;
1169571;run_misc.at:44;DECIMAL-POINT is COMMA (1);misc extensions;
1170572;run_misc.at:72;DECIMAL-POINT is COMMA (2);misc extensions;
1171573;run_misc.at:100;DECIMAL-POINT is COMMA (3);misc extensions;
1172574;run_misc.at:128;DECIMAL-POINT is COMMA (4);misc extensions;
1173575;run_misc.at:156;DECIMAL-POINT is COMMA (5);misc extensions;
1174576;run_misc.at:190;CURRENCY SIGN;misc fundamental;
1175577;run_misc.at:221;CURRENCY SIGN WITH PICTURE SYMBOL;misc fundamental;
1176578;run_misc.at:268;LOCAL-STORAGE (1);runmisc;
1177579;run_misc.at:304;LOCAL-STORAGE (2);runmisc;
1178580;run_misc.at:352;EXTERNAL data item;runmisc;
1179581;run_misc.at:394;EXTERNAL AS data item;runmisc;
1180582;run_misc.at:443;EXTERNAL data item size mismatch;runmisc;
1181583;run_misc.at:528;MOVE to itself;runmisc;
1182584;run_misc.at:554;MOVE with refmod;runmisc;
1183585;run_misc.at:578;MOVE with refmod (variable);runmisc;
1184586;run_misc.at:604;MOVE with group refmod;runmisc;
1185587;run_misc.at:629;MOVE indexes;runmisc;
1186588;run_misc.at:655;MOVE X'00';runmisc;
1187589;run_misc.at:690;MOVE Z'literal';runmisc literal;
1188590;run_misc.at:732;Floating continuation indicator;runmisc;
1189591;run_misc.at:754;Fixed continuation indicator;;
1190592;run_misc.at:796;Concatenation operator;runmisc;
1191593;run_misc.at:820;SOURCE FIXED/FREE directives;runmisc sourceformat fixed free;
1192594;run_misc.at:856;TURN directive;runmisc bound nobound directives;
1193595;run_misc.at:897;Level 01 subscripts;runmisc;
1194596;run_misc.at:919;Class check with reference modification;runmisc;
1195597;run_misc.at:943;Index and parenthesized expression;runmisc;
1196598;run_misc.at:967;Alphanumeric and binary numeric;runmisc;
1197599;run_misc.at:992;Non-numeric data in numeric items;runmisc;
1198600;run_misc.at:1066;Dynamic call with static linking;runmisc;
1199601;run_misc.at:1095;Static call with static linking;runmisc;
1200602;run_misc.at:1126;Dynamic CALL with ON EXCEPTION;runmisc;
1201603;run_misc.at:1158;Static CALL with ON EXCEPTION;runmisc;
1202604;run_misc.at:1198;CALL m1. CALL m2. CALL m1.;runmisc;
1203605;run_misc.at:1253;Recursive CALL of RECURSIVE program;runmisc cancel external;
1204606;run_misc.at:1311;Recursive CALL of INITIAL program;runmisc;
1205607;run_misc.at:1362;Recursive CALL with RECURSIVE assumed;runmisc;
1206608;run_misc.at:1408;Recursive CALL with ON EXCEPTION;runmisc exception-status;
1207609;run_misc.at:1465;Multiple calls of INITIAL program;runmisc call;
1208610;run_misc.at:1522;CALL binary literal parameter/LENGTH OF;runmisc;
1209611;run_misc.at:1576;INSPECT REPLACING LEADING ZEROS BY SPACES;runmisc;
1210612;run_misc.at:1598;INSPECT No repeat conversion check;runmisc;
1211613;run_misc.at:1624;INSPECT CONVERTING alphabet;runmisc ascii ebcdic;
1212614;run_misc.at:1659;INSPECT CONVERTING TO figurative constant;runmisc;
1213615;run_misc.at:1683;INSPECT CONVERTING NULL;runmisc;
1214616;run_misc.at:1707;INSPECT CONVERTING TO NULL;runmisc;
1215617;run_misc.at:1731;INSPECT REPLACING figurative constant;runmisc;
1216618;run_misc.at:1755;INSPECT TALLYING BEFORE;runmisc;
1217619;run_misc.at:1790;INSPECT TALLYING AFTER;runmisc;
1218620;run_misc.at:1825;INSPECT REPLACING TRAILING ZEROS BY SPACES;runmisc;
1219621;run_misc.at:1849;INSPECT REPLACING complex;runmisc;
1220622;run_misc.at:1875;SWITCHES (environment COB_SWITCH_n and SET);runmisc;
1221623;run_misc.at:1972;Nested PERFORM;runmisc;
1222624;run_misc.at:1996;PERFORM VARYING BY -0.2;runmisc;
1223625;run_misc.at:2023;PERFORM VARYING BY phrase omitted;runmisc;
1224626;run_misc.at:2054;EXIT PERFORM;runmisc;
1225627;run_misc.at:2079;EXIT PERFORM CYCLE;runmisc;
1226628;run_misc.at:2104;EXIT PARAGRAPH;runmisc;
1227629;run_misc.at:2136;EXIT SECTION;runmisc;
1228630;run_misc.at:2170;PERFORM FOREVER / PERFORM UNTIL EXIT;runmisc extension;
1229631;run_misc.at:2211;PERFORM inline (1);runmisc;
1230632;run_misc.at:2238;PERFORM inline (2);runmisc;
1231633;run_misc.at:2263;Non-overflow after overflow;runmisc;
1232634;run_misc.at:2293;PERFORM ... CONTINUE;runmisc;
1233635;run_misc.at:2310;STRING with subscript reference;runmisc;
1234636;run_misc.at:2337;STRING / UNSTRING NOT ON OVERFLOW;runmisc exceptions;
1235637;run_misc.at:2454;UNSTRING DELIMITED ALL LOW-VALUE;runmisc;
1236638;run_misc.at:2489;UNSTRING DELIMITED ALL SPACE-2;runmisc;
1237639;run_misc.at:2554;UNSTRING DELIMITED POINTER;runmisc;
1238640;run_misc.at:2608;UNSTRING DELIMITER IN;runmisc;
1239641;run_misc.at:2650;UNSTRING with FUNCTION / literal;runmisc;
1240642;run_misc.at:2720;SORT: table sort;runmisc;
1241643;run_misc.at:2762;SORT: table sort (2);runmisc;
1242644;run_misc.at:2887;SORT: table sort (3);runmisc;
1243645;run_misc.at:2980;SORT: EBCDIC table sort;runmisc alphabet object-computer;
1244646;run_misc.at:3047;PIC ZZZ-, ZZZ+;runmisc editing;
1245647;run_misc.at:3100;PERFORM type OSVS;runmisc;
1246648;run_misc.at:3137;Sticky LINKAGE;runmisc;
1247649;run_misc.at:3184;COB_PRE_LOAD;runmisc;
1248650;run_misc.at:3210;COB_PRE_LOAD with entry points;runmisc;
1249651;run_misc.at:3281;Lookup ENTRY from main executable;runmisc;
1250652;run_misc.at:3322;COB_LOAD_CASE=UPPER test;runmisc;
1251653;run_misc.at:3348;ALLOCATE / FREE with BASED item (1);runmisc;
1252654;run_misc.at:3375;ALLOCATE / FREE with BASED item (2);runmisc;
1253655;run_misc.at:3422;ALLOCATE CHARACTERS INITIALIZED TO;runmisc;
1254656;run_misc.at:3463;Initialized value with defaultbyte;runmisc;
1255657;run_misc.at:3488;CALL with OMITTED parameter;runmisc;
1256658;run_misc.at:3527;CALL in from C, cob_call_params explicitly set;runmisc;
1257659;run_misc.at:3588;CALL in from C, cob_call_params unknown;runmisc;
1258660;run_misc.at:3646;CALL C with callback, PROCEDURE DIVISION EXTERN;runmisc extensions call-convention;
1259661;run_misc.at:3713;CALL C with callback, ENTRY-CONVENTION EXTERN;runmisc call-convention linkage;
1260662;run_misc.at:3864;CALL in from C with init missing / implicit;runmisc implicit-init;
1261663;run_misc.at:3916;CALL STATIC C from COBOL;runmisc;
1262664;run_misc.at:3972;ANY LENGTH (1);runmisc call;
1263665;run_misc.at:4015;ANY LENGTH (2);runmisc call;
1264666;run_misc.at:4059;ANY LENGTH (3);runmisc call;
1265667;run_misc.at:4102;ANY LENGTH (4);runmisc if call;
1266668;run_misc.at:4145;ANY LENGTH (5);runmisc;
1267669;run_misc.at:4170;access to BASED item without allocation;runmisc;
1268670;run_misc.at:4211;access to OPTIONAL LINKAGE item not passed;runmisc;
1269671;run_misc.at:4253;STOP RUN WITH NORMAL STATUS;runmisc;
1270672;run_misc.at:4271;STOP RUN WITH ERROR STATUS;runmisc;
1271673;run_misc.at:4289;SYMBOLIC clause;runmisc alphabet;
1272674;run_misc.at:4326;OCCURS clause with 1 entry;runmisc;
1273675;run_misc.at:4375;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;
1274676;run_misc.at:5011;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;
1275677;run_misc.at:5646;C/C++ reserved words/predefined identifiers;runmisc;
1276678;run_misc.at:6106;ON EXCEPTION clause of DISPLAY;runmisc exceptions screen;
1277679;run_misc.at:6131;EC-SCREEN-LINE-NUMBER and -STARTING-COLUMN;runmisc exceptions screen;
1278680;run_misc.at:6172;LINE/COLUMN 0 exceptions;line column runmisc exceptions extensions screen;
1279681;run_misc.at:6210;SET LAST EXCEPTION TO OFF;runmisc exceptions exception-status exception-location;
1280682;run_misc.at:6246;void PROCEDURE;runmisc;
1281683;run_misc.at:6275;Figurative constants to numeric field;numeric;
1282684;run_misc.at:6337;MF FIGURATIVE to NUMERIC;move;
1283685;run_misc.at:6472;CALL RETURNING;runmisc giving return-code;
1284686;run_misc.at:6511;void PROCEDURE, NOTHING return;runmisc procedure using returning omitted call giving;
1285687;run_misc.at:6546;READY TRACE / RESET TRACE;runmisc -ftrace -ftraceall -fsource-location call recursive return-code cob_physical_cancel cob_pre_load;
1286688;run_misc.at:6908;Trace feature with subroutine;trace;
1287689;run_misc.at:8977;stack and dump feature;;
1288690;run_misc.at:9700;Test dump feature (2);;
1289691;run_misc.at:9965;CALL with program prototypes;runmisc;
1290692;run_misc.at:10021;REDEFINES values on FILLER and INITIALIZE;runmisc initialize;
1291693;run_misc.at:10076;PICTURE with constant-name;runmisc;
1292694;run_misc.at:10104;Quote marks in comment paragraphs;runmisc;
1293695;run_misc.at:10130;Numeric MOVE with/without -fbinary-truncate;runmisc size;
1294696;run_misc.at:10190;Alphanumeric MOVE with truncation;misc fundamental size;
1295697;run_misc.at:10241;PROGRAM-ID / CALL literal/variable with spaces;call;
1296698;run_misc.at:10309;C-API Test (param based);call api;
1297699;run_misc.at:10544;C-API Test (field based);call api;
1298700;run_misc.at:10771;DEFAULT ROUNDED MODE;runmisc;
1299701;run_misc.at:10801;OCCURS INDEXED ASCENDING;occurs extension;
1300702;run_misc.at:10899;ZERO unsigned and negative binary subscript;runmisc;
1301703;run_misc.at:10963;Default Arithmetic (1);runmisc;
1302704;run_misc.at:11067;Default Arithmetic Test (2);runmisc;
1303705;run_misc.at:11118;OSVS Arithmetic (1);runmisc;
1304706;run_misc.at:11235;OSVS Arithmetic Test (2);runmisc;
1305707;run_misc.at:11292;SET CONSTANT directive;misc directives extensions;
1306708;run_misc.at:11395;DEFINE OVERRIDE;cdf directive;
1307709;run_misc.at:11461;DEFINE Defaults;cdf directive;
1308710;run_misc.at:11527;78 VALUE;constant misc;
1309711;run_misc.at:11595;01 CONSTANT;misc;
1310712;run_misc.at:11675;DISPLAY UPON;chaining printer pipe console syserr syspch syspunch cob_display_print_pipe cob_display_print_file cob_display_punch_file;
1311713;run_misc.at:11767;FLOAT-DECIMAL w/o SIZE ERROR;numeric runmisc float-decimal-16 float-decimal-34 display compute;
1312714;run_misc.at:11941;FLOAT-SHORT / FLOAT-LONG w/o SIZE ERROR;numeric runmisc comp-1 comp-2 display compute;
1313715;run_misc.at:12140;FLOAT-SHORT with SIZE ERROR;comp-1;
1314716;run_misc.at:12191;FLOAT-LONG with SIZE ERROR;comp-2;
1315717;run_misc.at:12248;EC-SIZE-ZERO-DIVIDE;misc fundamental exceptions divide compute exception-status;
1316718;run_misc.at:12291;EC-SIZE-OVERFLOW;misc fundamental exceptions;
1317719;run_misc.at:12322;Constant Expressions;runmisc condition expression;
1318720;run_misc.at:12408;ENTRY FOR GO TO / GO TO ENTRY;runmisc condition expression;
1319721;run_misc.at:12498;runtime checks within conditions;runmisc condition expression;
1320722;run_misc.at:12612;libcob version check;runmisc;
1321723;run_file.at:23;OPEN EXTEND and CLOSE, SEQUENTIAL;runfile empty close optional write read;
1322724;run_file.at:89;DELETE FILE, SEQUENTIAL;runfile file open i-o optional;
1323725;run_file.at:159;OUTPUT on SEQUENTIAL file to missing directory;runfile open assign;
1324726;run_file.at:195;OPEN EXTEND and CLOSE, INDEXED;runfile empty close optional write read;
1325727;run_file.at:267;DELETE FILE, INDEXED;runfile file open i-o optional;
1326728;run_file.at:340;OUTPUT on INDEXED file to missing directory;runfile open assign;
1327729;run_file.at:379;READ INTO data item AT-END sequence;runfile;
1328730;run_file.at:416;First READ on empty SEQUENTIAL INDEXED file;runfile;
1329731;run_file.at:456;READ NEXT without previous START;runfile write indexed;
1330732;run_file.at:534;REWRITE a RELATIVE file with RANDOM access;runfile;
1331733;run_file.at:601;File SORT, SEQUENTIAL;runfile using giving;
1332734;run_file.at:651;File SORT, SEQUENTIAL variable records;runfile;
1333735;run_file.at:733;File SORT, LINE SEQUENTIAL;runfile using giving;
1334736;run_file.at:792;LINAGE and LINAGE-COUNTER sample;runfile optional file status read write end-of-page line sequential configuration cob_current_date;
1335737;run_file.at:1078;File SORT, LINE SEQUENTIAL same file;runfile using giving;
1336738;run_file.at:1125;File SORT, LINE SEQUENTIAL variable records;runfile;
1337739;run_file.at:1189;File MERGE, LINE SEQUENTIAL variable records;runfile;
1338740;run_file.at:1280;SORT nonexistent file;runfile;
1339741;run_file.at:1315;SORT with INPUT/OUTPUT PROCEDUREs;runfile;
1340742;run_file.at:1405;SORT with key1 ASCENDING, key2 DESCENDING;runfile;
1341743;run_file.at:1472;ASSIGN DYNAMIC and EXTERNAL;extensions runfile;
1342744;run_file.at:1520;ASSIGN EXTERNAL parsing;extensions runfile;
1343745;run_file.at:1554;ASSIGN directive;extensions runfile;
1344746;run_file.at:1597;ASSIGNfilename expansion;extensions runfile;
1345747;run_file.at:1624;ASSIGN filename mapping;extensions runfile optional;
1346748;run_file.at:1796;ASSIGN with COB_FILE_PATH;extensions runfile;
1347749;run_file.at:1833;ASSIGN DYNAMIC with LOCAL-STORAGE item;runfile;
1348750;run_file.at:1870;ASSIGN DYNAMIC with LOCAL-STORAGE item and INITIAL prog;runfile;
1349751;run_file.at:1910;ASSIGN DYNAMIC with BASED data item;runfile status;
1350752;run_file.at:1996;ASSIGN DYNAMIC with data item in LINKAGE;runfile-control file status;
1351753;run_file.at:2168;ASSIGN DYNAMIC with empty data item;runfile status;
1352754;run_file.at:2208;ASSIGN DYNAMIC with unset implicit data item;runfile status;
1353755;run_file.at:2240;INDEXED file key-name;runfile split key;
1354756;run_file.at:2282;INDEXED file sparse/split keys;runfile split key sparse suppress;
1355757;run_file.at:2802;INDEXED file split keys WITH DUPLICATES;runfile key;
1356758;run_file.at:2960;INDEXED file variable length record;runfile optional suppress write start read;
1357759;run_file.at:3236;INDEXED sample;runfile optional file status read write duplicates start;
1358760;run_file.at:3639;WRITE + REWRITE FILE name;runfile;
1359761;run_file.at:3792;START RELATIVE (1);fundamental runfile delete file;
1360762;run_file.at:3841;START RELATIVE (2);fundamental runfile;
1361763;run_file.at:3917;START RELATIVE (3);runfile;
1362764;run_file.at:3993;READ on OPTIONAL missing RELATIVE / SEQUENTIAL;runfile;
1363765;run_file.at:4115;READ on OPTIONAL missing INDEXED file;runfile;
1364766;run_file.at:4165;EXTERNAL RELATIVE file;runfile;
1365767;run_file.at:4201;DECLARATIVES procedure referencing;runfile;
1366768;run_file.at:4241;DECLARATIVES procedure referencing (multiple);runfile;
1367769;run_file.at:4285;System routines for directories (1);extensions runfile cbl_create_dir cbl_change_dir cbl_delete_dir;
1368770;run_file.at:4327;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;
1369771;run_file.at:4424;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;
1370772;run_file.at:4698;System routine CBL_COPY_FILE;extensions runfile;
1371773;run_file.at:4733;Default file external name;runfile;
1372774;run_file.at:4807;SEQUENTIAL basic I/O;runfile;
1373775;run_file.at:4841;LINE SEQUENTIAL basic I/O;runfile;
1374776;run_file.at:4907;LINE SEQUENTIAL record truncation;runfile;
1375777;run_file.at:4954;SEQUENTIAL file I/O with variable records;runfile;
1376778;run_file.at:5029;LINE SEQUENTIAL file I/O with variable records;runfile;
1377779;run_file.at:5103;SEQUENTIAL file REWRITE;runfile;
1378780;run_file.at:5215;SEQUENTIAL file with LOCK MODE EXCLUSIVE;runfile;
1379781;run_file.at:5283;SEQUENTIAL file with OPEN WITH LOCK;runfile;
1380782;run_file.at:5349;SEQUENTIAL file with SHARING NO;runfile;
1381783;run_file.at:5417;SEQUENTIAL file with SHARING READ ONLY;runfile;
1382784;run_file.at:5490;SEQUENTIAL file with blocked lock;runfile;
1383785;run_file.at:5561;RELATIVE SEQUENTIAL basic I/O;runfile;
1384786;run_file.at:5595;RELATIVE RANDOM basic I/O;runfile;
1385787;run_file.at:5645;RELATIVE SEQUENTIAL with variable records;runfile;
1386788;run_file.at:5719;INDEXED SEQUENTIAL basic I/O;runfile;
1387789;run_file.at:5757;INDEXED SEQUENTIAL with variable records;runfile;
1388790;run_file.at:5839;INDEXED file with LOCK MODE EXCLUSIVE;runfile;
1389791;run_file.at:5916;INDEXED file with OPEN WITH LOCK;runfile;
1390792;run_file.at:5992;INDEXED file with SHARING NO;runfile;
1391793;run_file.at:6069;INDEXED file with SHARING READ ONLY;runfile;
1392794;run_file.at:6153;INDEXED file with blocked lock;runfile;
1393795;run_file.at:6233;INDEXED file with LOCK AUTOMATIC (1);runfile;
1394796;run_file.at:6322;INDEXED file with LOCK AUTOMATIC (2);runfile;
1395797;run_file.at:6412;INDEXED file with LOCK MANUAL;runfile;
1396798;run_file.at:6500;START INDEXED;runfile;
1397799;run_file.at:6579;INDEXED partial keys;runfile;
1398800;run_file.at:6726;INDEXED undeclared keys;runfile;
1399801;run_file.at:6897;READ INPUT pipe & WRITE OUTPUT pipe;runfile;
1400802;run_file.at:6995;EXTFH: using ISAM callback;runfile extfh;
1401803;run_file.at:7695;EXTFH: SEQUENTIAL files;runfile extfh;
1402804;run_file.at:8105;EXTFH: LINE SEQUENTIAL files, direct EXTFH;runfile;
1403805;run_file.at:8287;INDEXED File READ/DELETE/READ;runfile read delete;
1404806;run_file.at:9084;TURN EC-I-O;runfile directive;
1405807;run_reportwriter.at:23;Report Line Order;report file mapping;
1406808;run_reportwriter.at:120;REPORT COL PLUS;report runfile;
1407809;run_reportwriter.at:189;Report Overlapping Fields;report runfile;
1408810;run_reportwriter.at:258;EMPTY REPORT;report runfile;
1409811;run_reportwriter.at:327;PAGE LIMIT REPORT;report runfile;
1410812;run_reportwriter.at:389;PAGE LIMIT REPORT 2;report runfile;
1411813;run_reportwriter.at:461;Sample Customer Report;report runfile;
1412814;run_reportwriter.at:776;Sample Charge Report;report runfile;
1413815;run_reportwriter.at:1129;Sample Charge Report 2;report runfile;
1414816;run_reportwriter.at:1499;Sample Charge Report 3;report runfile;
1415817;run_reportwriter.at:1799;Sample Charge Report 4;report runfile;
1416818;run_reportwriter.at:2215;Sample Payroll Report;report runfile;
1417819;run_reportwriter.at:2900;Sample REPORT with RIGHT/CENTER;report runfile;
1418820;run_reportwriter.at:3068;STUDENT REPORT with INITIAL;report runfile;
1419821;run_reportwriter.at:3220;ORDER REPORT; Test substring;report runfile;
1420822;run_reportwriter.at:3568;Sample Control Break;report runfile;
1421823;run_reportwriter.at:3797;Sample Inventory Report;report runfile;
1422824;run_reportwriter.at:3990;Duplicate Detail Line;report runfile;
1423825;run_reportwriter.at:4118;Report with OCCURS;report runfile;
1424826;run_reportwriter.at:4223;Report CODE and LIMIT COLUMNS;report runfile dump occurs;
1425827;run_reportwriter.at:4444;Duplicate INITIATE;report runfile;
1426828;run_reportwriter.at:4511;Missing INITIATE and GENERATE;report runfile;
1427829;run_reportwriter.at:4571;Missing INITIATE and TERMINATE;report runfile;
1428830;run_reportwriter.at:4625;Next Group Next Page;report runfile;
1429831;run_reportwriter.at:8948;Report PRESENT AFTER;report runfile;
1430832;run_returncode.at:23;RETURN-CODE moving;returncode;
1431833;run_returncode.at:49;RETURN-CODE passing;returncode;
1432834;run_returncode.at:101;RETURN-CODE nested;returncode;
1433835;run_functions.at:24;FUNCTION ABS;functions;
1434836;run_functions.at:46;FUNCTION ACOS;functions;
1435837;run_functions.at:70;FUNCTION ANNUITY;functions;
1436838;run_functions.at:94;FUNCTION ASIN;functions;
1437839;run_functions.at:118;FUNCTION ATAN;functions;
1438840;run_functions.at:142;FUNCTION BYTE-LENGTH;functions length;
1439841;run_functions.at:212;FUNCTION CHAR;functions;
1440842;run_functions.at:250;FUNCTION COMBINED-DATETIME;functions;
1441843;run_functions.at:275;FUNCTION CONCAT / CONCATENATE;functions;
1442844;run_functions.at:322;FUNCTION CONCATENATE with reference modding;functions;
1443845;run_functions.at:350;FUNCTION CONTENT-LENGTH;functions length;
1444846;run_functions.at:384;FUNCTION CONTENT-OF;functions pointer literal based allocate free exception-status;
1445847;run_functions.at:459;FUNCTION as CALL parameter BY CONTENT;functions;
1446848;run_functions.at:495;FUNCTION COS;functions;
1447849;run_functions.at:519;FUNCTION CURRENCY-SYMBOL;functions;
1448850;run_functions.at:542;FUNCTION CURRENT-DATE;functions;
1449851;run_functions.at:613;FUNCTION DATE-OF-INTEGER;functions;
1450852;run_functions.at:638;FUNCTION DATE-TO-YYYYMMDD;functions;
1451853;run_functions.at:663;FUNCTION DAY-OF-INTEGER;functions;
1452854;run_functions.at:688;FUNCTION DAY-TO-YYYYDDD;functions;
1453855;run_functions.at:713;FUNCTION E;functions;
1454856;run_functions.at:737;FUNCTION EXCEPTION-FILE;functions exceptions;
1455857;run_functions.at:772;FUNCTION EXCEPTION-LOCATION;functions exceptions;
1456858;run_functions.at:811;FUNCTION EXCEPTION-STATEMENT;functions exceptions;
1457859;run_functions.at:846;FUNCTION EXCEPTION-STATUS;functions exceptions;
1458860;run_functions.at:881;FUNCTION EXP;functions;
1459861;run_functions.at:905;FUNCTION EXP10;functions;
1460862;run_functions.at:930;FUNCTION FACTORIAL;functions;
1461863;run_functions.at:955;FUNCTION FORMATTED-CURRENT-DATE;functions;
1462864;run_functions.at:983;FUNCTION FORMATTED-DATE;functions;
1463865;run_functions.at:1046;FUNCTION FORMATTED-DATE with ref modding;functions;
1464866;run_functions.at:1071;FUNCTION FORMATTED-DATETIME;functions;
1465867;run_functions.at:1128;FUNCTION FORMATTED-DATETIME with ref modding;functions;
1466868;run_functions.at:1154;FUNCTION FORMATTED-TIME;functions;
1467869;run_functions.at:1241;FUNCTION FORMATTED-TIME DP.COMMA;functions;
1468870;run_functions.at:1272;FUNCTION FORMATTED-TIME with ref modding;functions;
1469871;run_functions.at:1297;FUNCTION FRACTION-PART;functions;
1470872;run_functions.at:1328;FUNCTION HIGHEST-ALGEBRAIC;functions;
1471873;run_functions.at:1396;FUNCTION INTEGER;functions;
1472874;run_functions.at:1429;FUNCTION INTEGER-OF-DATE;functions;
1473875;run_functions.at:1454;FUNCTION INTEGER-OF-DAY;functions;
1474876;run_functions.at:1479;FUNCTION INTEGER-OF-FORMATTED-DATE;functions;
1475877;run_functions.at:1529;FUNCTION INTEGER-PART;functions;
1476878;run_functions.at:1555;FUNCTION LENGTH;functions;
1477879;run_functions.at:1623;FUNCTION LOCALE-COMPARE;functions;
1478880;run_functions.at:1653;FUNCTION LOCALE-DATE;functions;
1479881;run_functions.at:1679;FUNCTION LOCALE-TIME;functions;
1480882;run_functions.at:1705;FUNCTION LOCALE-TIME-FROM-SECONDS;functions;
1481883;run_functions.at:1731;FUNCTION LOG;functions;
1482884;run_functions.at:1755;FUNCTION LOG10;functions;
1483885;run_functions.at:1779;FUNCTION LOWER-CASE;functions;
1484886;run_functions.at:1807;FUNCTION LOWER-CASE with reference modding;functions;
1485887;run_functions.at:1833;FUNCTION LOWEST-ALGEBRAIC;functions;
1486888;run_functions.at:1886;FUNCTION MAX;functions;
1487889;run_functions.at:1908;FUNCTION MEAN;functions;
1488890;run_functions.at:1930;FUNCTION MEDIAN;functions;
1489891;run_functions.at:1952;FUNCTION MIDRANGE;functions;
1490892;run_functions.at:1974;FUNCTION MIN;functions;
1491893;run_functions.at:1996;FUNCTION MOD (valid);functions;
1492894;run_functions.at:2026;FUNCTION MOD (invalid);functions exceptions;
1493895;run_functions.at:2057;FUNCTION MODULE-CALLER-ID;functions;
1494896;run_functions.at:2091;FUNCTION MODULE-DATE;functions;
1495897;run_functions.at:2116;FUNCTION MODULE-FORMATTED-DATE;functions;
1496898;run_functions.at:2141;FUNCTION MODULE-ID;functions;
1497899;run_functions.at:2162;FUNCTION MODULE-PATH;functions;
1498900;run_functions.at:2187;FUNCTION MODULE-SOURCE;functions;
1499901;run_functions.at:2208;FUNCTION MODULE-TIME;functions;
1500902;run_functions.at:2233;FUNCTION MONETARY-DECIMAL-POINT;functions;
1501903;run_functions.at:2256;FUNCTION MONETARY-THOUSANDS-SEPARATOR;functions;
1502904;run_functions.at:2279;FUNCTION NUMERIC-DECIMAL-POINT;functions;
1503905;run_functions.at:2302;FUNCTION NUMERIC-THOUSANDS-SEPARATOR;functions;
1504906;run_functions.at:2325;FUNCTION NUMVAL;functions;
1505907;run_functions.at:2356;FUNCTION NUMVAL-C;functions;
1506908;run_functions.at:2387;FUNCTION NUMVAL-C DP.COMMA;functions;
1507909;run_functions.at:2417;FUNCTION NUMVAL-F;functions;
1508910;run_functions.at:2440;FUNCTION ORD;functions;
1509911;run_functions.at:2462;FUNCTION ORD-MAX;functions;
1510912;run_functions.at:2484;FUNCTION ORD-MIN;functions;
1511913;run_functions.at:2506;FUNCTION PI;functions;
1512914;run_functions.at:2530;FUNCTION PRESENT-VALUE;functions;
1513915;run_functions.at:2552;FUNCTION RANDOM;functions;
1514916;run_functions.at:2576;FUNCTION RANGE;functions;
1515917;run_functions.at:2600;FUNCTION REM (valid);functions;
1516918;run_functions.at:2623;FUNCTION REM (invalid);functions exceptions;
1517919;run_functions.at:2654;FUNCTION REVERSE;functions;
1518920;run_functions.at:2679;FUNCTION REVERSE with reference modding;functions;
1519921;run_functions.at:2704;FUNCTION SECONDS-FROM-FORMATTED-TIME;functions;
1520922;run_functions.at:2771;FUNCTION SECONDS-PAST-MIDNIGHT;functions;
1521923;run_functions.at:2795;FUNCTION SIGN;functions;
1522924;run_functions.at:2834;FUNCTION SIN;functions;
1523925;run_functions.at:2858;FUNCTION SQRT;functions;
1524926;run_functions.at:2882;FUNCTION STANDARD-DEVIATION;functions;
1525927;run_functions.at:2906;FUNCTION STORED-CHAR-LENGTH;functions;
1526928;run_functions.at:2932;FUNCTION SUBSTITUTE;functions;
1527929;run_functions.at:2961;FUNCTION SUBSTITUTE with reference modding;functions;
1528930;run_functions.at:2989;FUNCTION SUBSTITUTE-CASE;functions;
1529931;run_functions.at:3016;FUNCTION SUBSTITUTE-CASE with reference mod;functions;
1530932;run_functions.at:3044;FUNCTION SUM;functions;
1531933;run_functions.at:3068;FUNCTION TAN;functions;
1532934;run_functions.at:3092;FUNCTION TEST-DATE-YYYYMMDD;functions;
1533935;run_functions.at:3114;FUNCTION TEST-DAY-YYYYDDD;functions;
1534936;run_functions.at:3136;FUNCTION TEST-FORMATTED-DATETIME with dates;functions;
1535937;run_functions.at:3263;FUNCTION TEST-FORMATTED-DATETIME with times;functions;
1536938;run_functions.at:3344;FUNCTION TEST-FORMATTED-DATETIME with datetimes;functions;
1537939;run_functions.at:3397;FUNCTION TEST-FORMATTED-DATETIME DP.COMMA;functions;
1538940;run_functions.at:3438;FUNCTION TEST-NUMVAL;functions;
1539941;run_functions.at:3536;FUNCTION TEST-NUMVAL-C;functions;
1540942;run_functions.at:3634;FUNCTION TEST-NUMVAL-F;functions;
1541943;run_functions.at:3732;FUNCTION TRIM;functions;
1542944;run_functions.at:3758;FUNCTION TRIM with reference modding;functions;
1543945;run_functions.at:3784;FUNCTION TRIM zero length;functions;
1544946;run_functions.at:3811;FUNCTION UPPER-CASE;functions;
1545947;run_functions.at:3836;FUNCTION UPPER-CASE with reference modding;functions;
1546948;run_functions.at:3861;FUNCTION VARIANCE;functions;
1547949;run_functions.at:3885;FUNCTION WHEN-COMPILED;functions;
1548950;run_functions.at:3939;FUNCTION YEAR-TO-YYYY;functions;
1549951;run_functions.at:3963;Formatted funcs w/ invalid variable format;functions formatted-current-date formatted-date formatted-time formatted-datetime;
1550952;run_functions.at:4044;FORMATTED-(DATE)TIME with SYSTEM-OFFSET;functions formatted-time formatted-datetime extensions;
1551953;run_functions.at:4082;Intrinsics without FUNCTION keyword (1);functions;
1552954;run_functions.at:4103;Intrinsics without FUNCTION keyword (2);functions;
1553955;run_functions.at:4126;User-Defined FUNCTION with/without parameter;functions;
1554956;run_functions.at:4177;UDF in COMPUTE;functions;
1555957;run_functions.at:4220;UDF replacing intrinsic function;functions substitute;
1556958;run_functions.at:4263;UDF with recursion;functions local-storage;
1557959;run_extensions.at:25;CALL BY CONTENT binary and literal;extensions literals;
1558960;run_extensions.at:72;Numeric Boolean literals;extensions;
1559961;run_extensions.at:101;ACUCOBOL literals;extensions acu binary octal hexadecimal;
1560962;run_extensions.at:127;HP COBOL octal literals;extensions;
1561963;run_extensions.at:188;Hexadecimal numeric literals;extensions;
1562964;run_extensions.at:217;Semi-parenthesized condition;extensions;
1563965;run_extensions.at:237;ADDRESS OF;extensions;
1564966;run_extensions.at:287;LENGTH OF;extensions value renames;
1565967;run_extensions.at:451;SET TO SIZE OF;extensions acu length;
1566968;run_extensions.at:488;WHEN-COMPILED;extensions;
1567969;run_extensions.at:517;Complex OCCURS DEPENDING ON (1);extensions;
1568970;run_extensions.at:546;Complex OCCURS DEPENDING ON (2);extensions;
1569971;run_extensions.at:609;Complex OCCURS DEPENDING ON (3);extensions;
1570972;run_extensions.at:672;Complex OCCURS DEPENDING ON (4);extensions;
1571973;run_extensions.at:738;Complex OCCURS DEPENDING ON (5);extensions;
1572974;run_extensions.at:804;Complex OCCURS DEPENDING ON (6);extensions runsubscripts nested subscripts;
1573975;run_extensions.at:845;OCCURS UNBOUNDED (1);extensions runsubscripts subscripts;
1574976;run_extensions.at:906;OCCURS UNBOUNDED (2);extensions runsubscripts depending odo subscripts;
1575977;run_extensions.at:1060;INITIALIZE OCCURS UNBOUNDED;extensions runsubscripts subscripts refmod;
1576978;run_extensions.at:1134;INITIALIZE OCCURS ODOSLIDE;extensions runsubscripts subscripts;
1577979;run_extensions.at:1231;DEPENDING ON with ODOSLIDE;nested odo;
1578980;run_extensions.at:1446;DEPENDING ON with ODOSLIDE for IBM;occurs odo;
1579981;run_extensions.at:1551;INITIALIZE level 01;initialize;
1580982;run_extensions.at:1603;MOVE of non-integer to alphanumeric;extensions;
1581983;run_extensions.at:1693;CALL USING file-name;extensions;
1582984;run_extensions.at:1738;CALL unusual PROGRAM-ID.;extensions;
1583985;run_extensions.at:1802;CALL / GOBACK with LOCAL-STORAGE;extensions;
1584986;run_extensions.at:1852;CALL BY VALUE alphanumeric item;extensions;
1585987;run_extensions.at:1889;CALL BY VALUE numeric literal WITH SIZE;extensions;
1586988;run_extensions.at:1993;Case-sensitive PROGRAM-ID;extensions;
1587989;run_extensions.at:2018;Quoted PROGRAM-ID;extensions;
1588990;run_extensions.at:2041;PROGRAM-ID AS clause;extensions;
1589991;run_extensions.at:2064;NUMBER-OF-CALL-PARAMETERS;extensions;
1590992;run_extensions.at:2119;TALLY register;extensions;
1591993;run_extensions.at:2153;Redefining TALLY;extensions register;
1592994;run_extensions.at:2189;PROCEDURE DIVISION USING BY ...;extensions;
1593995;run_extensions.at:2242;PROCEDURE DIVISION CHAINING;extensions call initialize;
1594996;run_extensions.at:2365;STOP RUN RETURNING/GIVING;extensions;
1595997;run_extensions.at:2421;GOBACK/EXIT PROGRAM RETURNING/GIVING;extensions;
1596998;run_extensions.at:2471;ENTRY;extensions;
1597999;run_extensions.at:2517;LINE SEQUENTIAL write;extensions;
15981000;run_extensions.at:2563;LINE SEQUENTIAL read;extensions;
15991001;run_extensions.at:2630;ASSIGN to KEYBOARD/DISPLAY;extensions;
16001002;run_extensions.at:2688;SORT ASSIGN KEYBOARD to ASSIGN DISPLAY;extensions;
16011003;run_extensions.at:2750;Environment/Argument variable;extensions;
16021004;run_extensions.at:2796;78 Level (1);extensions;
16031005;run_extensions.at:2819;78 Level (2);extensions;
16041006;run_extensions.at:2845;78 Level (3);extensions;
16051007;run_extensions.at:2869;SWITCHES with non-standard names;runmisc extensions;
16061008;run_extensions.at:2982;Larger REDEFINES lengths;extensions;
16071009;run_extensions.at:3066;REDEFINES: non-referenced ambiguous item;extensions redefines;
16081010;run_extensions.at:3092;Obsolete 2002 keywords with COBOL2014;extensions;
16091011;run_extensions.at:3122;System routine with wrong number of parameters;extensions narg;
16101012;run_extensions.at:3165;System routine C\$NARG;extensions narg;
16111013;run_extensions.at:3242;System routine C\$PARAMSIZE;extensions;
16121014;run_extensions.at:3284;System routine C\$CALLEDBY;extensions;
16131015;run_extensions.at:3330;System routine C\$JUSTIFY;extensions;
16141016;run_extensions.at:3355;System routine C\$PRINTABLE;extensions;
16151017;run_extensions.at:3384;System routine C\$MAKEDIR;extensions;
16161018;run_extensions.at:3405;System routine C\$GETPID;extensions;
16171019;run_extensions.at:3430;System routine C\$TOUPPER;extensions;
16181020;run_extensions.at:3455;System routine C\$TOLOWER;extensions;
16191021;run_extensions.at:3480;System routine CBL_OR;extensions;
16201022;run_extensions.at:3507;System routine CBL_NOR;extensions;
16211023;run_extensions.at:3534;System routine CBL_AND;extensions;
16221024;run_extensions.at:3561;System routine CBL_XOR;extensions;
16231025;run_extensions.at:3588;System routine CBL_IMP;extensions;
16241026;run_extensions.at:3615;System routine CBL_NIMP;extensions;
16251027;run_extensions.at:3642;System routine CBL_NOT;extensions;
16261028;run_extensions.at:3668;System routine CBL_EQ;extensions;
16271029;run_extensions.at:3695;System routine CBL_GC_GETOPT;extensions;
16281030;run_extensions.at:4132;System routine CBL_GC_FORK;extensions c\$getpid;
16291031;run_extensions.at:4200;System routine CBL_GC_WAITPID;extensions cbl_gc_fork;
16301032;run_extensions.at:4252;System routine CBL_GC_HOSTED;extensions errno external based pointer;
16311033;run_extensions.at:4382;System routine SYSTEM, parameter handling;chaining trim;
16321034;run_extensions.at:4493;System routine CBL_ERROR_PROC (1);extensions exceptions error exception-location exception-statement exception-file exception-status;
16331035;run_extensions.at:4592;System routine CBL_ERROR_PROC (2);extensions exceptions error local-storage exception-location exception-statement exception-file exception-status;
16341036;run_extensions.at:4673;DISPLAY DIRECTIVE and \$DISPLAY;extensions;
16351037;run_extensions.at:4706;Conditional / define directives (1);extensions directive;
16361038;run_extensions.at:4731;Conditional / define directives (2);extensions directive;
16371039;run_extensions.at:4756;Conditional / define directives (3);extensions directive;
16381040;run_extensions.at:4784;Conditional / define directives (4);extensions directive;
16391041;run_extensions.at:4810;Variable format;extensions runmisc;
16401042;run_extensions.at:4832;Binary COMP-1 (1);extensions;
16411043;run_extensions.at:4863;Binary COMP-1 (2);extensions directives;
16421044;run_extensions.at:4899;EXHIBIT statement;extensions osvs;
16431045;run_ml.at:19;XML GENERATE general;extensions;
16441046;run_ml.at:127;XML GENERATE SUPPRESS;extensions;
16451047;run_ml.at:204;XML GENERATE exceptions;extensions xml-code;
16461048;run_ml.at:300;XML GENERATE record selection;extensions;
16471049;run_ml.at:344;XML GENERATE trimming;extensions;
16481050;run_ml.at:441;XML DPC-IN-DATA directive;extensions;
16491051;run_ml.at:472;XML dpc-in-data config option;extensions;
16501052;run_ml.at:516;JSON GENERATE general;extensions;
16511053;run_ml.at:573;JSON GENERATE SUPPRESS;extensions;
16521054;run_ml.at:612;JSON GENERATE exceptions;extensions json-code;
16531055;run_ml.at:677;JSON GENERATE record selection;extensions;
16541056;run_ml.at:721;JSON GENERATE trimming;extensions;
16551057;run_ml.at:821;JSON DPC-IN-DATA directive;extensions;
16561058;run_ml.at:852;JSON dpc-in-data config option;extensions;
16571059;data_binary.at:23;BINARY: 2-4-8 big-endian;binary;
16581060;data_binary.at:205;BINARY: 2-4-8 native;binary;
16591061;data_binary.at:393;BINARY: 1-2-4-8 big-endian;binary;
16601062;data_binary.at:575;BINARY: 1-2-4-8 native;binary;
16611063;data_binary.at:763;BINARY: 1--8 big-endian;binary;
16621064;data_binary.at:945;BINARY: 1--8 native;binary;
16631065;data_binary.at:1133;BINARY: full-print;binary;
16641066;data_binary.at:1185;BINARY: 64bit unsigned compare;binary;
16651067;data_binary.at:1210;BINARY: 64bit unsigned arithmetic notrunc;binary;
16661068;data_binary.at:1240;BINARY: 64bit signed negative constant range;binary;
16671069;data_binary.at:1261;COMP-4 Truncate;numeric;
16681070;data_binary.at:1322;COMP-4 No Truncate;numeric;
16691071;data_display.at:21;DISPLAY: Sign ASCII;display;
16701072;data_display.at:80;DISPLAY: Sign ASCII (2);display;
16711073;data_display.at:126;DISPLAY: Sign EBCDIC;display;
16721074;data_display.at:171;DISPLAY: unsigned;display;
16731075;data_packed.at:25;PACKED-DECIMAL dump;packed;
16741076;data_packed.at:161;PACKED-DECIMAL used with DISPLAY;packed;
16751077;data_packed.at:216;PACKED-DECIMAL used with MOVE;packed;
16761078;data_packed.at:273;PACKED-DECIMAL used with INITIALIZE;packed;
16771079;data_packed.at:312;PACKED-DECIMAL arithmetic;packed;
16781080;data_packed.at:348;PACKED-DECIMAL numeric test (1);packed;
16791081;data_packed.at:490;PACKED-DECIMAL numeric test (2);packed;
16801082;data_packed.at:606;COMP-6 used with DISPLAY;packed;
16811083;data_packed.at:643;COMP-6 used with MOVE;packed;
16821084;data_packed.at:690;COMP-6 arithmetic;packed;
16831085;data_packed.at:722;COMP-6 numeric test;packed;
16841086;data_pointer.at:21;POINTER: display;pointer 64bit;
1685"
1686# List of the all the test groups.
1687at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
1688
1689# at_fn_validate_ranges NAME...
1690# -----------------------------
1691# Validate and normalize the test group number contained in each variable
1692# NAME. Leading zeroes are treated as decimal.
1693at_fn_validate_ranges ()
1694{
1695  for at_grp
1696  do
1697    eval at_value=\$$at_grp
1698    if test $at_value -lt 1 || test $at_value -gt 1086; then
1699      $as_echo "invalid test group: $at_value" >&2
1700      exit 1
1701    fi
1702    case $at_value in
1703      0*) # We want to treat leading 0 as decimal, like expr and test, but
1704	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
1705	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
1706	  # expr fork, but it is not worth the effort to determine if the
1707	  # shell supports XSI when the user can just avoid leading 0.
1708	  eval $at_grp='`expr $at_value + 0`' ;;
1709    esac
1710  done
1711}
1712
1713at_prev=
1714for at_option
1715do
1716  # If the previous option needs an argument, assign it.
1717  if test -n "$at_prev"; then
1718    at_option=$at_prev=$at_option
1719    at_prev=
1720  fi
1721
1722  case $at_option in
1723  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
1724  *)    at_optarg= ;;
1725  esac
1726
1727  # Accept the important Cygnus configure options, so we can diagnose typos.
1728
1729  case $at_option in
1730    --help | -h )
1731	at_help_p=:
1732	;;
1733
1734    --list | -l )
1735	at_list_p=:
1736	;;
1737
1738    --version | -V )
1739	at_version_p=:
1740	;;
1741
1742    --clean | -c )
1743	at_clean=:
1744	;;
1745
1746    --color )
1747	at_color=always
1748	;;
1749    --color=* )
1750	case $at_optarg in
1751	no | never | none) at_color=never ;;
1752	auto | tty | if-tty) at_color=auto ;;
1753	always | yes | force) at_color=always ;;
1754	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
1755	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
1756	esac
1757	;;
1758
1759    --debug | -d )
1760	at_debug_p=:
1761	;;
1762
1763    --errexit | -e )
1764	at_debug_p=:
1765	at_errexit_p=:
1766	;;
1767
1768    --verbose | -v )
1769	at_verbose=; at_quiet=:
1770	;;
1771
1772    --trace | -x )
1773	at_traceon='set -x'
1774	at_trace_echo=echo
1775	at_check_filter_trace=at_fn_filter_trace
1776	;;
1777
1778    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
1779	at_fn_validate_ranges at_option
1780	as_fn_append at_groups "$at_option$as_nl"
1781	;;
1782
1783    # Ranges
1784    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
1785	at_range_start=`echo $at_option |tr -d X-`
1786	at_fn_validate_ranges at_range_start
1787	at_range=`$as_echo "$at_groups_all" | \
1788	  sed -ne '/^'$at_range_start'$/,$p'`
1789	as_fn_append at_groups "$at_range$as_nl"
1790	;;
1791
1792    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
1793	at_range_end=`echo $at_option |tr -d X-`
1794	at_fn_validate_ranges at_range_end
1795	at_range=`$as_echo "$at_groups_all" | \
1796	  sed -ne '1,/^'$at_range_end'$/p'`
1797	as_fn_append at_groups "$at_range$as_nl"
1798	;;
1799
1800    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
1801    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
1802    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
1803    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
1804    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
1805    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
1806	at_range_start=`expr $at_option : '\(.*\)-'`
1807	at_range_end=`expr $at_option : '.*-\(.*\)'`
1808	if test $at_range_start -gt $at_range_end; then
1809	  at_tmp=$at_range_end
1810	  at_range_end=$at_range_start
1811	  at_range_start=$at_tmp
1812	fi
1813	at_fn_validate_ranges at_range_start at_range_end
1814	at_range=`$as_echo "$at_groups_all" | \
1815	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
1816	as_fn_append at_groups "$at_range$as_nl"
1817	;;
1818
1819    # Directory selection.
1820    --directory | -C )
1821	at_prev=--directory
1822	;;
1823    --directory=* )
1824	at_change_dir=:
1825	at_dir=$at_optarg
1826	if test x- = "x$at_dir" ; then
1827	  at_dir=./-
1828	fi
1829	;;
1830
1831    # Parallel execution.
1832    --jobs | -j )
1833	at_jobs=0
1834	;;
1835    --jobs=* | -j[0-9]* )
1836	if test -n "$at_optarg"; then
1837	  at_jobs=$at_optarg
1838	else
1839	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
1840	fi
1841	case $at_jobs in *[!0-9]*)
1842	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
1843	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
1844	esac
1845	;;
1846
1847    # Keywords.
1848    --keywords | -k )
1849	at_prev=--keywords
1850	;;
1851    --keywords=* )
1852	at_groups_selected=$at_help_all
1853	at_save_IFS=$IFS
1854	IFS=,
1855	set X $at_optarg
1856	shift
1857	IFS=$at_save_IFS
1858	for at_keyword
1859	do
1860	  at_invert=
1861	  case $at_keyword in
1862	  '!'*)
1863	    at_invert="-v"
1864	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
1865	    ;;
1866	  esac
1867	  # It is on purpose that we match the test group titles too.
1868	  at_groups_selected=`$as_echo "$at_groups_selected" |
1869	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
1870	done
1871	# Smash the keywords.
1872	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
1873	as_fn_append at_groups "$at_groups_selected$as_nl"
1874	;;
1875    --recheck)
1876	at_recheck=:
1877	;;
1878
1879    *=*)
1880	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
1881	# Reject names that are not valid shell variable names.
1882	case $at_envvar in
1883	  '' | [0-9]* | *[!_$as_cr_alnum]* )
1884	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
1885	esac
1886	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
1887	# Export now, but save eval for later and for debug scripts.
1888	export $at_envvar
1889	as_fn_append at_debug_args " $at_envvar='$at_value'"
1890	;;
1891
1892     *) $as_echo "$as_me: invalid option: $at_option" >&2
1893	$as_echo "Try \`$0 --help' for more information." >&2
1894	exit 1
1895	;;
1896  esac
1897done
1898
1899# Verify our last option didn't require an argument
1900if test -n "$at_prev"; then :
1901  as_fn_error $? "\`$at_prev' requires an argument"
1902fi
1903
1904# The file containing the suite.
1905at_suite_log=$at_dir/$as_me.log
1906
1907# Selected test groups.
1908if test -z "$at_groups$at_recheck"; then
1909  at_groups=$at_groups_all
1910else
1911  if test -n "$at_recheck" && test -r "$at_suite_log"; then
1912    at_oldfails=`sed -n '
1913      /^Failed tests:$/,/^Skipped tests:$/{
1914	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
1915      }
1916      /^Unexpected passes:$/,/^## Detailed failed tests/{
1917	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
1918      }
1919      /^## Detailed failed tests/q
1920      ' "$at_suite_log"`
1921    as_fn_append at_groups "$at_oldfails$as_nl"
1922  fi
1923  # Sort the tests, removing duplicates.
1924  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
1925fi
1926
1927if test x"$at_color" = xalways \
1928   || { test x"$at_color" = xauto && test -t 1; }; then
1929  at_red=`printf '\033[0;31m'`
1930  at_grn=`printf '\033[0;32m'`
1931  at_lgn=`printf '\033[1;32m'`
1932  at_blu=`printf '\033[1;34m'`
1933  at_std=`printf '\033[m'`
1934else
1935  at_red= at_grn= at_lgn= at_blu= at_std=
1936fi
1937
1938# Help message.
1939if $at_help_p; then
1940  cat <<_ATEOF || at_write_fail=1
1941Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
1942
1943Run all the tests, or the selected TESTS, given by numeric ranges, and
1944save a detailed log file.  Upon failure, create debugging scripts.
1945
1946Do not change environment variables directly.  Instead, set them via
1947command line arguments.  Set \`AUTOTEST_PATH' to select the executables
1948to exercise.  Each relative directory is expanded as build and source
1949directories relative to the top level of this distribution.
1950E.g., from within the build directory /tmp/foo-1.0, invoking this:
1951
1952  $ $0 AUTOTEST_PATH=bin
1953
1954is equivalent to the following, assuming the source directory is /src/foo-1.0:
1955
1956  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
1957_ATEOF
1958cat <<_ATEOF || at_write_fail=1
1959
1960Operation modes:
1961  -h, --help     print the help message, then exit
1962  -V, --version  print version number, then exit
1963  -c, --clean    remove all the files this test suite might create and exit
1964  -l, --list     describes all the tests, or the selected TESTS
1965_ATEOF
1966cat <<_ATEOF || at_write_fail=1
1967
1968Execution tuning:
1969  -C, --directory=DIR
1970                 change to directory DIR before starting
1971      --color[=never|auto|always]
1972                 disable colored test results, or enable even without terminal
1973  -j, --jobs[=N]
1974                 Allow N jobs at once; infinite jobs with no arg (default 1)
1975  -k, --keywords=KEYWORDS
1976                 select the tests matching all the comma-separated KEYWORDS
1977                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
1978      --recheck  select all tests that failed or passed unexpectedly last time
1979  -e, --errexit  abort as soon as a test fails; implies --debug
1980  -v, --verbose  force more detailed output
1981                 default for debugging scripts
1982  -d, --debug    inhibit clean up and top-level logging
1983                 default for debugging scripts
1984  -x, --trace    enable tests shell tracing
1985_ATEOF
1986cat <<_ATEOF || at_write_fail=1
1987
1988Report bugs to <bug-gnucobol@gnu.org>.
1989GnuCOBOL home page: <https://www.gnu.org/software/gnucobol/>.
1990_ATEOF
1991  exit $at_write_fail
1992fi
1993
1994# List of tests.
1995if $at_list_p; then
1996  cat <<_ATEOF || at_write_fail=1
1997GnuCOBOL 3.1.2 test suite: GnuCOBOL Tests test groups:
1998
1999 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
2000      KEYWORDS
2001
2002_ATEOF
2003  # Pass an empty line as separator between selected groups and help.
2004  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
2005    awk 'NF == 1 && FS != ";" {
2006	   selected[$ 1] = 1
2007	   next
2008	 }
2009	 /^$/ { FS = ";" }
2010	 NF > 0 {
2011	   if (selected[$ 1]) {
2012	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
2013	     if ($ 4) {
2014	       lmax = 79
2015	       indent = "     "
2016	       line = indent
2017	       len = length (line)
2018	       n = split ($ 4, a, " ")
2019	       for (i = 1; i <= n; i++) {
2020		 l = length (a[i]) + 1
2021		 if (i > 1 && len + l > lmax) {
2022		   print line
2023		   line = indent " " a[i]
2024		   len = length (line)
2025		 } else {
2026		   line = line " " a[i]
2027		   len += l
2028		 }
2029	       }
2030	       if (n)
2031		 print line
2032	     }
2033	   }
2034	 }' || at_write_fail=1
2035  exit $at_write_fail
2036fi
2037if $at_version_p; then
2038  $as_echo "$as_me (GnuCOBOL 3.1.2)" &&
2039  cat <<\_ATEOF || at_write_fail=1
2040
2041Test cases Copyright (C) 2020 Free Software Foundation, Inc.
2042
2043Written by Keisuke Nishida, Roger While, Simon Sobisch, Edward Hart,
2044Ron Norman, Brian Tiffin, Dave Pitts
2045
2046Copyright (C) 2012 Free Software Foundation, Inc.
2047This test suite is free software; the Free Software Foundation gives
2048unlimited permission to copy, distribute and modify it.
2049_ATEOF
2050  exit $at_write_fail
2051fi
2052
2053# Should we print banners?  Yes if more than one test is run.
2054case $at_groups in #(
2055  *$as_nl* )
2056      at_print_banners=: ;; #(
2057  * ) at_print_banners=false ;;
2058esac
2059# Text for banner N, set to a single space once printed.
2060# Banner 1. testsuite.at:32
2061# Category starts at test group 1.
2062at_banner_text_1="General tests of used binaries"
2063# Banner 2. testsuite.at:37
2064# Category starts at test group 46.
2065at_banner_text_2="Syntax tests"
2066# Banner 3. testsuite.at:56
2067# Category starts at test group 412.
2068at_banner_text_3="Listing tests"
2069# Banner 4. testsuite.at:61
2070# Category starts at test group 442.
2071at_banner_text_4="Run tests"
2072# Banner 5. testsuite.at:77
2073# Category starts at test group 1059.
2074at_banner_text_5="Data Representation"
2075
2076# Take any -C into account.
2077if $at_change_dir ; then
2078  test x != "x$at_dir" && cd "$at_dir" \
2079    || as_fn_error $? "unable to change directory"
2080  at_dir=`pwd`
2081fi
2082
2083# Load the config files for any default variable assignments.
2084for at_file in atconfig atlocal
2085do
2086  test -r $at_file || continue
2087  . ./$at_file || as_fn_error $? "invalid content: $at_file"
2088done
2089
2090# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
2091: "${at_top_build_prefix=$at_top_builddir}"
2092
2093# Perform any assignments requested during argument parsing.
2094eval "$at_debug_args"
2095
2096# atconfig delivers names relative to the directory the test suite is
2097# in, but the groups themselves are run in testsuite-dir/group-dir.
2098if test -n "$at_top_srcdir"; then
2099  builddir=../..
2100  for at_dir_var in srcdir top_srcdir top_build_prefix
2101  do
2102    eval at_val=\$at_$at_dir_var
2103    case $at_val in
2104      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
2105      *) at_prefix=../../ ;;
2106    esac
2107    eval "$at_dir_var=\$at_prefix\$at_val"
2108  done
2109fi
2110
2111## -------------------- ##
2112## Directory structure. ##
2113## -------------------- ##
2114
2115# This is the set of directories and files used by this script
2116# (non-literals are capitalized):
2117#
2118# TESTSUITE         - the testsuite
2119# TESTSUITE.log     - summarizes the complete testsuite run
2120# TESTSUITE.dir/    - created during a run, remains after -d or failed test
2121# + at-groups/      - during a run: status of all groups in run
2122# | + NNN/          - during a run: meta-data about test group NNN
2123# | | + check-line  - location (source file and line) of current AT_CHECK
2124# | | + status      - exit status of current AT_CHECK
2125# | | + stdout      - stdout of current AT_CHECK
2126# | | + stder1      - stderr, including trace
2127# | | + stderr      - stderr, with trace filtered out
2128# | | + test-source - portion of testsuite that defines group
2129# | | + times       - timestamps for computing duration
2130# | | + pass        - created if group passed
2131# | | + xpass       - created if group xpassed
2132# | | + fail        - created if group failed
2133# | | + xfail       - created if group xfailed
2134# | | + skip        - created if group skipped
2135# + at-stop         - during a run: end the run if this file exists
2136# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
2137# + 0..NNN/         - created for each group NNN, remains after -d or failed test
2138# | + TESTSUITE.log - summarizes the group results
2139# | + ...           - files created during the group
2140
2141# The directory the whole suite works in.
2142# Should be absolute to let the user `cd' at will.
2143at_suite_dir=$at_dir/$as_me.dir
2144# The file containing the suite ($at_dir might have changed since earlier).
2145at_suite_log=$at_dir/$as_me.log
2146# The directory containing helper files per test group.
2147at_helper_dir=$at_suite_dir/at-groups
2148# Stop file: if it exists, do not start new jobs.
2149at_stop_file=$at_suite_dir/at-stop
2150# The fifo used for the job dispatcher.
2151at_job_fifo=$at_suite_dir/at-job-fifo
2152
2153if $at_clean; then
2154  test -d "$at_suite_dir" &&
2155    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
2156  rm -f -r "$at_suite_dir" "$at_suite_log"
2157  exit $?
2158fi
2159
2160# Don't take risks: use only absolute directories in PATH.
2161#
2162# For stand-alone test suites (ie. atconfig was not found),
2163# AUTOTEST_PATH is relative to `.'.
2164#
2165# For embedded test suites, AUTOTEST_PATH is relative to the top level
2166# of the package.  Then expand it into build/src parts, since users
2167# may create executables in both places.
2168AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
2169at_path=
2170as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2171for as_dir in $AUTOTEST_PATH $PATH
2172do
2173  IFS=$as_save_IFS
2174  test -z "$as_dir" && as_dir=.
2175    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
2176case $as_dir in
2177  [\\/]* | ?:[\\/]* )
2178    as_fn_append at_path "$as_dir"
2179    ;;
2180  * )
2181    if test -z "$at_top_build_prefix"; then
2182      # Stand-alone test suite.
2183      as_fn_append at_path "$as_dir"
2184    else
2185      # Embedded test suite.
2186      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
2187      as_fn_append at_path "$at_top_srcdir/$as_dir"
2188    fi
2189    ;;
2190esac
2191  done
2192IFS=$as_save_IFS
2193
2194
2195# Now build and simplify PATH.
2196#
2197# There might be directories that don't exist, but don't redirect
2198# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
2199at_new_path=
2200as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2201for as_dir in $at_path
2202do
2203  IFS=$as_save_IFS
2204  test -z "$as_dir" && as_dir=.
2205    test -d "$as_dir" || continue
2206case $as_dir in
2207  [\\/]* | ?:[\\/]* ) ;;
2208  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
2209esac
2210case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
2211  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
2212  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
2213  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
2214esac
2215  done
2216IFS=$as_save_IFS
2217
2218PATH=$at_new_path
2219export PATH
2220
2221# Setting up the FDs.
2222
2223
2224
2225# 5 is the log file.  Not to be overwritten if `-d'.
2226if $at_debug_p; then
2227  at_suite_log=/dev/null
2228else
2229  : >"$at_suite_log"
2230fi
2231exec 5>>"$at_suite_log"
2232
2233# Banners and logs.
2234$as_echo "## ------------------------------------------ ##
2235## GnuCOBOL 3.1.2 test suite: GnuCOBOL Tests. ##
2236## ------------------------------------------ ##"
2237{
2238  $as_echo "## ------------------------------------------ ##
2239## GnuCOBOL 3.1.2 test suite: GnuCOBOL Tests. ##
2240## ------------------------------------------ ##"
2241  echo
2242
2243  $as_echo "$as_me: command line was:"
2244  $as_echo "  \$ $0 $at_cli_args"
2245  echo
2246
2247  # If ChangeLog exists, list a few lines in case it might help determining
2248  # the exact version.
2249  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
2250    $as_echo "## ---------- ##
2251## ChangeLog. ##
2252## ---------- ##"
2253    echo
2254    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
2255    echo
2256  fi
2257
2258  {
2259cat <<_ASUNAME
2260## --------- ##
2261## Platform. ##
2262## --------- ##
2263
2264hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2265uname -m = `(uname -m) 2>/dev/null || echo unknown`
2266uname -r = `(uname -r) 2>/dev/null || echo unknown`
2267uname -s = `(uname -s) 2>/dev/null || echo unknown`
2268uname -v = `(uname -v) 2>/dev/null || echo unknown`
2269
2270/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
2271/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
2272
2273/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
2274/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
2275/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
2276/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
2277/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
2278/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
2279/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
2280
2281_ASUNAME
2282
2283as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2284for as_dir in $PATH
2285do
2286  IFS=$as_save_IFS
2287  test -z "$as_dir" && as_dir=.
2288    $as_echo "PATH: $as_dir"
2289  done
2290IFS=$as_save_IFS
2291
2292}
2293  echo
2294
2295  # Contents of the config files.
2296  for at_file in atconfig atlocal
2297  do
2298    test -r $at_file || continue
2299    $as_echo "$as_me: $at_file:"
2300    sed 's/^/| /' $at_file
2301    echo
2302  done
2303} >&5
2304
2305
2306## ------------------------- ##
2307## Autotest shell functions. ##
2308## ------------------------- ##
2309
2310# at_fn_banner NUMBER
2311# -------------------
2312# Output banner NUMBER, provided the testsuite is running multiple groups and
2313# this particular banner has not yet been printed.
2314at_fn_banner ()
2315{
2316  $at_print_banners || return 0
2317  eval at_banner_text=\$at_banner_text_$1
2318  test "x$at_banner_text" = "x " && return 0
2319  eval "at_banner_text_$1=\" \""
2320  if test -z "$at_banner_text"; then
2321    $at_first || echo
2322  else
2323    $as_echo "$as_nl$at_banner_text$as_nl"
2324  fi
2325} # at_fn_banner
2326
2327# at_fn_check_prepare_notrace REASON LINE
2328# ---------------------------------------
2329# Perform AT_CHECK preparations for the command at LINE for an untraceable
2330# command; REASON is the reason for disabling tracing.
2331at_fn_check_prepare_notrace ()
2332{
2333  $at_trace_echo "Not enabling shell tracing (command contains $1)"
2334  $as_echo "$2" >"$at_check_line_file"
2335  at_check_trace=: at_check_filter=:
2336  : >"$at_stdout"; : >"$at_stderr"
2337}
2338
2339# at_fn_check_prepare_trace LINE
2340# ------------------------------
2341# Perform AT_CHECK preparations for the command at LINE for a traceable
2342# command.
2343at_fn_check_prepare_trace ()
2344{
2345  $as_echo "$1" >"$at_check_line_file"
2346  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
2347  : >"$at_stdout"; : >"$at_stderr"
2348}
2349
2350# at_fn_check_prepare_dynamic COMMAND LINE
2351# ----------------------------------------
2352# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
2353# preparation function.
2354at_fn_check_prepare_dynamic ()
2355{
2356  case $1 in
2357    *$as_nl*)
2358      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
2359    *)
2360      at_fn_check_prepare_trace "$2" ;;
2361  esac
2362}
2363
2364# at_fn_filter_trace
2365# ------------------
2366# Remove the lines in the file "$at_stderr" generated by "set -x" and print
2367# them to stderr.
2368at_fn_filter_trace ()
2369{
2370  mv "$at_stderr" "$at_stder1"
2371  grep '^ *+' "$at_stder1" >&2
2372  grep -v '^ *+' "$at_stder1" >"$at_stderr"
2373}
2374
2375# at_fn_log_failure FILE-LIST
2376# ---------------------------
2377# Copy the files in the list on stdout with a "> " prefix, and exit the shell
2378# with a failure exit code.
2379at_fn_log_failure ()
2380{
2381  for file
2382    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
2383  echo 1 > "$at_status_file"
2384  exit 1
2385}
2386
2387# at_fn_check_skip EXIT-CODE LINE
2388# -------------------------------
2389# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
2390# the test group subshell with that same exit code. Use LINE in any report
2391# about test failure.
2392at_fn_check_skip ()
2393{
2394  case $1 in
2395    99) echo 99 > "$at_status_file"; at_failed=:
2396	$as_echo "$2: hard failure"; exit 99;;
2397    77) echo 77 > "$at_status_file"; exit 77;;
2398  esac
2399}
2400
2401# at_fn_check_status EXPECTED EXIT-CODE LINE
2402# ------------------------------------------
2403# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
2404# Otherwise, if it is 77 or 99, exit the test group subshell with that same
2405# exit code; if it is anything else print an error message referring to LINE,
2406# and fail the test.
2407at_fn_check_status ()
2408{
2409  case $2 in
2410    $1 ) ;;
2411    77) echo 77 > "$at_status_file"; exit 77;;
2412    99) echo 99 > "$at_status_file"; at_failed=:
2413	$as_echo "$3: hard failure"; exit 99;;
2414    *) $as_echo "$3: exit code was $2, expected $1"
2415      at_failed=:;;
2416  esac
2417}
2418
2419# at_fn_diff_devnull FILE
2420# -----------------------
2421# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
2422# invocations.
2423at_fn_diff_devnull ()
2424{
2425  test -s "$1" || return 0
2426  $at_diff "$at_devnull" "$1"
2427}
2428
2429# at_fn_test NUMBER
2430# -----------------
2431# Parse out test NUMBER from the tail of this file.
2432at_fn_test ()
2433{
2434  eval at_sed=\$at_sed$1
2435  sed "$at_sed" "$at_myself" > "$at_test_source"
2436}
2437
2438# at_fn_create_debugging_script
2439# -----------------------------
2440# Create the debugging script $at_group_dir/run which will reproduce the
2441# current test group.
2442at_fn_create_debugging_script ()
2443{
2444  {
2445    echo "#! /bin/sh" &&
2446    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
2447    $as_echo "cd '$at_dir'" &&
2448    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
2449    echo 'exit 1'
2450  } >"$at_group_dir/run" &&
2451  chmod +x "$at_group_dir/run"
2452}
2453
2454## -------------------------------- ##
2455## End of autotest shell functions. ##
2456## -------------------------------- ##
2457{
2458  $as_echo "## ---------------- ##
2459## Tested programs. ##
2460## ---------------- ##"
2461  echo
2462} >&5
2463
2464# Report what programs are being tested.
2465for at_program in : $at_tested
2466do
2467  test "$at_program" = : && continue
2468  case $at_program in
2469    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
2470    * )
2471    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2472for as_dir in $PATH
2473do
2474  IFS=$as_save_IFS
2475  test -z "$as_dir" && as_dir=.
2476    test -f "$as_dir/$at_program" && break
2477  done
2478IFS=$as_save_IFS
2479
2480    at_program_=$as_dir/$at_program ;;
2481  esac
2482  if test -f "$at_program_"; then
2483    {
2484      $as_echo "$at_srcdir/testsuite.at:26: $at_program_ --version"
2485      "$at_program_" --version </dev/null
2486      echo
2487    } >&5 2>&1
2488  else
2489    as_fn_error $? "cannot find $at_program" "$LINENO" 5
2490  fi
2491done
2492
2493{
2494  $as_echo "## ------------------ ##
2495## Running the tests. ##
2496## ------------------ ##"
2497} >&5
2498
2499at_start_date=`date`
2500at_start_time=`date +%s 2>/dev/null`
2501$as_echo "$as_me: starting at: $at_start_date" >&5
2502
2503# Create the master directory if it doesn't already exist.
2504as_dir="$at_suite_dir"; as_fn_mkdir_p ||
2505  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
2506
2507# Can we diff with `/dev/null'?  DU 5.0 refuses.
2508if diff /dev/null /dev/null >/dev/null 2>&1; then
2509  at_devnull=/dev/null
2510else
2511  at_devnull=$at_suite_dir/devnull
2512  >"$at_devnull"
2513fi
2514
2515# Use `diff -u' when possible.
2516if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
2517then
2518  at_diff='diff -u'
2519else
2520  at_diff=diff
2521fi
2522
2523# Get the last needed group.
2524for at_group in : $at_groups; do :; done
2525
2526# Extract the start and end lines of each test group at the tail
2527# of this file
2528awk '
2529BEGIN { FS="" }
2530/^#AT_START_/ {
2531  start = NR
2532}
2533/^#AT_STOP_/ {
2534  test = substr ($ 0, 10)
2535  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
2536  if (test == "'"$at_group"'") exit
2537}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
2538. "$at_suite_dir/at-source-lines" ||
2539  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
2540rm -f "$at_suite_dir/at-source-lines"
2541
2542# Set number of jobs for `-j'; avoid more jobs than test groups.
2543set X $at_groups; shift; at_max_jobs=$#
2544if test $at_max_jobs -eq 0; then
2545  at_jobs=1
2546fi
2547if test $at_jobs -ne 1 &&
2548   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
2549  at_jobs=$at_max_jobs
2550fi
2551
2552# If parallel mode, don't output banners, don't split summary lines.
2553if test $at_jobs -ne 1; then
2554  at_print_banners=false
2555  at_quiet=:
2556fi
2557
2558# Set up helper dirs.
2559rm -rf "$at_helper_dir" &&
2560mkdir "$at_helper_dir" &&
2561cd "$at_helper_dir" &&
2562{ test -z "$at_groups" || mkdir $at_groups; } ||
2563as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
2564
2565# Functions for running a test group.  We leave the actual
2566# test group execution outside of a shell function in order
2567# to avoid hitting zsh 4.x exit status bugs.
2568
2569# at_fn_group_prepare
2570# -------------------
2571# Prepare for running a test group.
2572at_fn_group_prepare ()
2573{
2574  # The directory for additional per-group helper files.
2575  at_job_dir=$at_helper_dir/$at_group
2576  # The file containing the location of the last AT_CHECK.
2577  at_check_line_file=$at_job_dir/check-line
2578  # The file containing the exit status of the last command.
2579  at_status_file=$at_job_dir/status
2580  # The files containing the output of the tested commands.
2581  at_stdout=$at_job_dir/stdout
2582  at_stder1=$at_job_dir/stder1
2583  at_stderr=$at_job_dir/stderr
2584  # The file containing the code for a test group.
2585  at_test_source=$at_job_dir/test-source
2586  # The file containing dates.
2587  at_times_file=$at_job_dir/times
2588
2589  # Be sure to come back to the top test directory.
2590  cd "$at_suite_dir"
2591
2592  # Clearly separate the test groups when verbose.
2593  $at_first || $at_verbose echo
2594
2595  at_group_normalized=$at_group
2596
2597  eval 'while :; do
2598    case $at_group_normalized in #(
2599    '"$at_format"'*) break;;
2600    esac
2601    at_group_normalized=0$at_group_normalized
2602  done'
2603
2604
2605  # Create a fresh directory for the next test group, and enter.
2606  # If one already exists, the user may have invoked ./run from
2607  # within that directory; we remove the contents, but not the
2608  # directory itself, so that we aren't pulling the rug out from
2609  # under the shell's notion of the current directory.
2610  at_group_dir=$at_suite_dir/$at_group_normalized
2611  at_group_log=$at_group_dir/$as_me.log
2612  if test -d "$at_group_dir"; then
2613  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
2614  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
2615fi ||
2616    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
2617$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
2618  # Be tolerant if the above `rm' was not able to remove the directory.
2619  as_dir="$at_group_dir"; as_fn_mkdir_p
2620
2621  echo 0 > "$at_status_file"
2622
2623  # In verbose mode, append to the log file *and* show on
2624  # the standard output; in quiet mode only write to the log.
2625  if test -z "$at_verbose"; then
2626    at_tee_pipe='tee -a "$at_group_log"'
2627  else
2628    at_tee_pipe='cat >> "$at_group_log"'
2629  fi
2630}
2631
2632# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
2633# -------------------------------------------------
2634# Declare the test group ORDINAL, located at LINE with group description DESC,
2635# and residing under BANNER. Use PAD to align the status column.
2636at_fn_group_banner ()
2637{
2638  at_setup_line="$2"
2639  test -n "$5" && at_fn_banner $5
2640  at_desc="$3"
2641  case $1 in
2642    [0-9])      at_desc_line="  $1: ";;
2643    [0-9][0-9]) at_desc_line=" $1: " ;;
2644    *)          at_desc_line="$1: "  ;;
2645  esac
2646  as_fn_append at_desc_line "$3$4"
2647  $at_quiet $as_echo_n "$at_desc_line"
2648  echo "#                             -*- compilation -*-" >> "$at_group_log"
2649}
2650
2651# at_fn_group_postprocess
2652# -----------------------
2653# Perform cleanup after running a test group.
2654at_fn_group_postprocess ()
2655{
2656  # Be sure to come back to the suite directory, in particular
2657  # since below we might `rm' the group directory we are in currently.
2658  cd "$at_suite_dir"
2659
2660  if test ! -f "$at_check_line_file"; then
2661    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
2662      A failure happened in a test group before any test could be
2663      run. This means that test suite is improperly designed.  Please
2664      report this failure to <bug-gnucobol@gnu.org>.
2665_ATEOF
2666    $as_echo "$at_setup_line" >"$at_check_line_file"
2667    at_status=99
2668  fi
2669  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
2670  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
2671  case $at_xfail:$at_status in
2672    yes:0)
2673	at_msg="UNEXPECTED PASS"
2674	at_res=xpass
2675	at_errexit=$at_errexit_p
2676	at_color=$at_red
2677	;;
2678    no:0)
2679	at_msg="ok"
2680	at_res=pass
2681	at_errexit=false
2682	at_color=$at_grn
2683	;;
2684    *:77)
2685	at_msg='skipped ('`cat "$at_check_line_file"`')'
2686	at_res=skip
2687	at_errexit=false
2688	at_color=$at_blu
2689	;;
2690    no:* | *:99)
2691	at_msg='FAILED ('`cat "$at_check_line_file"`')'
2692	at_res=fail
2693	at_errexit=$at_errexit_p
2694	at_color=$at_red
2695	;;
2696    yes:*)
2697	at_msg='expected failure ('`cat "$at_check_line_file"`')'
2698	at_res=xfail
2699	at_errexit=false
2700	at_color=$at_lgn
2701	;;
2702  esac
2703  echo "$at_res" > "$at_job_dir/$at_res"
2704  # In parallel mode, output the summary line only afterwards.
2705  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
2706    $as_echo "$at_desc_line $at_color$at_msg$at_std"
2707  else
2708    # Make sure there is a separator even with long titles.
2709    $as_echo " $at_color$at_msg$at_std"
2710  fi
2711  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
2712  case $at_status in
2713    0|77)
2714      # $at_times_file is only available if the group succeeded.
2715      # We're not including the group log, so the success message
2716      # is written in the global log separately.  But we also
2717      # write to the group log in case they're using -d.
2718      if test -f "$at_times_file"; then
2719	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
2720	rm -f "$at_times_file"
2721      fi
2722      $as_echo "$at_log_msg" >> "$at_group_log"
2723      $as_echo "$at_log_msg" >&5
2724
2725      # Cleanup the group directory, unless the user wants the files
2726      # or the success was unexpected.
2727      if $at_debug_p || test $at_res = xpass; then
2728	at_fn_create_debugging_script
2729	if test $at_res = xpass && $at_errexit; then
2730	  echo stop > "$at_stop_file"
2731	fi
2732      else
2733	if test -d "$at_group_dir"; then
2734	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
2735	  rm -fr "$at_group_dir"
2736	fi
2737	rm -f "$at_test_source"
2738      fi
2739      ;;
2740    *)
2741      # Upon failure, include the log into the testsuite's global
2742      # log.  The failure message is written in the group log.  It
2743      # is later included in the global log.
2744      $as_echo "$at_log_msg" >> "$at_group_log"
2745
2746      # Upon failure, keep the group directory for autopsy, and create
2747      # the debugging script.  With -e, do not start any further tests.
2748      at_fn_create_debugging_script
2749      if $at_errexit; then
2750	echo stop > "$at_stop_file"
2751      fi
2752      ;;
2753  esac
2754}
2755
2756
2757## ------------ ##
2758## Driver loop. ##
2759## ------------ ##
2760
2761
2762if (set -m && set +m && set +b) >/dev/null 2>&1; then
2763  set +b
2764  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
2765else
2766  at_job_control_on=: at_job_control_off=: at_job_group=
2767fi
2768
2769for at_signal in 1 2 15; do
2770  trap 'set +x; set +e
2771	$at_job_control_off
2772	at_signal='"$at_signal"'
2773	echo stop > "$at_stop_file"
2774	trap "" $at_signal
2775	at_pgids=
2776	for at_pgid in `jobs -p 2>/dev/null`; do
2777	  at_pgids="$at_pgids $at_job_group$at_pgid"
2778	done
2779	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
2780	wait
2781	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
2782	  echo >&2
2783	fi
2784	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
2785	set x $at_signame
2786	test 1 -gt 2 && at_signame=$at_signal
2787	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
2788$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
2789	as_fn_arith 128 + $at_signal && exit_status=$as_val
2790	as_fn_exit $exit_status' $at_signal
2791done
2792
2793rm -f "$at_stop_file"
2794at_first=:
2795
2796if test $at_jobs -ne 1 &&
2797     rm -f "$at_job_fifo" &&
2798     test -n "$at_job_group" &&
2799     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
2800then
2801  # FIFO job dispatcher.
2802
2803  trap 'at_pids=
2804	for at_pid in `jobs -p`; do
2805	  at_pids="$at_pids $at_job_group$at_pid"
2806	done
2807	if test -n "$at_pids"; then
2808	  at_sig=TSTP
2809	  test "${TMOUT+set}" = set && at_sig=STOP
2810	  kill -$at_sig $at_pids 2>/dev/null
2811	fi
2812	kill -STOP $$
2813	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
2814
2815  echo
2816  # Turn jobs into a list of numbers, starting from 1.
2817  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
2818
2819  set X $at_joblist
2820  shift
2821  for at_group in $at_groups; do
2822    $at_job_control_on 2>/dev/null
2823    (
2824      # Start one test group.
2825      $at_job_control_off
2826      if $at_first; then
2827	exec 7>"$at_job_fifo"
2828      else
2829	exec 6<&-
2830      fi
2831      trap 'set +x; set +e
2832	    trap "" PIPE
2833	    echo stop > "$at_stop_file"
2834	    echo >&7
2835	    as_fn_exit 141' PIPE
2836      at_fn_group_prepare
2837      if cd "$at_group_dir" &&
2838	 at_fn_test $at_group &&
2839	 . "$at_test_source"
2840      then :; else
2841	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
2842$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
2843	at_failed=:
2844      fi
2845      at_fn_group_postprocess
2846      echo >&7
2847    ) &
2848    $at_job_control_off
2849    if $at_first; then
2850      at_first=false
2851      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
2852    fi
2853    shift # Consume one token.
2854    if test $# -gt 0; then :; else
2855      read at_token <&6 || break
2856      set x $*
2857    fi
2858    test -f "$at_stop_file" && break
2859  done
2860  exec 7>&-
2861  # Read back the remaining ($at_jobs - 1) tokens.
2862  set X $at_joblist
2863  shift
2864  if test $# -gt 0; then
2865    shift
2866    for at_job
2867    do
2868      read at_token
2869    done <&6
2870  fi
2871  exec 6<&-
2872  wait
2873else
2874  # Run serially, avoid forks and other potential surprises.
2875  for at_group in $at_groups; do
2876    at_fn_group_prepare
2877    if cd "$at_group_dir" &&
2878       at_fn_test $at_group &&
2879       . "$at_test_source"; then :; else
2880      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
2881$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
2882      at_failed=:
2883    fi
2884    at_fn_group_postprocess
2885    test -f "$at_stop_file" && break
2886    at_first=false
2887  done
2888fi
2889
2890# Wrap up the test suite with summary statistics.
2891cd "$at_helper_dir"
2892
2893# Use ?..???? when the list must remain sorted, the faster * otherwise.
2894at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
2895at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
2896at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
2897at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
2898		 echo $f; done | sed '/?/d; s,/xpass,,'`
2899at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
2900		echo $f; done | sed '/?/d; s,/fail,,'`
2901
2902set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
2903shift; at_group_count=$#
2904set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
2905set X $at_xfail_list; shift; at_xfail_count=$#
2906set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
2907set X $at_skip_list; shift; at_skip_count=$#
2908
2909as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
2910as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
2911as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
2912
2913# Back to the top directory.
2914cd "$at_dir"
2915rm -rf "$at_helper_dir"
2916
2917# Compute the duration of the suite.
2918at_stop_date=`date`
2919at_stop_time=`date +%s 2>/dev/null`
2920$as_echo "$as_me: ending at: $at_stop_date" >&5
2921case $at_start_time,$at_stop_time in
2922  [0-9]*,[0-9]*)
2923    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
2924    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
2925    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
2926    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
2927    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
2928    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
2929    $as_echo "$as_me: test suite duration: $at_duration" >&5
2930    ;;
2931esac
2932
2933echo
2934$as_echo "## ------------- ##
2935## Test results. ##
2936## ------------- ##"
2937echo
2938{
2939  echo
2940  $as_echo "## ------------- ##
2941## Test results. ##
2942## ------------- ##"
2943  echo
2944} >&5
2945
2946if test $at_run_count = 1; then
2947  at_result="1 test"
2948  at_were=was
2949else
2950  at_result="$at_run_count tests"
2951  at_were=were
2952fi
2953if $at_errexit_p && test $at_unexpected_count != 0; then
2954  if test $at_xpass_count = 1; then
2955    at_result="$at_result $at_were run, one passed"
2956  else
2957    at_result="$at_result $at_were run, one failed"
2958  fi
2959  at_result="$at_result unexpectedly and inhibited subsequent tests."
2960  at_color=$at_red
2961else
2962  # Don't you just love exponential explosion of the number of cases?
2963  at_color=$at_red
2964  case $at_xpass_count:$at_fail_count:$at_xfail_count in
2965    # So far, so good.
2966    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
2967    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
2968
2969    # Some unexpected failures
2970    0:*:0) at_result="$at_result $at_were run,
2971$at_fail_count failed unexpectedly." ;;
2972
2973    # Some failures, both expected and unexpected
2974    0:*:1) at_result="$at_result $at_were run,
2975$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
2976    0:*:*) at_result="$at_result $at_were run,
2977$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
2978
2979    # No unexpected failures, but some xpasses
2980    *:0:*) at_result="$at_result $at_were run,
2981$at_xpass_count passed unexpectedly." ;;
2982
2983    # No expected failures, but failures and xpasses
2984    *:1:0) at_result="$at_result $at_were run,
2985$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
2986    *:*:0) at_result="$at_result $at_were run,
2987$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
2988
2989    # All of them.
2990    *:*:1) at_result="$at_result $at_were run,
2991$at_xpass_count passed unexpectedly,
2992$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
2993    *:*:*) at_result="$at_result $at_were run,
2994$at_xpass_count passed unexpectedly,
2995$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
2996  esac
2997
2998  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
2999    at_result="All $at_result"
3000  fi
3001fi
3002
3003# Now put skips in the mix.
3004case $at_skip_count in
3005  0) ;;
3006  1) at_result="$at_result
30071 test was skipped." ;;
3008  *) at_result="$at_result
3009$at_skip_count tests were skipped." ;;
3010esac
3011
3012if test $at_unexpected_count = 0; then
3013  echo "$at_color$at_result$at_std"
3014  echo "$at_result" >&5
3015else
3016  echo "${at_color}ERROR: $at_result$at_std" >&2
3017  echo "ERROR: $at_result" >&5
3018  {
3019    echo
3020    $as_echo "## ------------------------ ##
3021## Summary of the failures. ##
3022## ------------------------ ##"
3023
3024    # Summary of failed and skipped tests.
3025    if test $at_fail_count != 0; then
3026      echo "Failed tests:"
3027      $SHELL "$at_myself" $at_fail_list --list
3028      echo
3029    fi
3030    if test $at_skip_count != 0; then
3031      echo "Skipped tests:"
3032      $SHELL "$at_myself" $at_skip_list --list
3033      echo
3034    fi
3035    if test $at_xpass_count != 0; then
3036      echo "Unexpected passes:"
3037      $SHELL "$at_myself" $at_xpass_list --list
3038      echo
3039    fi
3040    if test $at_fail_count != 0; then
3041      $as_echo "## ---------------------- ##
3042## Detailed failed tests. ##
3043## ---------------------- ##"
3044      echo
3045      for at_group in $at_fail_list
3046      do
3047	at_group_normalized=$at_group
3048
3049  eval 'while :; do
3050    case $at_group_normalized in #(
3051    '"$at_format"'*) break;;
3052    esac
3053    at_group_normalized=0$at_group_normalized
3054  done'
3055
3056	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
3057	echo
3058      done
3059      echo
3060    fi
3061    if test -n "$at_top_srcdir"; then
3062      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
3063## ${at_top_build_prefix}config.log ##
3064_ASBOX
3065      sed 's/^/| /' ${at_top_build_prefix}config.log
3066      echo
3067    fi
3068  } >&5
3069
3070  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
3071## $as_me.log was created. ##
3072_ASBOX
3073
3074  echo
3075  if $at_debug_p; then
3076    at_msg='per-test log files'
3077  else
3078    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
3079  fi
3080  $as_echo "Please send $at_msg and all information you think might help:
3081
3082   To: <bug-gnucobol@gnu.org>
3083   Subject: [GnuCOBOL 3.1.2] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
3084
3085You may investigate any problem if you feel able to do so, in which
3086case the test suite provides a good starting point.  Its output may
3087be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
3088"
3089  exit 1
3090fi
3091
3092exit 0
3093
3094## ------------- ##
3095## Actual tests. ##
3096## ------------- ##
3097#AT_START_1
3098at_fn_group_banner 1 'used_binaries.at:27' \
3099  "compiler help and information" "                  " 1
3100at_xfail=no
3101(
3102  $as_echo "1. $at_setup_line: testing $at_desc ..."
3103  $at_traceon
3104
3105
3106
3107# FIXME: check at least some parts of the output by using $GREP
3108{ set +x
3109$as_echo "$at_srcdir/used_binaries.at:31: \$COBC --version"
3110at_fn_check_prepare_dynamic "$COBC --version" "used_binaries.at:31"
3111( $at_check_trace; $COBC --version
3112) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3113at_status=$? at_failed=false
3114$at_check_filter
3115at_fn_diff_devnull "$at_stderr" || at_failed=:
3116echo stdout:; cat "$at_stdout"
3117at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:31"
3118$at_failed && at_fn_log_failure
3119$at_traceon; }
3120
3121{ set +x
3122$as_echo "$at_srcdir/used_binaries.at:32: \$COBC -v --version"
3123at_fn_check_prepare_dynamic "$COBC -v --version" "used_binaries.at:32"
3124( $at_check_trace; $COBC -v --version
3125) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3126at_status=$? at_failed=false
3127$at_check_filter
3128echo stderr:; cat "$at_stderr"
3129echo stdout:; cat "$at_stdout"
3130at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:32"
3131$at_failed && at_fn_log_failure
3132$at_traceon; }
3133
3134{ set +x
3135$as_echo "$at_srcdir/used_binaries.at:33: \$COBC -q --version"
3136at_fn_check_prepare_dynamic "$COBC -q --version" "used_binaries.at:33"
3137( $at_check_trace; $COBC -q --version
3138) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3139at_status=$? at_failed=false
3140$at_check_filter
3141at_fn_diff_devnull "$at_stderr" || at_failed=:
3142echo stdout:; cat "$at_stdout"
3143at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:33"
3144$at_failed && at_fn_log_failure
3145$at_traceon; }
3146
3147{ set +x
3148$as_echo "$at_srcdir/used_binaries.at:34: \$COBC --help"
3149at_fn_check_prepare_dynamic "$COBC --help" "used_binaries.at:34"
3150( $at_check_trace; $COBC --help
3151) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3152at_status=$? at_failed=false
3153$at_check_filter
3154at_fn_diff_devnull "$at_stderr" || at_failed=:
3155echo stdout:; cat "$at_stdout"
3156at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:34"
3157$at_failed && at_fn_log_failure
3158$at_traceon; }
3159
3160{ set +x
3161$as_echo "$at_srcdir/used_binaries.at:35: \$COBC --info"
3162at_fn_check_prepare_dynamic "$COBC --info" "used_binaries.at:35"
3163( $at_check_trace; $COBC --info
3164) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3165at_status=$? at_failed=false
3166$at_check_filter
3167at_fn_diff_devnull "$at_stderr" || at_failed=:
3168echo stdout:; cat "$at_stdout"
3169at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:35"
3170$at_failed && at_fn_log_failure
3171$at_traceon; }
3172
3173{ set +x
3174$as_echo "$at_srcdir/used_binaries.at:36: \$COBC -v --info"
3175at_fn_check_prepare_dynamic "$COBC -v --info" "used_binaries.at:36"
3176( $at_check_trace; $COBC -v --info
3177) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3178at_status=$? at_failed=false
3179$at_check_filter
3180at_fn_diff_devnull "$at_stderr" || at_failed=:
3181echo stdout:; cat "$at_stdout"
3182at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:36"
3183$at_failed && at_fn_log_failure
3184$at_traceon; }
3185
3186{ set +x
3187$as_echo "$at_srcdir/used_binaries.at:37: \$COBC -q --info"
3188at_fn_check_prepare_dynamic "$COBC -q --info" "used_binaries.at:37"
3189( $at_check_trace; $COBC -q --info
3190) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3191at_status=$? at_failed=false
3192$at_check_filter
3193at_fn_diff_devnull "$at_stderr" || at_failed=:
3194echo stdout:; cat "$at_stdout"
3195at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:37"
3196$at_failed && at_fn_log_failure
3197$at_traceon; }
3198
3199{ set +x
3200$as_echo "$at_srcdir/used_binaries.at:38: \$COBC --list-reserved"
3201at_fn_check_prepare_dynamic "$COBC --list-reserved" "used_binaries.at:38"
3202( $at_check_trace; $COBC --list-reserved
3203) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3204at_status=$? at_failed=false
3205$at_check_filter
3206at_fn_diff_devnull "$at_stderr" || at_failed=:
3207echo stdout:; cat "$at_stdout"
3208at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:38"
3209$at_failed && at_fn_log_failure
3210$at_traceon; }
3211
3212{ set +x
3213$as_echo "$at_srcdir/used_binaries.at:39: \$COBC --list-registers"
3214at_fn_check_prepare_dynamic "$COBC --list-registers" "used_binaries.at:39"
3215( $at_check_trace; $COBC --list-registers
3216) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3217at_status=$? at_failed=false
3218$at_check_filter
3219at_fn_diff_devnull "$at_stderr" || at_failed=:
3220echo stdout:; cat "$at_stdout"
3221at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:39"
3222$at_failed && at_fn_log_failure
3223$at_traceon; }
3224
3225{ set +x
3226$as_echo "$at_srcdir/used_binaries.at:40: \$COBC --list-intrinsics"
3227at_fn_check_prepare_dynamic "$COBC --list-intrinsics" "used_binaries.at:40"
3228( $at_check_trace; $COBC --list-intrinsics
3229) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3230at_status=$? at_failed=false
3231$at_check_filter
3232at_fn_diff_devnull "$at_stderr" || at_failed=:
3233echo stdout:; cat "$at_stdout"
3234at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:40"
3235$at_failed && at_fn_log_failure
3236$at_traceon; }
3237
3238{ set +x
3239$as_echo "$at_srcdir/used_binaries.at:41: \$COBC --list-mnemonics"
3240at_fn_check_prepare_dynamic "$COBC --list-mnemonics" "used_binaries.at:41"
3241( $at_check_trace; $COBC --list-mnemonics
3242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3243at_status=$? at_failed=false
3244$at_check_filter
3245at_fn_diff_devnull "$at_stderr" || at_failed=:
3246echo stdout:; cat "$at_stdout"
3247at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:41"
3248$at_failed && at_fn_log_failure
3249$at_traceon; }
3250
3251{ set +x
3252$as_echo "$at_srcdir/used_binaries.at:42: \$COBC -std=mf --list-reserved"
3253at_fn_check_prepare_dynamic "$COBC -std=mf --list-reserved" "used_binaries.at:42"
3254( $at_check_trace; $COBC -std=mf --list-reserved
3255) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3256at_status=$? at_failed=false
3257$at_check_filter
3258at_fn_diff_devnull "$at_stderr" || at_failed=:
3259echo stdout:; cat "$at_stdout"
3260at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:42"
3261$at_failed && at_fn_log_failure
3262$at_traceon; }
3263
3264{ set +x
3265$as_echo "$at_srcdir/used_binaries.at:43: \$COBC -std=acu --list-registers"
3266at_fn_check_prepare_dynamic "$COBC -std=acu --list-registers" "used_binaries.at:43"
3267( $at_check_trace; $COBC -std=acu --list-registers
3268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3269at_status=$? at_failed=false
3270$at_check_filter
3271at_fn_diff_devnull "$at_stderr" || at_failed=:
3272echo stdout:; cat "$at_stdout"
3273at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:43"
3274$at_failed && at_fn_log_failure
3275$at_traceon; }
3276
3277{ set +x
3278$as_echo "$at_srcdir/used_binaries.at:44: \$COBC -std=cobol2002 --list-intrinsics"
3279at_fn_check_prepare_dynamic "$COBC -std=cobol2002 --list-intrinsics" "used_binaries.at:44"
3280( $at_check_trace; $COBC -std=cobol2002 --list-intrinsics
3281) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3282at_status=$? at_failed=false
3283$at_check_filter
3284at_fn_diff_devnull "$at_stderr" || at_failed=:
3285echo stdout:; cat "$at_stdout"
3286at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:44"
3287$at_failed && at_fn_log_failure
3288$at_traceon; }
3289
3290{ set +x
3291$as_echo "$at_srcdir/used_binaries.at:45: \$COBC -std=ibm --list-mnemonics"
3292at_fn_check_prepare_dynamic "$COBC -std=ibm --list-mnemonics" "used_binaries.at:45"
3293( $at_check_trace; $COBC -std=ibm --list-mnemonics
3294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3295at_status=$? at_failed=false
3296$at_check_filter
3297at_fn_diff_devnull "$at_stderr" || at_failed=:
3298echo stdout:; cat "$at_stdout"
3299at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:45"
3300$at_failed && at_fn_log_failure
3301$at_traceon; }
3302
3303{ set +x
3304$as_echo "$at_srcdir/used_binaries.at:46: \$COBC --list-system"
3305at_fn_check_prepare_dynamic "$COBC --list-system" "used_binaries.at:46"
3306( $at_check_trace; $COBC --list-system
3307) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3308at_status=$? at_failed=false
3309$at_check_filter
3310at_fn_diff_devnull "$at_stderr" || at_failed=:
3311echo stdout:; cat "$at_stdout"
3312at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:46"
3313$at_failed && at_fn_log_failure
3314$at_traceon; }
3315
3316  set +x
3317  $at_times_p && times >"$at_times_file"
3318) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3319read at_status <"$at_status_file"
3320#AT_STOP_1
3321#AT_START_2
3322at_fn_group_banner 2 'used_binaries.at:50' \
3323  "compiler warnings" "                              " 1
3324at_xfail=no
3325(
3326  $as_echo "2. $at_setup_line: testing $at_desc ..."
3327  $at_traceon
3328
3329
3330
3331cat >prog.cob <<'_ATEOF'
3332
3333        IDENTIFICATION DIVISION.
3334        PROGRAM-ID. prog.
3335        DATA DIVISION.
3336        WORKING-STORAGE SECTION.
3337        77 var1    pic 9.
3338        77 var2    pic 99.
3339        PROCEDURE DIVISION.
3340        PERFORM UNTIL 0 = 1
3341           DISPLAY 'BLA'
3342        END-PERFORM.
3343        MOVE var1 to var2
3344        MOVE var2 to var1
3345        GOBACK.
3346_ATEOF
3347
3348{ set +x
3349$as_echo "$at_srcdir/used_binaries.at:68: \$COBC -fsyntax-only prog.cob"
3350at_fn_check_prepare_dynamic "$COBC -fsyntax-only prog.cob" "used_binaries.at:68"
3351( $at_check_trace; $COBC -fsyntax-only prog.cob
3352) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3353at_status=$? at_failed=false
3354$at_check_filter
3355at_fn_diff_devnull "$at_stderr" || at_failed=:
3356at_fn_diff_devnull "$at_stdout" || at_failed=:
3357at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:68"
3358$at_failed && at_fn_log_failure
3359$at_traceon; }
3360
3361# increasing to more warnings
3362{ set +x
3363$as_echo "$at_srcdir/used_binaries.at:70: \$COBC -fsyntax-only -Wadditional prog.cob"
3364at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wadditional prog.cob" "used_binaries.at:70"
3365( $at_check_trace; $COBC -fsyntax-only -Wadditional prog.cob
3366) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3367at_status=$? at_failed=false
3368$at_check_filter
3369echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
3370" | \
3371  $at_diff - "$at_stderr" || at_failed=:
3372at_fn_diff_devnull "$at_stdout" || at_failed=:
3373at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:70"
3374$at_failed && at_fn_log_failure
3375$at_traceon; }
3376
3377{ set +x
3378$as_echo "$at_srcdir/used_binaries.at:73: \$COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional prog.cob"
3379at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional prog.cob" "used_binaries.at:73"
3380( $at_check_trace; $COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional prog.cob
3381) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3382at_status=$? at_failed=false
3383$at_check_filter
3384echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE
3385" | \
3386  $at_diff - "$at_stderr" || at_failed=:
3387at_fn_diff_devnull "$at_stdout" || at_failed=:
3388at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:73"
3389$at_failed && at_fn_log_failure
3390$at_traceon; }
3391
3392# which in this case is also included in -Wall
3393{ set +x
3394$as_echo "$at_srcdir/used_binaries.at:77: \$COBC -fsyntax-only -Wall prog.cob"
3395at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wall prog.cob" "used_binaries.at:77"
3396( $at_check_trace; $COBC -fsyntax-only -Wall prog.cob
3397) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3398at_status=$? at_failed=false
3399$at_check_filter
3400echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
3401prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
3402" | \
3403  $at_diff - "$at_stderr" || at_failed=:
3404at_fn_diff_devnull "$at_stdout" || at_failed=:
3405at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:77"
3406$at_failed && at_fn_log_failure
3407$at_traceon; }
3408
3409# -Wextra is more descriptive ...
3410{ set +x
3411$as_echo "$at_srcdir/used_binaries.at:82: \$COBC -fsyntax-only -Wextra prog.cob"
3412at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra prog.cob" "used_binaries.at:82"
3413( $at_check_trace; $COBC -fsyntax-only -Wextra prog.cob
3414) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3415at_status=$? at_failed=false
3416$at_check_filter
3417echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
3418prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
3419prog.cob:10: warning: DISPLAY statement not terminated by END-DISPLAY [-Wterminator]
3420prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
3421prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
3422prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
3423" | \
3424  $at_diff - "$at_stderr" || at_failed=:
3425at_fn_diff_devnull "$at_stdout" || at_failed=:
3426at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:82"
3427$at_failed && at_fn_log_failure
3428$at_traceon; }
3429
3430# ... the old -W is in for backwards portability
3431{ set +x
3432$as_echo "$at_srcdir/used_binaries.at:91: \$COBC -fsyntax-only -W prog.cob"
3433at_fn_check_prepare_dynamic "$COBC -fsyntax-only -W prog.cob" "used_binaries.at:91"
3434( $at_check_trace; $COBC -fsyntax-only -W prog.cob
3435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3436at_status=$? at_failed=false
3437$at_check_filter
3438echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
3439prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
3440prog.cob:10: warning: DISPLAY statement not terminated by END-DISPLAY [-Wterminator]
3441prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
3442prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
3443prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
3444" | \
3445  $at_diff - "$at_stderr" || at_failed=:
3446at_fn_diff_devnull "$at_stdout" || at_failed=:
3447at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:91"
3448$at_failed && at_fn_log_failure
3449$at_traceon; }
3450
3451# a global "error" use implies no warning settings
3452{ set +x
3453$as_echo "$at_srcdir/used_binaries.at:100: \$COBC -fsyntax-only -Werror prog.cob"
3454at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror prog.cob" "used_binaries.at:100"
3455( $at_check_trace; $COBC -fsyntax-only -Werror prog.cob
3456) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3457at_status=$? at_failed=false
3458$at_check_filter
3459at_fn_diff_devnull "$at_stderr" || at_failed=:
3460at_fn_diff_devnull "$at_stdout" || at_failed=:
3461at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:100"
3462$at_failed && at_fn_log_failure
3463$at_traceon; }
3464
3465# a concrete "error" use implies setting the warning
3466{ set +x
3467$as_echo "$at_srcdir/used_binaries.at:102: \$COBC -fsyntax-only -Werror=additional prog.cob"
3468at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror=additional prog.cob" "used_binaries.at:102"
3469( $at_check_trace; $COBC -fsyntax-only -Werror=additional prog.cob
3470) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3471at_status=$? at_failed=false
3472$at_check_filter
3473echo >>"$at_stderr"; $as_echo "prog.cob:9: error: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
3474" | \
3475  $at_diff - "$at_stderr" || at_failed=:
3476at_fn_diff_devnull "$at_stdout" || at_failed=:
3477at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:102"
3478$at_failed && at_fn_log_failure
3479$at_traceon; }
3480
3481{ set +x
3482$as_echo "$at_srcdir/used_binaries.at:105: \$COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional prog.cob"
3483at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional prog.cob" "used_binaries.at:105"
3484( $at_check_trace; $COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional prog.cob
3485) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3486at_status=$? at_failed=false
3487$at_check_filter
3488echo >>"$at_stderr"; $as_echo "prog.cob:9: error: PERFORM FOREVER since UNTIL is always FALSE
3489" | \
3490  $at_diff - "$at_stderr" || at_failed=:
3491at_fn_diff_devnull "$at_stdout" || at_failed=:
3492at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:105"
3493$at_failed && at_fn_log_failure
3494$at_traceon; }
3495
3496# a "no-error" use implies nothing
3497{ set +x
3498$as_echo "$at_srcdir/used_binaries.at:109: \$COBC -fsyntax-only -Wno-error=additional prog.cob"
3499at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wno-error=additional prog.cob" "used_binaries.at:109"
3500( $at_check_trace; $COBC -fsyntax-only -Wno-error=additional prog.cob
3501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3502at_status=$? at_failed=false
3503$at_check_filter
3504at_fn_diff_devnull "$at_stderr" || at_failed=:
3505at_fn_diff_devnull "$at_stdout" || at_failed=:
3506at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:109"
3507$at_failed && at_fn_log_failure
3508$at_traceon; }
3509
3510# ... now combined
3511{ set +x
3512$as_echo "$at_srcdir/used_binaries.at:111: \$COBC -fsyntax-only -Werror -Wno-error=additional prog.cob"
3513at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror -Wno-error=additional prog.cob" "used_binaries.at:111"
3514( $at_check_trace; $COBC -fsyntax-only -Werror -Wno-error=additional prog.cob
3515) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3516at_status=$? at_failed=false
3517$at_check_filter
3518at_fn_diff_devnull "$at_stderr" || at_failed=:
3519at_fn_diff_devnull "$at_stdout" || at_failed=:
3520at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:111"
3521$at_failed && at_fn_log_failure
3522$at_traceon; }
3523
3524{ set +x
3525$as_echo "$at_srcdir/used_binaries.at:112: \$COBC -fsyntax-only -Werror=additional -Wno-error prog.cob"
3526at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror=additional -Wno-error prog.cob" "used_binaries.at:112"
3527( $at_check_trace; $COBC -fsyntax-only -Werror=additional -Wno-error prog.cob
3528) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3529at_status=$? at_failed=false
3530$at_check_filter
3531echo >>"$at_stderr"; $as_echo "prog.cob:9: error: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
3532" | \
3533  $at_diff - "$at_stderr" || at_failed=:
3534at_fn_diff_devnull "$at_stdout" || at_failed=:
3535at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:112"
3536$at_failed && at_fn_log_failure
3537$at_traceon; }
3538
3539{ set +x
3540$as_echo "$at_srcdir/used_binaries.at:115: \$COBC -fsyntax-only -w -Werror=additional prog.cob"
3541at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Werror=additional prog.cob" "used_binaries.at:115"
3542( $at_check_trace; $COBC -fsyntax-only -w -Werror=additional prog.cob
3543) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3544at_status=$? at_failed=false
3545$at_check_filter
3546echo >>"$at_stderr"; $as_echo "prog.cob:9: error: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
3547" | \
3548  $at_diff - "$at_stderr" || at_failed=:
3549at_fn_diff_devnull "$at_stdout" || at_failed=:
3550at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:115"
3551$at_failed && at_fn_log_failure
3552$at_traceon; }
3553
3554{ set +x
3555$as_echo "$at_srcdir/used_binaries.at:118: \$COBC -fsyntax-only -w -Wadditional prog.cob"
3556at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Wadditional prog.cob" "used_binaries.at:118"
3557( $at_check_trace; $COBC -fsyntax-only -w -Wadditional prog.cob
3558) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3559at_status=$? at_failed=false
3560$at_check_filter
3561echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
3562" | \
3563  $at_diff - "$at_stderr" || at_failed=:
3564at_fn_diff_devnull "$at_stdout" || at_failed=:
3565at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:118"
3566$at_failed && at_fn_log_failure
3567$at_traceon; }
3568
3569{ set +x
3570$as_echo "$at_srcdir/used_binaries.at:121: \$COBC -fsyntax-only -w -Wpossible-truncate prog.cob"
3571at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Wpossible-truncate prog.cob" "used_binaries.at:121"
3572( $at_check_trace; $COBC -fsyntax-only -w -Wpossible-truncate prog.cob
3573) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3574at_status=$? at_failed=false
3575$at_check_filter
3576echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
3577prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
3578prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
3579" | \
3580  $at_diff - "$at_stderr" || at_failed=:
3581at_fn_diff_devnull "$at_stdout" || at_failed=:
3582at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:121"
3583$at_failed && at_fn_log_failure
3584$at_traceon; }
3585
3586# TODO: unknown warnings should only get a diagnostic (in verbose mode)
3587#AT_CHECK([$COBC -fsyntax-only -Wunknown-warning prog.cob], [0], [], [])
3588#AT_CHECK([$COBC -fsyntax-only -Wno-unknown-warning prog.cob], [0], [], [])
3589#AT_CHECK([$COBC -fsyntax-only -v -Wunknown-warning prog.cob], [0], [],
3590#[cobc: unknown warning option 'unknown-warning'
3591#])
3592#AT_CHECK([$COBC -fsyntax-only -v -Wno-unknown-warning prog.cob], [0], [],
3593#[cobc: unknown warning option 'unknown-warning'
3594#])
3595
3596cat >prog2.cob <<'_ATEOF'
3597
3598       IDENTIFICATION   DIVISION.
3599       PROGRAM-ID.      prog.
3600       DATA             DIVISION.
3601       WORKING-STORAGE  SECTION.
3602       01 TEST-VAR PIC 9(2) VALUE 'A'.
3603       COPY 'CRUD.CPY'.
3604       PROCEDURE        DIVISION.
3605           DISPLAY TEST-VAR NO ADVANCING
3606           END-DISPLAY
3607           MOVE 12 TO TEST-VAR
3608           DISPLAY TEST-VAR NO ADVANCING
3609           END-DISPLAY
3610           STOP RUN.
3611_ATEOF
3612
3613
3614{ set +x
3615$as_echo "$at_srcdir/used_binaries.at:152: \$COBC -Wall -fsyntax-only prog2.cob"
3616at_fn_check_prepare_dynamic "$COBC -Wall -fsyntax-only prog2.cob" "used_binaries.at:152"
3617( $at_check_trace; $COBC -Wall -fsyntax-only prog2.cob
3618) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3619at_status=$? at_failed=false
3620$at_check_filter
3621echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
3622prog2.cob:6: warning: numeric value is expected [-Wothers]
3623" | \
3624  $at_diff - "$at_stderr" || at_failed=:
3625at_fn_diff_devnull "$at_stdout" || at_failed=:
3626at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:152"
3627$at_failed && at_fn_log_failure
3628$at_traceon; }
3629
3630
3631{ set +x
3632$as_echo "$at_srcdir/used_binaries.at:157: \$COBC -fsyntax-only -fmax-errors=0 prog2.cob"
3633at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fmax-errors=0 prog2.cob" "used_binaries.at:157"
3634( $at_check_trace; $COBC -fsyntax-only -fmax-errors=0 prog2.cob
3635) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3636at_status=$? at_failed=false
3637$at_check_filter
3638echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
3639cobc: too many errors [-fmax-errors=0]
3640
3641cobc: aborting compile of prog2.cob at line 7 (unknown: unknown)
3642" | \
3643  $at_diff - "$at_stderr" || at_failed=:
3644at_fn_diff_devnull "$at_stdout" || at_failed=:
3645at_fn_check_status 97 $at_status "$at_srcdir/used_binaries.at:157"
3646$at_failed && at_fn_log_failure
3647$at_traceon; }
3648
3649
3650{ set +x
3651$as_echo "$at_srcdir/used_binaries.at:164: \$COBC -fsyntax-only -Wfatal-errors prog2.cob"
3652at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wfatal-errors prog2.cob" "used_binaries.at:164"
3653( $at_check_trace; $COBC -fsyntax-only -Wfatal-errors prog2.cob
3654) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3655at_status=$? at_failed=false
3656$at_check_filter
3657echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
3658cobc: too many errors [-Wfatal-errors]
3659
3660cobc: aborting compile of prog2.cob at line 7 (unknown: unknown)
3661" | \
3662  $at_diff - "$at_stderr" || at_failed=:
3663at_fn_diff_devnull "$at_stdout" || at_failed=:
3664at_fn_check_status 97 $at_status "$at_srcdir/used_binaries.at:164"
3665$at_failed && at_fn_log_failure
3666$at_traceon; }
3667
3668
3669{ set +x
3670$as_echo "$at_srcdir/used_binaries.at:171: \$COBC -q -Wfatal-errors=123 prog.cob"
3671at_fn_check_prepare_dynamic "$COBC -q -Wfatal-errors=123 prog.cob" "used_binaries.at:171"
3672( $at_check_trace; $COBC -q -Wfatal-errors=123 prog.cob
3673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3674at_status=$? at_failed=false
3675$at_check_filter
3676echo >>"$at_stderr"; $as_echo "cobc: option '-Wfatal-errors' doesn't allow an argument
3677" | \
3678  $at_diff - "$at_stderr" || at_failed=:
3679at_fn_diff_devnull "$at_stdout" || at_failed=:
3680at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:171"
3681$at_failed && at_fn_log_failure
3682$at_traceon; }
3683
3684
3685  set +x
3686  $at_times_p && times >"$at_times_file"
3687) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3688read at_status <"$at_status_file"
3689#AT_STOP_2
3690#AT_START_3
3691at_fn_group_banner 3 'used_binaries.at:178' \
3692  "compiler outputs (general)" "                     " 1
3693at_xfail=no
3694(
3695  $as_echo "3. $at_setup_line: testing $at_desc ..."
3696  $at_traceon
3697
3698
3699
3700cat >prog.cob <<'_ATEOF'
3701
3702        IDENTIFICATION DIVISION.
3703        PROGRAM-ID. prog.
3704        DATA DIVISION.
3705        WORKING-STORAGE SECTION.
3706        01 BLA PIC X(5) VALUE 'bluBb'.
3707        PROCEDURE DIVISION.
3708        DISPLAY BLA NO ADVANCING END-DISPLAY
3709        STOP RUN.
3710_ATEOF
3711
3712
3713{ set +x
3714$as_echo "$at_srcdir/used_binaries.at:192: \$COBC -C prog.cob"
3715at_fn_check_prepare_dynamic "$COBC -C prog.cob" "used_binaries.at:192"
3716( $at_check_trace; $COBC -C prog.cob
3717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3718at_status=$? at_failed=false
3719$at_check_filter
3720echo stderr:; cat "$at_stderr"
3721echo stdout:; cat "$at_stdout"
3722at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:192"
3723$at_failed && at_fn_log_failure
3724$at_traceon; }
3725
3726{ set +x
3727$as_echo "$at_srcdir/used_binaries.at:193: \$COBC -v -c prog.c"
3728at_fn_check_prepare_dynamic "$COBC -v -c prog.c" "used_binaries.at:193"
3729( $at_check_trace; $COBC -v -c prog.c
3730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3731at_status=$? at_failed=false
3732$at_check_filter
3733echo stderr:; cat "$at_stderr"
3734echo stdout:; cat "$at_stdout"
3735at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:193"
3736$at_failed && at_fn_log_failure
3737$at_traceon; }
3738
3739{ set +x
3740$as_echo "$at_srcdir/used_binaries.at:194: \$COBC -v prog.\$COB_OBJECT_EXT"
3741at_fn_check_prepare_dynamic "$COBC -v prog.$COB_OBJECT_EXT" "used_binaries.at:194"
3742( $at_check_trace; $COBC -v prog.$COB_OBJECT_EXT
3743) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3744at_status=$? at_failed=false
3745$at_check_filter
3746echo stderr:; cat "$at_stderr"
3747echo stdout:; cat "$at_stdout"
3748at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:194"
3749$at_failed && at_fn_log_failure
3750$at_traceon; }
3751
3752{ set +x
3753$as_echo "$at_srcdir/used_binaries.at:195: \$COBCRUN prog"
3754at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:195"
3755( $at_check_trace; $COBCRUN prog
3756) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3757at_status=$? at_failed=false
3758$at_check_filter
3759at_fn_diff_devnull "$at_stderr" || at_failed=:
3760echo >>"$at_stdout"; $as_echo "bluBb" | \
3761  $at_diff - "$at_stdout" || at_failed=:
3762at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:195"
3763$at_failed && at_fn_log_failure
3764$at_traceon; }
3765
3766{ set +x
3767$as_echo "$at_srcdir/used_binaries.at:196: \$COBC -x -C prog.cob"
3768at_fn_check_prepare_dynamic "$COBC -x -C prog.cob" "used_binaries.at:196"
3769( $at_check_trace; $COBC -x -C prog.cob
3770) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3771at_status=$? at_failed=false
3772$at_check_filter
3773echo stderr:; cat "$at_stderr"
3774echo stdout:; cat "$at_stdout"
3775at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:196"
3776$at_failed && at_fn_log_failure
3777$at_traceon; }
3778
3779{ set +x
3780$as_echo "$at_srcdir/used_binaries.at:197: \$COBC -v -x -c prog.c"
3781at_fn_check_prepare_dynamic "$COBC -v -x -c prog.c" "used_binaries.at:197"
3782( $at_check_trace; $COBC -v -x -c prog.c
3783) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3784at_status=$? at_failed=false
3785$at_check_filter
3786echo stderr:; cat "$at_stderr"
3787echo stdout:; cat "$at_stdout"
3788at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:197"
3789$at_failed && at_fn_log_failure
3790$at_traceon; }
3791
3792{ set +x
3793$as_echo "$at_srcdir/used_binaries.at:198: \$COBC -v -x prog.\$COB_OBJECT_EXT -o progo"
3794at_fn_check_prepare_dynamic "$COBC -v -x prog.$COB_OBJECT_EXT -o progo" "used_binaries.at:198"
3795( $at_check_trace; $COBC -v -x prog.$COB_OBJECT_EXT -o progo
3796) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3797at_status=$? at_failed=false
3798$at_check_filter
3799echo stderr:; cat "$at_stderr"
3800echo stdout:; cat "$at_stdout"
3801at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:198"
3802$at_failed && at_fn_log_failure
3803$at_traceon; }
3804
3805{ set +x
3806$as_echo "$at_srcdir/used_binaries.at:199: \$COBCRUN_DIRECT ./progo"
3807at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progo" "used_binaries.at:199"
3808( $at_check_trace; $COBCRUN_DIRECT ./progo
3809) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3810at_status=$? at_failed=false
3811$at_check_filter
3812at_fn_diff_devnull "$at_stderr" || at_failed=:
3813echo >>"$at_stdout"; $as_echo "bluBb" | \
3814  $at_diff - "$at_stdout" || at_failed=:
3815at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:199"
3816$at_failed && at_fn_log_failure
3817$at_traceon; }
3818
3819{ set +x
3820$as_echo "$at_srcdir/used_binaries.at:200: \$COBC -E prog.cob"
3821at_fn_check_prepare_dynamic "$COBC -E prog.cob" "used_binaries.at:200"
3822( $at_check_trace; $COBC -E prog.cob
3823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3824at_status=$? at_failed=false
3825$at_check_filter
3826at_fn_diff_devnull "$at_stderr" || at_failed=:
3827echo >>"$at_stdout"; $as_echo "#line 1 \"prog.cob\"
3828
3829 IDENTIFICATION DIVISION.
3830 PROGRAM-ID. prog.
3831 DATA DIVISION.
3832 WORKING-STORAGE SECTION.
3833 01 BLA PIC X(5) VALUE 'bluBb'.
3834 PROCEDURE DIVISION.
3835 DISPLAY BLA NO ADVANCING END-DISPLAY
3836 STOP RUN.
3837" | \
3838  $at_diff - "$at_stdout" || at_failed=:
3839at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:200"
3840$at_failed && at_fn_log_failure
3841$at_traceon; }
3842
3843{ set +x
3844$as_echo "$at_srcdir/used_binaries.at:212: \$COBC -E -o prog.i prog.cob"
3845at_fn_check_prepare_dynamic "$COBC -E -o prog.i prog.cob" "used_binaries.at:212"
3846( $at_check_trace; $COBC -E -o prog.i prog.cob
3847) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3848at_status=$? at_failed=false
3849$at_check_filter
3850at_fn_diff_devnull "$at_stderr" || at_failed=:
3851at_fn_diff_devnull "$at_stdout" || at_failed=:
3852at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:212"
3853$at_failed && at_fn_log_failure
3854$at_traceon; }
3855
3856{ set +x
3857$as_echo "$at_srcdir/used_binaries.at:213: \$COBC -x prog.i"
3858at_fn_check_prepare_dynamic "$COBC -x prog.i" "used_binaries.at:213"
3859( $at_check_trace; $COBC -x prog.i
3860) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3861at_status=$? at_failed=false
3862$at_check_filter
3863at_fn_diff_devnull "$at_stderr" || at_failed=:
3864at_fn_diff_devnull "$at_stdout" || at_failed=:
3865at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:213"
3866$at_failed && at_fn_log_failure
3867$at_traceon; }
3868
3869{ set +x
3870$as_echo "$at_srcdir/used_binaries.at:214: \$COBCRUN_DIRECT ./prog"
3871at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:214"
3872( $at_check_trace; $COBCRUN_DIRECT ./prog
3873) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3874at_status=$? at_failed=false
3875$at_check_filter
3876at_fn_diff_devnull "$at_stderr" || at_failed=:
3877echo >>"$at_stdout"; $as_echo "bluBb" | \
3878  $at_diff - "$at_stdout" || at_failed=:
3879at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:214"
3880$at_failed && at_fn_log_failure
3881$at_traceon; }
3882
3883  set +x
3884  $at_times_p && times >"$at_times_file"
3885) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3886read at_status <"$at_status_file"
3887#AT_STOP_3
3888#AT_START_4
3889at_fn_group_banner 4 'used_binaries.at:218' \
3890  "compiler outputs (file specified)" "              " 1
3891at_xfail=no
3892(
3893  $as_echo "4. $at_setup_line: testing $at_desc ..."
3894  $at_traceon
3895
3896
3897
3898cat >prog.cob <<'_ATEOF'
3899
3900        IDENTIFICATION DIVISION.
3901        PROGRAM-ID. prog.
3902        DATA DIVISION.
3903        WORKING-STORAGE SECTION.
3904        01 BLA PIC X(5) VALUE 'bluBb'.
3905        PROCEDURE DIVISION.
3906        MAIN-PROC SECTION.
3907        COPY PROC.
3908        END-PROC  SECTION.
3909        STOP RUN.
3910_ATEOF
3911
3912
3913{ set +x
3914$as_echo "$at_srcdir/used_binaries.at:234: mkdir -p sub/copy"
3915at_fn_check_prepare_trace "used_binaries.at:234"
3916( $at_check_trace; mkdir -p sub/copy
3917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3918at_status=$? at_failed=false
3919$at_check_filter
3920at_fn_diff_devnull "$at_stderr" || at_failed=:
3921at_fn_diff_devnull "$at_stdout" || at_failed=:
3922at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:234"
3923$at_failed && at_fn_log_failure
3924$at_traceon; }
3925
3926
3927cat >sub/copy/PROC.cpy <<'_ATEOF'
3928
3929        DISPLAY BLA NO ADVANCING.
3930_ATEOF
3931
3932
3933{ set +x
3934$as_echo "$at_srcdir/used_binaries.at:240: \$COBC -I sub/copy prog.cob -o prog.c"
3935at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.cob -o prog.c" "used_binaries.at:240"
3936( $at_check_trace; $COBC -I sub/copy prog.cob -o prog.c
3937) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3938at_status=$? at_failed=false
3939$at_check_filter
3940at_fn_diff_devnull "$at_stderr" || at_failed=:
3941at_fn_diff_devnull "$at_stdout" || at_failed=:
3942at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:240"
3943$at_failed && at_fn_log_failure
3944$at_traceon; }
3945
3946{ set +x
3947$as_echo "$at_srcdir/used_binaries.at:241: \$COBC -I sub/copy prog.c -o prog.\$COB_OBJECT_EXT"
3948at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.c -o prog.$COB_OBJECT_EXT" "used_binaries.at:241"
3949( $at_check_trace; $COBC -I sub/copy prog.c -o prog.$COB_OBJECT_EXT
3950) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3951at_status=$? at_failed=false
3952$at_check_filter
3953at_fn_diff_devnull "$at_stderr" || at_failed=:
3954at_fn_diff_devnull "$at_stdout" || at_failed=:
3955at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:241"
3956$at_failed && at_fn_log_failure
3957$at_traceon; }
3958
3959{ set +x
3960$as_echo "$at_srcdir/used_binaries.at:242: \$COBC -I sub/copy prog.\$COB_OBJECT_EXT -o prog"
3961at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.$COB_OBJECT_EXT -o prog" "used_binaries.at:242"
3962( $at_check_trace; $COBC -I sub/copy prog.$COB_OBJECT_EXT -o prog
3963) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3964at_status=$? at_failed=false
3965$at_check_filter
3966at_fn_diff_devnull "$at_stderr" || at_failed=:
3967at_fn_diff_devnull "$at_stdout" || at_failed=:
3968at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:242"
3969$at_failed && at_fn_log_failure
3970$at_traceon; }
3971
3972{ set +x
3973$as_echo "$at_srcdir/used_binaries.at:243: \$COBCRUN prog"
3974at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:243"
3975( $at_check_trace; $COBCRUN prog
3976) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3977at_status=$? at_failed=false
3978$at_check_filter
3979at_fn_diff_devnull "$at_stderr" || at_failed=:
3980echo >>"$at_stdout"; $as_echo "bluBb" | \
3981  $at_diff - "$at_stdout" || at_failed=:
3982at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:243"
3983$at_failed && at_fn_log_failure
3984$at_traceon; }
3985
3986{ set +x
3987$as_echo "$at_srcdir/used_binaries.at:244: \$COBC -I sub/copy -x prog.cob -o prog.c"
3988at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.cob -o prog.c" "used_binaries.at:244"
3989( $at_check_trace; $COBC -I sub/copy -x prog.cob -o prog.c
3990) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3991at_status=$? at_failed=false
3992$at_check_filter
3993at_fn_diff_devnull "$at_stderr" || at_failed=:
3994at_fn_diff_devnull "$at_stdout" || at_failed=:
3995at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:244"
3996$at_failed && at_fn_log_failure
3997$at_traceon; }
3998
3999{ set +x
4000$as_echo "$at_srcdir/used_binaries.at:245: \$COBC -I sub/copy -x prog.c -o prog.\$COB_OBJECT_EXT"
4001at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.c -o prog.$COB_OBJECT_EXT" "used_binaries.at:245"
4002( $at_check_trace; $COBC -I sub/copy -x prog.c -o prog.$COB_OBJECT_EXT
4003) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4004at_status=$? at_failed=false
4005$at_check_filter
4006at_fn_diff_devnull "$at_stderr" || at_failed=:
4007at_fn_diff_devnull "$at_stdout" || at_failed=:
4008at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:245"
4009$at_failed && at_fn_log_failure
4010$at_traceon; }
4011
4012{ set +x
4013$as_echo "$at_srcdir/used_binaries.at:246: \$COBC -I sub/copy -x prog.\$COB_OBJECT_EXT -o progo\$COB_EXE_EXT"
4014at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.$COB_OBJECT_EXT -o progo$COB_EXE_EXT" "used_binaries.at:246"
4015( $at_check_trace; $COBC -I sub/copy -x prog.$COB_OBJECT_EXT -o progo$COB_EXE_EXT
4016) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4017at_status=$? at_failed=false
4018$at_check_filter
4019at_fn_diff_devnull "$at_stderr" || at_failed=:
4020at_fn_diff_devnull "$at_stdout" || at_failed=:
4021at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:246"
4022$at_failed && at_fn_log_failure
4023$at_traceon; }
4024
4025{ set +x
4026$as_echo "$at_srcdir/used_binaries.at:247: \$COBCRUN_DIRECT ./progo"
4027at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progo" "used_binaries.at:247"
4028( $at_check_trace; $COBCRUN_DIRECT ./progo
4029) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4030at_status=$? at_failed=false
4031$at_check_filter
4032at_fn_diff_devnull "$at_stderr" || at_failed=:
4033echo >>"$at_stdout"; $as_echo "bluBb" | \
4034  $at_diff - "$at_stdout" || at_failed=:
4035at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:247"
4036$at_failed && at_fn_log_failure
4037$at_traceon; }
4038
4039# making the extension explicit here to not let case-insensitive file-systems catch a .CPY...
4040{ set +x
4041$as_echo "$at_srcdir/used_binaries.at:249: \$COBC -I sub/copy prog.cob -ext=cpy -o prog.i"
4042at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.cob -ext=cpy -o prog.i" "used_binaries.at:249"
4043( $at_check_trace; $COBC -I sub/copy prog.cob -ext=cpy -o prog.i
4044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4045at_status=$? at_failed=false
4046$at_check_filter
4047at_fn_diff_devnull "$at_stderr" || at_failed=:
4048at_fn_diff_devnull "$at_stdout" || at_failed=:
4049at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:249"
4050$at_failed && at_fn_log_failure
4051$at_traceon; }
4052
4053{ set +x
4054$as_echo "$at_srcdir/used_binaries.at:250: \$COBC -x prog.i -o prog\$COB_EXE_EXT"
4055at_fn_check_prepare_dynamic "$COBC -x prog.i -o prog$COB_EXE_EXT" "used_binaries.at:250"
4056( $at_check_trace; $COBC -x prog.i -o prog$COB_EXE_EXT
4057) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4058at_status=$? at_failed=false
4059$at_check_filter
4060at_fn_diff_devnull "$at_stderr" || at_failed=:
4061at_fn_diff_devnull "$at_stdout" || at_failed=:
4062at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:250"
4063$at_failed && at_fn_log_failure
4064$at_traceon; }
4065
4066{ set +x
4067$as_echo "$at_srcdir/used_binaries.at:251: \$COBCRUN_DIRECT ./prog\$COB_EXE_EXT"
4068at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog$COB_EXE_EXT" "used_binaries.at:251"
4069( $at_check_trace; $COBCRUN_DIRECT ./prog$COB_EXE_EXT
4070) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4071at_status=$? at_failed=false
4072$at_check_filter
4073at_fn_diff_devnull "$at_stderr" || at_failed=:
4074echo >>"$at_stdout"; $as_echo "bluBb" | \
4075  $at_diff - "$at_stdout" || at_failed=:
4076at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:251"
4077$at_failed && at_fn_log_failure
4078$at_traceon; }
4079
4080{ set +x
4081$as_echo "$at_srcdir/used_binaries.at:252: \$COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps"
4082at_fn_check_prepare_dynamic "$COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps" "used_binaries.at:252"
4083( $at_check_trace; $COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps
4084) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4085at_status=$? at_failed=false
4086$at_check_filter
4087at_fn_diff_devnull "$at_stderr" || at_failed=:
4088at_fn_diff_devnull "$at_stdout" || at_failed=:
4089at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:252"
4090$at_failed && at_fn_log_failure
4091$at_traceon; }
4092
4093{ set +x
4094$as_echo "$at_srcdir/used_binaries.at:253: \$GREP 'prog.i'   prog.c"
4095at_fn_check_prepare_dynamic "$GREP 'prog.i'   prog.c" "used_binaries.at:253"
4096( $at_check_trace; $GREP 'prog.i'   prog.c
4097) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4098at_status=$? at_failed=false
4099$at_check_filter
4100at_fn_diff_devnull "$at_stderr" || at_failed=:
4101echo stdout:; cat "$at_stdout"
4102at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:253"
4103$at_failed && at_fn_log_failure
4104$at_traceon; }
4105
4106{ set +x
4107$as_echo "$at_srcdir/used_binaries.at:254: \$GREP 'prog.i'   prog.c | \$GREP '#line'"
4108at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:254"
4109( $at_check_trace; $GREP 'prog.i'   prog.c | $GREP '#line'
4110) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4111at_status=$? at_failed=false
4112$at_check_filter
4113echo stderr:; cat "$at_stderr"
4114echo stdout:; cat "$at_stdout"
4115at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:254"
4116$at_failed && at_fn_log_failure
4117$at_traceon; }
4118
4119{ set +x
4120$as_echo "$at_srcdir/used_binaries.at:255: \$GREP 'prog.cob' prog.c | \$GREP '#line'"
4121at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:255"
4122( $at_check_trace; $GREP 'prog.cob' prog.c | $GREP '#line'
4123) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4124at_status=$? at_failed=false
4125$at_check_filter
4126at_fn_diff_devnull "$at_stderr" || at_failed=:
4127echo stdout:; cat "$at_stdout"
4128at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:255"
4129$at_failed && at_fn_log_failure
4130$at_traceon; }
4131
4132{ set +x
4133$as_echo "$at_srcdir/used_binaries.at:256: \$GREP 'PROC.cpy' prog.c | \$GREP '#line'"
4134at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:256"
4135( $at_check_trace; $GREP 'PROC.cpy' prog.c | $GREP '#line'
4136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4137at_status=$? at_failed=false
4138$at_check_filter
4139at_fn_diff_devnull "$at_stderr" || at_failed=:
4140echo stdout:; cat "$at_stdout"
4141at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:256"
4142$at_failed && at_fn_log_failure
4143$at_traceon; }
4144
4145{ set +x
4146$as_echo "$at_srcdir/used_binaries.at:257: \$GREP 'ENTRY_PROG:'        prog.c"
4147at_fn_check_prepare_dynamic "$GREP 'ENTRY_PROG:'        prog.c" "used_binaries.at:257"
4148( $at_check_trace; $GREP 'ENTRY_PROG:'        prog.c
4149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4150at_status=$? at_failed=false
4151$at_check_filter
4152at_fn_diff_devnull "$at_stderr" || at_failed=:
4153echo stdout:; cat "$at_stdout"
4154at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:257"
4155$at_failed && at_fn_log_failure
4156$at_traceon; }
4157
4158{ set +x
4159$as_echo "$at_srcdir/used_binaries.at:258: \$GREP 'SECTION_END__PROC:' prog.c"
4160at_fn_check_prepare_dynamic "$GREP 'SECTION_END__PROC:' prog.c" "used_binaries.at:258"
4161( $at_check_trace; $GREP 'SECTION_END__PROC:' prog.c
4162) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4163at_status=$? at_failed=false
4164$at_check_filter
4165at_fn_diff_devnull "$at_stderr" || at_failed=:
4166echo stdout:; cat "$at_stdout"
4167at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:258"
4168$at_failed && at_fn_log_failure
4169$at_traceon; }
4170
4171{ set +x
4172$as_echo "$at_srcdir/used_binaries.at:259: \$COBCRUN_DIRECT ./prog"
4173at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:259"
4174( $at_check_trace; $COBCRUN_DIRECT ./prog
4175) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4176at_status=$? at_failed=false
4177$at_check_filter
4178at_fn_diff_devnull "$at_stderr" || at_failed=:
4179echo >>"$at_stdout"; $as_echo "bluBb" | \
4180  $at_diff - "$at_stdout" || at_failed=:
4181at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:259"
4182$at_failed && at_fn_log_failure
4183$at_traceon; }
4184
4185  set +x
4186  $at_times_p && times >"$at_times_file"
4187) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4188read at_status <"$at_status_file"
4189#AT_STOP_4
4190#AT_START_5
4191at_fn_group_banner 5 'used_binaries.at:263' \
4192  "compiler outputs (path specified)" "              " 1
4193at_xfail=no
4194(
4195  $as_echo "5. $at_setup_line: testing $at_desc ..."
4196  $at_traceon
4197
4198
4199
4200cat >prog.cob <<'_ATEOF'
4201
4202        IDENTIFICATION DIVISION.
4203        PROGRAM-ID. prog.
4204        DATA DIVISION.
4205        WORKING-STORAGE SECTION.
4206        01 BLA PIC X(5) VALUE 'bluBb'.
4207        PROCEDURE DIVISION.
4208        DISPLAY BLA NO ADVANCING END-DISPLAY
4209        STOP RUN.
4210_ATEOF
4211
4212
4213{ set +x
4214$as_echo "$at_srcdir/used_binaries.at:277: mkdir -p sub"
4215at_fn_check_prepare_trace "used_binaries.at:277"
4216( $at_check_trace; mkdir -p sub
4217) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4218at_status=$? at_failed=false
4219$at_check_filter
4220at_fn_diff_devnull "$at_stderr" || at_failed=:
4221at_fn_diff_devnull "$at_stdout" || at_failed=:
4222at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:277"
4223$at_failed && at_fn_log_failure
4224$at_traceon; }
4225
4226{ set +x
4227$as_echo "$at_srcdir/used_binaries.at:278: \$COBC prog.cob -o sub/prog.c"
4228at_fn_check_prepare_dynamic "$COBC prog.cob -o sub/prog.c" "used_binaries.at:278"
4229( $at_check_trace; $COBC prog.cob -o sub/prog.c
4230) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4231at_status=$? at_failed=false
4232$at_check_filter
4233at_fn_diff_devnull "$at_stderr" || at_failed=:
4234at_fn_diff_devnull "$at_stdout" || at_failed=:
4235at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:278"
4236$at_failed && at_fn_log_failure
4237$at_traceon; }
4238
4239{ set +x
4240$as_echo "$at_srcdir/used_binaries.at:279: \$COBC \$(_return_path \"sub/prog.c\") -o \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\")"
4241at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:279"
4242( $at_check_trace; $COBC $(_return_path "sub/prog.c") -o $(_return_path "sub/prog.$COB_OBJECT_EXT")
4243) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4244at_status=$? at_failed=false
4245$at_check_filter
4246at_fn_diff_devnull "$at_stderr" || at_failed=:
4247at_fn_diff_devnull "$at_stdout" || at_failed=:
4248at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:279"
4249$at_failed && at_fn_log_failure
4250$at_traceon; }
4251
4252{ set +x
4253$as_echo "$at_srcdir/used_binaries.at:280: \$COBC \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\") -o \$(_return_path \"sub/prog\")"
4254at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:280"
4255( $at_check_trace; $COBC $(_return_path "sub/prog.$COB_OBJECT_EXT") -o $(_return_path "sub/prog")
4256) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4257at_status=$? at_failed=false
4258$at_check_filter
4259at_fn_diff_devnull "$at_stderr" || at_failed=:
4260at_fn_diff_devnull "$at_stdout" || at_failed=:
4261at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:280"
4262$at_failed && at_fn_log_failure
4263$at_traceon; }
4264
4265{ set +x
4266$as_echo "$at_srcdir/used_binaries.at:281: \$COBCRUN -M \$(_return_path \"sub/\") prog"
4267at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:281"
4268( $at_check_trace; $COBCRUN -M $(_return_path "sub/") prog
4269) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4270at_status=$? at_failed=false
4271$at_check_filter
4272at_fn_diff_devnull "$at_stderr" || at_failed=:
4273echo >>"$at_stdout"; $as_echo "bluBb" | \
4274  $at_diff - "$at_stdout" || at_failed=:
4275at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:281"
4276$at_failed && at_fn_log_failure
4277$at_traceon; }
4278
4279{ set +x
4280$as_echo "$at_srcdir/used_binaries.at:282: \$COBC -x prog.cob -o \$(_return_path \"sub/prog.c\")"
4281at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:282"
4282( $at_check_trace; $COBC -x prog.cob -o $(_return_path "sub/prog.c")
4283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4284at_status=$? at_failed=false
4285$at_check_filter
4286at_fn_diff_devnull "$at_stderr" || at_failed=:
4287at_fn_diff_devnull "$at_stdout" || at_failed=:
4288at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:282"
4289$at_failed && at_fn_log_failure
4290$at_traceon; }
4291
4292{ set +x
4293$as_echo "$at_srcdir/used_binaries.at:283: \$COBC -x \$(_return_path \"sub/prog.c\") -o \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\")"
4294at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:283"
4295( $at_check_trace; $COBC -x $(_return_path "sub/prog.c") -o $(_return_path "sub/prog.$COB_OBJECT_EXT")
4296) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4297at_status=$? at_failed=false
4298$at_check_filter
4299at_fn_diff_devnull "$at_stderr" || at_failed=:
4300at_fn_diff_devnull "$at_stdout" || at_failed=:
4301at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:283"
4302$at_failed && at_fn_log_failure
4303$at_traceon; }
4304
4305{ set +x
4306$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\")"
4307at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:284"
4308( $at_check_trace; $COBC -x $(_return_path "sub/prog.$COB_OBJECT_EXT") -o $(_return_path "sub/progo$COB_EXE_EXT")
4309) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4310at_status=$? at_failed=false
4311$at_check_filter
4312at_fn_diff_devnull "$at_stderr" || at_failed=:
4313at_fn_diff_devnull "$at_stdout" || at_failed=:
4314at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:284"
4315$at_failed && at_fn_log_failure
4316$at_traceon; }
4317
4318{ set +x
4319$as_echo "$at_srcdir/used_binaries.at:285: \$COBCRUN_DIRECT ./sub/progo"
4320at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/progo" "used_binaries.at:285"
4321( $at_check_trace; $COBCRUN_DIRECT ./sub/progo
4322) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4323at_status=$? at_failed=false
4324$at_check_filter
4325at_fn_diff_devnull "$at_stderr" || at_failed=:
4326echo >>"$at_stdout"; $as_echo "bluBb" | \
4327  $at_diff - "$at_stdout" || at_failed=:
4328at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:285"
4329$at_failed && at_fn_log_failure
4330$at_traceon; }
4331
4332{ set +x
4333$as_echo "$at_srcdir/used_binaries.at:286: \$COBC prog.cob -o \$(_return_path \"sub/prog.i\")"
4334at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:286"
4335( $at_check_trace; $COBC prog.cob -o $(_return_path "sub/prog.i")
4336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4337at_status=$? at_failed=false
4338$at_check_filter
4339at_fn_diff_devnull "$at_stderr" || at_failed=:
4340at_fn_diff_devnull "$at_stdout" || at_failed=:
4341at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:286"
4342$at_failed && at_fn_log_failure
4343$at_traceon; }
4344
4345{ set +x
4346$as_echo "$at_srcdir/used_binaries.at:287: \$COBC -x sub/prog.i -o \$(_return_path \"sub/prog\$COB_EXE_EXT\")"
4347at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:287"
4348( $at_check_trace; $COBC -x sub/prog.i -o $(_return_path "sub/prog$COB_EXE_EXT")
4349) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4350at_status=$? at_failed=false
4351$at_check_filter
4352at_fn_diff_devnull "$at_stderr" || at_failed=:
4353at_fn_diff_devnull "$at_stdout" || at_failed=:
4354at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:287"
4355$at_failed && at_fn_log_failure
4356$at_traceon; }
4357
4358{ set +x
4359$as_echo "$at_srcdir/used_binaries.at:288: \$COBCRUN_DIRECT ./sub/prog"
4360at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/prog" "used_binaries.at:288"
4361( $at_check_trace; $COBCRUN_DIRECT ./sub/prog
4362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4363at_status=$? at_failed=false
4364$at_check_filter
4365at_fn_diff_devnull "$at_stderr" || at_failed=:
4366echo >>"$at_stdout"; $as_echo "bluBb" | \
4367  $at_diff - "$at_stdout" || at_failed=:
4368at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:288"
4369$at_failed && at_fn_log_failure
4370$at_traceon; }
4371
4372  set +x
4373  $at_times_p && times >"$at_times_file"
4374) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4375read at_status <"$at_status_file"
4376#AT_STOP_5
4377#AT_START_6
4378at_fn_group_banner 6 'used_binaries.at:292' \
4379  "compiler outputs (assembler)" "                   " 1
4380at_xfail=no
4381(
4382  $as_echo "6. $at_setup_line: testing $at_desc ..."
4383  $at_traceon
4384
4385
4386
4387cat >prog.cob <<'_ATEOF'
4388
4389        IDENTIFICATION DIVISION.
4390        PROGRAM-ID. prog.
4391        DATA DIVISION.
4392        WORKING-STORAGE SECTION.
4393        01 BLA PIC X(5) VALUE 'bluBb'.
4394        PROCEDURE DIVISION.
4395        DISPLAY BLA NO ADVANCING END-DISPLAY
4396        STOP RUN.
4397_ATEOF
4398
4399
4400{ set +x
4401$as_echo "$at_srcdir/used_binaries.at:306: \$COBC -v -S prog.cob"
4402at_fn_check_prepare_dynamic "$COBC -v -S prog.cob" "used_binaries.at:306"
4403( $at_check_trace; $COBC -v -S prog.cob
4404) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4405at_status=$? at_failed=false
4406$at_check_filter
4407echo stderr:; cat "$at_stderr"
4408echo stdout:; cat "$at_stdout"
4409at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:306"
4410$at_failed && at_fn_log_failure
4411$at_traceon; }
4412
4413{ set +x
4414$as_echo "$at_srcdir/used_binaries.at:307: test -f prog.s"
4415at_fn_check_prepare_trace "used_binaries.at:307"
4416( $at_check_trace; test -f prog.s
4417) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4418at_status=$? at_failed=false
4419$at_check_filter
4420at_fn_diff_devnull "$at_stderr" || at_failed=:
4421at_fn_diff_devnull "$at_stdout" || at_failed=:
4422at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
4423if $at_failed; then :
4424  # Previous test "failed" --> prog.s not available --> likely a VS build
4425# only check for file as cl.exe cannot create executables from self-created
4426# assembler sources
4427{ set +x
4428$as_echo "$at_srcdir/used_binaries.at:307: test -f prog.asm"
4429at_fn_check_prepare_trace "used_binaries.at:307"
4430( $at_check_trace; test -f prog.asm
4431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4432at_status=$? at_failed=false
4433$at_check_filter
4434at_fn_diff_devnull "$at_stderr" || at_failed=:
4435at_fn_diff_devnull "$at_stdout" || at_failed=:
4436at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
4437$at_failed && at_fn_log_failure
4438$at_traceon; }
4439
4440else
4441  # Previous test "passed" --> prog.s is available, test compilation and run
4442{ set +x
4443$as_echo "$at_srcdir/used_binaries.at:307: \$COBC -v prog.s"
4444at_fn_check_prepare_dynamic "$COBC -v prog.s" "used_binaries.at:307"
4445( $at_check_trace; $COBC -v prog.s
4446) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4447at_status=$? at_failed=false
4448$at_check_filter
4449echo stderr:; cat "$at_stderr"
4450echo stdout:; cat "$at_stdout"
4451at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
4452$at_failed && at_fn_log_failure
4453$at_traceon; }
4454
4455 { set +x
4456$as_echo "$at_srcdir/used_binaries.at:307: \$COBCRUN prog"
4457at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:307"
4458( $at_check_trace; $COBCRUN prog
4459) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4460at_status=$? at_failed=false
4461$at_check_filter
4462at_fn_diff_devnull "$at_stderr" || at_failed=:
4463echo >>"$at_stdout"; $as_echo "bluBb" | \
4464  $at_diff - "$at_stdout" || at_failed=:
4465at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
4466$at_failed && at_fn_log_failure
4467$at_traceon; }
4468
4469fi
4470$at_failed && at_fn_log_failure
4471$at_traceon; }
4472
4473{ set +x
4474$as_echo "$at_srcdir/used_binaries.at:315: \$COBC -v -x -S prog.cob"
4475at_fn_check_prepare_dynamic "$COBC -v -x -S prog.cob" "used_binaries.at:315"
4476( $at_check_trace; $COBC -v -x -S prog.cob
4477) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4478at_status=$? at_failed=false
4479$at_check_filter
4480echo stderr:; cat "$at_stderr"
4481echo stdout:; cat "$at_stdout"
4482at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:315"
4483$at_failed && at_fn_log_failure
4484$at_traceon; }
4485
4486{ set +x
4487$as_echo "$at_srcdir/used_binaries.at:316: test -f prog.s"
4488at_fn_check_prepare_trace "used_binaries.at:316"
4489( $at_check_trace; test -f prog.s
4490) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4491at_status=$? at_failed=false
4492$at_check_filter
4493at_fn_diff_devnull "$at_stderr" || at_failed=:
4494at_fn_diff_devnull "$at_stdout" || at_failed=:
4495at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
4496if $at_failed; then :
4497  # Previous test "failed" --> prog.s not available --> likely a VS build
4498# only check for file as cl.exe cannot create executables from self-created
4499# assembler sources
4500{ set +x
4501$as_echo "$at_srcdir/used_binaries.at:316: test -f prog.asm"
4502at_fn_check_prepare_trace "used_binaries.at:316"
4503( $at_check_trace; test -f prog.asm
4504) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4505at_status=$? at_failed=false
4506$at_check_filter
4507at_fn_diff_devnull "$at_stderr" || at_failed=:
4508at_fn_diff_devnull "$at_stdout" || at_failed=:
4509at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
4510$at_failed && at_fn_log_failure
4511$at_traceon; }
4512
4513else
4514  # Previous test "passed" --> prog.s is available, test compilation and run
4515{ set +x
4516$as_echo "$at_srcdir/used_binaries.at:316: \$COBC -v -x prog.s"
4517at_fn_check_prepare_dynamic "$COBC -v -x prog.s" "used_binaries.at:316"
4518( $at_check_trace; $COBC -v -x prog.s
4519) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4520at_status=$? at_failed=false
4521$at_check_filter
4522echo stderr:; cat "$at_stderr"
4523echo stdout:; cat "$at_stdout"
4524at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
4525$at_failed && at_fn_log_failure
4526$at_traceon; }
4527
4528 { set +x
4529$as_echo "$at_srcdir/used_binaries.at:316: \$COBCRUN_DIRECT ./prog"
4530at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:316"
4531( $at_check_trace; $COBCRUN_DIRECT ./prog
4532) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4533at_status=$? at_failed=false
4534$at_check_filter
4535at_fn_diff_devnull "$at_stderr" || at_failed=:
4536echo >>"$at_stdout"; $as_echo "bluBb" | \
4537  $at_diff - "$at_stdout" || at_failed=:
4538at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
4539$at_failed && at_fn_log_failure
4540$at_traceon; }
4541
4542fi
4543$at_failed && at_fn_log_failure
4544$at_traceon; }
4545
4546  set +x
4547  $at_times_p && times >"$at_times_file"
4548) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4549read at_status <"$at_status_file"
4550#AT_STOP_6
4551#AT_START_7
4552at_fn_group_banner 7 'used_binaries.at:327' \
4553  "source file not found" "                          " 1
4554at_xfail=no
4555(
4556  $as_echo "7. $at_setup_line: testing $at_desc ..."
4557  $at_traceon
4558
4559
4560
4561{ set +x
4562$as_echo "$at_srcdir/used_binaries.at:330: \$COMPILE_ONLY prog.cob"
4563at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "used_binaries.at:330"
4564( $at_check_trace; $COMPILE_ONLY prog.cob
4565) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4566at_status=$? at_failed=false
4567$at_check_filter
4568echo >>"$at_stderr"; $as_echo "cobc: prog.cob: No such file or directory
4569" | \
4570  $at_diff - "$at_stderr" || at_failed=:
4571at_fn_diff_devnull "$at_stdout" || at_failed=:
4572at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:330"
4573$at_failed && at_fn_log_failure
4574$at_traceon; }
4575
4576
4577  set +x
4578  $at_times_p && times >"$at_times_file"
4579) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4580read at_status <"$at_status_file"
4581#AT_STOP_7
4582#AT_START_8
4583at_fn_group_banner 8 'used_binaries.at:337' \
4584  "temporary path invalid" "                         " 1
4585at_xfail=no
4586(
4587  $as_echo "8. $at_setup_line: testing $at_desc ..."
4588  $at_traceon
4589
4590
4591
4592# Note: may be either removed completely as there was a report about
4593#       this test "failing" - or skipped as this very often fails for
4594#       WIN32 builds
4595
4596cat >prog.cob <<'_ATEOF'
4597
4598       IDENTIFICATION   DIVISION.
4599       PROGRAM-ID.      prog.
4600       PROCEDURE        DIVISION.
4601           DISPLAY "OK" NO ADVANCING
4602           END-DISPLAY.
4603           EXIT PROGRAM.
4604_ATEOF
4605
4606
4607{ set +x
4608$as_echo "$at_srcdir/used_binaries.at:353: TMPDIR=\"\" TMP=\"notthere\" TEMP=\"\" \$COMPILE prog.cob"
4609at_fn_check_prepare_dynamic "TMPDIR=\"\" TMP=\"notthere\" TEMP=\"\" $COMPILE prog.cob" "used_binaries.at:353"
4610( $at_check_trace; TMPDIR="" TMP="notthere" TEMP="" $COMPILE prog.cob
4611) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4612at_status=$? at_failed=false
4613$at_check_filter
4614echo >>"$at_stderr"; $as_echo "libcob: warning: Temporary directory TMP is invalid, adjust TMPDIR!
4615" | \
4616  $at_diff - "$at_stderr" || at_failed=:
4617at_fn_diff_devnull "$at_stdout" || at_failed=:
4618at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:353"
4619$at_failed && at_fn_log_failure
4620$at_traceon; }
4621
4622{ set +x
4623$as_echo "$at_srcdir/used_binaries.at:356: \$COBCRUN_DIRECT ./prog"
4624at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:356"
4625( $at_check_trace; $COBCRUN_DIRECT ./prog
4626) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4627at_status=$? at_failed=false
4628$at_check_filter
4629at_fn_diff_devnull "$at_stderr" || at_failed=:
4630echo >>"$at_stdout"; $as_echo "OK" | \
4631  $at_diff - "$at_stdout" || at_failed=:
4632at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:356"
4633$at_failed && at_fn_log_failure
4634$at_traceon; }
4635
4636{ set +x
4637$as_echo "$at_srcdir/used_binaries.at:357: TMPDIR=\"\" TMP=\"\" TEMP=\"./prog.cob\" \$COMPILE prog.cob"
4638at_fn_check_prepare_dynamic "TMPDIR=\"\" TMP=\"\" TEMP=\"./prog.cob\" $COMPILE prog.cob" "used_binaries.at:357"
4639( $at_check_trace; TMPDIR="" TMP="" TEMP="./prog.cob" $COMPILE prog.cob
4640) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4641at_status=$? at_failed=false
4642$at_check_filter
4643echo >>"$at_stderr"; $as_echo "libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
4644" | \
4645  $at_diff - "$at_stderr" || at_failed=:
4646at_fn_diff_devnull "$at_stdout" || at_failed=:
4647at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:357"
4648$at_failed && at_fn_log_failure
4649$at_traceon; }
4650
4651# TMPDIR is only checked when actually needed which is currently only the case
4652# for SORT
4653#AT_CHECK([TMPDIR="./prog.cob" $COBCRUN_DIRECT ./prog], [0], [OK],
4654#[libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
4655#])
4656#AT_CHECK([COB_DISABLE_WARNINGS=1 TMPDIR="./prog.cob" $COBCRUN_DIRECT ./prog], [0], [OK],
4657#[libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
4658#])
4659
4660  set +x
4661  $at_times_p && times >"$at_times_file"
4662) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4663read at_status <"$at_status_file"
4664#AT_STOP_8
4665#AT_START_9
4666at_fn_group_banner 9 'used_binaries.at:372' \
4667  "use of full path for cobc" "                      " 1
4668at_xfail=no
4669(
4670  $as_echo "9. $at_setup_line: testing $at_desc ..."
4671  $at_traceon
4672
4673
4674
4675cat >prog.cob <<'_ATEOF'
4676
4677       IDENTIFICATION   DIVISION.
4678       PROGRAM-ID.      prog.
4679       PROCEDURE        DIVISION.
4680           DISPLAY "OK" NO ADVANCING
4681           END-DISPLAY.
4682           EXIT PROGRAM.
4683_ATEOF
4684
4685
4686{ set +x
4687$as_echo "$at_srcdir/used_binaries.at:384: \$COMPILE \"\$(_return_path \"\$(pwd)/prog.cob\")\""
4688at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:384"
4689( $at_check_trace; $COMPILE "$(_return_path "$(pwd)/prog.cob")"
4690) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4691at_status=$? at_failed=false
4692$at_check_filter
4693at_fn_diff_devnull "$at_stderr" || at_failed=:
4694at_fn_diff_devnull "$at_stdout" || at_failed=:
4695at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:384"
4696$at_failed && at_fn_log_failure
4697$at_traceon; }
4698
4699{ set +x
4700$as_echo "$at_srcdir/used_binaries.at:385: \$COBCRUN_DIRECT ./prog"
4701at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:385"
4702( $at_check_trace; $COBCRUN_DIRECT ./prog
4703) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4704at_status=$? at_failed=false
4705$at_check_filter
4706at_fn_diff_devnull "$at_stderr" || at_failed=:
4707echo >>"$at_stdout"; $as_echo "OK" | \
4708  $at_diff - "$at_stdout" || at_failed=:
4709at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:385"
4710$at_failed && at_fn_log_failure
4711$at_traceon; }
4712
4713
4714  set +x
4715  $at_times_p && times >"$at_times_file"
4716) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4717read at_status <"$at_status_file"
4718#AT_STOP_9
4719#AT_START_10
4720at_fn_group_banner 10 'used_binaries.at:390' \
4721  "C Compiler optimizations" "                       " 1
4722at_xfail=no
4723(
4724  $as_echo "10. $at_setup_line: testing $at_desc ..."
4725  $at_traceon
4726
4727
4728
4729cat >prog.cob <<'_ATEOF'
4730
4731       IDENTIFICATION   DIVISION.
4732       PROGRAM-ID.      prog.
4733       PROCEDURE        DIVISION.
4734           DISPLAY "OK" NO ADVANCING
4735           END-DISPLAY.
4736           EXIT PROGRAM.
4737_ATEOF
4738
4739
4740{ set +x
4741$as_echo "$at_srcdir/used_binaries.at:402: \$COMPILE -v -O  -o prog  prog.cob"
4742at_fn_check_prepare_dynamic "$COMPILE -v -O  -o prog  prog.cob" "used_binaries.at:402"
4743( $at_check_trace; $COMPILE -v -O  -o prog  prog.cob
4744) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4745at_status=$? at_failed=false
4746$at_check_filter
4747echo stderr:; cat "$at_stderr"
4748echo stdout:; cat "$at_stdout"
4749at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:402"
4750$at_failed && at_fn_log_failure
4751$at_traceon; }
4752
4753{ set +x
4754$as_echo "$at_srcdir/used_binaries.at:403: \$COBCRUN_DIRECT ./prog"
4755at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:403"
4756( $at_check_trace; $COBCRUN_DIRECT ./prog
4757) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4758at_status=$? at_failed=false
4759$at_check_filter
4760at_fn_diff_devnull "$at_stderr" || at_failed=:
4761echo >>"$at_stdout"; $as_echo "OK" | \
4762  $at_diff - "$at_stdout" || at_failed=:
4763at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:403"
4764$at_failed && at_fn_log_failure
4765$at_traceon; }
4766
4767
4768{ set +x
4769$as_echo "$at_srcdir/used_binaries.at:405: \$COMPILE -v -O2 -o prog2 prog.cob"
4770at_fn_check_prepare_dynamic "$COMPILE -v -O2 -o prog2 prog.cob" "used_binaries.at:405"
4771( $at_check_trace; $COMPILE -v -O2 -o prog2 prog.cob
4772) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4773at_status=$? at_failed=false
4774$at_check_filter
4775echo stderr:; cat "$at_stderr"
4776echo stdout:; cat "$at_stdout"
4777at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:405"
4778$at_failed && at_fn_log_failure
4779$at_traceon; }
4780
4781{ set +x
4782$as_echo "$at_srcdir/used_binaries.at:406: \$COBCRUN_DIRECT ./prog2"
4783at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "used_binaries.at:406"
4784( $at_check_trace; $COBCRUN_DIRECT ./prog2
4785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4786at_status=$? at_failed=false
4787$at_check_filter
4788at_fn_diff_devnull "$at_stderr" || at_failed=:
4789echo >>"$at_stdout"; $as_echo "OK" | \
4790  $at_diff - "$at_stdout" || at_failed=:
4791at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:406"
4792$at_failed && at_fn_log_failure
4793$at_traceon; }
4794
4795
4796{ set +x
4797$as_echo "$at_srcdir/used_binaries.at:408: \$COMPILE -v -Os -o progs prog.cob"
4798at_fn_check_prepare_dynamic "$COMPILE -v -Os -o progs prog.cob" "used_binaries.at:408"
4799( $at_check_trace; $COMPILE -v -Os -o progs prog.cob
4800) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4801at_status=$? at_failed=false
4802$at_check_filter
4803echo stderr:; cat "$at_stderr"
4804echo stdout:; cat "$at_stdout"
4805at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:408"
4806$at_failed && at_fn_log_failure
4807$at_traceon; }
4808
4809{ set +x
4810$as_echo "$at_srcdir/used_binaries.at:409: \$COBCRUN_DIRECT ./progs"
4811at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progs" "used_binaries.at:409"
4812( $at_check_trace; $COBCRUN_DIRECT ./progs
4813) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4814at_status=$? at_failed=false
4815$at_check_filter
4816at_fn_diff_devnull "$at_stderr" || at_failed=:
4817echo >>"$at_stdout"; $as_echo "OK" | \
4818  $at_diff - "$at_stdout" || at_failed=:
4819at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:409"
4820$at_failed && at_fn_log_failure
4821$at_traceon; }
4822
4823
4824{ set +x
4825$as_echo "$at_srcdir/used_binaries.at:411: \$COMPILE -v -O3 -o prog3 prog.cob"
4826at_fn_check_prepare_dynamic "$COMPILE -v -O3 -o prog3 prog.cob" "used_binaries.at:411"
4827( $at_check_trace; $COMPILE -v -O3 -o prog3 prog.cob
4828) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4829at_status=$? at_failed=false
4830$at_check_filter
4831echo stderr:; cat "$at_stderr"
4832echo stdout:; cat "$at_stdout"
4833at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:411"
4834$at_failed && at_fn_log_failure
4835$at_traceon; }
4836
4837{ set +x
4838$as_echo "$at_srcdir/used_binaries.at:412: \$COBCRUN_DIRECT ./prog3"
4839at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "used_binaries.at:412"
4840( $at_check_trace; $COBCRUN_DIRECT ./prog3
4841) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4842at_status=$? at_failed=false
4843$at_check_filter
4844at_fn_diff_devnull "$at_stderr" || at_failed=:
4845echo >>"$at_stdout"; $as_echo "OK" | \
4846  $at_diff - "$at_stdout" || at_failed=:
4847at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:412"
4848$at_failed && at_fn_log_failure
4849$at_traceon; }
4850
4851
4852{ set +x
4853$as_echo "$at_srcdir/used_binaries.at:414: \$COMPILE -v -O0  -o prog  prog.cob"
4854at_fn_check_prepare_dynamic "$COMPILE -v -O0  -o prog  prog.cob" "used_binaries.at:414"
4855( $at_check_trace; $COMPILE -v -O0  -o prog  prog.cob
4856) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4857at_status=$? at_failed=false
4858$at_check_filter
4859echo stderr:; cat "$at_stderr"
4860echo stdout:; cat "$at_stdout"
4861at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:414"
4862$at_failed && at_fn_log_failure
4863$at_traceon; }
4864
4865{ set +x
4866$as_echo "$at_srcdir/used_binaries.at:415: \$COBCRUN_DIRECT ./prog"
4867at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:415"
4868( $at_check_trace; $COBCRUN_DIRECT ./prog
4869) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4870at_status=$? at_failed=false
4871$at_check_filter
4872at_fn_diff_devnull "$at_stderr" || at_failed=:
4873echo >>"$at_stdout"; $as_echo "OK" | \
4874  $at_diff - "$at_stdout" || at_failed=:
4875at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:415"
4876$at_failed && at_fn_log_failure
4877$at_traceon; }
4878
4879
4880# last test with O2 (strips output) and output name
4881{ set +x
4882$as_echo "$at_srcdir/used_binaries.at:418: mkdir -p sub"
4883at_fn_check_prepare_trace "used_binaries.at:418"
4884( $at_check_trace; mkdir -p sub
4885) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4886at_status=$? at_failed=false
4887$at_check_filter
4888at_fn_diff_devnull "$at_stderr" || at_failed=:
4889at_fn_diff_devnull "$at_stdout" || at_failed=:
4890at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:418"
4891$at_failed && at_fn_log_failure
4892$at_traceon; }
4893
4894{ set +x
4895$as_echo "$at_srcdir/used_binaries.at:419: \$COMPILE_MODULE -v -O2 -o \$(_return_path \"sub/prog\") prog.cob"
4896at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:419"
4897( $at_check_trace; $COMPILE_MODULE -v -O2 -o $(_return_path "sub/prog") prog.cob
4898) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4899at_status=$? at_failed=false
4900$at_check_filter
4901echo stderr:; cat "$at_stderr"
4902echo stdout:; cat "$at_stdout"
4903at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:419"
4904$at_failed && at_fn_log_failure
4905$at_traceon; }
4906
4907{ set +x
4908$as_echo "$at_srcdir/used_binaries.at:420: \$COBCRUN -M sub/ prog"
4909at_fn_check_prepare_dynamic "$COBCRUN -M sub/ prog" "used_binaries.at:420"
4910( $at_check_trace; $COBCRUN -M sub/ prog
4911) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4912at_status=$? at_failed=false
4913$at_check_filter
4914at_fn_diff_devnull "$at_stderr" || at_failed=:
4915echo >>"$at_stdout"; $as_echo "OK" | \
4916  $at_diff - "$at_stdout" || at_failed=:
4917at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:420"
4918$at_failed && at_fn_log_failure
4919$at_traceon; }
4920
4921{ set +x
4922$as_echo "$at_srcdir/used_binaries.at:421: \$COMPILE -v -O2 -o \$(_return_path \"sub/prog\$COB_EXE_EXT\") prog.cob"
4923at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:421"
4924( $at_check_trace; $COMPILE -v -O2 -o $(_return_path "sub/prog$COB_EXE_EXT") prog.cob
4925) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4926at_status=$? at_failed=false
4927$at_check_filter
4928echo stderr:; cat "$at_stderr"
4929echo stdout:; cat "$at_stdout"
4930at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:421"
4931$at_failed && at_fn_log_failure
4932$at_traceon; }
4933
4934{ set +x
4935$as_echo "$at_srcdir/used_binaries.at:422: \$COBCRUN_DIRECT ./sub/prog"
4936at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/prog" "used_binaries.at:422"
4937( $at_check_trace; $COBCRUN_DIRECT ./sub/prog
4938) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4939at_status=$? at_failed=false
4940$at_check_filter
4941at_fn_diff_devnull "$at_stderr" || at_failed=:
4942echo >>"$at_stdout"; $as_echo "OK" | \
4943  $at_diff - "$at_stdout" || at_failed=:
4944at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:422"
4945$at_failed && at_fn_log_failure
4946$at_traceon; }
4947
4948
4949  set +x
4950  $at_times_p && times >"$at_times_file"
4951) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4952read at_status <"$at_status_file"
4953#AT_STOP_10
4954#AT_START_11
4955at_fn_group_banner 11 'used_binaries.at:427' \
4956  "invalid cobc option" "                            " 1
4957at_xfail=no
4958(
4959  $as_echo "11. $at_setup_line: testing $at_desc ..."
4960  $at_traceon
4961
4962
4963
4964cat >prog.cob <<'_ATEOF'
4965
4966       IDENTIFICATION   DIVISION.
4967       PROGRAM-ID.      prog.
4968_ATEOF
4969
4970
4971# normal option
4972{ set +x
4973$as_echo "$at_srcdir/used_binaries.at:436: \$COMPILE -q --thisoptiondoesntexist prog.cob"
4974at_fn_check_prepare_dynamic "$COMPILE -q --thisoptiondoesntexist prog.cob" "used_binaries.at:436"
4975( $at_check_trace; $COMPILE -q --thisoptiondoesntexist prog.cob
4976) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4977at_status=$? at_failed=false
4978$at_check_filter
4979echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '--thisoptiondoesntexist'
4980" | \
4981  $at_diff - "$at_stderr" || at_failed=:
4982at_fn_diff_devnull "$at_stdout" || at_failed=:
4983at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:436"
4984$at_failed && at_fn_log_failure
4985$at_traceon; }
4986
4987# flag
4988{ set +x
4989$as_echo "$at_srcdir/used_binaries.at:440: \$COMPILE -q -flagdoesntexist prog.cob"
4990at_fn_check_prepare_dynamic "$COMPILE -q -flagdoesntexist prog.cob" "used_binaries.at:440"
4991( $at_check_trace; $COMPILE -q -flagdoesntexist prog.cob
4992) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4993at_status=$? at_failed=false
4994$at_check_filter
4995echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '-flagdoesntexist'
4996" | \
4997  $at_diff - "$at_stderr" || at_failed=:
4998at_fn_diff_devnull "$at_stdout" || at_failed=:
4999at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:440"
5000$at_failed && at_fn_log_failure
5001$at_traceon; }
5002
5003
5004  set +x
5005  $at_times_p && times >"$at_times_file"
5006) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5007read at_status <"$at_status_file"
5008#AT_STOP_11
5009#AT_START_12
5010at_fn_group_banner 12 'used_binaries.at:447' \
5011  "cobcrun help and information" "                   " 1
5012at_xfail=no
5013(
5014  $as_echo "12. $at_setup_line: testing $at_desc ..."
5015  $at_traceon
5016
5017
5018
5019# FIXME: check at least some parts of the output by using $GREP
5020{ set +x
5021$as_echo "$at_srcdir/used_binaries.at:451: \$COBCRUN --version"
5022at_fn_check_prepare_dynamic "$COBCRUN --version" "used_binaries.at:451"
5023( $at_check_trace; $COBCRUN --version
5024) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5025at_status=$? at_failed=false
5026$at_check_filter
5027at_fn_diff_devnull "$at_stderr" || at_failed=:
5028echo stdout:; cat "$at_stdout"
5029at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:451"
5030$at_failed && at_fn_log_failure
5031$at_traceon; }
5032
5033{ set +x
5034$as_echo "$at_srcdir/used_binaries.at:452: \$COBCRUN -v --version"
5035at_fn_check_prepare_dynamic "$COBCRUN -v --version" "used_binaries.at:452"
5036( $at_check_trace; $COBCRUN -v --version
5037) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5038at_status=$? at_failed=false
5039$at_check_filter
5040at_fn_diff_devnull "$at_stderr" || at_failed=:
5041echo stdout:; cat "$at_stdout"
5042at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:452"
5043$at_failed && at_fn_log_failure
5044$at_traceon; }
5045
5046{ set +x
5047$as_echo "$at_srcdir/used_binaries.at:453: \$COBCRUN -q --version"
5048at_fn_check_prepare_dynamic "$COBCRUN -q --version" "used_binaries.at:453"
5049( $at_check_trace; $COBCRUN -q --version
5050) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5051at_status=$? at_failed=false
5052$at_check_filter
5053at_fn_diff_devnull "$at_stderr" || at_failed=:
5054echo stdout:; cat "$at_stdout"
5055at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:453"
5056$at_failed && at_fn_log_failure
5057$at_traceon; }
5058
5059{ set +x
5060$as_echo "$at_srcdir/used_binaries.at:454: \$COBCRUN --help"
5061at_fn_check_prepare_dynamic "$COBCRUN --help" "used_binaries.at:454"
5062( $at_check_trace; $COBCRUN --help
5063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5064at_status=$? at_failed=false
5065$at_check_filter
5066at_fn_diff_devnull "$at_stderr" || at_failed=:
5067echo stdout:; cat "$at_stdout"
5068at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:454"
5069$at_failed && at_fn_log_failure
5070$at_traceon; }
5071
5072{ set +x
5073$as_echo "$at_srcdir/used_binaries.at:455: \$COBCRUN --info"
5074at_fn_check_prepare_dynamic "$COBCRUN --info" "used_binaries.at:455"
5075( $at_check_trace; $COBCRUN --info
5076) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5077at_status=$? at_failed=false
5078$at_check_filter
5079at_fn_diff_devnull "$at_stderr" || at_failed=:
5080echo stdout:; cat "$at_stdout"
5081at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:455"
5082$at_failed && at_fn_log_failure
5083$at_traceon; }
5084
5085# we explicit do not want to run this here, as it initializes curses
5086# AT_CHECK([$COBCRUN -v --info], [0], [ignore], [])
5087{ set +x
5088$as_echo "$at_srcdir/used_binaries.at:458: \$COBCRUN -q --info"
5089at_fn_check_prepare_dynamic "$COBCRUN -q --info" "used_binaries.at:458"
5090( $at_check_trace; $COBCRUN -q --info
5091) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5092at_status=$? at_failed=false
5093$at_check_filter
5094at_fn_diff_devnull "$at_stderr" || at_failed=:
5095echo stdout:; cat "$at_stdout"
5096at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:458"
5097$at_failed && at_fn_log_failure
5098$at_traceon; }
5099
5100  set +x
5101  $at_times_p && times >"$at_times_file"
5102) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5103read at_status <"$at_status_file"
5104#AT_STOP_12
5105#AT_START_13
5106at_fn_group_banner 13 'used_binaries.at:462' \
5107  "cobcrun validation" "                             " 1
5108at_xfail=no
5109(
5110  $as_echo "13. $at_setup_line: testing $at_desc ..."
5111  $at_traceon
5112
5113
5114
5115cat >callee.cob <<'_ATEOF'
5116
5117       IDENTIFICATION   DIVISION.
5118       PROGRAM-ID.      callee.
5119       DATA             DIVISION.
5120       WORKING-STORAGE  SECTION.
5121       01 WRK-VAR       PIC X(5).
5122       01 EXT-VAR       PIC X(5) EXTERNAL.
5123       PROCEDURE        DIVISION.
5124           DISPLAY EXT-VAR NO ADVANCING
5125           END-DISPLAY.
5126           MOVE "World" TO EXT-VAR.
5127           EXIT PROGRAM.
5128_ATEOF
5129
5130
5131cat >caller.cob <<'_ATEOF'
5132
5133       IDENTIFICATION   DIVISION.
5134       PROGRAM-ID.      caller.
5135       DATA             DIVISION.
5136       WORKING-STORAGE  SECTION.
5137       01 EXT-VAR       PIC X(5) EXTERNAL.
5138       01 WRK-VAR       PIC X(5).
5139       PROCEDURE        DIVISION.
5140           MOVE "Hello" TO EXT-VAR.
5141           CALL "callee"
5142           END-CALL.
5143           DISPLAY EXT-VAR NO ADVANCING
5144           END-DISPLAY.
5145           STOP RUN.
5146_ATEOF
5147
5148
5149{ set +x
5150$as_echo "$at_srcdir/used_binaries.at:495: \$COMPILE_MODULE callee.cob"
5151at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:495"
5152( $at_check_trace; $COMPILE_MODULE callee.cob
5153) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5154at_status=$? at_failed=false
5155$at_check_filter
5156at_fn_diff_devnull "$at_stderr" || at_failed=:
5157at_fn_diff_devnull "$at_stdout" || at_failed=:
5158at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:495"
5159$at_failed && at_fn_log_failure
5160$at_traceon; }
5161
5162{ set +x
5163$as_echo "$at_srcdir/used_binaries.at:496: \$COMPILE_MODULE caller.cob"
5164at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:496"
5165( $at_check_trace; $COMPILE_MODULE caller.cob
5166) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5167at_status=$? at_failed=false
5168$at_check_filter
5169at_fn_diff_devnull "$at_stderr" || at_failed=:
5170at_fn_diff_devnull "$at_stdout" || at_failed=:
5171at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:496"
5172$at_failed && at_fn_log_failure
5173$at_traceon; }
5174
5175{ set +x
5176$as_echo "$at_srcdir/used_binaries.at:497: \$COBCRUN caller"
5177at_fn_check_prepare_dynamic "$COBCRUN caller" "used_binaries.at:497"
5178( $at_check_trace; $COBCRUN caller
5179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5180at_status=$? at_failed=false
5181$at_check_filter
5182at_fn_diff_devnull "$at_stderr" || at_failed=:
5183echo >>"$at_stdout"; $as_echo "HelloWorld" | \
5184  $at_diff - "$at_stdout" || at_failed=:
5185at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:497"
5186$at_failed && at_fn_log_failure
5187$at_traceon; }
5188
5189
5190  set +x
5191  $at_times_p && times >"$at_times_file"
5192) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5193read at_status <"$at_status_file"
5194#AT_STOP_13
5195#AT_START_14
5196at_fn_group_banner 14 'used_binaries.at:502' \
5197  "cobcrun -M DSO entry argument" "                  " 1
5198at_xfail=no
5199(
5200  $as_echo "14. $at_setup_line: testing $at_desc ..."
5201  $at_traceon
5202
5203
5204
5205cat >callee.cob <<'_ATEOF'
5206
5207       IDENTIFICATION   DIVISION.
5208       PROGRAM-ID.      callee.
5209       DATA             DIVISION.
5210       WORKING-STORAGE  SECTION.
5211       01 EXT-VAR       PIC X(5) EXTERNAL.
5212       PROCEDURE        DIVISION.
5213           DISPLAY EXT-VAR END-DISPLAY.
5214           MOVE "World" TO EXT-VAR.
5215           EXIT PROGRAM.
5216_ATEOF
5217
5218
5219cat >caller.cob <<'_ATEOF'
5220
5221       IDENTIFICATION   DIVISION.
5222       PROGRAM-ID.      caller.
5223       DATA             DIVISION.
5224       WORKING-STORAGE  SECTION.
5225       01 EXT-VAR       PIC X(5) EXTERNAL.
5226       PROCEDURE        DIVISION.
5227           MOVE "Hello" TO EXT-VAR.
5228           CALL "callee" END-CALL.
5229           DISPLAY EXT-VAR END-DISPLAY.
5230           STOP RUN.
5231       END PROGRAM caller.
5232
5233       IDENTIFICATION   DIVISION.
5234       PROGRAM-ID.      inside.
5235       DATA             DIVISION.
5236       WORKING-STORAGE  SECTION.
5237       01 EXT-VAR       PIC X(5) EXTERNAL.
5238       01 CLA-VAR       PIC X(5).
5239       PROCEDURE        DIVISION.
5240           MOVE "Aloha" TO EXT-VAR.
5241           CALL "callee" END-CALL.
5242           DISPLAY EXT-VAR END-DISPLAY.
5243           ACCEPT CLA-VAR FROM COMMAND-LINE END-ACCEPT.
5244           DISPLAY CLA-VAR END-DISPLAY.
5245           STOP RUN.
5246       END PROGRAM inside.
5247_ATEOF
5248
5249
5250{ set +x
5251$as_echo "$at_srcdir/used_binaries.at:546: \$COMPILE_MODULE callee.cob"
5252at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:546"
5253( $at_check_trace; $COMPILE_MODULE callee.cob
5254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5255at_status=$? at_failed=false
5256$at_check_filter
5257at_fn_diff_devnull "$at_stderr" || at_failed=:
5258at_fn_diff_devnull "$at_stdout" || at_failed=:
5259at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:546"
5260$at_failed && at_fn_log_failure
5261$at_traceon; }
5262
5263{ set +x
5264$as_echo "$at_srcdir/used_binaries.at:547: \$COMPILE_MODULE caller.cob"
5265at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:547"
5266( $at_check_trace; $COMPILE_MODULE caller.cob
5267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5268at_status=$? at_failed=false
5269$at_check_filter
5270at_fn_diff_devnull "$at_stderr" || at_failed=:
5271at_fn_diff_devnull "$at_stdout" || at_failed=:
5272at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:547"
5273$at_failed && at_fn_log_failure
5274$at_traceon; }
5275
5276{ set +x
5277$as_echo "$at_srcdir/used_binaries.at:548: \$COBCRUN -M ./caller inside again"
5278at_fn_check_prepare_dynamic "$COBCRUN -M ./caller inside again" "used_binaries.at:548"
5279( $at_check_trace; $COBCRUN -M ./caller inside again
5280) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5281at_status=$? at_failed=false
5282$at_check_filter
5283at_fn_diff_devnull "$at_stderr" || at_failed=:
5284echo >>"$at_stdout"; $as_echo "Aloha
5285World
5286again
5287" | \
5288  $at_diff - "$at_stdout" || at_failed=:
5289at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:548"
5290$at_failed && at_fn_log_failure
5291$at_traceon; }
5292
5293
5294  set +x
5295  $at_times_p && times >"$at_times_file"
5296) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5297read at_status <"$at_status_file"
5298#AT_STOP_14
5299#AT_START_15
5300at_fn_group_banner 15 'used_binaries.at:562' \
5301  "cobcrun -M directory/ default" "                  " 1
5302at_xfail=no
5303(
5304  $as_echo "15. $at_setup_line: testing $at_desc ..."
5305  $at_traceon
5306
5307
5308
5309cat >callee.cob <<'_ATEOF'
5310
5311       IDENTIFICATION   DIVISION.
5312       PROGRAM-ID.      callee.
5313       DATA             DIVISION.
5314       WORKING-STORAGE  SECTION.
5315       01 EXT-VAR       PIC X(5) EXTERNAL.
5316       PROCEDURE        DIVISION.
5317           DISPLAY EXT-VAR END-DISPLAY.
5318           MOVE "World" TO EXT-VAR.
5319           EXIT PROGRAM.
5320_ATEOF
5321
5322
5323cat >caller.cob <<'_ATEOF'
5324
5325       IDENTIFICATION   DIVISION.
5326       PROGRAM-ID.      caller.
5327       DATA             DIVISION.
5328       WORKING-STORAGE  SECTION.
5329       01 EXT-VAR       PIC X(5) EXTERNAL.
5330       PROCEDURE        DIVISION.
5331           MOVE "Hello" TO EXT-VAR.
5332           CALL "callee" END-CALL.
5333           DISPLAY EXT-VAR END-DISPLAY.
5334           STOP RUN.
5335_ATEOF
5336
5337
5338{ set +x
5339$as_echo "$at_srcdir/used_binaries.at:590: \$COMPILE_MODULE callee.cob"
5340at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:590"
5341( $at_check_trace; $COMPILE_MODULE callee.cob
5342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5343at_status=$? at_failed=false
5344$at_check_filter
5345at_fn_diff_devnull "$at_stderr" || at_failed=:
5346at_fn_diff_devnull "$at_stdout" || at_failed=:
5347at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:590"
5348$at_failed && at_fn_log_failure
5349$at_traceon; }
5350
5351{ set +x
5352$as_echo "$at_srcdir/used_binaries.at:591: \$COMPILE_MODULE caller.cob"
5353at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:591"
5354( $at_check_trace; $COMPILE_MODULE caller.cob
5355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5356at_status=$? at_failed=false
5357$at_check_filter
5358at_fn_diff_devnull "$at_stderr" || at_failed=:
5359at_fn_diff_devnull "$at_stdout" || at_failed=:
5360at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:591"
5361$at_failed && at_fn_log_failure
5362$at_traceon; }
5363
5364{ set +x
5365$as_echo "$at_srcdir/used_binaries.at:592: \$COBCRUN -M ./ caller"
5366at_fn_check_prepare_dynamic "$COBCRUN -M ./ caller" "used_binaries.at:592"
5367( $at_check_trace; $COBCRUN -M ./ caller
5368) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5369at_status=$? at_failed=false
5370$at_check_filter
5371at_fn_diff_devnull "$at_stderr" || at_failed=:
5372echo >>"$at_stdout"; $as_echo "Hello
5373World
5374" | \
5375  $at_diff - "$at_stdout" || at_failed=:
5376at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:592"
5377$at_failed && at_fn_log_failure
5378$at_traceon; }
5379
5380
5381
5382  set +x
5383  $at_times_p && times >"$at_times_file"
5384) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5385read at_status <"$at_status_file"
5386#AT_STOP_15
5387#AT_START_16
5388at_fn_group_banner 16 'used_binaries.at:601' \
5389  "cobcrun -M directory/dso alternate" "             " 1
5390at_xfail=no
5391(
5392  $as_echo "16. $at_setup_line: testing $at_desc ..."
5393  $at_traceon
5394
5395
5396
5397cat >callee.cob <<'_ATEOF'
5398
5399       IDENTIFICATION   DIVISION.
5400       PROGRAM-ID.      callee.
5401       DATA             DIVISION.
5402       WORKING-STORAGE  SECTION.
5403       01 EXT-VAR       PIC X(5) EXTERNAL.
5404       PROCEDURE        DIVISION.
5405           DISPLAY EXT-VAR END-DISPLAY.
5406           MOVE "World" TO EXT-VAR.
5407           EXIT PROGRAM.
5408_ATEOF
5409
5410
5411cat >caller.cob <<'_ATEOF'
5412
5413       IDENTIFICATION   DIVISION.
5414       PROGRAM-ID.      caller.
5415       DATA             DIVISION.
5416       WORKING-STORAGE  SECTION.
5417       01 EXT-VAR       PIC X(5) EXTERNAL.
5418       PROCEDURE        DIVISION.
5419           MOVE "Hello" TO EXT-VAR.
5420           CALL "callee" END-CALL.
5421           DISPLAY EXT-VAR END-DISPLAY.
5422           STOP RUN.
5423       END PROGRAM caller.
5424
5425       IDENTIFICATION   DIVISION.
5426       PROGRAM-ID.      inside.
5427       DATA             DIVISION.
5428       WORKING-STORAGE  SECTION.
5429       01 EXT-VAR       PIC X(5) EXTERNAL.
5430       PROCEDURE        DIVISION.
5431           MOVE "Aloha" TO EXT-VAR.
5432           CALL "callee" END-CALL.
5433           DISPLAY EXT-VAR END-DISPLAY.
5434           STOP RUN.
5435       END PROGRAM inside.
5436_ATEOF
5437
5438
5439{ set +x
5440$as_echo "$at_srcdir/used_binaries.at:642: \$COMPILE_MODULE callee.cob"
5441at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:642"
5442( $at_check_trace; $COMPILE_MODULE callee.cob
5443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5444at_status=$? at_failed=false
5445$at_check_filter
5446at_fn_diff_devnull "$at_stderr" || at_failed=:
5447at_fn_diff_devnull "$at_stdout" || at_failed=:
5448at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:642"
5449$at_failed && at_fn_log_failure
5450$at_traceon; }
5451
5452{ set +x
5453$as_echo "$at_srcdir/used_binaries.at:643: \$COMPILE_MODULE caller.cob"
5454at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:643"
5455( $at_check_trace; $COMPILE_MODULE caller.cob
5456) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5457at_status=$? at_failed=false
5458$at_check_filter
5459at_fn_diff_devnull "$at_stderr" || at_failed=:
5460at_fn_diff_devnull "$at_stdout" || at_failed=:
5461at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:643"
5462$at_failed && at_fn_log_failure
5463$at_traceon; }
5464
5465{ set +x
5466$as_echo "$at_srcdir/used_binaries.at:644: \$COBCRUN -M ./caller inside"
5467at_fn_check_prepare_dynamic "$COBCRUN -M ./caller inside" "used_binaries.at:644"
5468( $at_check_trace; $COBCRUN -M ./caller inside
5469) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5470at_status=$? at_failed=false
5471$at_check_filter
5472at_fn_diff_devnull "$at_stderr" || at_failed=:
5473echo >>"$at_stdout"; $as_echo "Aloha
5474World
5475" | \
5476  $at_diff - "$at_stdout" || at_failed=:
5477at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:644"
5478$at_failed && at_fn_log_failure
5479$at_traceon; }
5480
5481
5482  set +x
5483  $at_times_p && times >"$at_times_file"
5484) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5485read at_status <"$at_status_file"
5486#AT_STOP_16
5487#AT_START_17
5488at_fn_group_banner 17 'used_binaries.at:652' \
5489  "cobcrun -M DSO entry multiple arguments" "        " 1
5490at_xfail=no
5491(
5492  $as_echo "17. $at_setup_line: testing $at_desc ..."
5493  $at_traceon
5494
5495
5496
5497# Test that modules can be called with ARGUMENT-VALUES
5498cat >called.cob <<'_ATEOF'
5499
5500       IDENTIFICATION   DIVISION.
5501       PROGRAM-ID.      called.
5502       DATA             DIVISION.
5503       WORKING-STORAGE  SECTION.
5504       01 CLI-ARGS      PIC X(27).
5505       01 ARG-TWO       PIC X(6).
5506       PROCEDURE        DIVISION.
5507           ACCEPT CLI-ARGS FROM COMMAND-LINE END-ACCEPT.
5508           DISPLAY 2 UPON ARGUMENT-NUMBER END-DISPLAY.
5509           ACCEPT ARG-TWO FROM ARGUMENT-VALUE END-ACCEPT.
5510           DISPLAY CLI-ARGS ":" ARG-TWO END-DISPLAY.
5511           EXIT PROGRAM.
5512_ATEOF
5513
5514
5515cat >mainer.cob <<'_ATEOF'
5516
5517       IDENTIFICATION   DIVISION.
5518       PROGRAM-ID.      mainer.
5519       PROCEDURE        DIVISION.
5520           STOP RUN.
5521       END PROGRAM mainer.
5522_ATEOF
5523
5524
5525{ set +x
5526$as_echo "$at_srcdir/used_binaries.at:679: \$COBC -b \${FLAGS} mainer.cob called.cob"
5527at_fn_check_prepare_notrace 'a ${...} parameter expansion' "used_binaries.at:679"
5528( $at_check_trace; $COBC -b ${FLAGS} mainer.cob called.cob
5529) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5530at_status=$? at_failed=false
5531$at_check_filter
5532at_fn_diff_devnull "$at_stderr" || at_failed=:
5533at_fn_diff_devnull "$at_stdout" || at_failed=:
5534at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:679"
5535$at_failed && at_fn_log_failure
5536$at_traceon; }
5537
5538{ set +x
5539$as_echo "$at_srcdir/used_binaries.at:680: \$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\""
5540at_fn_check_prepare_dynamic "$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\"" "used_binaries.at:680"
5541( $at_check_trace; $COBCRUN -M ./mainer called "first argument" "second" "third"
5542) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5543at_status=$? at_failed=false
5544$at_check_filter
5545at_fn_diff_devnull "$at_stderr" || at_failed=:
5546echo >>"$at_stdout"; $as_echo "first argument second third:second
5547" | \
5548  $at_diff - "$at_stdout" || at_failed=:
5549at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:680"
5550$at_failed && at_fn_log_failure
5551$at_traceon; }
5552
5553
5554# additional test with environment configuration settings removed:
5555{ set +x
5556$as_echo "$at_srcdir/used_binaries.at:685: unset COB_PRE_LOAD COB_LIBRARY_PATH ; \\
5557   \$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\""
5558at_fn_check_prepare_notrace 'an embedded newline' "used_binaries.at:685"
5559( $at_check_trace; unset COB_PRE_LOAD COB_LIBRARY_PATH ; \
5560   $COBCRUN -M ./mainer called "first argument" "second" "third"
5561) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5562at_status=$? at_failed=false
5563$at_check_filter
5564at_fn_diff_devnull "$at_stderr" || at_failed=:
5565echo >>"$at_stdout"; $as_echo "first argument second third:second
5566" | \
5567  $at_diff - "$at_stdout" || at_failed=:
5568at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:685"
5569$at_failed && at_fn_log_failure
5570$at_traceon; }
5571
5572
5573# additional test with showing the preloaded environment
5574# FIXME: check at least some parts of the output ("configuration" and the expected output) by using $GREP
5575{ set +x
5576$as_echo "$at_srcdir/used_binaries.at:692: \$COBCRUN -M ./mainer --runtime-conf called \"first argument\" \"second\" \"third\""
5577at_fn_check_prepare_dynamic "$COBCRUN -M ./mainer --runtime-conf called \"first argument\" \"second\" \"third\"" "used_binaries.at:692"
5578( $at_check_trace; $COBCRUN -M ./mainer --runtime-conf called "first argument" "second" "third"
5579) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5580at_status=$? at_failed=false
5581$at_check_filter
5582at_fn_diff_devnull "$at_stderr" || at_failed=:
5583echo stdout:; cat "$at_stdout"
5584at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:692"
5585$at_failed && at_fn_log_failure
5586$at_traceon; }
5587
5588
5589  set +x
5590  $at_times_p && times >"$at_times_file"
5591) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5592read at_status <"$at_status_file"
5593#AT_STOP_17
5594#AT_START_18
5595at_fn_group_banner 18 'used_binaries.at:698' \
5596  "cobcrun error messages" "                         " 1
5597at_xfail=no
5598(
5599  $as_echo "18. $at_setup_line: testing $at_desc ..."
5600  $at_traceon
5601
5602
5603
5604{ set +x
5605$as_echo "$at_srcdir/used_binaries.at:701: \$COBCRUN -q"
5606at_fn_check_prepare_dynamic "$COBCRUN -q" "used_binaries.at:701"
5607( $at_check_trace; $COBCRUN -q
5608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5609at_status=$? at_failed=false
5610$at_check_filter
5611echo >>"$at_stderr"; $as_echo "cobcrun: missing PROGRAM name
5612Try 'cobcrun --help' for more information.
5613" | \
5614  $at_diff - "$at_stderr" || at_failed=:
5615at_fn_diff_devnull "$at_stdout" || at_failed=:
5616at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:701"
5617$at_failed && at_fn_log_failure
5618$at_traceon; }
5619
5620{ set +x
5621$as_echo "$at_srcdir/used_binaries.at:705: \$COBCRUN -q -prog"
5622at_fn_check_prepare_dynamic "$COBCRUN -q -prog" "used_binaries.at:705"
5623( $at_check_trace; $COBCRUN -q -prog
5624) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5625at_status=$? at_failed=false
5626$at_check_filter
5627echo >>"$at_stderr"; $as_echo "cobcrun: unrecognized option '-prog'
5628" | \
5629  $at_diff - "$at_stderr" || at_failed=:
5630at_fn_diff_devnull "$at_stdout" || at_failed=:
5631at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:705"
5632$at_failed && at_fn_log_failure
5633$at_traceon; }
5634
5635{ set +x
5636$as_echo "$at_srcdir/used_binaries.at:708: \$COBCRUN noprog"
5637at_fn_check_prepare_dynamic "$COBCRUN noprog" "used_binaries.at:708"
5638( $at_check_trace; $COBCRUN noprog
5639) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5640at_status=$? at_failed=false
5641$at_check_filter
5642echo >>"$at_stderr"; $as_echo "libcob: error: module 'noprog' not found
5643" | \
5644  $at_diff - "$at_stderr" || at_failed=:
5645at_fn_diff_devnull "$at_stdout" || at_failed=:
5646at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:708"
5647$at_failed && at_fn_log_failure
5648$at_traceon; }
5649
5650{ set +x
5651$as_echo "$at_srcdir/used_binaries.at:711: \$COBCRUN -q -M"
5652at_fn_check_prepare_dynamic "$COBCRUN -q -M" "used_binaries.at:711"
5653( $at_check_trace; $COBCRUN -q -M
5654) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5655at_status=$? at_failed=false
5656$at_check_filter
5657echo >>"$at_stderr"; $as_echo "cobcrun: option requires an argument -- 'M'
5658" | \
5659  $at_diff - "$at_stderr" || at_failed=:
5660at_fn_diff_devnull "$at_stdout" || at_failed=:
5661at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:711"
5662$at_failed && at_fn_log_failure
5663$at_traceon; }
5664
5665# FIXME - The following doesn't seem to work correct,
5666#         we expect an error about missing module name
5667#AT_CHECK([$COBCRUN -q -M noprog], [1], [], [])
5668
5669  set +x
5670  $at_times_p && times >"$at_times_file"
5671) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5672read at_status <"$at_status_file"
5673#AT_STOP_18
5674#AT_START_19
5675at_fn_group_banner 19 'used_binaries.at:721' \
5676  "run job after compilation" "                      " 1
5677at_xfail=no
5678(
5679  $as_echo "19. $at_setup_line: testing $at_desc ..."
5680  $at_traceon
5681
5682
5683
5684cat >prog.cob <<'_ATEOF'
5685
5686       IDENTIFICATION   DIVISION.
5687       PROGRAM-ID.      prog.
5688       DATA             DIVISION.
5689       WORKING-STORAGE  SECTION.
5690       PROCEDURE        DIVISION.
5691           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
5692           STOP RUN WITH NORMAL STATUS.
5693_ATEOF
5694
5695
5696{ set +x
5697$as_echo "$at_srcdir/used_binaries.at:734: \$COMPILE -jd prog.cob"
5698at_fn_check_prepare_dynamic "$COMPILE -jd prog.cob" "used_binaries.at:734"
5699( $at_check_trace; $COMPILE -jd prog.cob
5700) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5701at_status=$? at_failed=false
5702$at_check_filter
5703at_fn_diff_devnull "$at_stderr" || at_failed=:
5704echo >>"$at_stdout"; $as_echo "job" | \
5705  $at_diff - "$at_stdout" || at_failed=:
5706at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:734"
5707$at_failed && at_fn_log_failure
5708$at_traceon; }
5709
5710{ set +x
5711$as_echo "$at_srcdir/used_binaries.at:735: \$COMPILE_MODULE -jd prog.cob"
5712at_fn_check_prepare_dynamic "$COMPILE_MODULE -jd prog.cob" "used_binaries.at:735"
5713( $at_check_trace; $COMPILE_MODULE -jd prog.cob
5714) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5715at_status=$? at_failed=false
5716$at_check_filter
5717at_fn_diff_devnull "$at_stderr" || at_failed=:
5718echo >>"$at_stdout"; $as_echo "job" | \
5719  $at_diff - "$at_stdout" || at_failed=:
5720at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:735"
5721$at_failed && at_fn_log_failure
5722$at_traceon; }
5723
5724
5725  set +x
5726  $at_times_p && times >"$at_times_file"
5727) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5728read at_status <"$at_status_file"
5729#AT_STOP_19
5730#AT_START_20
5731at_fn_group_banner 20 'used_binaries.at:740' \
5732  "run job after compilation (path specified)" "     " 1
5733at_xfail=no
5734(
5735  $as_echo "20. $at_setup_line: testing $at_desc ..."
5736  $at_traceon
5737
5738
5739
5740cat >prog.cob <<'_ATEOF'
5741
5742       IDENTIFICATION   DIVISION.
5743       PROGRAM-ID.      prog.
5744       DATA             DIVISION.
5745       WORKING-STORAGE  SECTION.
5746       PROCEDURE        DIVISION.
5747           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
5748           STOP RUN WITH NORMAL STATUS.
5749_ATEOF
5750
5751
5752{ set +x
5753$as_echo "$at_srcdir/used_binaries.at:753: mkdir -p sub"
5754at_fn_check_prepare_trace "used_binaries.at:753"
5755( $at_check_trace; mkdir -p sub
5756) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5757at_status=$? at_failed=false
5758$at_check_filter
5759at_fn_diff_devnull "$at_stderr" || at_failed=:
5760at_fn_diff_devnull "$at_stdout" || at_failed=:
5761at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:753"
5762$at_failed && at_fn_log_failure
5763$at_traceon; }
5764
5765{ set +x
5766$as_echo "$at_srcdir/used_binaries.at:754: \$COMPILE_MODULE -jd -o \$(_return_path \"sub/prog\") prog.cob"
5767at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:754"
5768( $at_check_trace; $COMPILE_MODULE -jd -o $(_return_path "sub/prog") prog.cob
5769) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5770at_status=$? at_failed=false
5771$at_check_filter
5772at_fn_diff_devnull "$at_stderr" || at_failed=:
5773echo >>"$at_stdout"; $as_echo "job" | \
5774  $at_diff - "$at_stdout" || at_failed=:
5775at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:754"
5776$at_failed && at_fn_log_failure
5777$at_traceon; }
5778
5779{ set +x
5780$as_echo "$at_srcdir/used_binaries.at:755: \$COMPILE -jd -o \$(_return_path \"sub/prog\$COB_EXE_EXT\") prog.cob"
5781at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:755"
5782( $at_check_trace; $COMPILE -jd -o $(_return_path "sub/prog$COB_EXE_EXT") prog.cob
5783) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5784at_status=$? at_failed=false
5785$at_check_filter
5786at_fn_diff_devnull "$at_stderr" || at_failed=:
5787echo >>"$at_stdout"; $as_echo "job" | \
5788  $at_diff - "$at_stdout" || at_failed=:
5789at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:755"
5790$at_failed && at_fn_log_failure
5791$at_traceon; }
5792
5793
5794  set +x
5795  $at_times_p && times >"$at_times_file"
5796) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5797read at_status <"$at_status_file"
5798#AT_STOP_20
5799#AT_START_21
5800at_fn_group_banner 21 'used_binaries.at:760' \
5801  "run job with optional arguments" "                " 1
5802at_xfail=no
5803(
5804  $as_echo "21. $at_setup_line: testing $at_desc ..."
5805  $at_traceon
5806
5807
5808
5809cat >prog.cob <<'_ATEOF'
5810
5811       IDENTIFICATION   DIVISION.
5812       PROGRAM-ID.      prog.
5813       DATA             DIVISION.
5814       WORKING-STORAGE  SECTION.
5815       01 CLI           PIC X(8).
5816       PROCEDURE        DIVISION.
5817           ACCEPT CLI FROM COMMAND-LINE
5818           DISPLAY CLI WITH NO ADVANCING END-DISPLAY
5819           STOP RUN WITH NORMAL STATUS.
5820_ATEOF
5821
5822
5823{ set +x
5824$as_echo "$at_srcdir/used_binaries.at:775: \$COMPILE -j=\"job 123\" prog.cob"
5825at_fn_check_prepare_dynamic "$COMPILE -j=\"job 123\" prog.cob" "used_binaries.at:775"
5826( $at_check_trace; $COMPILE -j="job 123" prog.cob
5827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5828at_status=$? at_failed=false
5829$at_check_filter
5830at_fn_diff_devnull "$at_stderr" || at_failed=:
5831echo >>"$at_stdout"; $as_echo "job 123 " | \
5832  $at_diff - "$at_stdout" || at_failed=:
5833at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:775"
5834$at_failed && at_fn_log_failure
5835$at_traceon; }
5836
5837{ set +x
5838$as_echo "$at_srcdir/used_binaries.at:776: \$COMPILE -jdg prog.cob"
5839at_fn_check_prepare_dynamic "$COMPILE -jdg prog.cob" "used_binaries.at:776"
5840( $at_check_trace; $COMPILE -jdg prog.cob
5841) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5842at_status=$? at_failed=false
5843$at_check_filter
5844at_fn_diff_devnull "$at_stderr" || at_failed=:
5845echo >>"$at_stdout"; $as_echo "        " | \
5846  $at_diff - "$at_stdout" || at_failed=:
5847at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:776"
5848$at_failed && at_fn_log_failure
5849$at_traceon; }
5850
5851{ set +x
5852$as_echo "$at_srcdir/used_binaries.at:777: \$COMPILE_MODULE --job=job123 prog.cob"
5853at_fn_check_prepare_dynamic "$COMPILE_MODULE --job=job123 prog.cob" "used_binaries.at:777"
5854( $at_check_trace; $COMPILE_MODULE --job=job123 prog.cob
5855) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5856at_status=$? at_failed=false
5857$at_check_filter
5858at_fn_diff_devnull "$at_stderr" || at_failed=:
5859echo >>"$at_stdout"; $as_echo "job123  " | \
5860  $at_diff - "$at_stdout" || at_failed=:
5861at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:777"
5862$at_failed && at_fn_log_failure
5863$at_traceon; }
5864
5865
5866  set +x
5867  $at_times_p && times >"$at_times_file"
5868) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5869read at_status <"$at_status_file"
5870#AT_STOP_21
5871#AT_START_22
5872at_fn_group_banner 22 'used_binaries.at:782' \
5873  "compile from stdin" "                             " 1
5874at_xfail=no
5875(
5876  $as_echo "22. $at_setup_line: testing $at_desc ..."
5877  $at_traceon
5878
5879
5880
5881cat >prog.cob <<'_ATEOF'
5882
5883       IDENTIFICATION   DIVISION.
5884       PROGRAM-ID.      a.
5885       DATA             DIVISION.
5886       WORKING-STORAGE  SECTION.
5887       PROCEDURE        DIVISION.
5888           STOP RUN WITH NORMAL STATUS.
5889_ATEOF
5890
5891
5892{ set +x
5893$as_echo "$at_srcdir/used_binaries.at:794: cat prog.cob | \$COMPILE_MODULE -"
5894at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:794"
5895( $at_check_trace; cat prog.cob | $COMPILE_MODULE -
5896) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5897at_status=$? at_failed=false
5898$at_check_filter
5899at_fn_diff_devnull "$at_stderr" || at_failed=:
5900at_fn_diff_devnull "$at_stdout" || at_failed=:
5901at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:794"
5902if $at_failed; then :
5903  # Previous test failed run again with full verbose output
5904# leading to an (expected) fail, but with decent messages
5905{ set +x
5906$as_echo "$at_srcdir/used_binaries.at:794: cat prog.cob | \$COMPILE_MODULE -vv -"
5907at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:794"
5908( $at_check_trace; cat prog.cob | $COMPILE_MODULE -vv -
5909) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5910at_status=$? at_failed=false
5911$at_check_filter
5912at_fn_diff_devnull "$at_stderr" || at_failed=:
5913at_fn_diff_devnull "$at_stdout" || at_failed=:
5914at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:794"
5915$at_failed && at_fn_log_failure
5916$at_traceon; }
5917
5918
5919fi
5920$at_failed && at_fn_log_failure
5921$at_traceon; }
5922
5923{ set +x
5924$as_echo "$at_srcdir/used_binaries.at:799: \$COBCRUN a"
5925at_fn_check_prepare_dynamic "$COBCRUN a" "used_binaries.at:799"
5926( $at_check_trace; $COBCRUN a
5927) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5928at_status=$? at_failed=false
5929$at_check_filter
5930at_fn_diff_devnull "$at_stderr" || at_failed=:
5931at_fn_diff_devnull "$at_stdout" || at_failed=:
5932at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:799"
5933$at_failed && at_fn_log_failure
5934$at_traceon; }
5935
5936
5937{ set +x
5938$as_echo "$at_srcdir/used_binaries.at:801: cat prog.cob | \$COMPILE -"
5939at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:801"
5940( $at_check_trace; cat prog.cob | $COMPILE -
5941) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5942at_status=$? at_failed=false
5943$at_check_filter
5944at_fn_diff_devnull "$at_stderr" || at_failed=:
5945at_fn_diff_devnull "$at_stdout" || at_failed=:
5946at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:801"
5947if $at_failed; then :
5948  # more to debug ...
5949{ set +x
5950$as_echo "$at_srcdir/used_binaries.at:801: cat prog.cob | \$COMPILE -vv -"
5951at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:801"
5952( $at_check_trace; cat prog.cob | $COMPILE -vv -
5953) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5954at_status=$? at_failed=false
5955$at_check_filter
5956at_fn_diff_devnull "$at_stderr" || at_failed=:
5957at_fn_diff_devnull "$at_stdout" || at_failed=:
5958at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:801"
5959$at_failed && at_fn_log_failure
5960$at_traceon; }
5961
5962
5963fi
5964$at_failed && at_fn_log_failure
5965$at_traceon; }
5966
5967{ set +x
5968$as_echo "$at_srcdir/used_binaries.at:805: \$COBCRUN_DIRECT ./a.out"
5969at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./a.out" "used_binaries.at:805"
5970( $at_check_trace; $COBCRUN_DIRECT ./a.out
5971) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5972at_status=$? at_failed=false
5973$at_check_filter
5974at_fn_diff_devnull "$at_stderr" || at_failed=:
5975at_fn_diff_devnull "$at_stdout" || at_failed=:
5976at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:805"
5977$at_failed && at_fn_log_failure
5978$at_traceon; }
5979
5980
5981
5982
5983  set +x
5984  $at_times_p && times >"$at_times_file"
5985) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5986read at_status <"$at_status_file"
5987#AT_STOP_22
5988#AT_START_23
5989at_fn_group_banner 23 'used_binaries.at:812' \
5990  "run job after compilation from stdin" "           " 1
5991at_xfail=no
5992(
5993  $as_echo "23. $at_setup_line: testing $at_desc ..."
5994  $at_traceon
5995
5996
5997
5998cat >prog.cob <<'_ATEOF'
5999
6000       IDENTIFICATION   DIVISION.
6001       PROGRAM-ID.      a.
6002       DATA             DIVISION.
6003       WORKING-STORAGE  SECTION.
6004       PROCEDURE        DIVISION.
6005           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
6006           STOP RUN WITH NORMAL STATUS.
6007_ATEOF
6008
6009
6010{ set +x
6011$as_echo "$at_srcdir/used_binaries.at:825: cat prog.cob | \$COMPILE -j -"
6012at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:825"
6013( $at_check_trace; cat prog.cob | $COMPILE -j -
6014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6015at_status=$? at_failed=false
6016$at_check_filter
6017at_fn_diff_devnull "$at_stderr" || at_failed=:
6018echo >>"$at_stdout"; $as_echo "job" | \
6019  $at_diff - "$at_stdout" || at_failed=:
6020at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:825"
6021if $at_failed; then :
6022  # Previous test failed run again with full verbose output
6023# leading to an (expected) fail, but with decent messages
6024{ set +x
6025$as_echo "$at_srcdir/used_binaries.at:825: cat prog.cob | \$COMPILE -vv -j -"
6026at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:825"
6027( $at_check_trace; cat prog.cob | $COMPILE -vv -j -
6028) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6029at_status=$? at_failed=false
6030$at_check_filter
6031at_fn_diff_devnull "$at_stderr" || at_failed=:
6032at_fn_diff_devnull "$at_stdout" || at_failed=:
6033at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:825"
6034$at_failed && at_fn_log_failure
6035$at_traceon; }
6036
6037
6038fi
6039$at_failed && at_fn_log_failure
6040$at_traceon; }
6041
6042{ set +x
6043$as_echo "$at_srcdir/used_binaries.at:830: cat prog.cob | \$COMPILE_MODULE -j -"
6044at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:830"
6045( $at_check_trace; cat prog.cob | $COMPILE_MODULE -j -
6046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6047at_status=$? at_failed=false
6048$at_check_filter
6049at_fn_diff_devnull "$at_stderr" || at_failed=:
6050echo >>"$at_stdout"; $as_echo "job" | \
6051  $at_diff - "$at_stdout" || at_failed=:
6052at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:830"
6053if $at_failed; then :
6054  # more to debug ...
6055{ set +x
6056$as_echo "$at_srcdir/used_binaries.at:830: cat prog.cob | \$COMPILE_MODULE -vv -j -"
6057at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:830"
6058( $at_check_trace; cat prog.cob | $COMPILE_MODULE -vv -j -
6059) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6060at_status=$? at_failed=false
6061$at_check_filter
6062at_fn_diff_devnull "$at_stderr" || at_failed=:
6063at_fn_diff_devnull "$at_stdout" || at_failed=:
6064at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:830"
6065$at_failed && at_fn_log_failure
6066$at_traceon; }
6067
6068
6069fi
6070$at_failed && at_fn_log_failure
6071$at_traceon; }
6072
6073
6074  set +x
6075  $at_times_p && times >"$at_times_file"
6076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6077read at_status <"$at_status_file"
6078#AT_STOP_23
6079#AT_START_24
6080at_fn_group_banner 24 'configuration.at:22' \
6081  "cobc with standard configuration file" "          " 1
6082at_xfail=no
6083(
6084  $as_echo "24. $at_setup_line: testing $at_desc ..."
6085  $at_traceon
6086
6087
6088
6089cat >prog.cob <<'_ATEOF'
6090
6091       IDENTIFICATION   DIVISION.
6092       PROGRAM-ID.      prog.
6093       AUTHOR. tester.
6094       DATA             DIVISION.
6095       WORKING-STORAGE  SECTION.
6096       PROCEDURE        DIVISION.
6097           STOP RUN.
6098_ATEOF
6099
6100
6101# default configuration permits this extension
6102{ set +x
6103$as_echo "$at_srcdir/configuration.at:36: \$COMPILE_ONLY prog.cob"
6104at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "configuration.at:36"
6105( $at_check_trace; $COMPILE_ONLY prog.cob
6106) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6107at_status=$? at_failed=false
6108$at_check_filter
6109echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in GnuCOBOL
6110" | \
6111  $at_diff - "$at_stderr" || at_failed=:
6112at_fn_diff_devnull "$at_stdout" || at_failed=:
6113at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:36"
6114$at_failed && at_fn_log_failure
6115$at_traceon; }
6116
6117
6118  set +x
6119  $at_times_p && times >"$at_times_file"
6120) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6121read at_status <"$at_status_file"
6122#AT_STOP_24
6123#AT_START_25
6124at_fn_group_banner 25 'configuration.at:43' \
6125  "cobc dialect features for all -std" "             " 1
6126at_xfail=no
6127(
6128  $as_echo "25. $at_setup_line: testing $at_desc ..."
6129  $at_traceon
6130
6131
6132
6133cat >prog.cob <<'_ATEOF'
6134
6135       IDENTIFICATION   DIVISION.
6136       PROGRAM-ID.      prog.
6137       AUTHOR. tester.
6138       DATA             DIVISION.
6139       WORKING-STORAGE  SECTION.
6140       PROCEDURE        DIVISION.
6141           STOP RUN.
6142_ATEOF
6143
6144
6145{ set +x
6146$as_echo "$at_srcdir/configuration.at:56: \$COMPILE_ONLY -std=default prog.cob"
6147at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=default prog.cob" "configuration.at:56"
6148( $at_check_trace; $COMPILE_ONLY -std=default prog.cob
6149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6150at_status=$? at_failed=false
6151$at_check_filter
6152echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in GnuCOBOL
6153" | \
6154  $at_diff - "$at_stderr" || at_failed=:
6155at_fn_diff_devnull "$at_stdout" || at_failed=:
6156at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:56"
6157$at_failed && at_fn_log_failure
6158$at_traceon; }
6159
6160{ set +x
6161$as_echo "$at_srcdir/configuration.at:59: \$COMPILE_ONLY -std=cobol85 prog.cob"
6162at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "configuration.at:59"
6163( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
6164) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6165at_status=$? at_failed=false
6166$at_check_filter
6167echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in COBOL 85
6168" | \
6169  $at_diff - "$at_stderr" || at_failed=:
6170at_fn_diff_devnull "$at_stdout" || at_failed=:
6171at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:59"
6172$at_failed && at_fn_log_failure
6173$at_traceon; }
6174
6175{ set +x
6176$as_echo "$at_srcdir/configuration.at:62: \$COMPILE_ONLY -std=cobol2002 prog.cob"
6177at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 prog.cob" "configuration.at:62"
6178( $at_check_trace; $COMPILE_ONLY -std=cobol2002 prog.cob
6179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6180at_status=$? at_failed=false
6181$at_check_filter
6182echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2002
6183" | \
6184  $at_diff - "$at_stderr" || at_failed=:
6185at_fn_diff_devnull "$at_stdout" || at_failed=:
6186at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:62"
6187$at_failed && at_fn_log_failure
6188$at_traceon; }
6189
6190{ set +x
6191$as_echo "$at_srcdir/configuration.at:65: \$COMPILE_ONLY -std=cobol2014 prog.cob"
6192at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "configuration.at:65"
6193( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
6194) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6195at_status=$? at_failed=false
6196$at_check_filter
6197echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
6198" | \
6199  $at_diff - "$at_stderr" || at_failed=:
6200at_fn_diff_devnull "$at_stdout" || at_failed=:
6201at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:65"
6202$at_failed && at_fn_log_failure
6203$at_traceon; }
6204
6205{ set +x
6206$as_echo "$at_srcdir/configuration.at:68: \$COMPILE_ONLY -std=xopen prog.cob"
6207at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=xopen prog.cob" "configuration.at:68"
6208( $at_check_trace; $COMPILE_ONLY -std=xopen prog.cob
6209) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6210at_status=$? at_failed=false
6211$at_check_filter
6212echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR used
6213" | \
6214  $at_diff - "$at_stderr" || at_failed=:
6215at_fn_diff_devnull "$at_stdout" || at_failed=:
6216at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:68"
6217$at_failed && at_fn_log_failure
6218$at_traceon; }
6219
6220{ set +x
6221$as_echo "$at_srcdir/configuration.at:71: \$COMPILE_ONLY -std=acu-strict prog.cob"
6222at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "configuration.at:71"
6223( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
6224) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6225at_status=$? at_failed=false
6226$at_check_filter
6227echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in ACUCOBOL-GT
6228" | \
6229  $at_diff - "$at_stderr" || at_failed=:
6230at_fn_diff_devnull "$at_stdout" || at_failed=:
6231at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:71"
6232$at_failed && at_fn_log_failure
6233$at_traceon; }
6234
6235{ set +x
6236$as_echo "$at_srcdir/configuration.at:74: \$COMPILE_ONLY -std=bs2000-strict prog.cob"
6237at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=bs2000-strict prog.cob" "configuration.at:74"
6238( $at_check_trace; $COMPILE_ONLY -std=bs2000-strict prog.cob
6239) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6240at_status=$? at_failed=false
6241$at_check_filter
6242echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to BS2000 COBOL
6243" | \
6244  $at_diff - "$at_stderr" || at_failed=:
6245at_fn_diff_devnull "$at_stdout" || at_failed=:
6246at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:74"
6247$at_failed && at_fn_log_failure
6248$at_traceon; }
6249
6250{ set +x
6251$as_echo "$at_srcdir/configuration.at:77: \$COMPILE_ONLY -std=ibm-strict prog.cob"
6252at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "configuration.at:77"
6253( $at_check_trace; $COMPILE_ONLY -std=ibm-strict prog.cob
6254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6255at_status=$? at_failed=false
6256$at_check_filter
6257echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in IBM COBOL
6258" | \
6259  $at_diff - "$at_stderr" || at_failed=:
6260at_fn_diff_devnull "$at_stdout" || at_failed=:
6261at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:77"
6262$at_failed && at_fn_log_failure
6263$at_traceon; }
6264
6265{ set +x
6266$as_echo "$at_srcdir/configuration.at:80: \$COMPILE_ONLY -std=mf-strict prog.cob"
6267at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "configuration.at:80"
6268( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
6269) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6270at_status=$? at_failed=false
6271$at_check_filter
6272echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in Micro Focus COBOL
6273" | \
6274  $at_diff - "$at_stderr" || at_failed=:
6275at_fn_diff_devnull "$at_stdout" || at_failed=:
6276at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:80"
6277$at_failed && at_fn_log_failure
6278$at_traceon; }
6279
6280{ set +x
6281$as_echo "$at_srcdir/configuration.at:83: \$COMPILE_ONLY -std=rm-strict prog.cob"
6282at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm-strict prog.cob" "configuration.at:83"
6283( $at_check_trace; $COMPILE_ONLY -std=rm-strict prog.cob
6284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6285at_status=$? at_failed=false
6286$at_check_filter
6287echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in RM-COBOL
6288" | \
6289  $at_diff - "$at_stderr" || at_failed=:
6290at_fn_diff_devnull "$at_stdout" || at_failed=:
6291at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:83"
6292$at_failed && at_fn_log_failure
6293$at_traceon; }
6294
6295{ set +x
6296$as_echo "$at_srcdir/configuration.at:86: \$COMPILE_ONLY -std=realia-strict prog.cob"
6297at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=realia-strict prog.cob" "configuration.at:86"
6298( $at_check_trace; $COMPILE_ONLY -std=realia-strict prog.cob
6299) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6300at_status=$? at_failed=false
6301$at_check_filter
6302at_fn_diff_devnull "$at_stderr" || at_failed=:
6303at_fn_diff_devnull "$at_stdout" || at_failed=:
6304at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:86"
6305$at_failed && at_fn_log_failure
6306$at_traceon; }
6307
6308{ set +x
6309$as_echo "$at_srcdir/configuration.at:87: \$COMPILE_ONLY -std=mvs-strict prog.cob"
6310at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs-strict prog.cob" "configuration.at:87"
6311( $at_check_trace; $COMPILE_ONLY -std=mvs-strict prog.cob
6312) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6313at_status=$? at_failed=false
6314$at_check_filter
6315echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in MVS/VM COBOL
6316" | \
6317  $at_diff - "$at_stderr" || at_failed=:
6318at_fn_diff_devnull "$at_stdout" || at_failed=:
6319at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:87"
6320$at_failed && at_fn_log_failure
6321$at_traceon; }
6322
6323{ set +x
6324$as_echo "$at_srcdir/configuration.at:90: \$COMPILE_ONLY -std=acu prog.cob"
6325at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "configuration.at:90"
6326( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
6327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6328at_status=$? at_failed=false
6329$at_check_filter
6330at_fn_diff_devnull "$at_stderr" || at_failed=:
6331at_fn_diff_devnull "$at_stdout" || at_failed=:
6332at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:90"
6333$at_failed && at_fn_log_failure
6334$at_traceon; }
6335
6336{ set +x
6337$as_echo "$at_srcdir/configuration.at:91: \$COMPILE_ONLY -std=bs2000 prog.cob"
6338at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=bs2000 prog.cob" "configuration.at:91"
6339( $at_check_trace; $COMPILE_ONLY -std=bs2000 prog.cob
6340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6341at_status=$? at_failed=false
6342$at_check_filter
6343at_fn_diff_devnull "$at_stderr" || at_failed=:
6344at_fn_diff_devnull "$at_stdout" || at_failed=:
6345at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:91"
6346$at_failed && at_fn_log_failure
6347$at_traceon; }
6348
6349{ set +x
6350$as_echo "$at_srcdir/configuration.at:92: \$COMPILE_ONLY -std=ibm prog.cob"
6351at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "configuration.at:92"
6352( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
6353) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6354at_status=$? at_failed=false
6355$at_check_filter
6356at_fn_diff_devnull "$at_stderr" || at_failed=:
6357at_fn_diff_devnull "$at_stdout" || at_failed=:
6358at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:92"
6359$at_failed && at_fn_log_failure
6360$at_traceon; }
6361
6362{ set +x
6363$as_echo "$at_srcdir/configuration.at:93: \$COMPILE_ONLY -std=mf prog.cob"
6364at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "configuration.at:93"
6365( $at_check_trace; $COMPILE_ONLY -std=mf prog.cob
6366) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6367at_status=$? at_failed=false
6368$at_check_filter
6369at_fn_diff_devnull "$at_stderr" || at_failed=:
6370at_fn_diff_devnull "$at_stdout" || at_failed=:
6371at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:93"
6372$at_failed && at_fn_log_failure
6373$at_traceon; }
6374
6375{ set +x
6376$as_echo "$at_srcdir/configuration.at:94: \$COMPILE_ONLY -std=rm prog.cob"
6377at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm prog.cob" "configuration.at:94"
6378( $at_check_trace; $COMPILE_ONLY -std=rm prog.cob
6379) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6380at_status=$? at_failed=false
6381$at_check_filter
6382at_fn_diff_devnull "$at_stderr" || at_failed=:
6383at_fn_diff_devnull "$at_stdout" || at_failed=:
6384at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:94"
6385$at_failed && at_fn_log_failure
6386$at_traceon; }
6387
6388{ set +x
6389$as_echo "$at_srcdir/configuration.at:95: \$COMPILE_ONLY -std=realia prog.cob"
6390at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=realia prog.cob" "configuration.at:95"
6391( $at_check_trace; $COMPILE_ONLY -std=realia prog.cob
6392) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6393at_status=$? at_failed=false
6394$at_check_filter
6395at_fn_diff_devnull "$at_stderr" || at_failed=:
6396at_fn_diff_devnull "$at_stdout" || at_failed=:
6397at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:95"
6398$at_failed && at_fn_log_failure
6399$at_traceon; }
6400
6401{ set +x
6402$as_echo "$at_srcdir/configuration.at:96: \$COMPILE_ONLY -std=mvs prog.cob"
6403at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "configuration.at:96"
6404( $at_check_trace; $COMPILE_ONLY -std=mvs prog.cob
6405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6406at_status=$? at_failed=false
6407$at_check_filter
6408at_fn_diff_devnull "$at_stderr" || at_failed=:
6409at_fn_diff_devnull "$at_stdout" || at_failed=:
6410at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:96"
6411$at_failed && at_fn_log_failure
6412$at_traceon; }
6413
6414
6415  set +x
6416  $at_times_p && times >"$at_times_file"
6417) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6418read at_status <"$at_status_file"
6419#AT_STOP_25
6420#AT_START_26
6421at_fn_group_banner 26 'configuration.at:101' \
6422  "cobc with configuration file via -std" "          " 1
6423at_xfail=no
6424(
6425  $as_echo "26. $at_setup_line: testing $at_desc ..."
6426  $at_traceon
6427
6428
6429
6430cat >prog.cob <<'_ATEOF'
6431
6432       IDENTIFICATION   DIVISION.
6433       PROGRAM-ID.      prog.
6434       AUTHOR. tester.
6435       DATA             DIVISION.
6436       WORKING-STORAGE  SECTION.
6437       PROCEDURE        DIVISION.
6438           STOP RUN.
6439_ATEOF
6440
6441
6442# check if -std loads configuration file and if override works
6443{ set +x
6444$as_echo "$at_srcdir/configuration.at:115: \$COMPILE_ONLY -std=cobol2014 prog.cob"
6445at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "configuration.at:115"
6446( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
6447) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6448at_status=$? at_failed=false
6449$at_check_filter
6450echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
6451" | \
6452  $at_diff - "$at_stderr" || at_failed=:
6453at_fn_diff_devnull "$at_stdout" || at_failed=:
6454at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:115"
6455$at_failed && at_fn_log_failure
6456$at_traceon; }
6457
6458
6459  set +x
6460  $at_times_p && times >"$at_times_file"
6461) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6462read at_status <"$at_status_file"
6463#AT_STOP_26
6464#AT_START_27
6465at_fn_group_banner 27 'configuration.at:122' \
6466  "cobc with standard configuration file via -conf" "" 1
6467at_xfail=no
6468(
6469  $as_echo "27. $at_setup_line: testing $at_desc ..."
6470  $at_traceon
6471
6472
6473
6474cat >prog.cob <<'_ATEOF'
6475
6476       IDENTIFICATION   DIVISION.
6477       PROGRAM-ID.      prog.
6478       AUTHOR. tester.
6479       DATA             DIVISION.
6480       WORKING-STORAGE  SECTION.
6481       PROCEDURE        DIVISION.
6482           STOP RUN.
6483_ATEOF
6484
6485
6486# check if override via -conf works
6487{ set +x
6488$as_echo "$at_srcdir/configuration.at:136: \$COMPILE_ONLY -conf=cobol2014.conf prog.cob"
6489at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=cobol2014.conf prog.cob" "configuration.at:136"
6490( $at_check_trace; $COMPILE_ONLY -conf=cobol2014.conf prog.cob
6491) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6492at_status=$? at_failed=false
6493$at_check_filter
6494echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
6495" | \
6496  $at_diff - "$at_stderr" || at_failed=:
6497at_fn_diff_devnull "$at_stdout" || at_failed=:
6498at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:136"
6499$at_failed && at_fn_log_failure
6500$at_traceon; }
6501
6502
6503  set +x
6504  $at_times_p && times >"$at_times_file"
6505) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6506read at_status <"$at_status_file"
6507#AT_STOP_27
6508#AT_START_28
6509at_fn_group_banner 28 'configuration.at:143' \
6510  "cobc with own configuration file via -conf" "     " 1
6511at_xfail=no
6512(
6513  $as_echo "28. $at_setup_line: testing $at_desc ..."
6514  $at_traceon
6515
6516
6517
6518cat >test.conf <<'_ATEOF'
6519
6520include "default.conf"
6521name: "Sample Conf"
6522comment-paragraphs:                       ok
6523_ATEOF
6524
6525
6526cat >prog.cob <<'_ATEOF'
6527
6528       IDENTIFICATION   DIVISION.
6529       PROGRAM-ID.      prog.
6530       AUTHOR. tester.
6531       DATA             DIVISION.
6532       WORKING-STORAGE  SECTION.
6533       PROCEDURE        DIVISION.
6534           STOP RUN.
6535_ATEOF
6536
6537
6538# check if override via -conf works and if include works
6539{ set +x
6540$as_echo "$at_srcdir/configuration.at:163: \$COMPILE_ONLY -conf=test.conf prog.cob"
6541at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:163"
6542( $at_check_trace; $COMPILE_ONLY -conf=test.conf prog.cob
6543) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6544at_status=$? at_failed=false
6545$at_check_filter
6546at_fn_diff_devnull "$at_stderr" || at_failed=:
6547at_fn_diff_devnull "$at_stdout" || at_failed=:
6548at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:163"
6549$at_failed && at_fn_log_failure
6550$at_traceon; }
6551
6552
6553# check if configuration file loading with full path works
6554{ set +x
6555$as_echo "$at_srcdir/configuration.at:166: \$COMPILE_ONLY \\
6556-conf=\"\$(_return_path \"\$(pwd)/test.conf\")\" prog.cob"
6557at_fn_check_prepare_notrace 'a $(...) command substitution' "configuration.at:166"
6558( $at_check_trace; $COMPILE_ONLY \
6559-conf="$(_return_path "$(pwd)/test.conf")" prog.cob
6560) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6561at_status=$? at_failed=false
6562$at_check_filter
6563at_fn_diff_devnull "$at_stderr" || at_failed=:
6564at_fn_diff_devnull "$at_stdout" || at_failed=:
6565at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:166"
6566$at_failed && at_fn_log_failure
6567$at_traceon; }
6568
6569
6570  set +x
6571  $at_times_p && times >"$at_times_file"
6572) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6573read at_status <"$at_status_file"
6574#AT_STOP_28
6575#AT_START_29
6576at_fn_group_banner 29 'configuration.at:172' \
6577  "cobc configuration: recursive include" "          " 1
6578at_xfail=no
6579(
6580  $as_echo "29. $at_setup_line: testing $at_desc ..."
6581  $at_traceon
6582
6583
6584
6585cat >test.conf <<'_ATEOF'
6586
6587# different line for "include" to check the line number
6588include "test2.conf"
6589_ATEOF
6590
6591
6592cat >test2.conf <<'_ATEOF'
6593
6594# include in
6595# line 4
6596include "test3.conf"
6597_ATEOF
6598
6599
6600cat >test3.conf <<'_ATEOF'
6601
6602include "test.conf"
6603_ATEOF
6604
6605
6606cat >prog.cob <<'_ATEOF'
6607
6608       IDENTIFICATION   DIVISION.
6609       PROGRAM-ID.      prog.
6610       DATA             DIVISION.
6611       WORKING-STORAGE  SECTION.
6612       PROCEDURE        DIVISION.
6613           STOP RUN.
6614_ATEOF
6615
6616
6617{ set +x
6618$as_echo "$at_srcdir/configuration.at:199: \$COMPILE_ONLY -conf=test.conf prog.cob"
6619at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:199"
6620( $at_check_trace; $COMPILE_ONLY -conf=test.conf prog.cob
6621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6622at_status=$? at_failed=false
6623$at_check_filter
6624echo >>"$at_stderr"; $as_echo "configuration error:
6625test.conf: recursive inclusion
6626test3.conf:2: configuration file was included here
6627test2.conf:4: configuration file was included here
6628test.conf:3: configuration file was included here
6629" | \
6630  $at_diff - "$at_stderr" || at_failed=:
6631at_fn_diff_devnull "$at_stdout" || at_failed=:
6632at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:199"
6633$at_failed && at_fn_log_failure
6634$at_traceon; }
6635
6636
6637  set +x
6638  $at_times_p && times >"$at_times_file"
6639) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6640read at_status <"$at_status_file"
6641#AT_STOP_29
6642#AT_START_30
6643at_fn_group_banner 30 'configuration.at:210' \
6644  "cobc with -std and -conf" "                       " 1
6645at_xfail=no
6646(
6647  $as_echo "30. $at_setup_line: testing $at_desc ..."
6648  $at_traceon
6649
6650
6651
6652cat >test.conf <<'_ATEOF'
6653
6654include "mf.conf"
6655name: "Sample Conf"
6656comment-paragraphs:                       ok
6657_ATEOF
6658
6659
6660cat >prog.cob <<'_ATEOF'
6661
6662       IDENTIFICATION   DIVISION.
6663       PROGRAM-ID.      prog.
6664       AUTHOR. tester.
6665       DATA             DIVISION.
6666       WORKING-STORAGE  SECTION.
6667       PROCEDURE        DIVISION.
6668           STOP RUN.
6669_ATEOF
6670
6671
6672# check if override via -conf works and if include works
6673{ set +x
6674$as_echo "$at_srcdir/configuration.at:230: \$COMPILE_ONLY -std=default -conf=test.conf prog.cob"
6675at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=default -conf=test.conf prog.cob" "configuration.at:230"
6676( $at_check_trace; $COMPILE_ONLY -std=default -conf=test.conf prog.cob
6677) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6678at_status=$? at_failed=false
6679$at_check_filter
6680echo >>"$at_stderr"; $as_echo "configuration warning: test.conf: The previous loaded configuration 'GnuCOBOL' will be discarded.
6681" | \
6682  $at_diff - "$at_stderr" || at_failed=:
6683at_fn_diff_devnull "$at_stdout" || at_failed=:
6684at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:230"
6685$at_failed && at_fn_log_failure
6686$at_traceon; }
6687
6688
6689  set +x
6690  $at_times_p && times >"$at_times_file"
6691) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6692read at_status <"$at_status_file"
6693#AT_STOP_30
6694#AT_START_31
6695at_fn_group_banner 31 'configuration.at:237' \
6696  "cobc compiler flag on command line" "             " 1
6697at_xfail=no
6698(
6699  $as_echo "31. $at_setup_line: testing $at_desc ..."
6700  $at_traceon
6701
6702
6703
6704cat >prog.cob <<'_ATEOF'
6705
6706       IDENTIFICATION   DIVISION.
6707       PROGRAM-ID.      prog.
6708       AUTHOR. tester.
6709       DATA             DIVISION.
6710       WORKING-STORAGE  SECTION.
6711       PROCEDURE        DIVISION.
6712           STOP RUN.
6713_ATEOF
6714
6715
6716{ set +x
6717$as_echo "$at_srcdir/configuration.at:250: \$COMPILE_ONLY -fcomment-paragraphs=ok prog.cob"
6718at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomment-paragraphs=ok prog.cob" "configuration.at:250"
6719( $at_check_trace; $COMPILE_ONLY -fcomment-paragraphs=ok prog.cob
6720) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6721at_status=$? at_failed=false
6722$at_check_filter
6723at_fn_diff_devnull "$at_stderr" || at_failed=:
6724at_fn_diff_devnull "$at_stdout" || at_failed=:
6725at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:250"
6726$at_failed && at_fn_log_failure
6727$at_traceon; }
6728
6729
6730  set +x
6731  $at_times_p && times >"$at_times_file"
6732) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6733read at_status <"$at_status_file"
6734#AT_STOP_31
6735#AT_START_32
6736at_fn_group_banner 32 'configuration.at:256' \
6737  "cobc compiler flag on command line (priority)" "  " 1
6738at_xfail=no
6739(
6740  $as_echo "32. $at_setup_line: testing $at_desc ..."
6741  $at_traceon
6742
6743
6744
6745cat >test.conf <<'_ATEOF'
6746
6747include "default.conf"
6748name: "Sample Conf"
6749comment-paragraphs:   unconformable
6750_ATEOF
6751
6752
6753cat >prog.cob <<'_ATEOF'
6754
6755       IDENTIFICATION   DIVISION.
6756       PROGRAM-ID.      prog.
6757       AUTHOR. tester.
6758       DATA             DIVISION.
6759       WORKING-STORAGE  SECTION.
6760       PROCEDURE        DIVISION.
6761           STOP RUN.
6762_ATEOF
6763
6764
6765# configuration flags must work
6766{ set +x
6767$as_echo "$at_srcdir/configuration.at:276: \$COMPILE_ONLY \\
6768-fcomment-paragraphs=ok prog.cob"
6769at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:276"
6770( $at_check_trace; $COMPILE_ONLY \
6771-fcomment-paragraphs=ok prog.cob
6772) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6773at_status=$? at_failed=false
6774$at_check_filter
6775at_fn_diff_devnull "$at_stderr" || at_failed=:
6776at_fn_diff_devnull "$at_stdout" || at_failed=:
6777at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:276"
6778$at_failed && at_fn_log_failure
6779$at_traceon; }
6780
6781
6782# configuration flag on command line must override all (no matter where it's used)
6783{ set +x
6784$as_echo "$at_srcdir/configuration.at:280: \$COMPILE_ONLY \\
6785-fcomment-paragraphs=ok -conf=test.conf prog.cob"
6786at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:280"
6787( $at_check_trace; $COMPILE_ONLY \
6788-fcomment-paragraphs=ok -conf=test.conf prog.cob
6789) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6790at_status=$? at_failed=false
6791$at_check_filter
6792at_fn_diff_devnull "$at_stderr" || at_failed=:
6793at_fn_diff_devnull "$at_stdout" || at_failed=:
6794at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:280"
6795$at_failed && at_fn_log_failure
6796$at_traceon; }
6797
6798{ set +x
6799$as_echo "$at_srcdir/configuration.at:282: \$COMPILE_ONLY \\
6800-conf=test.conf -fcomment-paragraphs=ok prog.cob"
6801at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:282"
6802( $at_check_trace; $COMPILE_ONLY \
6803-conf=test.conf -fcomment-paragraphs=ok prog.cob
6804) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6805at_status=$? at_failed=false
6806$at_check_filter
6807at_fn_diff_devnull "$at_stderr" || at_failed=:
6808at_fn_diff_devnull "$at_stdout" || at_failed=:
6809at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:282"
6810$at_failed && at_fn_log_failure
6811$at_traceon; }
6812
6813
6814  set +x
6815  $at_times_p && times >"$at_times_file"
6816) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6817read at_status <"$at_status_file"
6818#AT_STOP_32
6819#AT_START_33
6820at_fn_group_banner 33 'configuration.at:289' \
6821  "cobc configuration: entries" "                    " 1
6822at_xfail=no
6823(
6824  $as_echo "33. $at_setup_line: testing $at_desc ..."
6825  $at_traceon
6826
6827
6828
6829cat >prog.cob <<'_ATEOF'
6830
6831       IDENTIFICATION   DIVISION.
6832       PROGRAM-ID.      prog.
6833       DATA             DIVISION.
6834       WORKING-STORAGE  SECTION.
6835       PROCEDURE        DIVISION.
6836           STOP RUN.
6837_ATEOF
6838
6839
6840# conf entries must be clean
6841{ set +x
6842$as_echo "$at_srcdir/configuration.at:302: \$COMPILE_ONLY -q \\
6843-fcomment-paragraphsok prog.cob"
6844at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:302"
6845( $at_check_trace; $COMPILE_ONLY -q \
6846-fcomment-paragraphsok prog.cob
6847) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6848at_status=$? at_failed=false
6849$at_check_filter
6850echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '-fcomment-paragraphsok'
6851" | \
6852  $at_diff - "$at_stderr" || at_failed=:
6853at_fn_diff_devnull "$at_stdout" || at_failed=:
6854at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:302"
6855$at_failed && at_fn_log_failure
6856$at_traceon; }
6857
6858{ set +x
6859$as_echo "$at_srcdir/configuration.at:306: \$COMPILE_ONLY \\
6860-fassign-clause=cobol-2002 prog.cob"
6861at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:306"
6862( $at_check_trace; $COMPILE_ONLY \
6863-fassign-clause=cobol-2002 prog.cob
6864) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6865at_status=$? at_failed=false
6866$at_check_filter
6867echo >>"$at_stderr"; $as_echo "configuration error:
6868-fassign-clause=cobol-2002: invalid value 'cobol-2002' for configuration tag 'assign-clause';
6869	should be one of the following values: dynamic, external, mf, ibm
6870" | \
6871  $at_diff - "$at_stderr" || at_failed=:
6872at_fn_diff_devnull "$at_stdout" || at_failed=:
6873at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:306"
6874$at_failed && at_fn_log_failure
6875$at_traceon; }
6876
6877{ set +x
6878$as_echo "$at_srcdir/configuration.at:312: \$COMPILE_ONLY \\
6879-freserved-words=default prog.cob"
6880at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:312"
6881( $at_check_trace; $COMPILE_ONLY \
6882-freserved-words=default prog.cob
6883) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6884at_status=$? at_failed=false
6885$at_check_filter
6886at_fn_diff_devnull "$at_stderr" || at_failed=:
6887at_fn_diff_devnull "$at_stdout" || at_failed=:
6888at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:312"
6889$at_failed && at_fn_log_failure
6890$at_traceon; }
6891
6892{ set +x
6893$as_echo "$at_srcdir/configuration.at:314: \$COMPILE_ONLY \\
6894-freserved-words=defaults prog.cob"
6895at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:314"
6896( $at_check_trace; $COMPILE_ONLY \
6897-freserved-words=defaults prog.cob
6898) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6899at_status=$? at_failed=false
6900$at_check_filter
6901echo >>"$at_stderr"; $as_echo "configuration error:
6902-freserved-words=defaults: Could not access word list for 'defaults'
6903defaults.words: No such file or directory
6904" | \
6905  $at_diff - "$at_stderr" || at_failed=:
6906at_fn_diff_devnull "$at_stdout" || at_failed=:
6907at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:314"
6908$at_failed && at_fn_log_failure
6909$at_traceon; }
6910
6911{ set +x
6912$as_echo "$at_srcdir/configuration.at:320: \$COMPILE_ONLY \\
6913-fword-length=thirty prog.cob"
6914at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:320"
6915( $at_check_trace; $COMPILE_ONLY \
6916-fword-length=thirty prog.cob
6917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6918at_status=$? at_failed=false
6919$at_check_filter
6920echo >>"$at_stderr"; $as_echo "configuration error:
6921-fword-length=thirty: invalid value 'thirty' for configuration tag 'word-length';
6922	must be numeric
6923" | \
6924  $at_diff - "$at_stderr" || at_failed=:
6925at_fn_diff_devnull "$at_stdout" || at_failed=:
6926at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:320"
6927$at_failed && at_fn_log_failure
6928$at_traceon; }
6929
6930{ set +x
6931$as_echo "$at_srcdir/configuration.at:326: \$COMPILE_ONLY \\
6932-fstandard-define=99 prog.cob"
6933at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:326"
6934( $at_check_trace; $COMPILE_ONLY \
6935-fstandard-define=99 prog.cob
6936) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6937at_status=$? at_failed=false
6938$at_check_filter
6939echo >>"$at_stderr"; $as_echo "configuration error:
6940-fstandard-define=99: invalid value '99' for configuration tag 'standard-define';
6941	maximum value: 9
6942" | \
6943  $at_diff - "$at_stderr" || at_failed=:
6944at_fn_diff_devnull "$at_stdout" || at_failed=:
6945at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:326"
6946$at_failed && at_fn_log_failure
6947$at_traceon; }
6948
6949
6950  set +x
6951  $at_times_p && times >"$at_times_file"
6952) 5>&1 2>&1 7>&- | eval $at_tee_pipe
6953read at_status <"$at_status_file"
6954#AT_STOP_33
6955#AT_START_34
6956at_fn_group_banner 34 'configuration.at:336' \
6957  "cobc configuration: conf missing" "               " 1
6958at_xfail=no
6959(
6960  $as_echo "34. $at_setup_line: testing $at_desc ..."
6961  $at_traceon
6962
6963
6964
6965cat >defunc.conf <<'_ATEOF'
6966
6967include "notthere.conf"
6968_ATEOF
6969
6970
6971cat >defunc2.conf <<'_ATEOF'
6972
6973include
6974_ATEOF
6975
6976
6977{ set +x
6978$as_echo "$at_srcdir/configuration.at:347: \$COMPILE_ONLY -conf=notthere.conf prog.cob"
6979at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=notthere.conf prog.cob" "configuration.at:347"
6980( $at_check_trace; $COMPILE_ONLY -conf=notthere.conf prog.cob
6981) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6982at_status=$? at_failed=false
6983$at_check_filter
6984echo >>"$at_stderr"; $as_echo "configuration error:
6985notthere.conf: No such file or directory
6986" | \
6987  $at_diff - "$at_stderr" || at_failed=:
6988at_fn_diff_devnull "$at_stdout" || at_failed=:
6989at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:347"
6990$at_failed && at_fn_log_failure
6991$at_traceon; }
6992
6993{ set +x
6994$as_echo "$at_srcdir/configuration.at:351: \$COMPILE_ONLY -conf=defunc.conf prog.cob"
6995at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc.conf prog.cob" "configuration.at:351"
6996( $at_check_trace; $COMPILE_ONLY -conf=defunc.conf prog.cob
6997) >>"$at_stdout" 2>>"$at_stderr" 5>&-
6998at_status=$? at_failed=false
6999$at_check_filter
7000echo >>"$at_stderr"; $as_echo "configuration error:
7001notthere.conf: No such file or directory
7002defunc.conf:2: configuration file was included here
7003" | \
7004  $at_diff - "$at_stderr" || at_failed=:
7005at_fn_diff_devnull "$at_stdout" || at_failed=:
7006at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:351"
7007$at_failed && at_fn_log_failure
7008$at_traceon; }
7009
7010{ set +x
7011$as_echo "$at_srcdir/configuration.at:356: \$COMPILE_ONLY -conf=defunc2.conf prog.cob"
7012at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc2.conf prog.cob" "configuration.at:356"
7013( $at_check_trace; $COMPILE_ONLY -conf=defunc2.conf prog.cob
7014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7015at_status=$? at_failed=false
7016$at_check_filter
7017echo >>"$at_stderr"; $as_echo "configuration error:
7018defunc2.conf:2: invalid configuration tag 'include'
7019" | \
7020  $at_diff - "$at_stderr" || at_failed=:
7021at_fn_diff_devnull "$at_stdout" || at_failed=:
7022at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:356"
7023$at_failed && at_fn_log_failure
7024$at_traceon; }
7025
7026
7027  set +x
7028  $at_times_p && times >"$at_times_file"
7029) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7030read at_status <"$at_status_file"
7031#AT_STOP_34
7032#AT_START_35
7033at_fn_group_banner 35 'configuration.at:364' \
7034  "cobc configuration: conf optional" "              " 1
7035at_xfail=no
7036(
7037  $as_echo "35. $at_setup_line: testing $at_desc ..."
7038  $at_traceon
7039
7040
7041
7042cat >defunc.conf <<'_ATEOF'
7043
7044include "default.conf"
7045includeif "notthere.conf"
7046_ATEOF
7047
7048
7049cat >test.conf <<'_ATEOF'
7050
7051include "default.conf"
7052include "test2.conf"
7053_ATEOF
7054
7055
7056cat >test2.conf <<'_ATEOF'
7057
7058name: "Sample Conf"
7059comment-paragraphs:                       ok
7060_ATEOF
7061
7062
7063cat >prog.cob <<'_ATEOF'
7064
7065       IDENTIFICATION   DIVISION.
7066       PROGRAM-ID.      prog.
7067       AUTHOR. tester.
7068       DATA             DIVISION.
7069       WORKING-STORAGE  SECTION.
7070       PROCEDURE        DIVISION.
7071           STOP RUN.
7072_ATEOF
7073
7074
7075{ set +x
7076$as_echo "$at_srcdir/configuration.at:392: \$COMPILE_ONLY -conf=defunc.conf prog.cob"
7077at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc.conf prog.cob" "configuration.at:392"
7078( $at_check_trace; $COMPILE_ONLY -conf=defunc.conf prog.cob
7079) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7080at_status=$? at_failed=false
7081$at_check_filter
7082echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in GnuCOBOL
7083" | \
7084  $at_diff - "$at_stderr" || at_failed=:
7085at_fn_diff_devnull "$at_stdout" || at_failed=:
7086at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:392"
7087$at_failed && at_fn_log_failure
7088$at_traceon; }
7089
7090{ set +x
7091$as_echo "$at_srcdir/configuration.at:395: \$COMPILE_ONLY -conf=test.conf prog.cob"
7092at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:395"
7093( $at_check_trace; $COMPILE_ONLY -conf=test.conf prog.cob
7094) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7095at_status=$? at_failed=false
7096$at_check_filter
7097at_fn_diff_devnull "$at_stderr" || at_failed=:
7098at_fn_diff_devnull "$at_stdout" || at_failed=:
7099at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:395"
7100$at_failed && at_fn_log_failure
7101$at_traceon; }
7102
7103
7104  set +x
7105  $at_times_p && times >"$at_times_file"
7106) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7107read at_status <"$at_status_file"
7108#AT_STOP_35
7109#AT_START_36
7110at_fn_group_banner 36 'configuration.at:400' \
7111  "cobc configuration: incomplete" "                 " 1
7112at_xfail=no
7113(
7114  $as_echo "36. $at_setup_line: testing $at_desc ..."
7115  $at_traceon
7116
7117
7118
7119cat >test.conf <<'_ATEOF'
7120
7121name: "Empty Conf"
7122_ATEOF
7123
7124
7125# check if incomplete configuration result in error
7126{ set +x
7127$as_echo "$at_srcdir/configuration.at:408: \$COMPILE_ONLY -conf=test.conf prog.cob"
7128at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:408"
7129( $at_check_trace; $COMPILE_ONLY -conf=test.conf prog.cob
7130) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7131at_status=$? at_failed=false
7132$at_check_filter
7133echo >>"$at_stderr"; $as_echo "configuration error:
7134test.conf: missing definitions:
7135	no definition of 'reserved-words'
7136	no definition of 'tab-width'
7137	no definition of 'text-column'
7138	no definition of 'pic-length'
7139	no definition of 'word-length'
7140	no definition of 'literal-length'
7141	no definition of 'numeric-literal-length'
7142	no definition of 'standard-define'
7143	no definition of 'binary-size'
7144	no definition of 'binary-byteorder'
7145	no definition of 'assign-clause'
7146	no definition of 'screen-section-rules'
7147	no definition of 'dpc-in-data'
7148	no definition of 'filename-mapping'
7149	no definition of 'pretty-display'
7150	no definition of 'binary-truncate'
7151	no definition of 'complex-odo'
7152	no definition of 'indirect-redefines'
7153	no definition of 'larger-redefines-ok'
7154	no definition of 'relax-syntax-checks'
7155	no definition of 'ref-mod-zero-length'
7156	no definition of 'relax-level-hierarchy'
7157	no definition of 'select-working'
7158	no definition of 'local-implies-recursive'
7159	no definition of 'sticky-linkage'
7160	no definition of 'move-ibm'
7161	no definition of 'perform-osvs'
7162	no definition of 'arithmetic-osvs'
7163	no definition of 'constant-folding'
7164	no definition of 'hostsign'
7165	no definition of 'program-name-redefinition'
7166	no definition of 'accept-update'
7167	no definition of 'accept-auto'
7168	no definition of 'console-is-crt'
7169	no definition of 'no-echo-means-secure'
7170	no definition of 'line-col-zero-default'
7171	no definition of 'display-special-fig-consts'
7172	no definition of 'binary-comp-1'
7173	no definition of 'numeric-pointer'
7174	no definition of 'move-non-numeric-lit-to-numeric-is-zero'
7175	no definition of 'implicit-assign-dynamic-var'
7176	no definition of 'comment-paragraphs'
7177	no definition of 'memory-size-clause'
7178	no definition of 'multiple-file-tape-clause'
7179	no definition of 'label-records-clause'
7180	no definition of 'value-of-clause'
7181	no definition of 'data-records-clause'
7182	no definition of 'top-level-occurs-clause'
7183	no definition of 'same-as-clause'
7184	no definition of 'type-to-clause'
7185	no definition of 'usage-type'
7186	no definition of 'synchronized-clause'
7187	no definition of 'special-names-clause'
7188	no definition of 'goto-statement-without-name'
7189	no definition of 'stop-literal-statement'
7190	no definition of 'stop-identifier-statement'
7191	no definition of 'debugging-mode'
7192	no definition of 'use-for-debugging'
7193	no definition of 'padding-character-clause'
7194	no definition of 'next-sentence-phrase'
7195	no definition of 'listing-statements'
7196	no definition of 'title-statement'
7197	no definition of 'entry-statement'
7198	no definition of 'move-noninteger-to-alphanumeric'
7199	no definition of 'move-figurative-constant-to-numeric'
7200	no definition of 'move-figurative-space-to-numeric'
7201	no definition of 'move-figurative-quote-to-numeric'
7202	no definition of 'odo-without-to'
7203	no definition of 'section-segments'
7204	no definition of 'alter-statement'
7205	no definition of 'call-overflow'
7206	no definition of 'numeric-boolean'
7207	no definition of 'hexadecimal-boolean'
7208	no definition of 'national-literals'
7209	no definition of 'hexadecimal-national-literals'
7210	no definition of 'national-character-literals'
7211	no definition of 'hp-octal-literals'
7212	no definition of 'acu-literals'
7213	no definition of 'word-continuation'
7214	no definition of 'not-exception-before-exception'
7215	no definition of 'accept-display-extensions'
7216	no definition of 'renames-uncommon-levels'
7217	no definition of 'symbolic-constant'
7218	no definition of 'constant-78'
7219	no definition of 'constant-01'
7220	no definition of 'perform-varying-without-by'
7221	no definition of 'reference-out-of-declaratives'
7222	no definition of 'program-prototypes'
7223	no definition of 'call-convention-mnemonic'
7224	no definition of 'call-convention-linkage'
7225	no definition of 'numeric-value-for-edited-item'
7226	no definition of 'incorrect-conf-sec-order'
7227	no definition of 'define-constant-directive'
7228	no definition of 'free-redefines-position'
7229	no definition of 'records-mismatch-record-clause'
7230	no definition of 'record-delimiter'
7231	no definition of 'sequential-delimiters'
7232	no definition of 'record-delim-with-fixed-recs'
7233	no definition of 'missing-statement'
7234	no definition of 'zero-length-literals'
7235	no definition of 'xml-generate-extra-phrases'
7236	no definition of 'continue-after'
7237	no definition of 'goto-entry'
7238	no definition of 'assign-variable'
7239	no definition of 'assign-using-variable'
7240	no definition of 'assign-ext-dyn'
7241	no definition of 'assign-disk-from'
7242	no definition of 'vsam-status'
7243" | \
7244  $at_diff - "$at_stderr" || at_failed=:
7245at_fn_diff_devnull "$at_stdout" || at_failed=:
7246at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:408"
7247$at_failed && at_fn_log_failure
7248$at_traceon; }
7249
7250
7251  set +x
7252  $at_times_p && times >"$at_times_file"
7253) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7254read at_status <"$at_status_file"
7255#AT_STOP_36
7256#AT_START_37
7257at_fn_group_banner 37 'configuration.at:524' \
7258  "runtime configuration" "                          " 1
7259at_xfail=no
7260(
7261  $as_echo "37. $at_setup_line: testing $at_desc ..."
7262  $at_traceon
7263
7264
7265
7266# check if --runtime-conf exits without error
7267# don't compare stdout
7268{ set +x
7269$as_echo "$at_srcdir/configuration.at:529: \$COBCRUN --runtime-conf"
7270at_fn_check_prepare_dynamic "$COBCRUN --runtime-conf" "configuration.at:529"
7271( $at_check_trace; $COBCRUN --runtime-conf
7272) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7273at_status=$? at_failed=false
7274$at_check_filter
7275at_fn_diff_devnull "$at_stderr" || at_failed=:
7276echo stdout:; cat "$at_stdout"
7277at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:529"
7278$at_failed && at_fn_log_failure
7279$at_traceon; }
7280
7281
7282# check if --runtime-conf points to a file called "runtime_empty.cfg"
7283# use tr to remove newlines and spaces as the path likely is split
7284# into two lines
7285{ set +x
7286$as_echo "$at_srcdir/configuration.at:534: \$COBCRUN --runtime-conf | tr -d '\\n ' | \\
7287\$GREP \"runtime_empty.cfg\""
7288at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:534"
7289( $at_check_trace; $COBCRUN --runtime-conf | tr -d '\n ' | \
7290$GREP "runtime_empty.cfg"
7291) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7292at_status=$? at_failed=false
7293$at_check_filter
7294at_fn_diff_devnull "$at_stderr" || at_failed=:
7295echo stdout:; cat "$at_stdout"
7296at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:534"
7297$at_failed && at_fn_log_failure
7298$at_traceon; }
7299
7300{ set +x
7301$as_echo "$at_srcdir/configuration.at:536: COB_RUNTIME_CONFIG=\"\" \$COBCRUN --runtime-conf | tr -d '\\n ' \\
7302| \$GREP \"runtime.cfg\""
7303at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:536"
7304( $at_check_trace; COB_RUNTIME_CONFIG="" $COBCRUN --runtime-conf | tr -d '\n ' \
7305| $GREP "runtime.cfg"
7306) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7307at_status=$? at_failed=false
7308$at_check_filter
7309at_fn_diff_devnull "$at_stderr" || at_failed=:
7310echo stdout:; cat "$at_stdout"
7311at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:536"
7312$at_failed && at_fn_log_failure
7313$at_traceon; }
7314
7315
7316  set +x
7317  $at_times_p && times >"$at_times_file"
7318) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7319read at_status <"$at_status_file"
7320#AT_STOP_37
7321#AT_START_38
7322at_fn_group_banner 38 'configuration.at:543' \
7323  "runtime configuration file" "                     " 1
7324at_xfail=no
7325(
7326  $as_echo "38. $at_setup_line: testing $at_desc ..."
7327  $at_traceon
7328
7329
7330
7331cat >test.cfg <<'_ATEOF'
7332
7333include "test2.cfg"
7334_ATEOF
7335
7336
7337cat >test2.cfg <<'_ATEOF'
7338
7339physical_cancel true
7340_ATEOF
7341
7342
7343cat >test3.cfg <<'_ATEOF'
7344
7345setenv COB_PHYSICAL_CANCEL=true
7346_ATEOF
7347
7348
7349
7350# verify that default for physical cancel is still "no"
7351{ set +x
7352$as_echo "$at_srcdir/configuration.at:560: \$COBCRUN --runtime-conf | \\
7353\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"no\" | \$GREP \"default\""
7354at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:560"
7355( $at_check_trace; $COBCRUN --runtime-conf | \
7356$GREP "COB_PHYSICAL_CANCEL" | $GREP "no" | $GREP "default"
7357) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7358at_status=$? at_failed=false
7359$at_check_filter
7360at_fn_diff_devnull "$at_stderr" || at_failed=:
7361echo stdout:; cat "$at_stdout"
7362at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:560"
7363$at_failed && at_fn_log_failure
7364$at_traceon; }
7365
7366
7367# verify that override via -c works and if include works
7368{ set +x
7369$as_echo "$at_srcdir/configuration.at:564: \$COBCRUN -c test2.cfg --runtime-conf | \\
7370\$GREP \"physical_cancel\" | \$GREP \"yes\""
7371at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:564"
7372( $at_check_trace; $COBCRUN -c test2.cfg --runtime-conf | \
7373$GREP "physical_cancel" | $GREP "yes"
7374) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7375at_status=$? at_failed=false
7376$at_check_filter
7377at_fn_diff_devnull "$at_stderr" || at_failed=:
7378echo stdout:; cat "$at_stdout"
7379at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:564"
7380$at_failed && at_fn_log_failure
7381$at_traceon; }
7382
7383{ set +x
7384$as_echo "$at_srcdir/configuration.at:566: \$COBCRUN -c test.cfg --runtime-conf | \\
7385\$GREP \"physical_cancel\" | \$GREP \"yes\""
7386at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:566"
7387( $at_check_trace; $COBCRUN -c test.cfg --runtime-conf | \
7388$GREP "physical_cancel" | $GREP "yes"
7389) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7390at_status=$? at_failed=false
7391$at_check_filter
7392at_fn_diff_devnull "$at_stderr" || at_failed=:
7393echo stdout:; cat "$at_stdout"
7394at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:566"
7395$at_failed && at_fn_log_failure
7396$at_traceon; }
7397
7398{ set +x
7399$as_echo "$at_srcdir/configuration.at:568: \$COBCRUN -c test3.cfg --runtime-conf | \\
7400\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
7401at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:568"
7402( $at_check_trace; $COBCRUN -c test3.cfg --runtime-conf | \
7403$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
7404) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7405at_status=$? at_failed=false
7406$at_check_filter
7407at_fn_diff_devnull "$at_stderr" || at_failed=:
7408echo stdout:; cat "$at_stdout"
7409at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:568"
7410$at_failed && at_fn_log_failure
7411$at_traceon; }
7412
7413
7414# verify that that long option works
7415{ set +x
7416$as_echo "$at_srcdir/configuration.at:572: \$COBCRUN --config=test3.cfg --runtime-conf | \\
7417\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
7418at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:572"
7419( $at_check_trace; $COBCRUN --config=test3.cfg --runtime-conf | \
7420$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
7421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7422at_status=$? at_failed=false
7423$at_check_filter
7424at_fn_diff_devnull "$at_stderr" || at_failed=:
7425echo stdout:; cat "$at_stdout"
7426at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:572"
7427$at_failed && at_fn_log_failure
7428$at_traceon; }
7429
7430
7431# verify that that environment setting works
7432{ set +x
7433$as_echo "$at_srcdir/configuration.at:576: COB_RUNTIME_CONFIG=test3.cfg \$COBCRUN --runtime-conf | \\
7434\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
7435at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:576"
7436( $at_check_trace; COB_RUNTIME_CONFIG=test3.cfg $COBCRUN --runtime-conf | \
7437$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
7438) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7439at_status=$? at_failed=false
7440$at_check_filter
7441at_fn_diff_devnull "$at_stderr" || at_failed=:
7442echo stdout:; cat "$at_stdout"
7443at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:576"
7444$at_failed && at_fn_log_failure
7445$at_traceon; }
7446
7447
7448# verify that configuration file loading with full path works
7449{ set +x
7450$as_echo "$at_srcdir/configuration.at:580: \$COBCRUN -c \"\$(_return_path \"\$(pwd)/test.cfg\")\" --runtime-conf"
7451at_fn_check_prepare_notrace 'a $(...) command substitution' "configuration.at:580"
7452( $at_check_trace; $COBCRUN -c "$(_return_path "$(pwd)/test.cfg")" --runtime-conf
7453) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7454at_status=$? at_failed=false
7455$at_check_filter
7456at_fn_diff_devnull "$at_stderr" || at_failed=:
7457echo stdout:; cat "$at_stdout"
7458at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:580"
7459$at_failed && at_fn_log_failure
7460$at_traceon; }
7461
7462
7463  set +x
7464  $at_times_p && times >"$at_times_file"
7465) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7466read at_status <"$at_status_file"
7467#AT_STOP_38
7468#AT_START_39
7469at_fn_group_banner 39 'configuration.at:586' \
7470  "runtime configuration: recursive include" "       " 1
7471at_xfail=no
7472(
7473  $as_echo "39. $at_setup_line: testing $at_desc ..."
7474  $at_traceon
7475
7476
7477
7478cat >test.cfg <<'_ATEOF'
7479
7480# different line for "include" to check the line number
7481include "test2.cfg"
7482_ATEOF
7483
7484
7485cat >test2.cfg <<'_ATEOF'
7486
7487# include in
7488# line 4
7489include "test3.cfg"
7490_ATEOF
7491
7492
7493cat >test3.cfg <<'_ATEOF'
7494
7495include "test.cfg"
7496_ATEOF
7497
7498
7499{ set +x
7500$as_echo "$at_srcdir/configuration.at:604: \$COBCRUN -c test.cfg -r"
7501at_fn_check_prepare_dynamic "$COBCRUN -c test.cfg -r" "configuration.at:604"
7502( $at_check_trace; $COBCRUN -c test.cfg -r
7503) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7504at_status=$? at_failed=false
7505$at_check_filter
7506echo >>"$at_stderr"; $as_echo "configuration error:
7507test.cfg: recursive inclusion
7508test3.cfg:2: configuration file was included here
7509test2.cfg:4: configuration file was included here
7510test.cfg:3: configuration file was included here
7511" | \
7512  $at_diff - "$at_stderr" || at_failed=:
7513at_fn_diff_devnull "$at_stdout" || at_failed=:
7514at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:604"
7515$at_failed && at_fn_log_failure
7516$at_traceon; }
7517
7518
7519  set +x
7520  $at_times_p && times >"$at_times_file"
7521) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7522read at_status <"$at_status_file"
7523#AT_STOP_39
7524#AT_START_40
7525at_fn_group_banner 40 'configuration.at:615' \
7526  "runtime configuration: environment priority" "    " 1
7527at_xfail=no
7528(
7529  $as_echo "40. $at_setup_line: testing $at_desc ..."
7530  $at_traceon
7531
7532
7533
7534cat >test.cfg <<'_ATEOF'
7535
7536physical_cancel true
7537_ATEOF
7538
7539
7540{ set +x
7541$as_echo "$at_srcdir/configuration.at:622: COB_PHYSICAL_CANCEL=false \$COBCRUN -c test.cfg --runtime-conf | \\
7542\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"no\""
7543at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:622"
7544( $at_check_trace; COB_PHYSICAL_CANCEL=false $COBCRUN -c test.cfg --runtime-conf | \
7545$GREP "COB_PHYSICAL_CANCEL" | $GREP "no"
7546) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7547at_status=$? at_failed=false
7548$at_check_filter
7549at_fn_diff_devnull "$at_stderr" || at_failed=:
7550echo stdout:; cat "$at_stdout"
7551at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:622"
7552$at_failed && at_fn_log_failure
7553$at_traceon; }
7554
7555
7556  set +x
7557  $at_times_p && times >"$at_times_file"
7558) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7559read at_status <"$at_status_file"
7560#AT_STOP_40
7561#AT_START_41
7562at_fn_group_banner 41 'configuration.at:628' \
7563  "runtime configuration: entries" "                 " 1
7564at_xfail=no
7565(
7566  $as_echo "41. $at_setup_line: testing $at_desc ..."
7567  $at_traceon
7568
7569
7570
7571{ set +x
7572$as_echo "$at_srcdir/configuration.at:631: echo \"\$PATHSEP\""
7573at_fn_check_prepare_dynamic "echo \"$PATHSEP\"" "configuration.at:631"
7574( $at_check_trace; echo "$PATHSEP"
7575) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7576at_status=$? at_failed=false
7577$at_check_filter
7578at_fn_diff_devnull "$at_stderr" || at_failed=:
7579echo >>"$at_stdout"; $as_echo ";
7580" | \
7581  $at_diff - "$at_stdout" || at_failed=:
7582at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:631"
7583if $at_failed; then :
7584  # Previous test "failed" --> PATHSEP isn't ;
7585
7586cat >defunc.cfg <<'_ATEOF'
7587
7588novar
7589physical_cancel notwithme
7590load_case  insensitive
7591varseq_format big
7592sort_chunk 4K
7593sort_memory 4G # too big by some byte
7594setenv nothing
7595sort_chunk
7596trace_file /tmp:/temp
7597_ATEOF
7598
7599
7600# conf entries must be clean
7601{ set +x
7602$as_echo "$at_srcdir/configuration.at:649: \$COBCRUN -c defunc.cfg --runtime-conf"
7603at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:649"
7604( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
7605) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7606at_status=$? at_failed=false
7607$at_check_filter
7608echo >>"$at_stderr"; $as_echo "configuration error:
7609defunc.cfg:2: unknown configuration tag 'novar'
7610defunc.cfg:3: invalid value 'notwithme' for configuration tag 'physical_cancel';
7611	should be one of the following values: true, false
7612defunc.cfg:4: invalid value 'insensitive' for configuration tag 'load_case';
7613	should be one of the following values: LOWER(1), UPPER(2), not set(0)
7614defunc.cfg:5: invalid value 'big' for configuration tag 'varseq_format';
7615	should be one of the following values: 0, 1, 2, 3
7616defunc.cfg:6: invalid value '4K' for configuration tag 'sort_chunk';
7617	minimum value: 131072
7618defunc.cfg:7: invalid value '4G' for configuration tag 'sort_memory';
7619	maximum value: 4294967294
7620defunc.cfg:8: WARNING - 'setenv nothing' without a value - ignored!
7621defunc.cfg:9: WARNING - 'sort_chunk' without a value - ignored!
7622defunc.cfg:10: invalid value '/tmp:/temp' for configuration tag 'trace_file';
7623	should not contain ':'
7624" | \
7625  $at_diff - "$at_stderr" || at_failed=:
7626at_fn_diff_devnull "$at_stdout" || at_failed=:
7627at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:649"
7628$at_failed && at_fn_log_failure
7629$at_traceon; }
7630
7631
7632
7633else
7634  # Previous test "passed" --> PATHSEP is ;
7635
7636cat >defunc.cfg <<'_ATEOF'
7637
7638novar
7639physical_cancel notwithme
7640load_case  insensitive
7641varseq_format big
7642sort_chunk 4K
7643sort_memory 4G # too big by some byte
7644setenv nothing
7645sort_chunk
7646trace_file C:\tmp;C:\temp
7647_ATEOF
7648
7649
7650# conf entries must be clean
7651{ set +x
7652$as_echo "$at_srcdir/configuration.at:685: \$COBCRUN -c defunc.cfg --runtime-conf"
7653at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:685"
7654( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
7655) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7656at_status=$? at_failed=false
7657$at_check_filter
7658echo >>"$at_stderr"; $as_echo "configuration error:
7659defunc.cfg:2: unknown configuration tag 'novar'
7660defunc.cfg:3: invalid value 'notwithme' for configuration tag 'physical_cancel';
7661	should be one of the following values: true, false
7662defunc.cfg:4: invalid value 'insensitive' for configuration tag 'load_case';
7663	should be one of the following values: LOWER(1), UPPER(2), not set(0)
7664defunc.cfg:5: invalid value 'big' for configuration tag 'varseq_format';
7665	should be one of the following values: 0, 1, 2, 3
7666defunc.cfg:6: invalid value '4K' for configuration tag 'sort_chunk';
7667	minimum value: 131072
7668defunc.cfg:7: invalid value '4G' for configuration tag 'sort_memory';
7669	maximum value: 4294967294
7670defunc.cfg:8: WARNING - 'setenv nothing' without a value - ignored!
7671defunc.cfg:9: WARNING - 'sort_chunk' without a value - ignored!
7672defunc.cfg:10: invalid value 'C:\\tmp;C:\\temp' for configuration tag 'trace_file';
7673	should not contain ';'
7674" | \
7675  $at_diff - "$at_stderr" || at_failed=:
7676at_fn_diff_devnull "$at_stdout" || at_failed=:
7677at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:685"
7678$at_failed && at_fn_log_failure
7679$at_traceon; }
7680
7681
7682
7683fi
7684$at_failed && at_fn_log_failure
7685$at_traceon; }
7686
7687
7688  set +x
7689  $at_times_p && times >"$at_times_file"
7690) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7691read at_status <"$at_status_file"
7692#AT_STOP_41
7693#AT_START_42
7694at_fn_group_banner 42 'configuration.at:709' \
7695  "runtime configuration: conf missing" "            " 1
7696at_xfail=no
7697(
7698  $as_echo "42. $at_setup_line: testing $at_desc ..."
7699  $at_traceon
7700
7701
7702
7703cat >defunc.cfg <<'_ATEOF'
7704
7705include "notthere.cfg"
7706_ATEOF
7707
7708
7709cat >defunc2.cfg <<'_ATEOF'
7710
7711include
7712_ATEOF
7713
7714
7715{ set +x
7716$as_echo "$at_srcdir/configuration.at:720: \$COBCRUN -c notthere.cfg --runtime-conf"
7717at_fn_check_prepare_dynamic "$COBCRUN -c notthere.cfg --runtime-conf" "configuration.at:720"
7718( $at_check_trace; $COBCRUN -c notthere.cfg --runtime-conf
7719) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7720at_status=$? at_failed=false
7721$at_check_filter
7722echo >>"$at_stderr"; $as_echo "configuration error:
7723notthere.cfg: No such file or directory
7724" | \
7725  $at_diff - "$at_stderr" || at_failed=:
7726at_fn_diff_devnull "$at_stdout" || at_failed=:
7727at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:720"
7728$at_failed && at_fn_log_failure
7729$at_traceon; }
7730
7731{ set +x
7732$as_echo "$at_srcdir/configuration.at:724: \$COBCRUN -c defunc.cfg --runtime-conf"
7733at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:724"
7734( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
7735) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7736at_status=$? at_failed=false
7737$at_check_filter
7738echo >>"$at_stderr"; $as_echo "configuration error:
7739notthere.cfg: No such file or directory
7740defunc.cfg:2: configuration file was included here
7741" | \
7742  $at_diff - "$at_stderr" || at_failed=:
7743at_fn_diff_devnull "$at_stdout" || at_failed=:
7744at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:724"
7745$at_failed && at_fn_log_failure
7746$at_traceon; }
7747
7748
7749{ set +x
7750$as_echo "$at_srcdir/configuration.at:730: \$COBCRUN -c defunc2.cfg --runtime-conf"
7751at_fn_check_prepare_dynamic "$COBCRUN -c defunc2.cfg --runtime-conf" "configuration.at:730"
7752( $at_check_trace; $COBCRUN -c defunc2.cfg --runtime-conf
7753) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7754at_status=$? at_failed=false
7755$at_check_filter
7756echo >>"$at_stderr"; $as_echo "configuration error:
7757defunc2.cfg:2: 'include' without a value!
7758" | \
7759  $at_diff - "$at_stderr" || at_failed=:
7760at_fn_diff_devnull "$at_stdout" || at_failed=:
7761at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:730"
7762$at_failed && at_fn_log_failure
7763$at_traceon; }
7764
7765
7766  set +x
7767  $at_times_p && times >"$at_times_file"
7768) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7769read at_status <"$at_status_file"
7770#AT_STOP_42
7771#AT_START_43
7772at_fn_group_banner 43 'configuration.at:738' \
7773  "runtime configuration: conf optional" "           " 1
7774at_xfail=no
7775(
7776  $as_echo "43. $at_setup_line: testing $at_desc ..."
7777  $at_traceon
7778
7779
7780
7781cat >defunc.cfg <<'_ATEOF'
7782
7783include "runtime_empty.cfg"
7784includeif "notthere.cfg"
7785_ATEOF
7786
7787
7788{ set +x
7789$as_echo "$at_srcdir/configuration.at:746: \$COBCRUN -c defunc.cfg --runtime-conf"
7790at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:746"
7791( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
7792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7793at_status=$? at_failed=false
7794$at_check_filter
7795at_fn_diff_devnull "$at_stderr" || at_failed=:
7796echo stdout:; cat "$at_stdout"
7797at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:746"
7798$at_failed && at_fn_log_failure
7799$at_traceon; }
7800
7801
7802  set +x
7803  $at_times_p && times >"$at_times_file"
7804) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7805read at_status <"$at_status_file"
7806#AT_STOP_43
7807#AT_START_44
7808at_fn_group_banner 44 'configuration.at:751' \
7809  "runtime configuration: strings and environment" " " 1
7810at_xfail=no
7811(
7812  $as_echo "44. $at_setup_line: testing $at_desc ..."
7813  $at_traceon
7814
7815
7816
7817{ set +x
7818$as_echo "$at_srcdir/configuration.at:754: unset greet name ; \\
7819   TESTME=\"this is a test\" \\
7820   COB_EXIT_MSG='\${greet:Bye} \${name:-user}, \${TESTME}' \\
7821   \$COBCRUN --runtime-conf | \\
7822\$GREP \"COB_EXIT_MSG\" | \$GREP \"Bye user, this is a test\""
7823at_fn_check_prepare_notrace 'a ${...} parameter expansion' "configuration.at:754"
7824( $at_check_trace; unset greet name ; \
7825   TESTME="this is a test" \
7826   COB_EXIT_MSG='${greet:Bye} ${name:-user}, ${TESTME}' \
7827   $COBCRUN --runtime-conf | \
7828$GREP "COB_EXIT_MSG" | $GREP "Bye user, this is a test"
7829) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7830at_status=$? at_failed=false
7831$at_check_filter
7832at_fn_diff_devnull "$at_stderr" || at_failed=:
7833echo stdout:; cat "$at_stdout"
7834at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:754"
7835$at_failed && at_fn_log_failure
7836$at_traceon; }
7837
7838{ set +x
7839$as_echo "$at_srcdir/configuration.at:759: \$COBCRUN --runtime-conf | \\
7840\$GREP \"COB_EXIT_MSG\" | \$GREP \"end of program, please press a key to exit\""
7841at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:759"
7842( $at_check_trace; $COBCRUN --runtime-conf | \
7843$GREP "COB_EXIT_MSG" | $GREP "end of program, please press a key to exit"
7844) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7845at_status=$? at_failed=false
7846$at_check_filter
7847at_fn_diff_devnull "$at_stderr" || at_failed=:
7848echo stdout:; cat "$at_stdout"
7849at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:759"
7850$at_failed && at_fn_log_failure
7851$at_traceon; }
7852
7853
7854  set +x
7855  $at_times_p && times >"$at_times_file"
7856) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7857read at_status <"$at_status_file"
7858#AT_STOP_44
7859#AT_START_45
7860at_fn_group_banner 45 'configuration.at:765' \
7861  "validation of COB_CONFIG_DIR" "                   " 1
7862at_xfail=no
7863(
7864  $as_echo "45. $at_setup_line: testing $at_desc ..."
7865  $at_traceon
7866
7867
7868
7869cat >prog.cob <<'_ATEOF'
7870
7871       IDENTIFICATION   DIVISION.
7872       PROGRAM-ID.      prog.
7873       PROCEDURE        DIVISION.
7874           STOP RUN.
7875_ATEOF
7876
7877
7878{ set +x
7879$as_echo "$at_srcdir/configuration.at:775: echo \"\$PATHSEP\""
7880at_fn_check_prepare_dynamic "echo \"$PATHSEP\"" "configuration.at:775"
7881( $at_check_trace; echo "$PATHSEP"
7882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7883at_status=$? at_failed=false
7884$at_check_filter
7885at_fn_diff_devnull "$at_stderr" || at_failed=:
7886echo >>"$at_stdout"; $as_echo ";
7887" | \
7888  $at_diff - "$at_stdout" || at_failed=:
7889at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:775"
7890if $at_failed; then :
7891  # Previous test "failed" --> PATHSEP isn't ;
7892
7893{ set +x
7894$as_echo "$at_srcdir/configuration.at:780: COB_CONFIG_DIR=\"/temp:/tmp\" \\
7895\$COMPILE prog.cob"
7896at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:780"
7897( $at_check_trace; COB_CONFIG_DIR="/temp:/tmp" \
7898$COMPILE prog.cob
7899) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7900at_status=$? at_failed=false
7901$at_check_filter
7902echo >>"$at_stderr"; $as_echo "cobc: environment variable 'COB_CONFIG_DIR' is '/temp:/tmp'; should not contain ':'
7903configuration error:
7904default.conf: No such file or directory
7905cobc: error: please check environment variables as noted above
7906" | \
7907  $at_diff - "$at_stderr" || at_failed=:
7908at_fn_diff_devnull "$at_stdout" || at_failed=:
7909at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:780"
7910$at_failed && at_fn_log_failure
7911$at_traceon; }
7912
7913
7914
7915else
7916  # Previous test "passed" --> PATHSEP is ;
7917
7918{ set +x
7919$as_echo "$at_srcdir/configuration.at:792: COB_CONFIG_DIR=\"C:\\temp;C:\\tmp\" \\
7920\$COMPILE prog.cob"
7921at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:792"
7922( $at_check_trace; COB_CONFIG_DIR="C:\temp;C:\tmp" \
7923$COMPILE prog.cob
7924) >>"$at_stdout" 2>>"$at_stderr" 5>&-
7925at_status=$? at_failed=false
7926$at_check_filter
7927echo >>"$at_stderr"; $as_echo "cobc: environment variable 'COB_CONFIG_DIR' is 'C:\\temp;C:\\tmp'; should not contain ';'
7928configuration error:
7929default.conf: No such file or directory
7930cobc: error: please check environment variables as noted above
7931" | \
7932  $at_diff - "$at_stderr" || at_failed=:
7933at_fn_diff_devnull "$at_stdout" || at_failed=:
7934at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:792"
7935$at_failed && at_fn_log_failure
7936$at_traceon; }
7937
7938
7939
7940fi
7941$at_failed && at_fn_log_failure
7942$at_traceon; }
7943
7944
7945  set +x
7946  $at_times_p && times >"$at_times_file"
7947) 5>&1 2>&1 7>&- | eval $at_tee_pipe
7948read at_status <"$at_status_file"
7949#AT_STOP_45
7950#AT_START_46
7951at_fn_group_banner 46 'syn_copy.at:21' \
7952  "COPY: IN / OF / -I" "                             " 2
7953at_xfail=no
7954(
7955  $as_echo "46. $at_setup_line: testing $at_desc ..."
7956  $at_traceon
7957
7958
7959
7960cat >prog.cob <<'_ATEOF'
7961
7962       IDENTIFICATION   DIVISION.
7963       PROGRAM-ID.      prog.
7964       DATA             DIVISION.
7965       WORKING-STORAGE  SECTION.
7966       COPY "copy.inc" IN SUB.
7967       PROCEDURE        DIVISION.
7968           DISPLAY TEST-VAR.
7969           STOP RUN.
7970_ATEOF
7971
7972
7973cat >prog2.cob <<'_ATEOF'
7974
7975       IDENTIFICATION   DIVISION.
7976       PROGRAM-ID.      prog.
7977       DATA             DIVISION.
7978       WORKING-STORAGE  SECTION.
7979       COPY "copy.inc" OF SUB.
7980       PROCEDURE        DIVISION.
7981           DISPLAY TEST-VAR.
7982           STOP RUN.
7983_ATEOF
7984
7985
7986cat >prog2.cob <<'_ATEOF'
7987
7988       IDENTIFICATION   DIVISION.
7989       PROGRAM-ID.      prog.
7990       DATA             DIVISION.
7991       WORKING-STORAGE  SECTION.
7992       COPY "copy.inc" OF SUB.
7993       PROCEDURE        DIVISION.
7994           DISPLAY TEST-VAR.
7995           STOP RUN.
7996_ATEOF
7997
7998
7999# TODO: Should default to auto-folding when IN "sub2" (literal) is used
8000#       and therefore don't work on case-sensitive file-systems
8001cat >prog3.cob <<'_ATEOF'
8002
8003       IDENTIFICATION   DIVISION.
8004       PROGRAM-ID.      prog.
8005       DATA             DIVISION.
8006       WORKING-STORAGE  SECTION.
8007       COPY "copy.inc" IN sub2.
8008       PROCEDURE        DIVISION.
8009           DISPLAY TEST-VAR.
8010           STOP RUN.
8011_ATEOF
8012
8013
8014cat >prog4.cob <<'_ATEOF'
8015
8016       IDENTIFICATION   DIVISION.
8017       PROGRAM-ID.      prog.
8018       DATA             DIVISION.
8019       WORKING-STORAGE  SECTION.
8020       COPY "copy.inc".
8021       PROCEDURE        DIVISION.
8022           DISPLAY TEST-VAR.
8023           STOP RUN.
8024_ATEOF
8025
8026
8027cat >prog5.cob <<'_ATEOF'
8028
8029       IDENTIFICATION   DIVISION.
8030       PROGRAM-ID.      prog.
8031       DATA             DIVISION.
8032       WORKING-STORAGE  SECTION.
8033       COPY "copy.inc" IN CBD.
8034       PROCEDURE        DIVISION.
8035           DISPLAY TEST-VAR.
8036           STOP RUN.
8037_ATEOF
8038
8039
8040{ set +x
8041$as_echo "$at_srcdir/syn_copy.at:92: mkdir -p SUB"
8042at_fn_check_prepare_trace "syn_copy.at:92"
8043( $at_check_trace; mkdir -p SUB
8044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8045at_status=$? at_failed=false
8046$at_check_filter
8047at_fn_diff_devnull "$at_stderr" || at_failed=:
8048at_fn_diff_devnull "$at_stdout" || at_failed=:
8049at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:92"
8050$at_failed && at_fn_log_failure
8051$at_traceon; }
8052
8053cat >SUB/copy.inc <<'_ATEOF'
8054
8055       77  TEST-VAR     PIC X VALUE '1'.
8056_ATEOF
8057
8058
8059{ set +x
8060$as_echo "$at_srcdir/syn_copy.at:97: mkdir -p sub2"
8061at_fn_check_prepare_trace "syn_copy.at:97"
8062( $at_check_trace; mkdir -p sub2
8063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8064at_status=$? at_failed=false
8065$at_check_filter
8066at_fn_diff_devnull "$at_stderr" || at_failed=:
8067at_fn_diff_devnull "$at_stdout" || at_failed=:
8068at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:97"
8069$at_failed && at_fn_log_failure
8070$at_traceon; }
8071
8072cat >sub2/copy.inc <<'_ATEOF'
8073
8074       77  TEST-VAR     PIC X VALUE '2'.
8075_ATEOF
8076
8077
8078{ set +x
8079$as_echo "$at_srcdir/syn_copy.at:102: mkdir -p SUB/UNDER"
8080at_fn_check_prepare_trace "syn_copy.at:102"
8081( $at_check_trace; mkdir -p SUB/UNDER
8082) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8083at_status=$? at_failed=false
8084$at_check_filter
8085at_fn_diff_devnull "$at_stderr" || at_failed=:
8086at_fn_diff_devnull "$at_stdout" || at_failed=:
8087at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:102"
8088$at_failed && at_fn_log_failure
8089$at_traceon; }
8090
8091cat >SUB/UNDER/copy.inc <<'_ATEOF'
8092
8093       77  TEST-VAR     PIC X VALUE '3'.
8094_ATEOF
8095
8096cat >copy.inc <<'_ATEOF'
8097
8098       77  TEST-VAR     PIC X VALUE '4'.
8099_ATEOF
8100
8101
8102{ set +x
8103$as_echo "$at_srcdir/syn_copy.at:110: \$COMPILE_ONLY prog.cob"
8104at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:110"
8105( $at_check_trace; $COMPILE_ONLY prog.cob
8106) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8107at_status=$? at_failed=false
8108$at_check_filter
8109at_fn_diff_devnull "$at_stderr" || at_failed=:
8110at_fn_diff_devnull "$at_stdout" || at_failed=:
8111at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:110"
8112$at_failed && at_fn_log_failure
8113$at_traceon; }
8114
8115{ set +x
8116$as_echo "$at_srcdir/syn_copy.at:111: \$COMPILE_ONLY prog2.cob"
8117at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_copy.at:111"
8118( $at_check_trace; $COMPILE_ONLY prog2.cob
8119) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8120at_status=$? at_failed=false
8121$at_check_filter
8122at_fn_diff_devnull "$at_stderr" || at_failed=:
8123at_fn_diff_devnull "$at_stdout" || at_failed=:
8124at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:111"
8125$at_failed && at_fn_log_failure
8126$at_traceon; }
8127
8128{ set +x
8129$as_echo "$at_srcdir/syn_copy.at:112: \$COMPILE_ONLY prog3.cob"
8130at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:112"
8131( $at_check_trace; $COMPILE_ONLY prog3.cob
8132) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8133at_status=$? at_failed=false
8134$at_check_filter
8135at_fn_diff_devnull "$at_stderr" || at_failed=:
8136at_fn_diff_devnull "$at_stdout" || at_failed=:
8137at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:112"
8138$at_failed && at_fn_log_failure
8139$at_traceon; }
8140
8141{ set +x
8142$as_echo "$at_srcdir/syn_copy.at:113: \$COMPILE_ONLY prog4.cob -I SUB"
8143at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob -I SUB" "syn_copy.at:113"
8144( $at_check_trace; $COMPILE_ONLY prog4.cob -I SUB
8145) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8146at_status=$? at_failed=false
8147$at_check_filter
8148at_fn_diff_devnull "$at_stderr" || at_failed=:
8149at_fn_diff_devnull "$at_stdout" || at_failed=:
8150at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:113"
8151$at_failed && at_fn_log_failure
8152$at_traceon; }
8153
8154{ set +x
8155$as_echo "$at_srcdir/syn_copy.at:114: unset COB_COPY_LIB_CBD; \$COMPILE_ONLY prog5.cob"
8156at_fn_check_prepare_dynamic "unset COB_COPY_LIB_CBD; $COMPILE_ONLY prog5.cob" "syn_copy.at:114"
8157( $at_check_trace; unset COB_COPY_LIB_CBD; $COMPILE_ONLY prog5.cob
8158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8159at_status=$? at_failed=false
8160$at_check_filter
8161echo >>"$at_stderr"; $as_echo "prog5.cob:6: warning: copybook not found in library 'CBD', library-name ignored
8162" | \
8163  $at_diff - "$at_stderr" || at_failed=:
8164at_fn_diff_devnull "$at_stdout" || at_failed=:
8165at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:114"
8166$at_failed && at_fn_log_failure
8167$at_traceon; }
8168
8169{ set +x
8170$as_echo "$at_srcdir/syn_copy.at:117: COB_COPY_LIB_CBD=\"./SUB/UNDER\" \$COMPILE_ONLY prog5.cob"
8171at_fn_check_prepare_dynamic "COB_COPY_LIB_CBD=\"./SUB/UNDER\" $COMPILE_ONLY prog5.cob" "syn_copy.at:117"
8172( $at_check_trace; COB_COPY_LIB_CBD="./SUB/UNDER" $COMPILE_ONLY prog5.cob
8173) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8174at_status=$? at_failed=false
8175$at_check_filter
8176at_fn_diff_devnull "$at_stderr" || at_failed=:
8177at_fn_diff_devnull "$at_stdout" || at_failed=:
8178at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:117"
8179$at_failed && at_fn_log_failure
8180$at_traceon; }
8181
8182{ set +x
8183$as_echo "$at_srcdir/syn_copy.at:118: COB_COPY_LIB_CBD=\"\" \$COMPILE_ONLY prog5.cob"
8184at_fn_check_prepare_dynamic "COB_COPY_LIB_CBD=\"\" $COMPILE_ONLY prog5.cob" "syn_copy.at:118"
8185( $at_check_trace; COB_COPY_LIB_CBD="" $COMPILE_ONLY prog5.cob
8186) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8187at_status=$? at_failed=false
8188$at_check_filter
8189at_fn_diff_devnull "$at_stderr" || at_failed=:
8190at_fn_diff_devnull "$at_stdout" || at_failed=:
8191at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:118"
8192$at_failed && at_fn_log_failure
8193$at_traceon; }
8194
8195
8196  set +x
8197  $at_times_p && times >"$at_times_file"
8198) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8199read at_status <"$at_status_file"
8200#AT_STOP_46
8201#AT_START_47
8202at_fn_group_banner 47 'syn_copy.at:123' \
8203  "COPY: relative copybooks" "                       " 2
8204at_xfail=yes
8205(
8206  $as_echo "47. $at_setup_line: testing $at_desc ..."
8207  $at_traceon
8208
8209
8210
8211# TODO - the source for the COPY statement is currently completely ignored
8212
8213
8214{ set +x
8215$as_echo "$at_srcdir/syn_copy.at:129: mkdir -p SUB/SUB2/SUB3"
8216at_fn_check_prepare_trace "syn_copy.at:129"
8217( $at_check_trace; mkdir -p SUB/SUB2/SUB3
8218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8219at_status=$? at_failed=false
8220$at_check_filter
8221at_fn_diff_devnull "$at_stderr" || at_failed=:
8222at_fn_diff_devnull "$at_stdout" || at_failed=:
8223at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:129"
8224$at_failed && at_fn_log_failure
8225$at_traceon; }
8226
8227
8228cat >SUB/prog.cob <<'_ATEOF'
8229
8230       IDENTIFICATION   DIVISION.
8231       PROGRAM-ID.      prog.
8232       DATA             DIVISION.
8233       WORKING-STORAGE  SECTION.
8234       COPY "copy.inc" IN SUB2.
8235       PROCEDURE        DIVISION.
8236           DISPLAY TEST-VAR TEST-VAR2.
8237           STOP RUN.
8238_ATEOF
8239
8240
8241
8242cat >SUB/SUB2/copy.inc <<'_ATEOF'
8243
8244       COPY "copy2.inc" IN SUB3.
8245_ATEOF
8246
8247cat >SUB/SUB2/SUB3/copy2.inc <<'_ATEOF'
8248
8249       77  TEST-VAR     PIC X VALUE '1'.
8250       COPY "copy3.inc".
8251_ATEOF
8252
8253# for compatibility reasons (older GC versions) it was considered to add
8254# the current working directory, but this idea was dropped:
8255# explicit add via -I. or COB_COPY_DIR/COBCPY (where both "empty" and "." work)
8256cat >copy3.inc <<'_ATEOF'
8257
8258       COPY "copy4.inc" IN "SUBX".
8259_ATEOF
8260
8261{ set +x
8262$as_echo "$at_srcdir/syn_copy.at:156: mkdir -p SUBX"
8263at_fn_check_prepare_trace "syn_copy.at:156"
8264( $at_check_trace; mkdir -p SUBX
8265) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8266at_status=$? at_failed=false
8267$at_check_filter
8268at_fn_diff_devnull "$at_stderr" || at_failed=:
8269at_fn_diff_devnull "$at_stdout" || at_failed=:
8270at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:156"
8271$at_failed && at_fn_log_failure
8272$at_traceon; }
8273
8274cat >SUBX/copy4.inc <<'_ATEOF'
8275
8276       77  TEST-VAR2    PIC X VALUE '2'.
8277_ATEOF
8278
8279
8280{ set +x
8281$as_echo "$at_srcdir/syn_copy.at:161: \$COMPILE_ONLY -I. SUB/prog.cob"
8282at_fn_check_prepare_dynamic "$COMPILE_ONLY -I. SUB/prog.cob" "syn_copy.at:161"
8283( $at_check_trace; $COMPILE_ONLY -I. SUB/prog.cob
8284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8285at_status=$? at_failed=false
8286$at_check_filter
8287at_fn_diff_devnull "$at_stderr" || at_failed=:
8288at_fn_diff_devnull "$at_stdout" || at_failed=:
8289at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:161"
8290$at_failed && at_fn_log_failure
8291$at_traceon; }
8292
8293{ set +x
8294$as_echo "$at_srcdir/syn_copy.at:162: COB_COPY_DIR=\".\" \$COMPILE_ONLY SUB/prog.cob"
8295at_fn_check_prepare_dynamic "COB_COPY_DIR=\".\" $COMPILE_ONLY SUB/prog.cob" "syn_copy.at:162"
8296( $at_check_trace; COB_COPY_DIR="." $COMPILE_ONLY SUB/prog.cob
8297) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8298at_status=$? at_failed=false
8299$at_check_filter
8300at_fn_diff_devnull "$at_stderr" || at_failed=:
8301at_fn_diff_devnull "$at_stdout" || at_failed=:
8302at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:162"
8303$at_failed && at_fn_log_failure
8304$at_traceon; }
8305
8306{ set +x
8307$as_echo "$at_srcdir/syn_copy.at:163: COB_COPY_DIR=\":\" \$COMPILE_ONLY SUB/prog.cob"
8308at_fn_check_prepare_dynamic "COB_COPY_DIR=\":\" $COMPILE_ONLY SUB/prog.cob" "syn_copy.at:163"
8309( $at_check_trace; COB_COPY_DIR=":" $COMPILE_ONLY SUB/prog.cob
8310) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8311at_status=$? at_failed=false
8312$at_check_filter
8313at_fn_diff_devnull "$at_stderr" || at_failed=:
8314at_fn_diff_devnull "$at_stdout" || at_failed=:
8315at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:163"
8316$at_failed && at_fn_log_failure
8317$at_traceon; }
8318
8319
8320  set +x
8321  $at_times_p && times >"$at_times_file"
8322) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8323read at_status <"$at_status_file"
8324#AT_STOP_47
8325#AT_START_48
8326at_fn_group_banner 48 'syn_copy.at:168' \
8327  "COPY: extension" "                                " 2
8328at_xfail=no
8329(
8330  $as_echo "48. $at_setup_line: testing $at_desc ..."
8331  $at_traceon
8332
8333
8334
8335cat >prog.cob <<'_ATEOF'
8336
8337       IDENTIFICATION   DIVISION.
8338       PROGRAM-ID.      prog.
8339       DATA             DIVISION.
8340       WORKING-STORAGE  SECTION.
8341       COPY "copy.inc".
8342       PROCEDURE        DIVISION.
8343           DISPLAY TEST-VAR.
8344           STOP RUN.
8345_ATEOF
8346
8347
8348cat >prog2.cob <<'_ATEOF'
8349
8350       IDENTIFICATION   DIVISION.
8351       PROGRAM-ID.      prog.
8352       DATA             DIVISION.
8353       WORKING-STORAGE  SECTION.
8354       COPY "copy".
8355       PROCEDURE        DIVISION.
8356           DISPLAY TEST-VAR.
8357           STOP RUN.
8358_ATEOF
8359
8360
8361cat >prog3.cob <<'_ATEOF'
8362
8363       IDENTIFICATION   DIVISION.
8364       PROGRAM-ID.      prog.
8365       DATA             DIVISION.
8366       WORKING-STORAGE  SECTION.
8367       COPY "sub.inc" OF SUB.
8368       PROCEDURE        DIVISION.
8369           DISPLAY TEST-VAR.
8370           STOP RUN.
8371_ATEOF
8372
8373
8374cat >prog4.cob <<'_ATEOF'
8375
8376       IDENTIFICATION   DIVISION.
8377       PROGRAM-ID.      prog.
8378       DATA             DIVISION.
8379       WORKING-STORAGE  SECTION.
8380       COPY "sub" OF SUB.
8381       PROCEDURE        DIVISION.
8382           DISPLAY TEST-VAR.
8383           STOP RUN.
8384_ATEOF
8385
8386
8387cat >prog5.cob <<'_ATEOF'
8388
8389       IDENTIFICATION   DIVISION.
8390       PROGRAM-ID.      prog.
8391       DATA             DIVISION.
8392       WORKING-STORAGE  SECTION.
8393       COPY "sub" OF "..".
8394       PROCEDURE        DIVISION.
8395           DISPLAY TEST-VAR.
8396           STOP RUN.
8397_ATEOF
8398
8399
8400cat >prog6.cob <<'_ATEOF'
8401
8402       IDENTIFICATION   DIVISION.
8403       PROGRAM-ID.      prog.
8404       DATA             DIVISION.
8405       WORKING-STORAGE  SECTION.
8406       COPY "sub".
8407       PROCEDURE        DIVISION.
8408           DISPLAY TEST-VAR.
8409           STOP RUN.
8410_ATEOF
8411
8412
8413cat >copy.inc <<'_ATEOF'
8414
8415       77  TEST-VAR     PIC X VALUE 'V'.
8416_ATEOF
8417
8418{ set +x
8419$as_echo "$at_srcdir/syn_copy.at:240: mkdir -p SUB/OSUB"
8420at_fn_check_prepare_trace "syn_copy.at:240"
8421( $at_check_trace; mkdir -p SUB/OSUB
8422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8423at_status=$? at_failed=false
8424$at_check_filter
8425at_fn_diff_devnull "$at_stderr" || at_failed=:
8426at_fn_diff_devnull "$at_stdout" || at_failed=:
8427at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:240"
8428$at_failed && at_fn_log_failure
8429$at_traceon; }
8430
8431cat >SUB/sub.inc <<'_ATEOF'
8432
8433       77  TEST-VAR     PIC X VALUE 'V'.
8434_ATEOF
8435
8436
8437{ set +x
8438$as_echo "$at_srcdir/syn_copy.at:245: \$COMPILE_ONLY prog.cob"
8439at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:245"
8440( $at_check_trace; $COMPILE_ONLY prog.cob
8441) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8442at_status=$? at_failed=false
8443$at_check_filter
8444at_fn_diff_devnull "$at_stderr" || at_failed=:
8445at_fn_diff_devnull "$at_stdout" || at_failed=:
8446at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:245"
8447$at_failed && at_fn_log_failure
8448$at_traceon; }
8449
8450{ set +x
8451$as_echo "$at_srcdir/syn_copy.at:246: \$COMPILE_ONLY prog2.cob -ext=inc"
8452at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob -ext=inc" "syn_copy.at:246"
8453( $at_check_trace; $COMPILE_ONLY prog2.cob -ext=inc
8454) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8455at_status=$? at_failed=false
8456$at_check_filter
8457at_fn_diff_devnull "$at_stderr" || at_failed=:
8458at_fn_diff_devnull "$at_stdout" || at_failed=:
8459at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:246"
8460$at_failed && at_fn_log_failure
8461$at_traceon; }
8462
8463{ set +x
8464$as_echo "$at_srcdir/syn_copy.at:247: \$COMPILE_ONLY prog3.cob"
8465at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:247"
8466( $at_check_trace; $COMPILE_ONLY prog3.cob
8467) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8468at_status=$? at_failed=false
8469$at_check_filter
8470at_fn_diff_devnull "$at_stderr" || at_failed=:
8471at_fn_diff_devnull "$at_stdout" || at_failed=:
8472at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:247"
8473$at_failed && at_fn_log_failure
8474$at_traceon; }
8475
8476{ set +x
8477$as_echo "$at_srcdir/syn_copy.at:248: \$COMPILE_ONLY prog4.cob -ext=inc"
8478at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob -ext=inc" "syn_copy.at:248"
8479( $at_check_trace; $COMPILE_ONLY prog4.cob -ext=inc
8480) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8481at_status=$? at_failed=false
8482$at_check_filter
8483at_fn_diff_devnull "$at_stderr" || at_failed=:
8484at_fn_diff_devnull "$at_stdout" || at_failed=:
8485at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:248"
8486$at_failed && at_fn_log_failure
8487$at_traceon; }
8488
8489{ set +x
8490$as_echo "$at_srcdir/syn_copy.at:249: \$COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB"
8491at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB" "syn_copy.at:249"
8492( $at_check_trace; $COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB
8493) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8494at_status=$? at_failed=false
8495$at_check_filter
8496at_fn_diff_devnull "$at_stderr" || at_failed=:
8497at_fn_diff_devnull "$at_stdout" || at_failed=:
8498at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:249"
8499$at_failed && at_fn_log_failure
8500$at_traceon; }
8501
8502{ set +x
8503$as_echo "$at_srcdir/syn_copy.at:250: \$COMPILE_ONLY prog6.cob -ext=inc -I SUB"
8504at_fn_check_prepare_dynamic "$COMPILE_ONLY prog6.cob -ext=inc -I SUB" "syn_copy.at:250"
8505( $at_check_trace; $COMPILE_ONLY prog6.cob -ext=inc -I SUB
8506) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8507at_status=$? at_failed=false
8508$at_check_filter
8509at_fn_diff_devnull "$at_stderr" || at_failed=:
8510at_fn_diff_devnull "$at_stdout" || at_failed=:
8511at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:250"
8512$at_failed && at_fn_log_failure
8513$at_traceon; }
8514
8515
8516  set +x
8517  $at_times_p && times >"$at_times_file"
8518) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8519read at_status <"$at_status_file"
8520#AT_STOP_48
8521#AT_START_49
8522at_fn_group_banner 49 'syn_copy.at:255' \
8523  "COPY: within comment" "                           " 2
8524at_xfail=no
8525(
8526  $as_echo "49. $at_setup_line: testing $at_desc ..."
8527  $at_traceon
8528
8529
8530
8531cat >prog.cob <<'_ATEOF'
8532
8533       IDENTIFICATION   DIVISION.
8534       PROGRAM-ID.      prog.
8535       DATA             DIVISION.
8536       WORKING-STORAGE  SECTION.
8537      *COPY "copy.inc".
8538       PROCEDURE        DIVISION.
8539           STOP RUN.
8540_ATEOF
8541
8542
8543cat >prog2.cob <<'_ATEOF'
8544
8545  IDENTIFICATION   DIVISION.
8546  PROGRAM-ID.      prog2.
8547  DATA             DIVISION.
8548  WORKING-STORAGE  SECTION.
8549  *> COPY "copy.inc".
8550  PROCEDURE        DIVISION.
8551  STOP RUN.
8552_ATEOF
8553
8554
8555{ set +x
8556$as_echo "$at_srcdir/syn_copy.at:278: \$COMPILE_ONLY prog.cob"
8557at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:278"
8558( $at_check_trace; $COMPILE_ONLY prog.cob
8559) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8560at_status=$? at_failed=false
8561$at_check_filter
8562at_fn_diff_devnull "$at_stderr" || at_failed=:
8563at_fn_diff_devnull "$at_stdout" || at_failed=:
8564at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:278"
8565$at_failed && at_fn_log_failure
8566$at_traceon; }
8567
8568{ set +x
8569$as_echo "$at_srcdir/syn_copy.at:279: \$COMPILE_ONLY -free prog2.cob"
8570at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog2.cob" "syn_copy.at:279"
8571( $at_check_trace; $COMPILE_ONLY -free prog2.cob
8572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8573at_status=$? at_failed=false
8574$at_check_filter
8575at_fn_diff_devnull "$at_stderr" || at_failed=:
8576at_fn_diff_devnull "$at_stdout" || at_failed=:
8577at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:279"
8578$at_failed && at_fn_log_failure
8579$at_traceon; }
8580
8581
8582  set +x
8583  $at_times_p && times >"$at_times_file"
8584) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8585read at_status <"$at_status_file"
8586#AT_STOP_49
8587#AT_START_50
8588at_fn_group_banner 50 'syn_copy.at:284' \
8589  "COPY: file not found" "                           " 2
8590at_xfail=no
8591(
8592  $as_echo "50. $at_setup_line: testing $at_desc ..."
8593  $at_traceon
8594
8595
8596
8597# FIXME: possibly move "name without literal" to an extra test
8598#        also testing the library name part (as "found", because
8599#        of different slash)
8600
8601cat >prog.cob <<'_ATEOF'
8602
8603       IDENTIFICATION   DIVISION.
8604       PROGRAM-ID.      prog.
8605       DATA             DIVISION.
8606       WORKING-STORAGE  SECTION.
8607       COPY "copy.inc".
8608       PROCEDURE        DIVISION.
8609           STOP RUN.
8610_ATEOF
8611
8612
8613{ set +x
8614$as_echo "$at_srcdir/syn_copy.at:301: \$COMPILE_ONLY prog.cob"
8615at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:301"
8616( $at_check_trace; $COMPILE_ONLY prog.cob
8617) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8618at_status=$? at_failed=false
8619$at_check_filter
8620echo >>"$at_stderr"; $as_echo "prog.cob:6: error: copy.inc: No such file or directory
8621" | \
8622  $at_diff - "$at_stderr" || at_failed=:
8623at_fn_diff_devnull "$at_stdout" || at_failed=:
8624at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:301"
8625$at_failed && at_fn_log_failure
8626$at_traceon; }
8627
8628
8629cat >prog2.cob <<'_ATEOF'
8630
8631       IDENTIFICATION   DIVISION.
8632       PROGRAM-ID.      prog.
8633       DATA             DIVISION.
8634       WORKING-STORAGE  SECTION.
8635       COPY copy.inc.
8636       PROCEDURE        DIVISION.
8637           STOP RUN.
8638_ATEOF
8639
8640
8641{ set +x
8642$as_echo "$at_srcdir/syn_copy.at:315: \$COMPILE_ONLY prog2.cob"
8643at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_copy.at:315"
8644( $at_check_trace; $COMPILE_ONLY prog2.cob
8645) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8646at_status=$? at_failed=false
8647$at_check_filter
8648echo >>"$at_stderr"; $as_echo "prog2.cob:6: error: COPY.INC: No such file or directory
8649" | \
8650  $at_diff - "$at_stderr" || at_failed=:
8651at_fn_diff_devnull "$at_stdout" || at_failed=:
8652at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:315"
8653$at_failed && at_fn_log_failure
8654$at_traceon; }
8655
8656
8657cat >prog3.cob <<'_ATEOF'
8658
8659       IDENTIFICATION   DIVISION.
8660       PROGRAM-ID.      prog.
8661       DATA             DIVISION.
8662       WORKING-STORAGE  SECTION.
8663       COPY copy.INC.inc.
8664       PROCEDURE        DIVISION.
8665           STOP RUN.
8666_ATEOF
8667
8668
8669{ set +x
8670$as_echo "$at_srcdir/syn_copy.at:329: \$COMPILE_ONLY prog3.cob"
8671at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:329"
8672( $at_check_trace; $COMPILE_ONLY prog3.cob
8673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8674at_status=$? at_failed=false
8675$at_check_filter
8676echo >>"$at_stderr"; $as_echo "prog3.cob:6: error: COPY.INC.INC: No such file or directory
8677" | \
8678  $at_diff - "$at_stderr" || at_failed=:
8679at_fn_diff_devnull "$at_stdout" || at_failed=:
8680at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:329"
8681$at_failed && at_fn_log_failure
8682$at_traceon; }
8683
8684
8685{ set +x
8686$as_echo "$at_srcdir/syn_copy.at:333: \$COMPILE_ONLY -ffold-copy=lower prog3.cob"
8687at_fn_check_prepare_dynamic "$COMPILE_ONLY -ffold-copy=lower prog3.cob" "syn_copy.at:333"
8688( $at_check_trace; $COMPILE_ONLY -ffold-copy=lower prog3.cob
8689) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8690at_status=$? at_failed=false
8691$at_check_filter
8692echo >>"$at_stderr"; $as_echo "prog3.cob:6: error: copy.inc.inc: No such file or directory
8693" | \
8694  $at_diff - "$at_stderr" || at_failed=:
8695at_fn_diff_devnull "$at_stdout" || at_failed=:
8696at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:333"
8697$at_failed && at_fn_log_failure
8698$at_traceon; }
8699
8700
8701  set +x
8702  $at_times_p && times >"$at_times_file"
8703) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8704read at_status <"$at_status_file"
8705#AT_STOP_50
8706#AT_START_51
8707at_fn_group_banner 51 'syn_copy.at:340' \
8708  "COPY: recursive" "                                " 2
8709at_xfail=no
8710(
8711  $as_echo "51. $at_setup_line: testing $at_desc ..."
8712  $at_traceon
8713
8714
8715
8716cat >prog.cob <<'_ATEOF'
8717
8718       IDENTIFICATION   DIVISION.
8719       PROGRAM-ID.      prog.
8720       DATA             DIVISION.
8721       WORKING-STORAGE  SECTION.
8722       COPY copy1.
8723       PROCEDURE        DIVISION.
8724           DISPLAY TEST-VAR.
8725           STOP RUN.
8726_ATEOF
8727
8728
8729cat >copy1.CPY <<'_ATEOF'
8730
8731       COPY copy2.
8732       01 TEST-VAR  PIC X(2) VALUE "V1".
8733_ATEOF
8734
8735
8736cat >copy2.CPY <<'_ATEOF'
8737
8738       01 TEST-VAR2 PIC X(2) VALUE "V2".
8739       COPY copy3.
8740_ATEOF
8741
8742
8743cat >copy3.CPY <<'_ATEOF'
8744       COPY "copy1.CPY".
8745       01 TEST-VAR3 PIC X(2) VALUE "V3".
8746_ATEOF
8747
8748
8749{ set +x
8750$as_echo "$at_srcdir/syn_copy.at:369: \$COMPILE_ONLY prog.cob"
8751at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:369"
8752( $at_check_trace; $COMPILE_ONLY prog.cob
8753) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8754at_status=$? at_failed=false
8755$at_check_filter
8756echo >>"$at_stderr"; $as_echo "in file included from prog.cob:6:
8757in file included from copy1.CPY:2:
8758in file included from copy2.CPY:3:
8759in file included from copy3.CPY:1:
8760copy1.CPY: error: recursive inclusion
8761" | \
8762  $at_diff - "$at_stderr" || at_failed=:
8763at_fn_diff_devnull "$at_stdout" || at_failed=:
8764at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:369"
8765$at_failed && at_fn_log_failure
8766$at_traceon; }
8767
8768
8769  set +x
8770  $at_times_p && times >"$at_times_file"
8771) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8772read at_status <"$at_status_file"
8773#AT_STOP_51
8774#AT_START_52
8775at_fn_group_banner 52 'syn_copy.at:380' \
8776  "COPY: replacement order" "                        " 2
8777at_xfail=no
8778(
8779  $as_echo "52. $at_setup_line: testing $at_desc ..."
8780  $at_traceon
8781
8782
8783
8784cat >copy.inc <<'_ATEOF'
8785
8786       01 TEST-VAR PIC X(2) VALUE "OK".
8787_ATEOF
8788
8789
8790cat >prog.cob <<'_ATEOF'
8791
8792       IDENTIFICATION   DIVISION.
8793       PROGRAM-ID.      prog.
8794       DATA             DIVISION.
8795       WORKING-STORAGE  SECTION.
8796       COPY "copy.inc"
8797          REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
8798                    ==TEST-VAR== BY ==SECOND-MATCH==.
8799       PROCEDURE        DIVISION.
8800           DISPLAY FIRST-MATCH NO ADVANCING
8801           END-DISPLAY.
8802           STOP RUN.
8803_ATEOF
8804
8805
8806{ set +x
8807$as_echo "$at_srcdir/syn_copy.at:401: \$COMPILE prog.cob"
8808at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:401"
8809( $at_check_trace; $COMPILE prog.cob
8810) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8811at_status=$? at_failed=false
8812$at_check_filter
8813at_fn_diff_devnull "$at_stderr" || at_failed=:
8814at_fn_diff_devnull "$at_stdout" || at_failed=:
8815at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:401"
8816$at_failed && at_fn_log_failure
8817$at_traceon; }
8818
8819{ set +x
8820$as_echo "$at_srcdir/syn_copy.at:402: \$COBCRUN_DIRECT ./prog"
8821at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:402"
8822( $at_check_trace; $COBCRUN_DIRECT ./prog
8823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8824at_status=$? at_failed=false
8825$at_check_filter
8826at_fn_diff_devnull "$at_stderr" || at_failed=:
8827echo >>"$at_stdout"; $as_echo "OK" | \
8828  $at_diff - "$at_stdout" || at_failed=:
8829at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:402"
8830$at_failed && at_fn_log_failure
8831$at_traceon; }
8832
8833
8834  set +x
8835  $at_times_p && times >"$at_times_file"
8836) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8837read at_status <"$at_status_file"
8838#AT_STOP_52
8839#AT_START_53
8840at_fn_group_banner 53 'syn_copy.at:407' \
8841  "COPY: separators" "                               " 2
8842at_xfail=no
8843(
8844  $as_echo "53. $at_setup_line: testing $at_desc ..."
8845  $at_traceon
8846
8847
8848
8849cat >copy.inc <<'_ATEOF'
8850
8851       01 TEST-VAR PIC X(2) VALUE "OK".
8852_ATEOF
8853
8854
8855cat >prog.cob <<'_ATEOF'
8856
8857       IDENTIFICATION   DIVISION.
8858       PROGRAM-ID.      prog.
8859       DATA             DIVISION.
8860       WORKING-STORAGE  SECTION.
8861       COPY "copy.inc"
8862          REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,
8863                 ,  ==TEST-VAR==; BY ==SECOND-MATCH==;
8864                 ;  ==TEST-VAR== , BY ==THIRD-MATCH==
8865                    ==TEST-VAR== ; BY ==FOURTH-MATCH==.
8866       PROCEDURE        DIVISION.
8867           DISPLAY FIRST-MATCH NO ADVANCING
8868           END-DISPLAY.
8869           STOP RUN.
8870_ATEOF
8871
8872
8873{ set +x
8874$as_echo "$at_srcdir/syn_copy.at:430: \$COMPILE prog.cob"
8875at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:430"
8876( $at_check_trace; $COMPILE prog.cob
8877) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8878at_status=$? at_failed=false
8879$at_check_filter
8880at_fn_diff_devnull "$at_stderr" || at_failed=:
8881at_fn_diff_devnull "$at_stdout" || at_failed=:
8882at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:430"
8883$at_failed && at_fn_log_failure
8884$at_traceon; }
8885
8886{ set +x
8887$as_echo "$at_srcdir/syn_copy.at:431: \$COBCRUN_DIRECT ./prog"
8888at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:431"
8889( $at_check_trace; $COBCRUN_DIRECT ./prog
8890) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8891at_status=$? at_failed=false
8892$at_check_filter
8893at_fn_diff_devnull "$at_stderr" || at_failed=:
8894echo >>"$at_stdout"; $as_echo "OK" | \
8895  $at_diff - "$at_stdout" || at_failed=:
8896at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:431"
8897$at_failed && at_fn_log_failure
8898$at_traceon; }
8899
8900
8901  set +x
8902  $at_times_p && times >"$at_times_file"
8903) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8904read at_status <"$at_status_file"
8905#AT_STOP_53
8906#AT_START_54
8907at_fn_group_banner 54 'syn_copy.at:436' \
8908  "COPY: partial replacement" "                      " 2
8909at_xfail=no
8910(
8911  $as_echo "54. $at_setup_line: testing $at_desc ..."
8912  $at_traceon
8913
8914
8915
8916cat >copy.inc <<'_ATEOF'
8917
8918       01 :TEST:-VAR PIC X(2) VALUE "OK".
8919       01 (TEST)-VAR PIC X(2) VALUE "OK".
8920_ATEOF
8921
8922
8923cat >prog.cob <<'_ATEOF'
8924
8925       IDENTIFICATION   DIVISION.
8926       PROGRAM-ID.      prog.
8927       DATA             DIVISION.
8928       WORKING-STORAGE  SECTION.
8929       COPY "copy.inc"
8930          REPLACING ==:TEST:== BY ==COLON==
8931                    ==(TEST)== BY ==PAREN==.
8932       PROCEDURE        DIVISION.
8933           DISPLAY COLON-VAR NO ADVANCING
8934           END-DISPLAY.
8935           DISPLAY PAREN-VAR NO ADVANCING
8936           END-DISPLAY.
8937           STOP RUN.
8938_ATEOF
8939
8940
8941{ set +x
8942$as_echo "$at_srcdir/syn_copy.at:460: \$COMPILE prog.cob"
8943at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:460"
8944( $at_check_trace; $COMPILE prog.cob
8945) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8946at_status=$? at_failed=false
8947$at_check_filter
8948at_fn_diff_devnull "$at_stderr" || at_failed=:
8949at_fn_diff_devnull "$at_stdout" || at_failed=:
8950at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:460"
8951$at_failed && at_fn_log_failure
8952$at_traceon; }
8953
8954{ set +x
8955$as_echo "$at_srcdir/syn_copy.at:461: \$COBCRUN_DIRECT ./prog"
8956at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:461"
8957( $at_check_trace; $COBCRUN_DIRECT ./prog
8958) >>"$at_stdout" 2>>"$at_stderr" 5>&-
8959at_status=$? at_failed=false
8960$at_check_filter
8961at_fn_diff_devnull "$at_stderr" || at_failed=:
8962echo >>"$at_stdout"; $as_echo "OKOK" | \
8963  $at_diff - "$at_stdout" || at_failed=:
8964at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:461"
8965$at_failed && at_fn_log_failure
8966$at_traceon; }
8967
8968
8969  set +x
8970  $at_times_p && times >"$at_times_file"
8971) 5>&1 2>&1 7>&- | eval $at_tee_pipe
8972read at_status <"$at_status_file"
8973#AT_STOP_54
8974#AT_START_55
8975at_fn_group_banner 55 'syn_copy.at:466' \
8976  "COPY: LEADING replacement" "                      " 2
8977at_xfail=no
8978(
8979  $as_echo "55. $at_setup_line: testing $at_desc ..."
8980  $at_traceon
8981
8982
8983
8984cat >copy.inc <<'_ATEOF'
8985
8986       01  TEST-VAR PIC X(2) VALUE "OK".
8987       01  NORM-VAR PIC X(2) VALUE "OK".
8988_ATEOF
8989
8990
8991cat >prog.cob <<'_ATEOF'
8992
8993       IDENTIFICATION   DIVISION.
8994       PROGRAM-ID.      prog.
8995       DATA             DIVISION.
8996       WORKING-STORAGE  SECTION.
8997       COPY "copy.inc"
8998            REPLACING LEADING ==TEST== BY ==FIRST==
8999                      LEADING ==NORM== BY ==SECOND==.
9000       PROCEDURE        DIVISION.
9001           DISPLAY FIRST-VAR NO ADVANCING
9002           END-DISPLAY.
9003           DISPLAY SECOND-VAR NO ADVANCING
9004           END-DISPLAY.
9005           STOP RUN.
9006_ATEOF
9007
9008
9009{ set +x
9010$as_echo "$at_srcdir/syn_copy.at:490: \$COMPILE prog.cob"
9011at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:490"
9012( $at_check_trace; $COMPILE prog.cob
9013) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9014at_status=$? at_failed=false
9015$at_check_filter
9016at_fn_diff_devnull "$at_stderr" || at_failed=:
9017at_fn_diff_devnull "$at_stdout" || at_failed=:
9018at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:490"
9019$at_failed && at_fn_log_failure
9020$at_traceon; }
9021
9022{ set +x
9023$as_echo "$at_srcdir/syn_copy.at:491: \$COBCRUN_DIRECT ./prog"
9024at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:491"
9025( $at_check_trace; $COBCRUN_DIRECT ./prog
9026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9027at_status=$? at_failed=false
9028$at_check_filter
9029at_fn_diff_devnull "$at_stderr" || at_failed=:
9030echo >>"$at_stdout"; $as_echo "OKOK" | \
9031  $at_diff - "$at_stdout" || at_failed=:
9032at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:491"
9033$at_failed && at_fn_log_failure
9034$at_traceon; }
9035
9036
9037  set +x
9038  $at_times_p && times >"$at_times_file"
9039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9040read at_status <"$at_status_file"
9041#AT_STOP_55
9042#AT_START_56
9043at_fn_group_banner 56 'syn_copy.at:496' \
9044  "COPY: TRAILING replacement" "                     " 2
9045at_xfail=no
9046(
9047  $as_echo "56. $at_setup_line: testing $at_desc ..."
9048  $at_traceon
9049
9050
9051
9052cat >copy.inc <<'_ATEOF'
9053
9054       01  TEST-FIRST  PIC X(2) VALUE "OK".
9055       01  TEST-SECOND PIC X(2) VALUE "OK".
9056_ATEOF
9057
9058
9059cat >prog.cob <<'_ATEOF'
9060
9061       IDENTIFICATION   DIVISION.
9062       PROGRAM-ID.      prog.
9063       DATA             DIVISION.
9064       WORKING-STORAGE  SECTION.
9065       COPY "copy.inc"
9066            REPLACING TRAILING ==FIRST== BY ==VAR1==
9067                      TRAILING ==SECOND== BY ==VAR2==.
9068       PROCEDURE        DIVISION.
9069           DISPLAY TEST-VAR1 NO ADVANCING
9070           END-DISPLAY.
9071           DISPLAY TEST-VAR2 NO ADVANCING
9072           END-DISPLAY.
9073           STOP RUN.
9074_ATEOF
9075
9076
9077{ set +x
9078$as_echo "$at_srcdir/syn_copy.at:520: \$COMPILE prog.cob"
9079at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:520"
9080( $at_check_trace; $COMPILE prog.cob
9081) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9082at_status=$? at_failed=false
9083$at_check_filter
9084at_fn_diff_devnull "$at_stderr" || at_failed=:
9085at_fn_diff_devnull "$at_stdout" || at_failed=:
9086at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:520"
9087$at_failed && at_fn_log_failure
9088$at_traceon; }
9089
9090{ set +x
9091$as_echo "$at_srcdir/syn_copy.at:521: \$COBCRUN_DIRECT ./prog"
9092at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:521"
9093( $at_check_trace; $COBCRUN_DIRECT ./prog
9094) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9095at_status=$? at_failed=false
9096$at_check_filter
9097at_fn_diff_devnull "$at_stderr" || at_failed=:
9098echo >>"$at_stdout"; $as_echo "OKOK" | \
9099  $at_diff - "$at_stdout" || at_failed=:
9100at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:521"
9101$at_failed && at_fn_log_failure
9102$at_traceon; }
9103
9104
9105  set +x
9106  $at_times_p && times >"$at_times_file"
9107) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9108read at_status <"$at_status_file"
9109#AT_STOP_56
9110#AT_START_57
9111at_fn_group_banner 57 'syn_copy.at:526' \
9112  "COPY: recursive replacement" "                    " 2
9113at_xfail=no
9114(
9115  $as_echo "57. $at_setup_line: testing $at_desc ..."
9116  $at_traceon
9117
9118
9119
9120cat >copy-2.inc <<'_ATEOF'
9121
9122       01 TEST-VAR PIC X(2) VALUE "OK".
9123_ATEOF
9124
9125
9126cat >copy-1.inc <<'_ATEOF'
9127
9128       COPY "copy-2.inc".
9129_ATEOF
9130
9131
9132cat >prog.cob <<'_ATEOF'
9133
9134       IDENTIFICATION   DIVISION.
9135       PROGRAM-ID.      prog.
9136       DATA             DIVISION.
9137       WORKING-STORAGE  SECTION.
9138       COPY "copy-1.inc"
9139           REPLACING ==TEST-VAR== BY ==COPY-VAR==.
9140       PROCEDURE        DIVISION.
9141           DISPLAY COPY-VAR NO ADVANCING
9142           END-DISPLAY.
9143           STOP RUN.
9144_ATEOF
9145
9146
9147{ set +x
9148$as_echo "$at_srcdir/syn_copy.at:550: \$COMPILE prog.cob"
9149at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:550"
9150( $at_check_trace; $COMPILE prog.cob
9151) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9152at_status=$? at_failed=false
9153$at_check_filter
9154at_fn_diff_devnull "$at_stderr" || at_failed=:
9155at_fn_diff_devnull "$at_stdout" || at_failed=:
9156at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:550"
9157$at_failed && at_fn_log_failure
9158$at_traceon; }
9159
9160{ set +x
9161$as_echo "$at_srcdir/syn_copy.at:551: \$COBCRUN_DIRECT ./prog"
9162at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:551"
9163( $at_check_trace; $COBCRUN_DIRECT ./prog
9164) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9165at_status=$? at_failed=false
9166$at_check_filter
9167at_fn_diff_devnull "$at_stderr" || at_failed=:
9168echo >>"$at_stdout"; $as_echo "OK" | \
9169  $at_diff - "$at_stdout" || at_failed=:
9170at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:551"
9171$at_failed && at_fn_log_failure
9172$at_traceon; }
9173
9174
9175  set +x
9176  $at_times_p && times >"$at_times_file"
9177) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9178read at_status <"$at_status_file"
9179#AT_STOP_57
9180#AT_START_58
9181at_fn_group_banner 58 'syn_copy.at:556' \
9182  "COPY: fixed/free format" "                        " 2
9183at_xfail=no
9184(
9185  $as_echo "58. $at_setup_line: testing $at_desc ..."
9186  $at_traceon
9187
9188
9189
9190cat >copy.inc <<'_ATEOF'
9191
9192       >>SOURCE FIXED
9193       01 TEST-VAR PIC X(2) VALUE "OK".
9194_ATEOF
9195
9196
9197cat >prog.cob <<'_ATEOF'
9198
9199  IDENTIFICATION   DIVISION.
9200  PROGRAM-ID.      prog.
9201  DATA             DIVISION.
9202  WORKING-STORAGE  SECTION.
9203  COPY "copy.inc".
9204  PROCEDURE        DIVISION.
9205   DISPLAY TEST-VAR NO ADVANCING
9206   END-DISPLAY.
9207   STOP RUN.
9208_ATEOF
9209
9210
9211{ set +x
9212$as_echo "$at_srcdir/syn_copy.at:576: \$COMPILE -free prog.cob"
9213at_fn_check_prepare_dynamic "$COMPILE -free prog.cob" "syn_copy.at:576"
9214( $at_check_trace; $COMPILE -free prog.cob
9215) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9216at_status=$? at_failed=false
9217$at_check_filter
9218at_fn_diff_devnull "$at_stderr" || at_failed=:
9219at_fn_diff_devnull "$at_stdout" || at_failed=:
9220at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:576"
9221$at_failed && at_fn_log_failure
9222$at_traceon; }
9223
9224{ set +x
9225$as_echo "$at_srcdir/syn_copy.at:577: \$COBCRUN_DIRECT ./prog"
9226at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:577"
9227( $at_check_trace; $COBCRUN_DIRECT ./prog
9228) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9229at_status=$? at_failed=false
9230$at_check_filter
9231at_fn_diff_devnull "$at_stderr" || at_failed=:
9232echo >>"$at_stdout"; $as_echo "OK" | \
9233  $at_diff - "$at_stdout" || at_failed=:
9234at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:577"
9235$at_failed && at_fn_log_failure
9236$at_traceon; }
9237
9238
9239  set +x
9240  $at_times_p && times >"$at_times_file"
9241) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9242read at_status <"$at_status_file"
9243#AT_STOP_58
9244#AT_START_59
9245at_fn_group_banner 59 'syn_definition.at:25' \
9246  "Invalid source name" "                            " 2
9247at_xfail=no
9248(
9249  $as_echo "59. $at_setup_line: testing $at_desc ..."
9250  $at_traceon
9251
9252
9253
9254: >short.cob
9255
9256{ set +x
9257$as_echo "$at_srcdir/syn_definition.at:30: \$COMPILE_ONLY short.cob"
9258at_fn_check_prepare_dynamic "$COMPILE_ONLY short.cob" "syn_definition.at:30"
9259( $at_check_trace; $COMPILE_ONLY short.cob
9260) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9261at_status=$? at_failed=false
9262$at_check_filter
9263echo >>"$at_stderr"; $as_echo "short.cob: error: invalid file base name 'short' - name duplicates a 'C' keyword
9264" | \
9265  $at_diff - "$at_stderr" || at_failed=:
9266at_fn_diff_devnull "$at_stdout" || at_failed=:
9267at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:30"
9268$at_failed && at_fn_log_failure
9269$at_traceon; }
9270
9271
9272  set +x
9273  $at_times_p && times >"$at_times_file"
9274) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9275read at_status <"$at_status_file"
9276#AT_STOP_59
9277#AT_START_60
9278at_fn_group_banner 60 'syn_definition.at:37' \
9279  "Invalid PROGRAM-ID" "                             " 2
9280at_xfail=no
9281(
9282  $as_echo "60. $at_setup_line: testing $at_desc ..."
9283  $at_traceon
9284
9285
9286
9287cat >SHORT.cob <<'_ATEOF'
9288
9289       IDENTIFICATION   DIVISION.
9290       PROGRAM-ID.      short.
9291       PROCEDURE        DIVISION.
9292           STOP RUN.
9293_ATEOF
9294
9295
9296{ set +x
9297$as_echo "$at_srcdir/syn_definition.at:47: \$COMPILE_ONLY SHORT.cob"
9298at_fn_check_prepare_dynamic "$COMPILE_ONLY SHORT.cob" "syn_definition.at:47"
9299( $at_check_trace; $COMPILE_ONLY SHORT.cob
9300) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9301at_status=$? at_failed=false
9302$at_check_filter
9303echo >>"$at_stderr"; $as_echo "SHORT.cob:3: error: invalid PROGRAM-ID 'short' - name duplicates a 'C' keyword
9304" | \
9305  $at_diff - "$at_stderr" || at_failed=:
9306at_fn_diff_devnull "$at_stdout" || at_failed=:
9307at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:47"
9308$at_failed && at_fn_log_failure
9309$at_traceon; }
9310
9311
9312  set +x
9313  $at_times_p && times >"$at_times_file"
9314) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9315read at_status <"$at_status_file"
9316#AT_STOP_60
9317#AT_START_61
9318at_fn_group_banner 61 'syn_definition.at:54' \
9319  "Invalid PROGRAM-ID type clause (1)" "             " 2
9320at_xfail=no
9321(
9322  $as_echo "61. $at_setup_line: testing $at_desc ..."
9323  $at_traceon
9324
9325
9326
9327cat >prog.cob <<'_ATEOF'
9328
9329       IDENTIFICATION   DIVISION.
9330       PROGRAM-ID.      prog IS COMMON.
9331       PROCEDURE        DIVISION.
9332           STOP RUN.
9333_ATEOF
9334
9335
9336{ set +x
9337$as_echo "$at_srcdir/syn_definition.at:64: \$COMPILE_ONLY prog.cob"
9338at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:64"
9339( $at_check_trace; $COMPILE_ONLY prog.cob
9340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9341at_status=$? at_failed=false
9342$at_check_filter
9343echo >>"$at_stderr"; $as_echo "prog.cob:3: error: COMMON may only be used in a contained program
9344" | \
9345  $at_diff - "$at_stderr" || at_failed=:
9346at_fn_diff_devnull "$at_stdout" || at_failed=:
9347at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:64"
9348$at_failed && at_fn_log_failure
9349$at_traceon; }
9350
9351
9352  set +x
9353  $at_times_p && times >"$at_times_file"
9354) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9355read at_status <"$at_status_file"
9356#AT_STOP_61
9357#AT_START_62
9358at_fn_group_banner 62 'syn_definition.at:71' \
9359  "invalid PROGRAM-ID type clause (2)" "             " 2
9360at_xfail=no
9361(
9362  $as_echo "62. $at_setup_line: testing $at_desc ..."
9363  $at_traceon
9364
9365
9366
9367cat >prog.cob <<'_ATEOF'
9368
9369       IDENTIFICATION   DIVISION.
9370       PROGRAM-ID.      prog IS INITIAL RECURSIVE.
9371       PROCEDURE        DIVISION.
9372           STOP RUN.
9373_ATEOF
9374
9375
9376{ set +x
9377$as_echo "$at_srcdir/syn_definition.at:81: \$COMPILE_ONLY prog.cob"
9378at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:81"
9379( $at_check_trace; $COMPILE_ONLY prog.cob
9380) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9381at_status=$? at_failed=false
9382$at_check_filter
9383echo >>"$at_stderr"; $as_echo "prog.cob:3: error: syntax error, unexpected RECURSIVE, expecting .
9384" | \
9385  $at_diff - "$at_stderr" || at_failed=:
9386at_fn_diff_devnull "$at_stdout" || at_failed=:
9387at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:81"
9388$at_failed && at_fn_log_failure
9389$at_traceon; }
9390
9391
9392  set +x
9393  $at_times_p && times >"$at_times_file"
9394) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9395read at_status <"$at_status_file"
9396#AT_STOP_62
9397#AT_START_63
9398at_fn_group_banner 63 'syn_definition.at:88' \
9399  "INITIAL / RECURSIVE before COMMON" "              " 2
9400at_xfail=no
9401(
9402  $as_echo "63. $at_setup_line: testing $at_desc ..."
9403  $at_traceon
9404
9405
9406
9407cat >containing-prog.cob <<'_ATEOF'
9408
9409       IDENTIFICATION   DIVISION.
9410       PROGRAM-ID.      containing-prog.
9411
9412       PROCEDURE        DIVISION.
9413
9414       IDENTIFICATION   DIVISION.
9415       PROGRAM-ID.      prog-1 IS INITIAL COMMON.
9416       PROCEDURE        DIVISION.
9417           STOP RUN.
9418       END PROGRAM      prog-1.
9419
9420       IDENTIFICATION   DIVISION.
9421       PROGRAM-ID.      prog-2 IS RECURSIVE COMMON.
9422       PROCEDURE        DIVISION.
9423           STOP RUN.
9424       END PROGRAM      prog-2.
9425_ATEOF
9426
9427
9428{ set +x
9429$as_echo "$at_srcdir/syn_definition.at:110: \$COMPILE_ONLY containing-prog.cob"
9430at_fn_check_prepare_dynamic "$COMPILE_ONLY containing-prog.cob" "syn_definition.at:110"
9431( $at_check_trace; $COMPILE_ONLY containing-prog.cob
9432) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9433at_status=$? at_failed=false
9434$at_check_filter
9435at_fn_diff_devnull "$at_stderr" || at_failed=:
9436at_fn_diff_devnull "$at_stdout" || at_failed=:
9437at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:110"
9438$at_failed && at_fn_log_failure
9439$at_traceon; }
9440
9441
9442  set +x
9443  $at_times_p && times >"$at_times_file"
9444) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9445read at_status <"$at_status_file"
9446#AT_STOP_63
9447#AT_START_64
9448at_fn_group_banner 64 'syn_definition.at:120' \
9449  "Undefined data name" "                            " 2
9450at_xfail=no
9451(
9452  $as_echo "64. $at_setup_line: testing $at_desc ..."
9453  $at_traceon
9454
9455
9456
9457cat >prog.cob <<'_ATEOF'
9458
9459       IDENTIFICATION   DIVISION.
9460       PROGRAM-ID.      prog.
9461       PROCEDURE        DIVISION.
9462           DISPLAY X
9463           END-DISPLAY.
9464           STOP RUN.
9465_ATEOF
9466
9467
9468{ set +x
9469$as_echo "$at_srcdir/syn_definition.at:132: \$COMPILE_ONLY prog.cob"
9470at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:132"
9471( $at_check_trace; $COMPILE_ONLY prog.cob
9472) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9473at_status=$? at_failed=false
9474$at_check_filter
9475echo >>"$at_stderr"; $as_echo "prog.cob:5: error: 'X' cannot be used here
9476" | \
9477  $at_diff - "$at_stderr" || at_failed=:
9478at_fn_diff_devnull "$at_stdout" || at_failed=:
9479at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:132"
9480$at_failed && at_fn_log_failure
9481$at_traceon; }
9482
9483
9484  set +x
9485  $at_times_p && times >"$at_times_file"
9486) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9487read at_status <"$at_status_file"
9488#AT_STOP_64
9489#AT_START_65
9490at_fn_group_banner 65 'syn_definition.at:139' \
9491  "Undefined group name" "                           " 2
9492at_xfail=no
9493(
9494  $as_echo "65. $at_setup_line: testing $at_desc ..."
9495  $at_traceon
9496
9497
9498
9499cat >prog.cob <<'_ATEOF'
9500
9501       IDENTIFICATION   DIVISION.
9502       PROGRAM-ID.      prog.
9503       DATA             DIVISION.
9504       WORKING-STORAGE  SECTION.
9505       01 X             PIC X.
9506       PROCEDURE        DIVISION.
9507           DISPLAY X IN G
9508           END-DISPLAY.
9509           STOP RUN.
9510_ATEOF
9511
9512
9513{ set +x
9514$as_echo "$at_srcdir/syn_definition.at:154: \$COMPILE_ONLY prog.cob"
9515at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:154"
9516( $at_check_trace; $COMPILE_ONLY prog.cob
9517) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9518at_status=$? at_failed=false
9519$at_check_filter
9520echo >>"$at_stderr"; $as_echo "prog.cob:8: error: 'X IN G' is not defined
9521" | \
9522  $at_diff - "$at_stderr" || at_failed=:
9523at_fn_diff_devnull "$at_stdout" || at_failed=:
9524at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:154"
9525$at_failed && at_fn_log_failure
9526$at_traceon; }
9527
9528
9529  set +x
9530  $at_times_p && times >"$at_times_file"
9531) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9532read at_status <"$at_status_file"
9533#AT_STOP_65
9534#AT_START_66
9535at_fn_group_banner 66 'syn_definition.at:161' \
9536  "Undefined data name in group" "                   " 2
9537at_xfail=no
9538(
9539  $as_echo "66. $at_setup_line: testing $at_desc ..."
9540  $at_traceon
9541
9542
9543
9544cat >prog.cob <<'_ATEOF'
9545
9546       IDENTIFICATION   DIVISION.
9547       PROGRAM-ID.      prog.
9548       DATA             DIVISION.
9549       WORKING-STORAGE  SECTION.
9550       01 G.
9551         02 X           PIC X.
9552       01 Y             PIC X.
9553       PROCEDURE        DIVISION.
9554           DISPLAY Y IN G
9555           END-DISPLAY.
9556           STOP RUN.
9557_ATEOF
9558
9559
9560{ set +x
9561$as_echo "$at_srcdir/syn_definition.at:178: \$COMPILE_ONLY prog.cob"
9562at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:178"
9563( $at_check_trace; $COMPILE_ONLY prog.cob
9564) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9565at_status=$? at_failed=false
9566$at_check_filter
9567echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'Y IN G' is not defined
9568" | \
9569  $at_diff - "$at_stderr" || at_failed=:
9570at_fn_diff_devnull "$at_stdout" || at_failed=:
9571at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:178"
9572$at_failed && at_fn_log_failure
9573$at_traceon; }
9574
9575
9576  set +x
9577  $at_times_p && times >"$at_times_file"
9578) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9579read at_status <"$at_status_file"
9580#AT_STOP_66
9581#AT_START_67
9582at_fn_group_banner 67 'syn_definition.at:185' \
9583  "Reference not a group name" "                     " 2
9584at_xfail=no
9585(
9586  $as_echo "67. $at_setup_line: testing $at_desc ..."
9587  $at_traceon
9588
9589
9590
9591cat >prog.cob <<'_ATEOF'
9592
9593       IDENTIFICATION   DIVISION.
9594       PROGRAM-ID.      prog.
9595       DATA             DIVISION.
9596       WORKING-STORAGE  SECTION.
9597       01 X             PIC X.
9598       PROCEDURE        DIVISION.
9599           DISPLAY X IN X
9600           END-DISPLAY.
9601           STOP RUN.
9602_ATEOF
9603
9604
9605{ set +x
9606$as_echo "$at_srcdir/syn_definition.at:200: \$COMPILE_ONLY prog.cob"
9607at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:200"
9608( $at_check_trace; $COMPILE_ONLY prog.cob
9609) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9610at_status=$? at_failed=false
9611$at_check_filter
9612echo >>"$at_stderr"; $as_echo "prog.cob:8: error: 'X IN X' is not defined
9613" | \
9614  $at_diff - "$at_stderr" || at_failed=:
9615at_fn_diff_devnull "$at_stdout" || at_failed=:
9616at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:200"
9617$at_failed && at_fn_log_failure
9618$at_traceon; }
9619
9620
9621  set +x
9622  $at_times_p && times >"$at_times_file"
9623) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9624read at_status <"$at_status_file"
9625#AT_STOP_67
9626#AT_START_68
9627at_fn_group_banner 68 'syn_definition.at:207' \
9628  "Incomplete 01 definition" "                       " 2
9629at_xfail=no
9630(
9631  $as_echo "68. $at_setup_line: testing $at_desc ..."
9632  $at_traceon
9633
9634
9635
9636cat >prog.cob <<'_ATEOF'
9637
9638       IDENTIFICATION   DIVISION.
9639       PROGRAM-ID.      prog.
9640       DATA             DIVISION.
9641       WORKING-STORAGE  SECTION.
9642       01 X.
9643_ATEOF
9644
9645
9646{ set +x
9647$as_echo "$at_srcdir/syn_definition.at:218: \$COMPILE_ONLY prog.cob"
9648at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:218"
9649( $at_check_trace; $COMPILE_ONLY prog.cob
9650) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9651at_status=$? at_failed=false
9652$at_check_filter
9653echo >>"$at_stderr"; $as_echo "prog.cob:6: error: PICTURE clause required for 'X'
9654" | \
9655  $at_diff - "$at_stderr" || at_failed=:
9656at_fn_diff_devnull "$at_stdout" || at_failed=:
9657at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:218"
9658$at_failed && at_fn_log_failure
9659$at_traceon; }
9660
9661
9662  set +x
9663  $at_times_p && times >"$at_times_file"
9664) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9665read at_status <"$at_status_file"
9666#AT_STOP_68
9667#AT_START_69
9668at_fn_group_banner 69 'syn_definition.at:225' \
9669  "error handling in conditions" "                   " 2
9670at_xfail=no
9671(
9672  $as_echo "69. $at_setup_line: testing $at_desc ..."
9673  $at_traceon
9674
9675
9676
9677cat >prog.cob <<'_ATEOF'
9678
9679       IDENTIFICATION DIVISION.
9680       PROGRAM-ID. prog.
9681       DATA DIVISION.
9682       WORKING-STORAGE SECTION.
9683       01 TESTME PIC X(1).
9684
9685       PROCEDURE DIVISION.
9686
9687          EVALUATE TRUE
9688            WHEN TESTME IS NOT-DEFINED
9689              CONTINUE
9690            WHEN TESTME = 'A'
9691              CONTINUE
9692            WHEN OTHER
9693              IF NOT TESTME IS NOT-DEFINED
9694              THEN
9695                CONTINUE
9696              ELSE
9697                CONTINUE
9698              END-IF
9699          END-EVALUATE
9700          EVALUATE TRUE
9701            WHEN TESTME IS 'ABC'
9702              CONTINUE
9703            WHEN TESTME = 'B'
9704              CONTINUE
9705          END-EVALUATE
9706          EVALUATE TRUE
9707            WHEN TESTME IS TESTME
9708              CONTINUE
9709            WHEN TESTME = 'C'
9710              CONTINUE
9711          END-EVALUATE
9712          EVALUATE TRUE
9713            WHEN TESTME NOT = NOT-DEFINED
9714              CONTINUE
9715            WHEN TESTME = 'D'
9716              CONTINUE
9717          END-EVALUATE
9718          EVALUATE TRUE
9719            WHEN TESTME ELSE NOT-DEFINED
9720              CONTINUE
9721            WHEN TESTME = 'E'
9722              CONTINUE
9723          END-EVALUATE
9724          EVALUATE broken
9725            WHEN NOT-DEFINED
9726              continue
9727          END-EVALUATE
9728
9729          GOBACK.
9730_ATEOF
9731
9732
9733{ set +x
9734$as_echo "$at_srcdir/syn_definition.at:282: \$COMPILE_ONLY prog.cob"
9735at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:282"
9736( $at_check_trace; $COMPILE_ONLY prog.cob
9737) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9738at_status=$? at_failed=false
9739$at_check_filter
9740echo >>"$at_stderr"; $as_echo "prog.cob:11: error: syntax error, unexpected Identifier
9741prog.cob:16: error: syntax error, unexpected Identifier
9742prog.cob:24: error: syntax error, unexpected Literal
9743prog.cob:30: error: syntax error, unexpected Identifier
9744prog.cob:36: error: 'NOT-DEFINED' is not defined
9745prog.cob:42: error: syntax error, unexpected ELSE
9746prog.cob:42: error: syntax error, unexpected Identifier
9747prog.cob:42: error: invalid expression
9748prog.cob:47: error: 'broken' is not defined
9749" | \
9750  $at_diff - "$at_stderr" || at_failed=:
9751at_fn_diff_devnull "$at_stdout" || at_failed=:
9752at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:282"
9753$at_failed && at_fn_log_failure
9754$at_traceon; }
9755
9756  set +x
9757  $at_times_p && times >"$at_times_file"
9758) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9759read at_status <"$at_status_file"
9760#AT_STOP_69
9761#AT_START_70
9762at_fn_group_banner 70 'syn_definition.at:298' \
9763  "Same labels in different sections" "              " 2
9764at_xfail=no
9765(
9766  $as_echo "70. $at_setup_line: testing $at_desc ..."
9767  $at_traceon
9768
9769
9770
9771cat >prog.cob <<'_ATEOF'
9772
9773       IDENTIFICATION   DIVISION.
9774       PROGRAM-ID.      prog.
9775       PROCEDURE        DIVISION.
9776       S-1 SECTION.
9777       L.
9778
9779       S-2 SECTION.
9780       L.
9781
9782       S-3 SECTION.
9783            GO TO L.
9784       L.
9785_ATEOF
9786
9787
9788{ set +x
9789$as_echo "$at_srcdir/syn_definition.at:316: \$COMPILE_ONLY prog.cob"
9790at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:316"
9791( $at_check_trace; $COMPILE_ONLY prog.cob
9792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9793at_status=$? at_failed=false
9794$at_check_filter
9795at_fn_diff_devnull "$at_stderr" || at_failed=:
9796at_fn_diff_devnull "$at_stdout" || at_failed=:
9797at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:316"
9798$at_failed && at_fn_log_failure
9799$at_traceon; }
9800
9801  set +x
9802  $at_times_p && times >"$at_times_file"
9803) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9804read at_status <"$at_status_file"
9805#AT_STOP_70
9806#AT_START_71
9807at_fn_group_banner 71 'syn_definition.at:322' \
9808  "Redefinition of 01 items" "                       " 2
9809at_xfail=no
9810(
9811  $as_echo "71. $at_setup_line: testing $at_desc ..."
9812  $at_traceon
9813
9814
9815
9816cat >prog.cob <<'_ATEOF'
9817
9818       IDENTIFICATION   DIVISION.
9819       PROGRAM-ID.      prog.
9820       DATA             DIVISION.
9821       WORKING-STORAGE  SECTION.
9822       01 X             PIC X.
9823       01 X             PIC X.
9824_ATEOF
9825
9826
9827{ set +x
9828$as_echo "$at_srcdir/syn_definition.at:334: \$COBC -fsyntax-only prog.cob"
9829at_fn_check_prepare_dynamic "$COBC -fsyntax-only prog.cob" "syn_definition.at:334"
9830( $at_check_trace; $COBC -fsyntax-only prog.cob
9831) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9832at_status=$? at_failed=false
9833$at_check_filter
9834at_fn_diff_devnull "$at_stderr" || at_failed=:
9835at_fn_diff_devnull "$at_stdout" || at_failed=:
9836at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:334"
9837$at_failed && at_fn_log_failure
9838$at_traceon; }
9839
9840{ set +x
9841$as_echo "$at_srcdir/syn_definition.at:335: \$COMPILE_ONLY prog.cob"
9842at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:335"
9843( $at_check_trace; $COMPILE_ONLY prog.cob
9844) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9845at_status=$? at_failed=false
9846$at_check_filter
9847echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'X'
9848prog.cob:6: note: 'X' previously defined here
9849" | \
9850  $at_diff - "$at_stderr" || at_failed=:
9851at_fn_diff_devnull "$at_stdout" || at_failed=:
9852at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:335"
9853$at_failed && at_fn_log_failure
9854$at_traceon; }
9855
9856{ set +x
9857$as_echo "$at_srcdir/syn_definition.at:339: \$COMPILE_ONLY -Wno-redefinition prog.cob"
9858at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-redefinition prog.cob" "syn_definition.at:339"
9859( $at_check_trace; $COMPILE_ONLY -Wno-redefinition prog.cob
9860) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9861at_status=$? at_failed=false
9862$at_check_filter
9863at_fn_diff_devnull "$at_stderr" || at_failed=:
9864at_fn_diff_devnull "$at_stdout" || at_failed=:
9865at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:339"
9866$at_failed && at_fn_log_failure
9867$at_traceon; }
9868
9869{ set +x
9870$as_echo "$at_srcdir/syn_definition.at:340: \$COMPILE_ONLY -Werror=redefinition prog.cob"
9871at_fn_check_prepare_dynamic "$COMPILE_ONLY -Werror=redefinition prog.cob" "syn_definition.at:340"
9872( $at_check_trace; $COMPILE_ONLY -Werror=redefinition prog.cob
9873) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9874at_status=$? at_failed=false
9875$at_check_filter
9876echo >>"$at_stderr"; $as_echo "prog.cob:7: error: redefinition of 'X'
9877prog.cob:6: note: 'X' previously defined here
9878" | \
9879  $at_diff - "$at_stderr" || at_failed=:
9880at_fn_diff_devnull "$at_stdout" || at_failed=:
9881at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:340"
9882$at_failed && at_fn_log_failure
9883$at_traceon; }
9884
9885{ set +x
9886$as_echo "$at_srcdir/syn_definition.at:344: \$COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition prog.cob"
9887at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition prog.cob" "syn_definition.at:344"
9888( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition prog.cob
9889) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9890at_status=$? at_failed=false
9891$at_check_filter
9892echo >>"$at_stderr"; $as_echo "prog.cob:7: error: redefinition of 'X' [-Werror=redefinition]
9893prog.cob:6: note: 'X' previously defined here [-Werror=redefinition]
9894" | \
9895  $at_diff - "$at_stderr" || at_failed=:
9896at_fn_diff_devnull "$at_stdout" || at_failed=:
9897at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:344"
9898$at_failed && at_fn_log_failure
9899$at_traceon; }
9900
9901  set +x
9902  $at_times_p && times >"$at_times_file"
9903) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9904read at_status <"$at_status_file"
9905#AT_STOP_71
9906#AT_START_72
9907at_fn_group_banner 72 'syn_definition.at:351' \
9908  "Redefinition of 01 and 02 items" "                " 2
9909at_xfail=no
9910(
9911  $as_echo "72. $at_setup_line: testing $at_desc ..."
9912  $at_traceon
9913
9914
9915
9916cat >prog.cob <<'_ATEOF'
9917
9918       IDENTIFICATION   DIVISION.
9919       PROGRAM-ID.      prog.
9920       DATA             DIVISION.
9921       WORKING-STORAGE  SECTION.
9922       01 X.
9923         02 X           PIC X.
9924_ATEOF
9925
9926
9927{ set +x
9928$as_echo "$at_srcdir/syn_definition.at:363: \$COMPILE_ONLY prog.cob"
9929at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:363"
9930( $at_check_trace; $COMPILE_ONLY prog.cob
9931) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9932at_status=$? at_failed=false
9933$at_check_filter
9934echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'X'
9935prog.cob:6: note: 'X' previously defined here
9936" | \
9937  $at_diff - "$at_stderr" || at_failed=:
9938at_fn_diff_devnull "$at_stdout" || at_failed=:
9939at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:363"
9940$at_failed && at_fn_log_failure
9941$at_traceon; }
9942
9943
9944  set +x
9945  $at_times_p && times >"$at_times_file"
9946) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9947read at_status <"$at_status_file"
9948#AT_STOP_72
9949#AT_START_73
9950at_fn_group_banner 73 'syn_definition.at:371' \
9951  "Redefinition of 02 items" "                       " 2
9952at_xfail=no
9953(
9954  $as_echo "73. $at_setup_line: testing $at_desc ..."
9955  $at_traceon
9956
9957
9958
9959cat >prog.cob <<'_ATEOF'
9960
9961       IDENTIFICATION   DIVISION.
9962       PROGRAM-ID.      prog.
9963       DATA             DIVISION.
9964       WORKING-STORAGE  SECTION.
9965       01 G.
9966         02 X           PIC X.
9967         02 X           PIC X.
9968_ATEOF
9969
9970
9971{ set +x
9972$as_echo "$at_srcdir/syn_definition.at:384: \$COMPILE_ONLY prog.cob"
9973at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:384"
9974( $at_check_trace; $COMPILE_ONLY prog.cob
9975) >>"$at_stdout" 2>>"$at_stderr" 5>&-
9976at_status=$? at_failed=false
9977$at_check_filter
9978echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: redefinition of 'X'
9979prog.cob:7: note: 'X' previously defined here
9980" | \
9981  $at_diff - "$at_stderr" || at_failed=:
9982at_fn_diff_devnull "$at_stdout" || at_failed=:
9983at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:384"
9984$at_failed && at_fn_log_failure
9985$at_traceon; }
9986
9987
9988  set +x
9989  $at_times_p && times >"$at_times_file"
9990) 5>&1 2>&1 7>&- | eval $at_tee_pipe
9991read at_status <"$at_status_file"
9992#AT_STOP_73
9993#AT_START_74
9994at_fn_group_banner 74 'syn_definition.at:392' \
9995  "Redefinition of 77 items" "                       " 2
9996at_xfail=no
9997(
9998  $as_echo "74. $at_setup_line: testing $at_desc ..."
9999  $at_traceon
10000
10001
10002
10003cat >prog.cob <<'_ATEOF'
10004
10005       IDENTIFICATION   DIVISION.
10006       PROGRAM-ID.      prog.
10007       DATA             DIVISION.
10008       WORKING-STORAGE  SECTION.
10009       77 X             PIC X.
10010       77 X             PIC X.
10011_ATEOF
10012
10013
10014{ set +x
10015$as_echo "$at_srcdir/syn_definition.at:404: \$COMPILE_ONLY prog.cob"
10016at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:404"
10017( $at_check_trace; $COMPILE_ONLY prog.cob
10018) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10019at_status=$? at_failed=false
10020$at_check_filter
10021echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'X'
10022prog.cob:6: note: 'X' previously defined here
10023" | \
10024  $at_diff - "$at_stderr" || at_failed=:
10025at_fn_diff_devnull "$at_stdout" || at_failed=:
10026at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:404"
10027$at_failed && at_fn_log_failure
10028$at_traceon; }
10029
10030
10031  set +x
10032  $at_times_p && times >"$at_times_file"
10033) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10034read at_status <"$at_status_file"
10035#AT_STOP_74
10036#AT_START_75
10037at_fn_group_banner 75 'syn_definition.at:412' \
10038  "Redefinition of 01 and 77 items" "                " 2
10039at_xfail=no
10040(
10041  $as_echo "75. $at_setup_line: testing $at_desc ..."
10042  $at_traceon
10043
10044
10045
10046cat >prog.cob <<'_ATEOF'
10047
10048       IDENTIFICATION   DIVISION.
10049       PROGRAM-ID.      prog.
10050       DATA             DIVISION.
10051       WORKING-STORAGE  SECTION.
10052       01 X             PIC X.
10053       77 X             PIC X.
10054_ATEOF
10055
10056
10057{ set +x
10058$as_echo "$at_srcdir/syn_definition.at:424: \$COMPILE_ONLY prog.cob"
10059at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:424"
10060( $at_check_trace; $COMPILE_ONLY prog.cob
10061) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10062at_status=$? at_failed=false
10063$at_check_filter
10064echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'X'
10065prog.cob:6: note: 'X' previously defined here
10066" | \
10067  $at_diff - "$at_stderr" || at_failed=:
10068at_fn_diff_devnull "$at_stdout" || at_failed=:
10069at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:424"
10070$at_failed && at_fn_log_failure
10071$at_traceon; }
10072
10073
10074  set +x
10075  $at_times_p && times >"$at_times_file"
10076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10077read at_status <"$at_status_file"
10078#AT_STOP_75
10079#AT_START_76
10080at_fn_group_banner 76 'syn_definition.at:432' \
10081  "Redefinition of 88 items" "                       " 2
10082at_xfail=no
10083(
10084  $as_echo "76. $at_setup_line: testing $at_desc ..."
10085  $at_traceon
10086
10087
10088
10089cat >prog.cob <<'_ATEOF'
10090
10091       IDENTIFICATION   DIVISION.
10092       PROGRAM-ID.      prog.
10093       DATA             DIVISION.
10094       WORKING-STORAGE  SECTION.
10095       01 X             PIC X.
10096         88 A           VALUE "A".
10097         88 A           VALUE "B".
10098_ATEOF
10099
10100
10101{ set +x
10102$as_echo "$at_srcdir/syn_definition.at:445: \$COMPILE_ONLY prog.cob"
10103at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:445"
10104( $at_check_trace; $COMPILE_ONLY prog.cob
10105) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10106at_status=$? at_failed=false
10107$at_check_filter
10108echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: redefinition of 'A'
10109prog.cob:7: note: 'A' previously defined here
10110" | \
10111  $at_diff - "$at_stderr" || at_failed=:
10112at_fn_diff_devnull "$at_stdout" || at_failed=:
10113at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:445"
10114$at_failed && at_fn_log_failure
10115$at_traceon; }
10116
10117
10118  set +x
10119  $at_times_p && times >"$at_times_file"
10120) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10121read at_status <"$at_status_file"
10122#AT_STOP_76
10123#AT_START_77
10124at_fn_group_banner 77 'syn_definition.at:453' \
10125  "Redefinition of program-name by other programs" " " 2
10126at_xfail=no
10127(
10128  $as_echo "77. $at_setup_line: testing $at_desc ..."
10129  $at_traceon
10130
10131
10132
10133cat >prog.cob <<'_ATEOF'
10134
10135       IDENTIFICATION   DIVISION.
10136       PROGRAM-ID.      prog.
10137
10138       DATA             DIVISION.
10139       WORKING-STORAGE  SECTION.
10140       01  PROG         PIC X.
10141
10142       PROCEDURE        DIVISION.
10143           CONTINUE
10144           .
10145       IDENTIFICATION   DIVISION.
10146       PROGRAM-ID.      foo COMMON.
10147       END PROGRAM      foo.
10148
10149       IDENTIFICATION   DIVISION.
10150       PROGRAM-ID.      barr.
10151       PROCEDURE        DIVISION.
10152           CONTINUE
10153           .
10154       *> This should cause an error (clashes with COMMON subprog foo)
10155       IDENTIFICATION   DIVISION.
10156       PROGRAM-ID.      foo.
10157       END PROGRAM      foo.
10158       END PROGRAM      barr.
10159       END PROGRAM      prog.
10160
10161
10162       *> This should cause an error.
10163       IDENTIFICATION   DIVISION.
10164       PROGRAM-ID.      prog.
10165
10166       DATA             DIVISION.
10167       WORKING-STORAGE  SECTION.
10168       01  foo          PIC X.
10169
10170       PROCEDURE        DIVISION.
10171           CONTINUE
10172           .
10173       *> This should clash with the data definition.
10174       IDENTIFICATION   DIVISION.
10175       PROGRAM-ID.      foo.
10176       END PROGRAM      foo.
10177       END PROGRAM      prog.
10178
10179       *> This should cause an error
10180       IDENTIFICATION   DIVISION.
10181       PROGRAM-ID.      samename.
10182       IDENTIFICATION   DIVISION.
10183       PROGRAM-ID.      samename.
10184       END PROGRAM      samename.
10185       END PROGRAM      samename.
10186_ATEOF
10187
10188
10189{ set +x
10190$as_echo "$at_srcdir/syn_definition.at:510: \$COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option prog.cob"
10191at_fn_check_prepare_dynamic "$COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option prog.cob" "syn_definition.at:510"
10192( $at_check_trace; $COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option prog.cob
10193) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10194at_status=$? at_failed=false
10195$at_check_filter
10196echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'prog' [-Wredefinition]
10197prog.cob:3: note: 'prog' previously defined here [-Wredefinition]
10198prog.cob:23: error: redefinition of program name 'foo'
10199prog.cob:31: error: redefinition of program name 'prog'
10200prog.cob:42: error: redefinition of 'foo'
10201prog.cob:35: note: 'foo' previously defined here [-Wredefinition]
10202prog.cob:42: error: redefinition of program name 'foo'
10203prog.cob:49: error: PROCEDURE DIVISION header missing
10204prog.cob:50: error: redefinition of program name 'samename'
10205" | \
10206  $at_diff - "$at_stderr" || at_failed=:
10207at_fn_diff_devnull "$at_stdout" || at_failed=:
10208at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:510"
10209$at_failed && at_fn_log_failure
10210$at_traceon; }
10211
10212
10213{ set +x
10214$as_echo "$at_srcdir/syn_definition.at:522: \$COMPILE_ONLY prog.cob"
10215at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:522"
10216( $at_check_trace; $COMPILE_ONLY prog.cob
10217) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10218at_status=$? at_failed=false
10219$at_check_filter
10220echo >>"$at_stderr"; $as_echo "prog.cob:23: error: redefinition of program ID 'foo'
10221prog.cob:31: error: redefinition of program ID 'prog'
10222prog.cob:42: error: redefinition of program ID 'foo'
10223prog.cob:49: error: PROCEDURE DIVISION header missing
10224prog.cob:50: error: redefinition of program ID 'samename'
10225" | \
10226  $at_diff - "$at_stderr" || at_failed=:
10227at_fn_diff_devnull "$at_stdout" || at_failed=:
10228at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:522"
10229$at_failed && at_fn_log_failure
10230$at_traceon; }
10231
10232
10233  set +x
10234  $at_times_p && times >"$at_times_file"
10235) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10236read at_status <"$at_status_file"
10237#AT_STOP_77
10238#AT_START_78
10239at_fn_group_banner 78 'syn_definition.at:533' \
10240  "Redefinition of program-name within program" "    " 2
10241at_xfail=no
10242(
10243  $as_echo "78. $at_setup_line: testing $at_desc ..."
10244  $at_traceon
10245
10246
10247
10248cat >prog.cob <<'_ATEOF'
10249
10250       IDENTIFICATION  DIVISION.
10251       PROGRAM-ID.     prog.
10252
10253       DATA            DIVISION.
10254       WORKING-STORAGE SECTION.
10255       01  prog        PIC 99 VALUE 0.
10256
10257       PROCEDURE       DIVISION.
10258       prog.
10259           CONTINUE
10260           .
10261_ATEOF
10262
10263
10264{ set +x
10265$as_echo "$at_srcdir/syn_definition.at:550: \$COMPILE_ONLY prog.cob"
10266at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:550"
10267( $at_check_trace; $COMPILE_ONLY prog.cob
10268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10269at_status=$? at_failed=false
10270$at_check_filter
10271echo >>"$at_stderr"; $as_echo "prog.cob:10: error: redefinition of 'prog'
10272prog.cob:7: note: 'prog' previously defined here
10273" | \
10274  $at_diff - "$at_stderr" || at_failed=:
10275at_fn_diff_devnull "$at_stdout" || at_failed=:
10276at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:550"
10277$at_failed && at_fn_log_failure
10278$at_traceon; }
10279
10280{ set +x
10281$as_echo "$at_srcdir/syn_definition.at:554: \$COMPILE_ONLY -fno-program-name-redefinition prog.cob"
10282at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-program-name-redefinition prog.cob" "syn_definition.at:554"
10283( $at_check_trace; $COMPILE_ONLY -fno-program-name-redefinition prog.cob
10284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10285at_status=$? at_failed=false
10286$at_check_filter
10287echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'prog'
10288prog.cob:3: note: 'prog' previously defined here
10289prog.cob:10: error: redefinition of 'prog'
10290prog.cob:3: note: 'prog' previously defined here
10291" | \
10292  $at_diff - "$at_stderr" || at_failed=:
10293at_fn_diff_devnull "$at_stdout" || at_failed=:
10294at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:554"
10295$at_failed && at_fn_log_failure
10296$at_traceon; }
10297
10298  set +x
10299  $at_times_p && times >"$at_times_file"
10300) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10301read at_status <"$at_status_file"
10302#AT_STOP_78
10303#AT_START_79
10304at_fn_group_banner 79 'syn_definition.at:563' \
10305  "Redefinition of function-prototype name" "        " 2
10306at_xfail=no
10307(
10308  $as_echo "79. $at_setup_line: testing $at_desc ..."
10309  $at_traceon
10310
10311
10312
10313cat >prog.cob <<'_ATEOF'
10314
10315       IDENTIFICATION   DIVISION.
10316       PROGRAM-ID.      prog.
10317
10318       ENVIRONMENT      DIVISION.
10319       CONFIGURATION    SECTION.
10320       REPOSITORY.
10321           FUNCTION func
10322           .
10323       DATA             DIVISION.
10324       WORKING-STORAGE  SECTION.
10325       01  func         PIC X.
10326_ATEOF
10327
10328
10329{ set +x
10330$as_echo "$at_srcdir/syn_definition.at:580: \$COMPILE_ONLY prog.cob"
10331at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:580"
10332( $at_check_trace; $COMPILE_ONLY prog.cob
10333) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10334at_status=$? at_failed=false
10335$at_check_filter
10336echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: no definition/prototype seen for FUNCTION 'func'
10337prog.cob:12: error: syntax error, unexpected user function name
10338" | \
10339  $at_diff - "$at_stderr" || at_failed=:
10340at_fn_diff_devnull "$at_stdout" || at_failed=:
10341at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:580"
10342$at_failed && at_fn_log_failure
10343$at_traceon; }
10344
10345  set +x
10346  $at_times_p && times >"$at_times_file"
10347) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10348read at_status <"$at_status_file"
10349#AT_STOP_79
10350#AT_START_80
10351at_fn_group_banner 80 'syn_definition.at:588' \
10352  "PROCEDURE DIVISION RETURNING OMITTED: main" "     " 2
10353at_xfail=no
10354(
10355  $as_echo "80. $at_setup_line: testing $at_desc ..."
10356  $at_traceon
10357
10358
10359
10360cat >prog.cob <<'_ATEOF'
10361
10362       IDENTIFICATION   DIVISION.
10363       PROGRAM-ID.      prog.
10364       PROCEDURE        DIVISION RETURNING OMITTED.
10365           MOVE 42 TO RETURN-CODE
10366           GOBACK.
10367_ATEOF
10368
10369
10370
10371{ set +x
10372$as_echo "$at_srcdir/syn_definition.at:600: \$COMPILE_MODULE prog.cob"
10373at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "syn_definition.at:600"
10374( $at_check_trace; $COMPILE_MODULE prog.cob
10375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10376at_status=$? at_failed=false
10377$at_check_filter
10378at_fn_diff_devnull "$at_stderr" || at_failed=:
10379at_fn_diff_devnull "$at_stdout" || at_failed=:
10380at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:600"
10381$at_failed && at_fn_log_failure
10382$at_traceon; }
10383
10384{ set +x
10385$as_echo "$at_srcdir/syn_definition.at:601: \$COMPILE prog.cob"
10386at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_definition.at:601"
10387( $at_check_trace; $COMPILE prog.cob
10388) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10389at_status=$? at_failed=false
10390$at_check_filter
10391echo >>"$at_stderr"; $as_echo "prog.cob:4: error: RETURNING clause cannot be OMITTED for main program
10392" | \
10393  $at_diff - "$at_stderr" || at_failed=:
10394at_fn_diff_devnull "$at_stdout" || at_failed=:
10395at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:601"
10396$at_failed && at_fn_log_failure
10397$at_traceon; }
10398
10399
10400  set +x
10401  $at_times_p && times >"$at_times_file"
10402) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10403read at_status <"$at_status_file"
10404#AT_STOP_80
10405#AT_START_81
10406at_fn_group_banner 81 'syn_definition.at:608' \
10407  "PROCEDURE DIVISION RETURNING OMITTED: FUNCTION" " " 2
10408at_xfail=no
10409(
10410  $as_echo "81. $at_setup_line: testing $at_desc ..."
10411  $at_traceon
10412
10413
10414
10415cat >prog.cob <<'_ATEOF'
10416
10417       IDENTIFICATION   DIVISION.
10418       FUNCTION-ID.     func.
10419       PROCEDURE        DIVISION RETURNING OMITTED.
10420           MOVE 42 TO RETURN-CODE
10421           GOBACK.
10422       END FUNCTION     func.
10423_ATEOF
10424
10425
10426{ set +x
10427$as_echo "$at_srcdir/syn_definition.at:620: \$COMPILE_ONLY prog.cob"
10428at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:620"
10429( $at_check_trace; $COMPILE_ONLY prog.cob
10430) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10431at_status=$? at_failed=false
10432$at_check_filter
10433echo >>"$at_stderr"; $as_echo "prog.cob:4: error: RETURNING clause cannot be OMITTED for a FUNCTION
10434" | \
10435  $at_diff - "$at_stderr" || at_failed=:
10436at_fn_diff_devnull "$at_stdout" || at_failed=:
10437at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:620"
10438$at_failed && at_fn_log_failure
10439$at_traceon; }
10440
10441
10442  set +x
10443  $at_times_p && times >"$at_times_file"
10444) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10445read at_status <"$at_status_file"
10446#AT_STOP_81
10447#AT_START_82
10448at_fn_group_banner 82 'syn_definition.at:627' \
10449  "PROCEDURE DIVISION RETURNING item" "              " 2
10450at_xfail=no
10451(
10452  $as_echo "82. $at_setup_line: testing $at_desc ..."
10453  $at_traceon
10454
10455
10456
10457
10458cat >prog.cob <<'_ATEOF'
10459
10460       IDENTIFICATION   DIVISION.
10461       FUNCTION-ID.     func.
10462       DATA             DIVISION.
10463       LINKAGE          SECTION.
10464       01 PAR-OUT       PIC 9.
10465       PROCEDURE        DIVISION RETURNING PAR-OUT.
10466           MOVE 4 TO PAR-OUT
10467           GOBACK.
10468       END FUNCTION     func.
10469_ATEOF
10470
10471
10472cat >prog2.cob <<'_ATEOF'
10473
10474       IDENTIFICATION   DIVISION.
10475       FUNCTION-ID.     func.
10476       DATA             DIVISION.
10477       WORKING-STORAGE  SECTION.
10478       01 PAR-OUT       PIC 9.
10479       PROCEDURE        DIVISION RETURNING PAR-OUT.
10480           MOVE 4 TO PAR-OUT
10481           GOBACK.
10482       END FUNCTION     func.
10483_ATEOF
10484
10485
10486cat >prog3.cob <<'_ATEOF'
10487
10488       IDENTIFICATION   DIVISION.
10489       FUNCTION-ID.     func.
10490       DATA             DIVISION.
10491       LINKAGE          SECTION.
10492       01 PAR-OUT       PIC 9 OCCURS 10.
10493       PROCEDURE        DIVISION RETURNING PAR-OUT.
10494           MOVE 4 TO PAR-OUT (1)
10495           GOBACK.
10496       END FUNCTION     func.
10497_ATEOF
10498
10499
10500cat >prog4.cob <<'_ATEOF'
10501
10502       IDENTIFICATION   DIVISION.
10503       FUNCTION-ID.     func.
10504       DATA             DIVISION.
10505       LINKAGE          SECTION.
10506       01 PAR.
10507          02 PAR-OUT    PIC 9.
10508       PROCEDURE        DIVISION RETURNING PAR-OUT.
10509           MOVE 4 TO PAR-OUT
10510           GOBACK.
10511       END FUNCTION     func.
10512_ATEOF
10513
10514
10515cat >prog5.cob <<'_ATEOF'
10516
10517       IDENTIFICATION   DIVISION.
10518       FUNCTION-ID.     func.
10519       DATA             DIVISION.
10520       LINKAGE          SECTION.
10521       01 PAR           PIC 9.
10522       PROCEDURE        DIVISION USING PAR RETURNING PAR.
10523           MOVE 4 TO PAR
10524           GOBACK.
10525       END FUNCTION     func.
10526
10527       IDENTIFICATION   DIVISION.
10528       FUNCTION-ID.     func2.
10529       DATA             DIVISION.
10530       LINKAGE          SECTION.
10531       01 PAR-IN        PIC 9.
10532       01 PAR-OUT       REDEFINES PAR-IN PIC 9.
10533       PROCEDURE        DIVISION USING PAR-IN RETURNING PAR-OUT.
10534           MOVE 4 TO PAR-OUT
10535           GOBACK.
10536       END FUNCTION     func2.
10537_ATEOF
10538
10539
10540{ set +x
10541$as_echo "$at_srcdir/syn_definition.at:703: \$COMPILE_ONLY prog.cob"
10542at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:703"
10543( $at_check_trace; $COMPILE_ONLY prog.cob
10544) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10545at_status=$? at_failed=false
10546$at_check_filter
10547at_fn_diff_devnull "$at_stderr" || at_failed=:
10548at_fn_diff_devnull "$at_stdout" || at_failed=:
10549at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:703"
10550$at_failed && at_fn_log_failure
10551$at_traceon; }
10552
10553{ set +x
10554$as_echo "$at_srcdir/syn_definition.at:704: \$COMPILE_ONLY prog2.cob"
10555at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_definition.at:704"
10556( $at_check_trace; $COMPILE_ONLY prog2.cob
10557) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10558at_status=$? at_failed=false
10559$at_check_filter
10560echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: RETURNING item is not defined in LINKAGE SECTION
10561" | \
10562  $at_diff - "$at_stderr" || at_failed=:
10563at_fn_diff_devnull "$at_stdout" || at_failed=:
10564at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:704"
10565$at_failed && at_fn_log_failure
10566$at_traceon; }
10567
10568{ set +x
10569$as_echo "$at_srcdir/syn_definition.at:707: \$COMPILE_ONLY prog3.cob"
10570at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_definition.at:707"
10571( $at_check_trace; $COMPILE_ONLY prog3.cob
10572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10573at_status=$? at_failed=false
10574$at_check_filter
10575echo >>"$at_stderr"; $as_echo "prog3.cob:7: error: RETURNING item should not have OCCURS
10576prog3.cob:9: error: 'PAR-OUT' requires one subscript
10577" | \
10578  $at_diff - "$at_stderr" || at_failed=:
10579at_fn_diff_devnull "$at_stdout" || at_failed=:
10580at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:707"
10581$at_failed && at_fn_log_failure
10582$at_traceon; }
10583
10584{ set +x
10585$as_echo "$at_srcdir/syn_definition.at:711: \$COMPILE_ONLY prog4.cob"
10586at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_definition.at:711"
10587( $at_check_trace; $COMPILE_ONLY prog4.cob
10588) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10589at_status=$? at_failed=false
10590$at_check_filter
10591echo >>"$at_stderr"; $as_echo "prog4.cob:8: error: RETURNING item must have level 01
10592" | \
10593  $at_diff - "$at_stderr" || at_failed=:
10594at_fn_diff_devnull "$at_stdout" || at_failed=:
10595at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:711"
10596$at_failed && at_fn_log_failure
10597$at_traceon; }
10598
10599{ set +x
10600$as_echo "$at_srcdir/syn_definition.at:714: \$COMPILE_ONLY prog5.cob"
10601at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_definition.at:714"
10602( $at_check_trace; $COMPILE_ONLY prog5.cob
10603) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10604at_status=$? at_failed=false
10605$at_check_filter
10606echo >>"$at_stderr"; $as_echo "prog5.cob:7: error: 'PAR' USING item duplicates RETURNING item
10607prog5.cob:18: error: 'PAR-OUT' REDEFINES field not allowed here
10608" | \
10609  $at_diff - "$at_stderr" || at_failed=:
10610at_fn_diff_devnull "$at_stdout" || at_failed=:
10611at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:714"
10612$at_failed && at_fn_log_failure
10613$at_traceon; }
10614
10615
10616  set +x
10617  $at_times_p && times >"$at_times_file"
10618) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10619read at_status <"$at_status_file"
10620#AT_STOP_82
10621#AT_START_83
10622at_fn_group_banner 83 'syn_definition.at:722' \
10623  "Data item with same name as program-name" "       " 2
10624at_xfail=no
10625(
10626  $as_echo "83. $at_setup_line: testing $at_desc ..."
10627  $at_traceon
10628
10629
10630
10631cat >prog.cob <<'_ATEOF'
10632
10633       IDENTIFICATION  DIVISION.
10634       FUNCTION-ID.    x.
10635       DATA            DIVISION.
10636       LINKAGE         SECTION.
10637       01  ret         PIC 99.
10638       PROCEDURE       DIVISION RETURNING ret.
10639           CONTINUE
10640           .
10641       END FUNCTION x.
10642
10643
10644       IDENTIFICATION   DIVISION.
10645       PROGRAM-ID.      prog.
10646       DATA             DIVISION.
10647       WORKING-STORAGE  SECTION.
10648       01  x            PIC 999 VALUE 134.
10649_ATEOF
10650
10651
10652{ set +x
10653$as_echo "$at_srcdir/syn_definition.at:744: \$COMPILE_ONLY prog.cob"
10654at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:744"
10655( $at_check_trace; $COMPILE_ONLY prog.cob
10656) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10657at_status=$? at_failed=false
10658$at_check_filter
10659at_fn_diff_devnull "$at_stderr" || at_failed=:
10660at_fn_diff_devnull "$at_stdout" || at_failed=:
10661at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:744"
10662$at_failed && at_fn_log_failure
10663$at_traceon; }
10664
10665  set +x
10666  $at_times_p && times >"$at_times_file"
10667) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10668read at_status <"$at_status_file"
10669#AT_STOP_83
10670#AT_START_84
10671at_fn_group_banner 84 'syn_definition.at:749' \
10672  "Ambiguous reference to 02 items" "                " 2
10673at_xfail=no
10674(
10675  $as_echo "84. $at_setup_line: testing $at_desc ..."
10676  $at_traceon
10677
10678
10679
10680cat >prog.cob <<'_ATEOF'
10681
10682       IDENTIFICATION   DIVISION.
10683       PROGRAM-ID.      prog.
10684       DATA             DIVISION.
10685       WORKING-STORAGE  SECTION.
10686       01 G1.
10687         02 X           PIC X.
10688       01 G2.
10689         02 X           PIC X.
10690       PROCEDURE        DIVISION.
10691           DISPLAY X
10692           END-DISPLAY.
10693           STOP RUN.
10694_ATEOF
10695
10696
10697{ set +x
10698$as_echo "$at_srcdir/syn_definition.at:767: \$COMPILE_ONLY prog.cob"
10699at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:767"
10700( $at_check_trace; $COMPILE_ONLY prog.cob
10701) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10702at_status=$? at_failed=false
10703$at_check_filter
10704echo >>"$at_stderr"; $as_echo "prog.cob:11: error: 'X' is ambiguous; needs qualification
10705prog.cob:7: note: 'X IN G1' defined here
10706prog.cob:9: note: 'X IN G2' defined here
10707" | \
10708  $at_diff - "$at_stderr" || at_failed=:
10709at_fn_diff_devnull "$at_stdout" || at_failed=:
10710at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:767"
10711$at_failed && at_fn_log_failure
10712$at_traceon; }
10713
10714
10715  set +x
10716  $at_times_p && times >"$at_times_file"
10717) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10718read at_status <"$at_status_file"
10719#AT_STOP_84
10720#AT_START_85
10721at_fn_group_banner 85 'syn_definition.at:776' \
10722  "Ambiguous reference to 02 and 03 items" "         " 2
10723at_xfail=no
10724(
10725  $as_echo "85. $at_setup_line: testing $at_desc ..."
10726  $at_traceon
10727
10728
10729
10730cat >prog.cob <<'_ATEOF'
10731
10732       IDENTIFICATION   DIVISION.
10733       PROGRAM-ID.      prog.
10734       DATA             DIVISION.
10735       WORKING-STORAGE  SECTION.
10736       01 G.
10737         02 X.
10738           03 X         PIC X.
10739       PROCEDURE        DIVISION.
10740           DISPLAY X
10741           END-DISPLAY.
10742           STOP RUN.
10743_ATEOF
10744
10745
10746{ set +x
10747$as_echo "$at_srcdir/syn_definition.at:793: \$COMPILE_ONLY prog.cob"
10748at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:793"
10749( $at_check_trace; $COMPILE_ONLY prog.cob
10750) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10751at_status=$? at_failed=false
10752$at_check_filter
10753echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'X' is ambiguous; needs qualification
10754prog.cob:7: note: 'X IN G' defined here
10755prog.cob:8: note: 'X IN X IN G' defined here
10756" | \
10757  $at_diff - "$at_stderr" || at_failed=:
10758at_fn_diff_devnull "$at_stdout" || at_failed=:
10759at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:793"
10760$at_failed && at_fn_log_failure
10761$at_traceon; }
10762
10763
10764  set +x
10765  $at_times_p && times >"$at_times_file"
10766) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10767read at_status <"$at_status_file"
10768#AT_STOP_85
10769#AT_START_86
10770at_fn_group_banner 86 'syn_definition.at:802' \
10771  "Ambiguous reference with qualification" "         " 2
10772at_xfail=no
10773(
10774  $as_echo "86. $at_setup_line: testing $at_desc ..."
10775  $at_traceon
10776
10777
10778
10779cat >prog.cob <<'_ATEOF'
10780
10781       IDENTIFICATION   DIVISION.
10782       PROGRAM-ID.      prog.
10783       DATA             DIVISION.
10784       WORKING-STORAGE  SECTION.
10785       01 G1.
10786         02 X.
10787           03 Y         PIC X.
10788       01 G2.
10789         02 X.
10790           03 Y         PIC X.
10791       PROCEDURE        DIVISION.
10792           DISPLAY Y IN X
10793           END-DISPLAY.
10794           STOP RUN.
10795_ATEOF
10796
10797
10798{ set +x
10799$as_echo "$at_srcdir/syn_definition.at:822: \$COMPILE_ONLY prog.cob"
10800at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:822"
10801( $at_check_trace; $COMPILE_ONLY prog.cob
10802) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10803at_status=$? at_failed=false
10804$at_check_filter
10805echo >>"$at_stderr"; $as_echo "prog.cob:13: error: 'Y IN X' is ambiguous; needs qualification
10806prog.cob:8: note: 'Y IN X IN G1' defined here
10807prog.cob:11: note: 'Y IN X IN G2' defined here
10808" | \
10809  $at_diff - "$at_stderr" || at_failed=:
10810at_fn_diff_devnull "$at_stdout" || at_failed=:
10811at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:822"
10812$at_failed && at_fn_log_failure
10813$at_traceon; }
10814
10815
10816  set +x
10817  $at_times_p && times >"$at_times_file"
10818) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10819read at_status <"$at_status_file"
10820#AT_STOP_86
10821#AT_START_87
10822at_fn_group_banner 87 'syn_definition.at:831' \
10823  "Unique reference with ambiguous qualifiers" "     " 2
10824at_xfail=no
10825(
10826  $as_echo "87. $at_setup_line: testing $at_desc ..."
10827  $at_traceon
10828
10829
10830
10831cat >prog.cob <<'_ATEOF'
10832
10833       IDENTIFICATION   DIVISION.
10834       PROGRAM-ID.      prog.
10835       DATA             DIVISION.
10836       WORKING-STORAGE  SECTION.
10837       01 G1.
10838         02 X.
10839           03 Y         PIC X VALUE "Y".
10840       01 G2.
10841         02 X.
10842           03 Z         PIC X VALUE "Z".
10843       PROCEDURE        DIVISION.
10844           DISPLAY Z IN X NO ADVANCING
10845           END-DISPLAY.
10846           STOP RUN.
10847_ATEOF
10848
10849
10850{ set +x
10851$as_echo "$at_srcdir/syn_definition.at:851: \$COMPILE_ONLY prog.cob"
10852at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:851"
10853( $at_check_trace; $COMPILE_ONLY prog.cob
10854) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10855at_status=$? at_failed=false
10856$at_check_filter
10857at_fn_diff_devnull "$at_stderr" || at_failed=:
10858at_fn_diff_devnull "$at_stdout" || at_failed=:
10859at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:851"
10860$at_failed && at_fn_log_failure
10861$at_traceon; }
10862
10863
10864  set +x
10865  $at_times_p && times >"$at_times_file"
10866) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10867read at_status <"$at_status_file"
10868#AT_STOP_87
10869#AT_START_88
10870at_fn_group_banner 88 'syn_definition.at:867' \
10871  "Undefined procedure name" "                       " 2
10872at_xfail=no
10873(
10874  $as_echo "88. $at_setup_line: testing $at_desc ..."
10875  $at_traceon
10876
10877
10878
10879cat >prog.cob <<'_ATEOF'
10880
10881       IDENTIFICATION   DIVISION.
10882       PROGRAM-ID.      prog.
10883       PROCEDURE        DIVISION.
10884           GO TO END-OF-PROGRAM.
10885           STOP RUN.
10886_ATEOF
10887
10888
10889{ set +x
10890$as_echo "$at_srcdir/syn_definition.at:878: \$COMPILE_ONLY prog.cob"
10891at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:878"
10892( $at_check_trace; $COMPILE_ONLY prog.cob
10893) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10894at_status=$? at_failed=false
10895$at_check_filter
10896echo >>"$at_stderr"; $as_echo "prog.cob:5: error: 'END-OF-PROGRAM' is not defined
10897" | \
10898  $at_diff - "$at_stderr" || at_failed=:
10899at_fn_diff_devnull "$at_stdout" || at_failed=:
10900at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:878"
10901$at_failed && at_fn_log_failure
10902$at_traceon; }
10903
10904
10905  set +x
10906  $at_times_p && times >"$at_times_file"
10907) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10908read at_status <"$at_status_file"
10909#AT_STOP_88
10910#AT_START_89
10911at_fn_group_banner 89 'syn_definition.at:887' \
10912  "Redefinition of section names" "                  " 2
10913at_xfail=no
10914(
10915  $as_echo "89. $at_setup_line: testing $at_desc ..."
10916  $at_traceon
10917
10918
10919
10920cat >prog.cob <<'_ATEOF'
10921
10922       IDENTIFICATION   DIVISION.
10923       PROGRAM-ID.      prog.
10924       PROCEDURE        DIVISION.
10925       L SECTION.
10926       L SECTION.
10927           STOP RUN.
10928_ATEOF
10929
10930
10931{ set +x
10932$as_echo "$at_srcdir/syn_definition.at:899: \$COMPILE_ONLY prog.cob"
10933at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:899"
10934( $at_check_trace; $COMPILE_ONLY prog.cob
10935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10936at_status=$? at_failed=false
10937$at_check_filter
10938echo >>"$at_stderr"; $as_echo "prog.cob: in section 'L':
10939prog.cob:6: error: redefinition of 'L'
10940prog.cob:5: note: 'L' previously defined here
10941" | \
10942  $at_diff - "$at_stderr" || at_failed=:
10943at_fn_diff_devnull "$at_stdout" || at_failed=:
10944at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:899"
10945$at_failed && at_fn_log_failure
10946$at_traceon; }
10947
10948
10949# FIXME: as long as there is no direct reference to the section
10950#        this should be not more than a warning,
10951#        maybe depending on a compiler configuration
10952
10953  set +x
10954  $at_times_p && times >"$at_times_file"
10955) 5>&1 2>&1 7>&- | eval $at_tee_pipe
10956read at_status <"$at_status_file"
10957#AT_STOP_89
10958#AT_START_90
10959at_fn_group_banner 90 'syn_definition.at:912' \
10960  "Redefinition of section and paragraph names" "    " 2
10961at_xfail=no
10962(
10963  $as_echo "90. $at_setup_line: testing $at_desc ..."
10964  $at_traceon
10965
10966
10967
10968cat >prog.cob <<'_ATEOF'
10969
10970       IDENTIFICATION   DIVISION.
10971       PROGRAM-ID.      prog.
10972       PROCEDURE        DIVISION.
10973       L SECTION.
10974       L.
10975           STOP RUN.
10976_ATEOF
10977
10978
10979{ set +x
10980$as_echo "$at_srcdir/syn_definition.at:924: \$COMPILE_ONLY prog.cob"
10981at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:924"
10982( $at_check_trace; $COMPILE_ONLY prog.cob
10983) >>"$at_stdout" 2>>"$at_stderr" 5>&-
10984at_status=$? at_failed=false
10985$at_check_filter
10986echo >>"$at_stderr"; $as_echo "prog.cob: in section 'L':
10987prog.cob:6: error: redefinition of 'L'
10988prog.cob:5: note: 'L' previously defined here
10989" | \
10990  $at_diff - "$at_stderr" || at_failed=:
10991at_fn_diff_devnull "$at_stdout" || at_failed=:
10992at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:924"
10993$at_failed && at_fn_log_failure
10994$at_traceon; }
10995
10996
10997# FIXME: as long as there is no direct reference to
10998#        the paragraph/section this should be not more
10999#        than a warning, maybe depending on a compiler
11000#        configuration
11001
11002  set +x
11003  $at_times_p && times >"$at_times_file"
11004) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11005read at_status <"$at_status_file"
11006#AT_STOP_90
11007#AT_START_91
11008at_fn_group_banner 91 'syn_definition.at:938' \
11009  "Redefinition of label and variable names" "       " 2
11010at_xfail=yes
11011(
11012  $as_echo "91. $at_setup_line: testing $at_desc ..."
11013  $at_traceon
11014
11015
11016
11017# currently failing, see FR #260
11018
11019
11020cat >prog.cob <<'_ATEOF'
11021
11022       identification division.
11023       program-id. WORD.
11024       data division.
11025       working-storage section.
11026      *-----------------------------------------------------------------
11027       77 word pic 9.
11028      *-----------------------------------------------------------------
11029       PROCEDURE DIVISION.
11030       main section.
11031      *
11032           move 0 to word
11033           perform word
11034      *
11035           stop run returning word.
11036      *-----------------------------------------------------------------
11037       word section.
11038           add 1 to word.
11039_ATEOF
11040
11041
11042{ set +x
11043$as_echo "$at_srcdir/syn_definition.at:964: \$COMPILE_ONLY -std=cobol2014 prog.cob"
11044at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:964"
11045( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
11046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11047at_status=$? at_failed=false
11048$at_check_filter
11049echo >>"$at_stderr"; $as_echo "prog.cob: in section 'main':
11050prog.cob:17: error: user-defined word re-used with different type does not conform to COBOL 2014
11051prog.cob:17: error: redefinition of 'word' as label-name
11052prog.cob:7: note: 'word' previously defined here as data-name
11053" | \
11054  $at_diff - "$at_stderr" || at_failed=:
11055at_fn_diff_devnull "$at_stdout" || at_failed=:
11056at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:964"
11057$at_failed && at_fn_log_failure
11058$at_traceon; }
11059
11060{ set +x
11061$as_echo "$at_srcdir/syn_definition.at:970: \$COMPILE_ONLY prog.cob"
11062at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:970"
11063( $at_check_trace; $COMPILE_ONLY prog.cob
11064) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11065at_status=$? at_failed=false
11066$at_check_filter
11067at_fn_diff_devnull "$at_stderr" || at_failed=:
11068at_fn_diff_devnull "$at_stdout" || at_failed=:
11069at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:970"
11070$at_failed && at_fn_log_failure
11071$at_traceon; }
11072
11073
11074  set +x
11075  $at_times_p && times >"$at_times_file"
11076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11077read at_status <"$at_status_file"
11078#AT_STOP_91
11079#AT_START_92
11080at_fn_group_banner 92 'syn_definition.at:975' \
11081  "Redefinition of paragraph names" "                " 2
11082at_xfail=no
11083(
11084  $as_echo "92. $at_setup_line: testing $at_desc ..."
11085  $at_traceon
11086
11087
11088
11089cat >prog.cob <<'_ATEOF'
11090
11091       IDENTIFICATION   DIVISION.
11092       PROGRAM-ID.      prog.
11093       PROCEDURE        DIVISION.
11094       L.
11095       L.
11096           STOP RUN.
11097_ATEOF
11098
11099
11100{ set +x
11101$as_echo "$at_srcdir/syn_definition.at:987: \$COMPILE_ONLY prog.cob"
11102at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:987"
11103( $at_check_trace; $COMPILE_ONLY prog.cob
11104) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11105at_status=$? at_failed=false
11106$at_check_filter
11107at_fn_diff_devnull "$at_stderr" || at_failed=:
11108at_fn_diff_devnull "$at_stdout" || at_failed=:
11109at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:987"
11110$at_failed && at_fn_log_failure
11111$at_traceon; }
11112
11113
11114## Change when we DON'T allow this (likely as a warning,
11115## depending on compiler configuration)
11116## AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
11117## [prog.cob: in paragraph 'L':
11118## prog.cob:6: error: redefinition of 'L'
11119## prog.cob:5: error: 'L' previously defined here
11120## ])
11121
11122  set +x
11123  $at_times_p && times >"$at_times_file"
11124) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11125read at_status <"$at_status_file"
11126#AT_STOP_92
11127#AT_START_93
11128at_fn_group_banner 93 'syn_definition.at:1001' \
11129  "Ambiguous reference to paragraph name" "          " 2
11130at_xfail=no
11131(
11132  $as_echo "93. $at_setup_line: testing $at_desc ..."
11133  $at_traceon
11134
11135
11136
11137cat >prog.cob <<'_ATEOF'
11138
11139       IDENTIFICATION   DIVISION.
11140       PROGRAM-ID.      prog.
11141       PROCEDURE        DIVISION.
11142       S-1 SECTION.
11143       L.
11144       S-2 SECTION.
11145       L.
11146       S-3 SECTION.
11147           GO TO L.
11148           STOP RUN.
11149_ATEOF
11150
11151
11152{ set +x
11153$as_echo "$at_srcdir/syn_definition.at:1017: \$COMPILE_ONLY prog.cob"
11154at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1017"
11155( $at_check_trace; $COMPILE_ONLY prog.cob
11156) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11157at_status=$? at_failed=false
11158$at_check_filter
11159echo >>"$at_stderr"; $as_echo "prog.cob: in section 'S-3':
11160prog.cob:10: error: 'L' is ambiguous; needs qualification
11161prog.cob:6: note: 'L IN S-1' defined here
11162prog.cob:8: note: 'L IN S-2' defined here
11163" | \
11164  $at_diff - "$at_stderr" || at_failed=:
11165at_fn_diff_devnull "$at_stdout" || at_failed=:
11166at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1017"
11167$at_failed && at_fn_log_failure
11168$at_traceon; }
11169
11170
11171  set +x
11172  $at_times_p && times >"$at_times_file"
11173) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11174read at_status <"$at_status_file"
11175#AT_STOP_93
11176#AT_START_94
11177at_fn_group_banner 94 'syn_definition.at:1027' \
11178  "Non-matching level numbers (extension)" "         " 2
11179at_xfail=no
11180(
11181  $as_echo "94. $at_setup_line: testing $at_desc ..."
11182  $at_traceon
11183
11184
11185
11186cat >prog.cob <<'_ATEOF'
11187
11188       IDENTIFICATION   DIVISION.
11189       PROGRAM-ID.      prog.
11190       DATA             DIVISION.
11191       WORKING-STORAGE  SECTION.
11192       01  A.
11193            05 B.
11194                10 C PIC X.
11195           04 D.
11196            05 E PIC X.
11197       PROCEDURE        DIVISION.
11198           STOP RUN.
11199_ATEOF
11200
11201
11202{ set +x
11203$as_echo "$at_srcdir/syn_definition.at:1044: \$COMPILE_ONLY -frelax-level-hierarchy prog.cob"
11204at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-level-hierarchy prog.cob" "syn_definition.at:1044"
11205( $at_check_trace; $COMPILE_ONLY -frelax-level-hierarchy prog.cob
11206) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11207at_status=$? at_failed=false
11208$at_check_filter
11209echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: no previous data item of level 04
11210" | \
11211  $at_diff - "$at_stderr" || at_failed=:
11212at_fn_diff_devnull "$at_stdout" || at_failed=:
11213at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1044"
11214$at_failed && at_fn_log_failure
11215$at_traceon; }
11216
11217
11218  set +x
11219  $at_times_p && times >"$at_times_file"
11220) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11221read at_status <"$at_status_file"
11222#AT_STOP_94
11223#AT_START_95
11224at_fn_group_banner 95 'syn_definition.at:1051' \
11225  "CALL BY VALUE alphanumeric item (extension)" "    " 2
11226at_xfail=no
11227(
11228  $as_echo "95. $at_setup_line: testing $at_desc ..."
11229  $at_traceon
11230
11231
11232
11233cat >prog.cob <<'_ATEOF'
11234
11235       IDENTIFICATION   DIVISION.
11236       PROGRAM-ID.      prog.
11237       DATA             DIVISION.
11238       WORKING-STORAGE  SECTION.
11239       01  X            PIC X(4).
11240       PROCEDURE        DIVISION.
11241           CALL "PROG2" USING BY VALUE X
11242           END-CALL.
11243           STOP RUN.
11244_ATEOF
11245
11246
11247{ set +x
11248$as_echo "$at_srcdir/syn_definition.at:1066: \$COMPILE_ONLY prog.cob"
11249at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1066"
11250( $at_check_trace; $COMPILE_ONLY prog.cob
11251) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11252at_status=$? at_failed=false
11253$at_check_filter
11254echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: BY CONTENT assumed for alphanumeric item 'X'
11255" | \
11256  $at_diff - "$at_stderr" || at_failed=:
11257at_fn_diff_devnull "$at_stdout" || at_failed=:
11258at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1066"
11259$at_failed && at_fn_log_failure
11260$at_traceon; }
11261
11262
11263  set +x
11264  $at_times_p && times >"$at_times_file"
11265) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11266read at_status <"$at_status_file"
11267#AT_STOP_95
11268#AT_START_96
11269at_fn_group_banner 96 'syn_definition.at:1073' \
11270  "CALL BY VALUE national item (extension)" "        " 2
11271at_xfail=no
11272(
11273  $as_echo "96. $at_setup_line: testing $at_desc ..."
11274  $at_traceon
11275
11276
11277
11278cat >prog.cob <<'_ATEOF'
11279
11280       IDENTIFICATION   DIVISION.
11281       PROGRAM-ID.      prog.
11282       DATA             DIVISION.
11283       WORKING-STORAGE  SECTION.
11284       01  N            PIC N(4).
11285       PROCEDURE        DIVISION.
11286           CALL "PROG2" USING BY VALUE N
11287           END-CALL.
11288           STOP RUN.
11289_ATEOF
11290
11291
11292{ set +x
11293$as_echo "$at_srcdir/syn_definition.at:1088: \$COMPILE_ONLY prog.cob"
11294at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1088"
11295( $at_check_trace; $COMPILE_ONLY prog.cob
11296) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11297at_status=$? at_failed=false
11298$at_check_filter
11299echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
11300prog.cob:8: warning: BY CONTENT assumed for national item 'N'
11301" | \
11302  $at_diff - "$at_stderr" || at_failed=:
11303at_fn_diff_devnull "$at_stdout" || at_failed=:
11304at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1088"
11305$at_failed && at_fn_log_failure
11306$at_traceon; }
11307
11308
11309  set +x
11310  $at_times_p && times >"$at_times_file"
11311) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11312read at_status <"$at_status_file"
11313#AT_STOP_96
11314#AT_START_97
11315at_fn_group_banner 97 'syn_definition.at:1096' \
11316  "CALL BY VALUE figurative constants" "             " 2
11317at_xfail=no
11318(
11319  $as_echo "97. $at_setup_line: testing $at_desc ..."
11320  $at_traceon
11321
11322
11323
11324cat >prog.cob <<'_ATEOF'
11325
11326       IDENTIFICATION   DIVISION.
11327       PROGRAM-ID.      prog.
11328       PROCEDURE        DIVISION.
11329           CALL "PROG2" USING BY VALUE
11330                low-value
11331                high-value
11332                space
11333                quote
11334                zero
11335           END-CALL.
11336           CALL "PROG2" USING
11337                low-value
11338                high-value
11339                space
11340                quote
11341                zero
11342           END-CALL.
11343           CALL "PROG3" USING
11344                null
11345           END-CALL.
11346           STOP RUN.
11347_ATEOF
11348
11349
11350# FIXME: should raise an error with -std=cobolNNNN, no warning with -std=default
11351# -->    revise after rw-merge
11352{ set +x
11353$as_echo "$at_srcdir/syn_definition.at:1125: \$COMPILE_ONLY -w prog.cob"
11354at_fn_check_prepare_dynamic "$COMPILE_ONLY -w prog.cob" "syn_definition.at:1125"
11355( $at_check_trace; $COMPILE_ONLY -w prog.cob
11356) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11357at_status=$? at_failed=false
11358$at_check_filter
11359at_fn_diff_devnull "$at_stderr" || at_failed=:
11360at_fn_diff_devnull "$at_stdout" || at_failed=:
11361at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1125"
11362$at_failed && at_fn_log_failure
11363$at_traceon; }
11364
11365
11366  set +x
11367  $at_times_p && times >"$at_times_file"
11368) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11369read at_status <"$at_status_file"
11370#AT_STOP_97
11371#AT_START_98
11372at_fn_group_banner 98 'syn_definition.at:1130' \
11373  "Duplicate identification division header" "       " 2
11374at_xfail=no
11375(
11376  $as_echo "98. $at_setup_line: testing $at_desc ..."
11377  $at_traceon
11378
11379
11380
11381cat >prog.cob <<'_ATEOF'
11382
11383       IDENTIFICATION DIVISION.
11384       IDENTIFICATION DIVISION.
11385       PROGRAM-ID. prog.
11386_ATEOF
11387
11388
11389{ set +x
11390$as_echo "$at_srcdir/syn_definition.at:1139: \$COMPILE_ONLY prog.cob"
11391at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1139"
11392( $at_check_trace; $COMPILE_ONLY prog.cob
11393) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11394at_status=$? at_failed=false
11395$at_check_filter
11396echo >>"$at_stderr"; $as_echo "prog.cob:3: error: syntax error, unexpected IDENTIFICATION, expecting FUNCTION-ID or PROGRAM-ID
11397" | \
11398  $at_diff - "$at_stderr" || at_failed=:
11399at_fn_diff_devnull "$at_stdout" || at_failed=:
11400at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1139"
11401$at_failed && at_fn_log_failure
11402$at_traceon; }
11403
11404  set +x
11405  $at_times_p && times >"$at_times_file"
11406) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11407read at_status <"$at_status_file"
11408#AT_STOP_98
11409#AT_START_99
11410at_fn_group_banner 99 'syn_definition.at:1145' \
11411  "RETURNING in STOP RUN / GOBACK / EXIT PROGRAM" "  " 2
11412at_xfail=no
11413(
11414  $as_echo "99. $at_setup_line: testing $at_desc ..."
11415  $at_traceon
11416
11417
11418
11419cat >prog1.cob <<'_ATEOF'
11420
11421       IDENTIFICATION   DIVISION.
11422       PROGRAM-ID.      prog1.
11423       PROCEDURE        DIVISION.
11424           EXIT PROGRAM RETURNING -1.
11425_ATEOF
11426
11427
11428cat >prog2.cob <<'_ATEOF'
11429
11430       IDENTIFICATION   DIVISION.
11431       PROGRAM-ID.      prog2.
11432       PROCEDURE        DIVISION.
11433           GOBACK GIVING 2.
11434_ATEOF
11435
11436
11437cat >prog3.cob <<'_ATEOF'
11438
11439       IDENTIFICATION   DIVISION.
11440       PROGRAM-ID.      prog3.
11441       PROCEDURE        DIVISION.
11442           STOP RUN GIVING 0.
11443_ATEOF
11444
11445
11446cat >prog4.cob <<'_ATEOF'
11447
11448       IDENTIFICATION   DIVISION.
11449       PROGRAM-ID.      prog4.
11450       PROCEDURE        DIVISION.
11451           MOVE 42 TO RETURN-CODE
11452           GOBACK.
11453_ATEOF
11454
11455
11456cat >prog5.cob <<'_ATEOF'
11457
11458       IDENTIFICATION   DIVISION.
11459       PROGRAM-ID.      prog5.
11460       PROCEDURE        DIVISION.
11461           GOBACK.
11462_ATEOF
11463
11464
11465{ set +x
11466$as_echo "$at_srcdir/syn_definition.at:1184: \$COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob"
11467at_fn_check_prepare_dynamic "$COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob" "syn_definition.at:1184"
11468( $at_check_trace; $COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob
11469) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11470at_status=$? at_failed=false
11471$at_check_filter
11472at_fn_diff_devnull "$at_stderr" || at_failed=:
11473at_fn_diff_devnull "$at_stdout" || at_failed=:
11474at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1184"
11475$at_failed && at_fn_log_failure
11476$at_traceon; }
11477
11478{ set +x
11479$as_echo "$at_srcdir/syn_definition.at:1186: \$COMPILE -fnot-register=return-code \\
11480prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob"
11481at_fn_check_prepare_notrace 'an embedded newline' "syn_definition.at:1186"
11482( $at_check_trace; $COMPILE -fnot-register=return-code \
11483prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob
11484) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11485at_status=$? at_failed=false
11486$at_check_filter
11487echo >>"$at_stderr"; $as_echo "prog1.cob:5: error: RETURNING/GIVING not allowed for non-returning runtime elements
11488prog2.cob:5: error: RETURNING/GIVING not allowed for non-returning runtime elements
11489prog4.cob:5: error: 'RETURN-CODE' is not defined
11490" | \
11491  $at_diff - "$at_stderr" || at_failed=:
11492at_fn_diff_devnull "$at_stdout" || at_failed=:
11493at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1186"
11494$at_failed && at_fn_log_failure
11495$at_traceon; }
11496
11497
11498  set +x
11499  $at_times_p && times >"$at_times_file"
11500) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11501read at_status <"$at_status_file"
11502#AT_STOP_99
11503#AT_START_100
11504at_fn_group_banner 100 'syn_definition.at:1196' \
11505  "Invalid ENVIRONMENT DIVISION order" "             " 2
11506at_xfail=no
11507(
11508  $as_echo "100. $at_setup_line: testing $at_desc ..."
11509  $at_traceon
11510
11511
11512
11513cat >prog.cob <<'_ATEOF'
11514
11515       IDENTIFICATION DIVISION.
11516       PROGRAM-ID. prog.
11517
11518       ENVIRONMENT DIVISION.
11519       CONFIGURATION SECTION.
11520       SPECIAL-NAMES.
11521           CONSOLE IS CRT
11522           .
11523       SPECIAL-NAMES.
11524           DECIMAL-POINT IS COMMA
11525           .
11526       SOURCE-COMPUTER. a-computer.
11527_ATEOF
11528
11529
11530{ set +x
11531$as_echo "$at_srcdir/syn_definition.at:1214: \$COMPILE_ONLY -fincorrect-conf-sec-order=error prog.cob"
11532at_fn_check_prepare_dynamic "$COMPILE_ONLY -fincorrect-conf-sec-order=error prog.cob" "syn_definition.at:1214"
11533( $at_check_trace; $COMPILE_ONLY -fincorrect-conf-sec-order=error prog.cob
11534) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11535at_status=$? at_failed=false
11536$at_check_filter
11537echo >>"$at_stderr"; $as_echo "prog.cob:10: error: duplicate SPECIAL-NAMES
11538prog.cob:13: error: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
11539" | \
11540  $at_diff - "$at_stderr" || at_failed=:
11541at_fn_diff_devnull "$at_stdout" || at_failed=:
11542at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1214"
11543$at_failed && at_fn_log_failure
11544$at_traceon; }
11545
11546  set +x
11547  $at_times_p && times >"$at_times_file"
11548) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11549read at_status <"$at_status_file"
11550#AT_STOP_100
11551#AT_START_101
11552at_fn_group_banner 101 'syn_definition.at:1221' \
11553  "Function without END FUNCTION" "                  " 2
11554at_xfail=no
11555(
11556  $as_echo "101. $at_setup_line: testing $at_desc ..."
11557  $at_traceon
11558
11559
11560
11561cat >prog.cob <<'_ATEOF'
11562
11563       IDENTIFICATION DIVISION.
11564       FUNCTION-ID. func.
11565_ATEOF
11566
11567
11568{ set +x
11569$as_echo "$at_srcdir/syn_definition.at:1229: \$COMPILE_ONLY prog.cob"
11570at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1229"
11571( $at_check_trace; $COMPILE_ONLY prog.cob
11572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11573at_status=$? at_failed=false
11574$at_check_filter
11575echo >>"$at_stderr"; $as_echo "prog.cob:4: error: syntax error, unexpected end of file, expecting END FUNCTION
11576" | \
11577  $at_diff - "$at_stderr" || at_failed=:
11578at_fn_diff_devnull "$at_stdout" || at_failed=:
11579at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1229"
11580$at_failed && at_fn_log_failure
11581$at_traceon; }
11582
11583  set +x
11584  $at_times_p && times >"$at_times_file"
11585) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11586read at_status <"$at_status_file"
11587#AT_STOP_101
11588#AT_START_102
11589at_fn_group_banner 102 'syn_definition.at:1235' \
11590  "Nested programs without END PROGRAM" "            " 2
11591at_xfail=no
11592(
11593  $as_echo "102. $at_setup_line: testing $at_desc ..."
11594  $at_traceon
11595
11596
11597
11598cat >prog.cob <<'_ATEOF'
11599
11600       IDENTIFICATION DIVISION.
11601       PROGRAM-ID. prog.
11602       PROCEDURE DIVISION.
11603
11604       IDENTIFICATION DIVISION.
11605       PROGRAM-ID. prog-2.
11606       PROCEDURE DIVISION.
11607
11608       IDENTIFICATION DIVISION.
11609       PROGRAM-ID. prog-3.
11610
11611       END PROGRAM prog.
11612_ATEOF
11613
11614
11615{ set +x
11616$as_echo "$at_srcdir/syn_definition.at:1253: \$COMPILE_ONLY prog.cob"
11617at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1253"
11618( $at_check_trace; $COMPILE_ONLY prog.cob
11619) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11620at_status=$? at_failed=false
11621$at_check_filter
11622at_fn_diff_devnull "$at_stderr" || at_failed=:
11623at_fn_diff_devnull "$at_stdout" || at_failed=:
11624at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1253"
11625$at_failed && at_fn_log_failure
11626$at_traceon; }
11627
11628  set +x
11629  $at_times_p && times >"$at_times_file"
11630) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11631read at_status <"$at_status_file"
11632#AT_STOP_102
11633#AT_START_103
11634at_fn_group_banner 103 'syn_definition.at:1257' \
11635  "Nested programs not in procedure division" "      " 2
11636at_xfail=no
11637(
11638  $as_echo "103. $at_setup_line: testing $at_desc ..."
11639  $at_traceon
11640
11641
11642
11643cat >prog.cob <<'_ATEOF'
11644
11645       IDENTIFICATION DIVISION.
11646       PROGRAM-ID. prog.
11647
11648       IDENTIFICATION DIVISION.
11649       PROGRAM-ID. prog-2.
11650
11651       END PROGRAM prog.
11652_ATEOF
11653
11654
11655{ set +x
11656$as_echo "$at_srcdir/syn_definition.at:1270: \$COMPILE_ONLY prog.cob"
11657at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1270"
11658( $at_check_trace; $COMPILE_ONLY prog.cob
11659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11660at_status=$? at_failed=false
11661$at_check_filter
11662echo >>"$at_stderr"; $as_echo "prog.cob:5: error: PROCEDURE DIVISION header missing
11663" | \
11664  $at_diff - "$at_stderr" || at_failed=:
11665at_fn_diff_devnull "$at_stdout" || at_failed=:
11666at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1270"
11667$at_failed && at_fn_log_failure
11668$at_traceon; }
11669
11670  set +x
11671  $at_times_p && times >"$at_times_file"
11672) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11673read at_status <"$at_status_file"
11674#AT_STOP_103
11675#AT_START_104
11676at_fn_group_banner 104 'syn_definition.at:1276' \
11677  "Screen section starts with 78-level" "            " 2
11678at_xfail=no
11679(
11680  $as_echo "104. $at_setup_line: testing $at_desc ..."
11681  $at_traceon
11682
11683
11684
11685cat >prog.cob <<'_ATEOF'
11686
11687       IDENTIFICATION DIVISION.
11688       PROGRAM-ID. prog.
11689
11690       DATA DIVISION.
11691       SCREEN SECTION.
11692       78 const VALUE "x".
11693_ATEOF
11694
11695
11696{ set +x
11697$as_echo "$at_srcdir/syn_definition.at:1288: \$COMPILE_ONLY prog.cob"
11698at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1288"
11699( $at_check_trace; $COMPILE_ONLY prog.cob
11700) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11701at_status=$? at_failed=false
11702$at_check_filter
11703at_fn_diff_devnull "$at_stderr" || at_failed=:
11704at_fn_diff_devnull "$at_stdout" || at_failed=:
11705at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1288"
11706$at_failed && at_fn_log_failure
11707$at_traceon; }
11708
11709  set +x
11710  $at_times_p && times >"$at_times_file"
11711) 5>&1 2>&1 7>&- | eval $at_tee_pipe
11712read at_status <"$at_status_file"
11713#AT_STOP_104
11714#AT_START_105
11715at_fn_group_banner 105 'syn_definition.at:1292' \
11716  "Invalid PICTURE strings" "                        " 2
11717at_xfail=no
11718(
11719  $as_echo "105. $at_setup_line: testing $at_desc ..."
11720  $at_traceon
11721
11722
11723
11724cat >prog.cob <<'_ATEOF'
11725
11726       IDENTIFICATION DIVISION.
11727       PROGRAM-ID. prog.
11728
11729       DATA DIVISION.
11730       WORKING-STORAGE SECTION.
11731       01  empty-pic PIC.
11732       01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11733      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
11734       01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11735      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11736      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11737      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11738      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
11739       01  multiple-symbols.
11740           03  PIC 9CRCR.
11741           03  PIC 9DBDB.
11742           03  PIC SS99S.
11743           03  PIC 99..9.
11744           03  PIC 99VV9.
11745           03  PIC +$99+.
11746           03  PIC $+99$-.
11747       01  non-symbols.
11748           03  PIC 9K.
11749           03  PIC 999C.
11750           03  PIC 999D.
11751       01  too-many-digits PIC 9(50).
11752       01  too-long-number-in-parens PIC 9(11111111111111).
11753       01  nested-parens PIC 9((100)).
11754       01  unbalanced-parens PIC 9(.
11755       01  multiple-pairs-of-parens PIC 9(5)(3).
11756       01  no-digit-in-parens PIC 9().
11757       01  mutually-exclusive-symbols.
11758           03  PIC P(3)9.9.
11759           03  PIC 9V.9.
11760           03  PIC Z*.
11761           03  PIC +(5)--.
11762           03  PIC $(4)Z(9).
11763           03  PIC $$B*(4).
11764           03  PIC NX.
11765           03  PIC AN.
11766           03  PIC AZ(3).
11767           03  PIC 99.99XXXXX.
11768           03  PIC SA.
11769           03  PIC $$$B+++B---.
11770           03  PIC +++9+.
11771           03  PIC +9(5)CR.
11772           03  PIC -9(5)DB.
11773       01 non-rightmost-leftmost-symbols.
11774           03  PIC BBB+BB99.
11775           03  PIC 99-B.
11776           03  PIC 9CRB.
11777           03  PIC DB9(5).
11778           03  PIC 99$$$.
11779           03  PIC 99$B.
11780           03  PIC 0$99.
11781           03  PIC PPPVP9.
11782       01  missing-symbols.
11783           03  PIC B(5).
11784           03  PIC +.
11785           03  PIC $.
11786
11787       01  str-constant CONSTANT "hello".
11788       01  float-constant CONSTANT 1.0.
11789       01  signed-constant CONSTANT -1.
11790       01  invalid-constant.
11791           03  PIC X(str-constant).
11792           03  PIC X(float-constant).
11793           03  PIC X(signed-constant).
11794           03  PIC X(unseen-constant).
11795
11796       01  integer-constant CONSTANT 5.
11797       01  valid-pics.
11798           03  PIC VP9B.
11799           03  PIC B9P(3).
11800           03  PIC B$$$.
11801           03  PIC 0000+B0+++0B,+.
11802           03  PIC +(5)P(3).
11803           03  PIC ++.++.
11804           03  PIC $(integer-constant).
11805           03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
11806      -(integer-constant).   *> CHECKME: should this be really valid?
11807
11808
11809       01  PC-COLOR-BACKGROUND-TABLE.
11810           05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
11811           05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
11812           05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
11813           05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
11814           05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
11815           05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
11816           05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
11817           05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
11818       01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
11819           05  COLOR-BACKGROUND
11820               OCCURS 8 TIMES            PIC 1(8) BIT.
11821_ATEOF
11822
11823
11824{ set +x
11825$as_echo "$at_srcdir/syn_definition.at:1393: \$COMPILE_ONLY -std=cobol2014 prog.cob"
11826at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1393"
11827( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
11828) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11829at_status=$? at_failed=false
11830$at_check_filter
11831echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: continuation of COBOL words is archaic in COBOL 2014
11832prog.cob:11: warning: continuation of COBOL words is archaic in COBOL 2014
11833prog.cob:12: warning: continuation of COBOL words is archaic in COBOL 2014
11834prog.cob:13: warning: continuation of COBOL words is archaic in COBOL 2014
11835prog.cob:14: warning: continuation of COBOL words is archaic in COBOL 2014
11836prog.cob:82: warning: continuation of COBOL words is archaic in COBOL 2014
11837prog.cob:7: error: missing PICTURE string
11838prog.cob:8: error: PICTURE string may not contain more than 63 characters; contains 76 characters
11839prog.cob:10: error: PICTURE string may not contain more than 63 characters; contains 301 characters
11840prog.cob:16: error: CR or DB may only occur once in a PICTURE string
11841prog.cob:17: error: CR or DB may only occur once in a PICTURE string
11842prog.cob:18: error: S may only occur once in a PICTURE string
11843prog.cob:18: error: S must be at start of PICTURE string
11844prog.cob:19: error: . may only occur once in a PICTURE string
11845prog.cob:20: error: V may only occur once in a PICTURE string
11846prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
11847prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
11848prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
11849prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
11850prog.cob:24: error: invalid PICTURE character 'K'
11851prog.cob:25: error: C must be followed by R
11852prog.cob:26: error: D must be followed by B
11853prog.cob:27: error: numeric field cannot be larger than 38 digits
11854prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
11855prog.cob:29: error: parentheses must be preceded by a picture symbol
11856prog.cob:30: error: unbalanced parentheses
11857prog.cob:31: error: parentheses must be preceded by a picture symbol
11858prog.cob:32: error: parentheses must contain an unsigned integer
11859prog.cob:34: error: . cannot follow a P which is after the decimal point
11860prog.cob:35: error: . cannot follow V
11861prog.cob:36: error: cannot have both Z and * in PICTURE string
11862prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
11863prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
11864prog.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
11865prog.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
11866prog.cob:40: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
11867prog.cob:40: error: A or X cannot follow N
11868prog.cob:41: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
11869prog.cob:41: error: N cannot follow A or X
11870prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
11871prog.cob:43: error: A or X cannot follow .
11872prog.cob:44: error: A or X cannot follow S
11873prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
11874prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
11875prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
11876prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
11877prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
11878prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
11879prog.cob:47: error: CR or DB cannot follow a leading +/- sign
11880prog.cob:48: error: CR or DB cannot follow a leading +/- sign
11881prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
11882prog.cob:51: error: a leading +/- sign cannot follow 9
11883prog.cob:52: error: B, 0 or / cannot follow CR or DB
11884prog.cob:53: error: 9 cannot follow CR or DB
11885prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
11886prog.cob:55: error: a leading currency symbol cannot follow 9
11887prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
11888prog.cob:57: error: P must be at start or end of PICTURE string
11889prog.cob:57: error: V cannot follow a P which is after the decimal point
11890prog.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
11891prog.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
11892prog.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
11893prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
11894prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
11895prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
11896prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
11897prog.cob:81: warning: uncommon parentheses
11898prog.cob:86: warning: USAGE BIT is not implemented
11899prog.cob:87: warning: USAGE BIT is not implemented
11900prog.cob:88: warning: USAGE BIT is not implemented
11901prog.cob:89: warning: USAGE BIT is not implemented
11902prog.cob:90: warning: USAGE BIT is not implemented
11903prog.cob:91: warning: USAGE BIT is not implemented
11904prog.cob:92: warning: USAGE BIT is not implemented
11905prog.cob:93: warning: USAGE BIT is not implemented
11906prog.cob:96: warning: USAGE BIT is not implemented
11907" | \
11908  $at_diff - "$at_stderr" || at_failed=:
11909at_fn_diff_devnull "$at_stdout" || at_failed=:
11910at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1393"
11911$at_failed && at_fn_log_failure
11912$at_traceon; }
11913
11914
11915{ set +x
11916$as_echo "$at_srcdir/syn_definition.at:1472: \$COMPILE_ONLY prog.cob"
11917at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1472"
11918( $at_check_trace; $COMPILE_ONLY prog.cob
11919) >>"$at_stdout" 2>>"$at_stderr" 5>&-
11920at_status=$? at_failed=false
11921$at_check_filter
11922echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: continuation of COBOL words used
11923prog.cob:11: warning: continuation of COBOL words used
11924prog.cob:12: warning: continuation of COBOL words used
11925prog.cob:13: warning: continuation of COBOL words used
11926prog.cob:14: warning: continuation of COBOL words used
11927prog.cob:82: warning: continuation of COBOL words used
11928prog.cob:7: error: missing PICTURE string
11929prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
11930prog.cob:16: error: CR or DB may only occur once in a PICTURE string
11931prog.cob:17: error: CR or DB may only occur once in a PICTURE string
11932prog.cob:18: error: S may only occur once in a PICTURE string
11933prog.cob:18: error: S must be at start of PICTURE string
11934prog.cob:19: error: . may only occur once in a PICTURE string
11935prog.cob:20: error: V may only occur once in a PICTURE string
11936prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
11937prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
11938prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
11939prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
11940prog.cob:24: error: invalid PICTURE character 'K'
11941prog.cob:25: error: C must be followed by R
11942prog.cob:26: error: D must be followed by B
11943prog.cob:27: error: numeric field cannot be larger than 38 digits
11944prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
11945prog.cob:29: error: parentheses must be preceded by a picture symbol
11946prog.cob:30: error: unbalanced parentheses
11947prog.cob:31: error: parentheses must be preceded by a picture symbol
11948prog.cob:32: error: parentheses must contain an unsigned integer
11949prog.cob:34: error: . cannot follow a P which is after the decimal point
11950prog.cob:35: error: . cannot follow V
11951prog.cob:36: error: cannot have both Z and * in PICTURE string
11952prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
11953prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
11954prog.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
11955prog.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
11956prog.cob:40: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
11957prog.cob:40: error: A or X cannot follow N
11958prog.cob:41: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
11959prog.cob:41: error: N cannot follow A or X
11960prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
11961prog.cob:43: error: A or X cannot follow .
11962prog.cob:44: error: A or X cannot follow S
11963prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
11964prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
11965prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
11966prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
11967prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
11968prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
11969prog.cob:47: error: CR or DB cannot follow a leading +/- sign
11970prog.cob:48: error: CR or DB cannot follow a leading +/- sign
11971prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
11972prog.cob:51: error: a leading +/- sign cannot follow 9
11973prog.cob:52: error: B, 0 or / cannot follow CR or DB
11974prog.cob:53: error: 9 cannot follow CR or DB
11975prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
11976prog.cob:55: error: a leading currency symbol cannot follow 9
11977prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
11978prog.cob:57: error: P must be at start or end of PICTURE string
11979prog.cob:57: error: V cannot follow a P which is after the decimal point
11980prog.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
11981prog.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
11982prog.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
11983prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
11984prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
11985prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
11986prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
11987prog.cob:81: warning: uncommon parentheses
11988prog.cob:86: warning: USAGE BIT is not implemented
11989prog.cob:87: warning: USAGE BIT is not implemented
11990prog.cob:88: warning: USAGE BIT is not implemented
11991prog.cob:89: warning: USAGE BIT is not implemented
11992prog.cob:90: warning: USAGE BIT is not implemented
11993prog.cob:91: warning: USAGE BIT is not implemented
11994prog.cob:92: warning: USAGE BIT is not implemented
11995prog.cob:93: warning: USAGE BIT is not implemented
11996prog.cob:96: warning: USAGE BIT is not implemented
11997" | \
11998  $at_diff - "$at_stderr" || at_failed=:
11999at_fn_diff_devnull "$at_stdout" || at_failed=:
12000at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1472"
12001$at_failed && at_fn_log_failure
12002$at_traceon; }
12003
12004  set +x
12005  $at_times_p && times >"$at_times_file"
12006) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12007read at_status <"$at_status_file"
12008#AT_STOP_105
12009#AT_START_106
12010at_fn_group_banner 106 'syn_definition.at:1552' \
12011  "PICTURE string with control character" "          " 2
12012at_xfail=no
12013(
12014  $as_echo "106. $at_setup_line: testing $at_desc ..."
12015  $at_traceon
12016
12017
12018
12019cat >prog.cob <<'_ATEOF'
12020
12021       PIC(P)
12022_ATEOF
12023
12024
12025{ set +x
12026$as_echo "$at_srcdir/syn_definition.at:1559: \$COMPILE_ONLY prog.cob"
12027at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1559"
12028( $at_check_trace; $COMPILE_ONLY prog.cob
12029) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12030at_status=$? at_failed=false
12031$at_check_filter
12032echo >>"$at_stderr"; $as_echo "prog.cob:2: error: 'P' is not defined
12033prog.cob:2: error: invalid PICTURE character ''
12034prog.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
12035prog.cob:2: error: PROGRAM-ID header missing
12036prog.cob:2: error: PROCEDURE DIVISION header missing
12037prog.cob:2: error: syntax error, unexpected PICTURE
12038" | \
12039  $at_diff - "$at_stderr" || at_failed=:
12040at_fn_diff_devnull "$at_stdout" || at_failed=:
12041at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1559"
12042$at_failed && at_fn_log_failure
12043$at_traceon; }
12044
12045  set +x
12046  $at_times_p && times >"$at_times_file"
12047) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12048read at_status <"$at_status_file"
12049#AT_STOP_106
12050#AT_START_107
12051at_fn_group_banner 107 'syn_definition.at:1570' \
12052  "PICTURE strings invalid with BLANK WHEN ZERO" "   " 2
12053at_xfail=no
12054(
12055  $as_echo "107. $at_setup_line: testing $at_desc ..."
12056  $at_traceon
12057
12058
12059
12060cat >prog.cob <<'_ATEOF'
12061
12062       IDENTIFICATION DIVISION.
12063       PROGRAM-ID. prog.
12064
12065       DATA DIVISION.
12066       WORKING-STORAGE SECTION.
12067       01  x PIC S9(5) BLANK ZERO.
12068       01  y PIC *(5) BLANK ZERO.
12069
12070       *> Actually valid
12071       01  z PIC -9(5) BLANK ZERO.
12072_ATEOF
12073
12074
12075{ set +x
12076$as_echo "$at_srcdir/syn_definition.at:1586: \$COMPILE_ONLY prog.cob"
12077at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1586"
12078( $at_check_trace; $COMPILE_ONLY prog.cob
12079) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12080at_status=$? at_failed=false
12081$at_check_filter
12082echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'x' cannot have S in PICTURE string and BLANK WHEN ZERO
12083prog.cob:8: error: 'y' cannot have * in PICTURE string and BLANK WHEN ZERO
12084" | \
12085  $at_diff - "$at_stderr" || at_failed=:
12086at_fn_diff_devnull "$at_stdout" || at_failed=:
12087at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1586"
12088$at_failed && at_fn_log_failure
12089$at_traceon; }
12090
12091  set +x
12092  $at_times_p && times >"$at_times_file"
12093) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12094read at_status <"$at_status_file"
12095#AT_STOP_107
12096#AT_START_108
12097at_fn_group_banner 108 'syn_definition.at:1593' \
12098  "PICTURE strings invalid with USAGE" "             " 2
12099at_xfail=no
12100(
12101  $as_echo "108. $at_setup_line: testing $at_desc ..."
12102  $at_traceon
12103
12104
12105
12106cat >prog.cob <<'_ATEOF'
12107
12108       IDENTIFICATION DIVISION.
12109       PROGRAM-ID. prog.
12110
12111       DATA DIVISION.
12112       WORKING-STORAGE SECTION.
12113       01  x PIC XXX, COMP-6.
12114       01  y PIC +999, PACKED-DECIMAL.
12115_ATEOF
12116
12117
12118{ set +x
12119$as_echo "$at_srcdir/syn_definition.at:1606: \$COMPILE_ONLY prog.cob"
12120at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1606"
12121( $at_check_trace; $COMPILE_ONLY prog.cob
12122) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12123at_status=$? at_failed=false
12124$at_check_filter
12125echo >>"$at_stderr"; $as_echo "prog.cob:7: error: PICTURE clause not compatible with USAGE COMP-6
12126prog.cob:8: error: PICTURE clause not compatible with USAGE COMP-3
12127" | \
12128  $at_diff - "$at_stderr" || at_failed=:
12129at_fn_diff_devnull "$at_stdout" || at_failed=:
12130at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1606"
12131$at_failed && at_fn_log_failure
12132$at_traceon; }
12133
12134  set +x
12135  $at_times_p && times >"$at_times_file"
12136) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12137read at_status <"$at_status_file"
12138#AT_STOP_108
12139#AT_START_109
12140at_fn_group_banner 109 'syn_definition.at:1613' \
12141  "ALPHABET definition" "                            " 2
12142at_xfail=no
12143(
12144  $as_echo "109. $at_setup_line: testing $at_desc ..."
12145  $at_traceon
12146
12147
12148
12149cat >prog.cob <<'_ATEOF'
12150
12151       IDENTIFICATION DIVISION.
12152       PROGRAM-ID. prog.
12153       ENVIRONMENT DIVISION.
12154       CONFIGURATION SECTION.
12155       SPECIAL-NAMES.
12156           ALPHABET TESTME IS
12157                    'A' THROUGH 'Z', x'00' thru x'05';
12158                    x'41' ALSO x'42', ALSO x'00', x'C1' ALSO x'C2'.
12159           ALPHABET FINE
12160                    'A' also 'B' also 'C' also 'd' also 'e' ALSO 'f',
12161                    'g' also 'G', '1' thru '9', x'00'.
12162_ATEOF
12163
12164
12165{ set +x
12166$as_echo "$at_srcdir/syn_definition.at:1630: \$COMPILE_ONLY prog.cob"
12167at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1630"
12168( $at_check_trace; $COMPILE_ONLY prog.cob
12169) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12170at_status=$? at_failed=false
12171$at_check_filter
12172echo >>"$at_stderr"; $as_echo "prog.cob:7: error: duplicate character values in alphabet 'TESTME': x'00', A, B
12173" | \
12174  $at_diff - "$at_stderr" || at_failed=:
12175at_fn_diff_devnull "$at_stdout" || at_failed=:
12176at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1630"
12177$at_failed && at_fn_log_failure
12178$at_traceon; }
12179
12180  set +x
12181  $at_times_p && times >"$at_times_file"
12182) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12183read at_status <"$at_status_file"
12184#AT_STOP_109
12185#AT_START_110
12186at_fn_group_banner 110 'syn_definition.at:1636' \
12187  "PROGRAM COLLATING SEQUENCE" "                     " 2
12188at_xfail=no
12189(
12190  $as_echo "110. $at_setup_line: testing $at_desc ..."
12191  $at_traceon
12192
12193
12194
12195# check that a reference on the bad alphabet does not break cobc
12196cat >prog.cob <<'_ATEOF'
12197
12198       IDENTIFICATION DIVISION.
12199       PROGRAM-ID. prog.
12200       ENVIRONMENT DIVISION.
12201       CONFIGURATION SECTION.
12202       SOURCE-COMPUTER. GNU-LINUX.
12203       OBJECT-COMPUTER. GC-MACHINE,
12204                        PROGRAM COLLATING SEQUENCE IS TESTME.
12205       SPECIAL-NAMES.
12206           ALPHABET TESTME IS
12207                    x'00' thru x'05', 'A' THROUGH 'Z';
12208                    x'41' ALSO x'42', ALSO x'00', x'C1' ALSO x'C2'.
12209_ATEOF
12210
12211
12212cat >prog2.cob <<'_ATEOF'
12213
12214       IDENTIFICATION DIVISION.
12215       PROGRAM-ID. prog2.
12216       ENVIRONMENT DIVISION.
12217       CONFIGURATION SECTION.
12218       SOURCE-COMPUTER. GNU-LINUX.
12219       OBJECT-COMPUTER. GC-MACHINE,
12220                        PROGRAM COLLATING SEQUENCE IS TESTNO.
12221_ATEOF
12222
12223
12224cat >prog3.cob <<'_ATEOF'
12225
12226       IDENTIFICATION DIVISION.
12227       PROGRAM-ID. prog3.
12228       ENVIRONMENT DIVISION.
12229       CONFIGURATION SECTION.
12230       SOURCE-COMPUTER. GNU-LINUX.
12231       OBJECT-COMPUTER. GC-MACHINE,
12232                        PROGRAM COLLATING SEQUENCE IS ALPHABET-1,
12233                                                      ALPHABET-2.
12234       SPECIAL-NAMES.
12235           ALPHABET ALPHABET-1 IS
12236                    'A' THROUGH 'Z', x'00' thru x'05'.
12237           ALPHABET ALPHABET-2
12238                    n'A' also n'B' ALSO n'f',
12239                    n'g' also n'G', n'1' thru n'9'.
12240       END PROGRAM prog3.
12241
12242       IDENTIFICATION DIVISION.
12243       PROGRAM-ID. prog3b.
12244       ENVIRONMENT DIVISION.
12245       CONFIGURATION SECTION.
12246       SOURCE-COMPUTER. GNU-LINUX.
12247       OBJECT-COMPUTER. GC-MACHINE,
12248                        PROGRAM           SEQUENCE IS ALPHABET-1,
12249                                                      ALPHABET-2.
12250       SPECIAL-NAMES.
12251           ALPHABET ALPHABET-1 IS
12252                    'A' THROUGH 'Z', x'00' thru x'05'.
12253           ALPHABET ALPHABET-2 IS
12254                    n'A' ALSO n'f',
12255                    n'g' also n'G'.
12256       END PROGRAM prog3b.
12257
12258       IDENTIFICATION DIVISION.
12259       PROGRAM-ID. prog3c.
12260       ENVIRONMENT DIVISION.
12261       CONFIGURATION SECTION.
12262       SOURCE-COMPUTER. GNU-LINUX.
12263       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1, ALPHABET-2.
12264       SPECIAL-NAMES.
12265           ALPHABET ALPHABET-1    x'00' thru x'05'.
12266           ALPHABET ALPHABET-2 IS n'g' also n'G', n'1' thru n'9'.
12267       END PROGRAM prog3c.
12268
12269       IDENTIFICATION DIVISION.
12270       PROGRAM-ID. prog3d.
12271       ENVIRONMENT DIVISION.
12272       CONFIGURATION SECTION.
12273       SOURCE-COMPUTER. GNU-LINUX.
12274       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1, ALPHABET-2.
12275       SPECIAL-NAMES.
12276           ALPHABET ALPHABET-1 IS 'A' THROUGH 'Z'.
12277           ALPHABET ALPHABET-2   n'A' also n'B', n'1' thru n'9'.
12278       END PROGRAM prog3d.
12279
12280       IDENTIFICATION DIVISION.
12281       PROGRAM-ID. prog3e.
12282       ENVIRONMENT DIVISION.
12283       CONFIGURATION SECTION.
12284       SOURCE-COMPUTER. GNU-LINUX.
12285       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1.
12286       SPECIAL-NAMES.
12287           ALPHABET ALPHABET-1 IS 'Z', x'00'.
12288       END PROGRAM prog3e.
12289
12290       IDENTIFICATION DIVISION.
12291       PROGRAM-ID. prog3f.
12292       ENVIRONMENT DIVISION.
12293       CONFIGURATION SECTION.
12294       SOURCE-COMPUTER. GNU-LINUX.
12295       OBJECT-COMPUTER. GC-MACHINE,
12296                        COLLATING SEQUENCE
12297                          FOR ALPHANUMERIC IS ALPHABET-1.
12298       SPECIAL-NAMES.
12299           ALPHABET ALPHABET-1 IS
12300                    'A' THROUGH 'Z', x'00', x'05'.
12301       END PROGRAM prog3f.
12302
12303       IDENTIFICATION DIVISION.
12304       PROGRAM-ID. prog3g.
12305       ENVIRONMENT DIVISION.
12306       CONFIGURATION SECTION.
12307       SOURCE-COMPUTER. GNU-LINUX.
12308       OBJECT-COMPUTER. GC-MACHINE,
12309                        SEQUENCE ALPHANUMERIC ALPHABET-1.
12310       SPECIAL-NAMES.
12311           ALPHABET ALPHABET-1 IS
12312                    'A' THROUGH 'D'.
12313       END PROGRAM prog3g.
12314
12315       IDENTIFICATION DIVISION.
12316       PROGRAM-ID. prog3h.
12317       ENVIRONMENT DIVISION.
12318       CONFIGURATION SECTION.
12319       SOURCE-COMPUTER. GNU-LINUX.
12320       OBJECT-COMPUTER. GC-MACHINE,
12321                        COLLATING SEQUENCE
12322                          FOR ALPHANUMERIC IS ALPHABET-1
12323                              NATIONAL     IS ALPHABET-2.
12324       SPECIAL-NAMES.
12325           ALPHABET ALPHABET-1 IS
12326                    'A', 'C', x'05'.
12327           ALPHABET ALPHABET-2
12328                    n'A', n'1' thru n'9'.
12329       END PROGRAM prog3h.
12330
12331       IDENTIFICATION DIVISION.
12332       PROGRAM-ID. prog3i.
12333       ENVIRONMENT DIVISION.
12334       CONFIGURATION SECTION.
12335       SOURCE-COMPUTER. GNU-LINUX.
12336       OBJECT-COMPUTER. GC-MACHINE,
12337                        COLLATING SEQUENCE
12338                          NATIONAL     ALPHABET-2
12339                          ALPHANUMERIC ALPHABET-1.
12340       SPECIAL-NAMES.
12341           ALPHABET ALPHABET-1 IS
12342                    'a' THROUGH 'z'.
12343           ALPHABET ALPHABET-2
12344                    n'B', n'C'; n'g' also n'G'.
12345       END PROGRAM prog3i.
12346
12347       IDENTIFICATION DIVISION.
12348       PROGRAM-ID. prog3j.
12349       ENVIRONMENT DIVISION.
12350       CONFIGURATION SECTION.
12351       SOURCE-COMPUTER. GNU-LINUX.
12352       OBJECT-COMPUTER. GC-MACHINE,
12353                        COLLATING SEQUENCE
12354                          NATIONAL     ALPHABET-2.
12355       SPECIAL-NAMES.
12356           ALPHABET ALPHABET-2
12357                    n'B', n'C'; n'g' also n'G'.
12358       END PROGRAM prog3j.
12359_ATEOF
12360
12361
12362{ set +x
12363$as_echo "$at_srcdir/syn_definition.at:1800: \$COMPILE_ONLY prog.cob"
12364at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1800"
12365( $at_check_trace; $COMPILE_ONLY prog.cob
12366) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12367at_status=$? at_failed=false
12368$at_check_filter
12369echo >>"$at_stderr"; $as_echo "prog.cob:10: error: duplicate character values in alphabet 'TESTME': x'00', A, B
12370" | \
12371  $at_diff - "$at_stderr" || at_failed=:
12372at_fn_diff_devnull "$at_stdout" || at_failed=:
12373at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1800"
12374$at_failed && at_fn_log_failure
12375$at_traceon; }
12376
12377{ set +x
12378$as_echo "$at_srcdir/syn_definition.at:1803: \$COMPILE_ONLY prog2.cob"
12379at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_definition.at:1803"
12380( $at_check_trace; $COMPILE_ONLY prog2.cob
12381) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12382at_status=$? at_failed=false
12383$at_check_filter
12384echo >>"$at_stderr"; $as_echo "prog2.cob:8: error: 'TESTNO' is not defined
12385prog2.cob:8: error: 'TESTNO' is not an alphabet name
12386" | \
12387  $at_diff - "$at_stderr" || at_failed=:
12388at_fn_diff_devnull "$at_stdout" || at_failed=:
12389at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1803"
12390$at_failed && at_fn_log_failure
12391$at_traceon; }
12392
12393{ set +x
12394$as_echo "$at_srcdir/syn_definition.at:1807: \$COMPILE_ONLY -Wno-unfinished prog3.cob"
12395at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished prog3.cob" "syn_definition.at:1807"
12396( $at_check_trace; $COMPILE_ONLY -Wno-unfinished prog3.cob
12397) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12398at_status=$? at_failed=false
12399$at_check_filter
12400echo >>"$at_stderr"; $as_echo "prog3.cob:9: warning: NATIONAL COLLATING SEQUENCE is not implemented
12401prog3.cob:25: warning: NATIONAL COLLATING SEQUENCE is not implemented
12402prog3.cob:39: warning: NATIONAL COLLATING SEQUENCE is not implemented
12403prog3.cob:50: warning: NATIONAL COLLATING SEQUENCE is not implemented
12404prog3.cob:99: warning: NATIONAL COLLATING SEQUENCE is not implemented
12405prog3.cob:114: warning: NATIONAL COLLATING SEQUENCE is not implemented
12406prog3.cob:130: warning: NATIONAL COLLATING SEQUENCE is not implemented
12407" | \
12408  $at_diff - "$at_stderr" || at_failed=:
12409at_fn_diff_devnull "$at_stdout" || at_failed=:
12410at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1807"
12411$at_failed && at_fn_log_failure
12412$at_traceon; }
12413
12414  set +x
12415  $at_times_p && times >"$at_times_file"
12416) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12417read at_status <"$at_status_file"
12418#AT_STOP_110
12419#AT_START_111
12420at_fn_group_banner 111 'syn_definition.at:1819' \
12421  "RENAMES item" "                                   " 2
12422at_xfail=no
12423(
12424  $as_echo "111. $at_setup_line: testing $at_desc ..."
12425  $at_traceon
12426
12427
12428
12429cat >prog.cob <<'_ATEOF'
12430
12431       IDENTIFICATION  DIVISION.
12432       PROGRAM-ID.     prog.
12433       DATA            DIVISION.
12434       WORKING-STORAGE SECTION.
12435       01  a.
12436           03  b       PIC 9.
12437           03  c.
12438               05 d    PIC 9.
12439               05 e    PIC 9.
12440
12441       66  valid-1     RENAMES b.
12442       66  valid-2     RENAMES d THRU e.
12443
12444       66  invalid-1   RENAMES a.
12445       66  invalid-2   RENAMES c THRU d.
12446       66  invalid-3   RENAMES e THRU d.
12447       66  invalid-4   RENAMES valid-2.
12448
12449       01  f.
12450           03  g       PIC X.
12451               88  h   VALUE "a".
12452           03  i       PIC X.
12453           03  j       OCCURS 5 TIMES.
12454               05  k   PIC X.
12455               05  l   PIC X.
12456           03  m       PIC 9.
12457           03  n       POINTER, SYNC.
12458           03  o.
12459               05  p   PIC X OCCURS 1 TO 10 DEPENDING ON l.
12460
12461       66  valid-3     RENAMES g THRU i.
12462       66  invalid-5   RENAMES h.
12463       66  invalid-6   RENAMES k THRU l.
12464       66  invalid-7   RENAMES j.
12465       66  invalid-8   RENAMES m THRU o.
12466       66  invalid-9   RENAMES b THRU m.
12467
12468       78  my-ext-const VALUE "123".
12469       66  invalid-ec   RENAMES my-ext-const.
12470
12471       01  my-std-const CONSTANT AS "123".
12472       66  invalid-sc   RENAMES my-std-const.
12473
12474       PROCEDURE       DIVISION.
12475           DISPLAY valid-2 OF a
12476           IF valid-1 = 1
12477              CONTINUE
12478           END-IF
12479           .
12480_ATEOF
12481
12482
12483{ set +x
12484$as_echo "$at_srcdir/syn_definition.at:1874: \$COMPILE_ONLY -std=cobol2014 prog.cob"
12485at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1874"
12486( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
12487) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12488at_status=$? at_failed=false
12489$at_check_filter
12490echo >>"$at_stderr"; $as_echo "prog.cob:15: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
12491prog.cob:16: error: THRU item 'd' may not be subordinate to 'c'
12492prog.cob:17: error: THRU item 'd' may not come before 'e'
12493prog.cob:18: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
12494prog.cob:33: error: RENAMES may not reference a level 88
12495prog.cob:34: error: cannot use RENAMES on part of the table 'j'
12496prog.cob:35: error: RENAMES cannot start/end at the OCCURS item 'j'
12497prog.cob:36: error: RENAMES may not contain 'n' as it is a pointer or object reference
12498prog.cob:36: error: RENAMES may not contain 'p' as it is an OCCURS DEPENDING table
12499prog.cob:37: error: 'invalid-9' must immediately follow the record 'a'
12500prog.cob:37: error: 'b' and 'm' must be in the same record
12501prog.cob:39: error: 78 VALUE does not conform to COBOL 2014
12502prog.cob:40: error: a constant may not be used here - 'my-ext-const'
12503prog.cob:43: error: a constant may not be used here - 'my-std-const'
12504" | \
12505  $at_diff - "$at_stderr" || at_failed=:
12506at_fn_diff_devnull "$at_stdout" || at_failed=:
12507at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1874"
12508$at_failed && at_fn_log_failure
12509$at_traceon; }
12510
12511  set +x
12512  $at_times_p && times >"$at_times_file"
12513) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12514read at_status <"$at_status_file"
12515#AT_STOP_111
12516#AT_START_112
12517at_fn_group_banner 112 'syn_definition.at:1893' \
12518  "RENAMES of 01-, 66- and 77-level items" "         " 2
12519at_xfail=no
12520(
12521  $as_echo "112. $at_setup_line: testing $at_desc ..."
12522  $at_traceon
12523
12524
12525
12526cat >prog.cob <<'_ATEOF'
12527
12528       IDENTIFICATION   DIVISION.
12529       PROGRAM-ID.      prog.
12530       DATA             DIVISION.
12531       WORKING-STORAGE  SECTION.
12532       01  a PIC X.
12533       66  renames-a RENAMES a.
12534       66  renames-a2 RENAMES renames-a.
12535
12536       77  b PIC X.
12537       66  renames-b RENAMES b.
12538_ATEOF
12539
12540
12541{ set +x
12542$as_echo "$at_srcdir/syn_definition.at:1909: \$COMPILE_ONLY -std=cobol2014 prog.cob"
12543at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1909"
12544( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
12545) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12546at_status=$? at_failed=false
12547$at_check_filter
12548echo >>"$at_stderr"; $as_echo "prog.cob:7: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
12549prog.cob:8: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
12550prog.cob:11: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
12551" | \
12552  $at_diff - "$at_stderr" || at_failed=:
12553at_fn_diff_devnull "$at_stdout" || at_failed=:
12554at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1909"
12555$at_failed && at_fn_log_failure
12556$at_traceon; }
12557
12558{ set +x
12559$as_echo "$at_srcdir/syn_definition.at:1914: \$COMPILE_ONLY -frenames-uncommon-levels=ok prog.cob"
12560at_fn_check_prepare_dynamic "$COMPILE_ONLY -frenames-uncommon-levels=ok prog.cob" "syn_definition.at:1914"
12561( $at_check_trace; $COMPILE_ONLY -frenames-uncommon-levels=ok prog.cob
12562) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12563at_status=$? at_failed=false
12564$at_check_filter
12565at_fn_diff_devnull "$at_stderr" || at_failed=:
12566at_fn_diff_devnull "$at_stdout" || at_failed=:
12567at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1914"
12568$at_failed && at_fn_log_failure
12569$at_traceon; }
12570
12571
12572  set +x
12573  $at_times_p && times >"$at_times_file"
12574) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12575read at_status <"$at_status_file"
12576#AT_STOP_112
12577#AT_START_113
12578at_fn_group_banner 113 'syn_definition.at:1919' \
12579  "SAME AS clause" "                                 " 2
12580at_xfail=no
12581(
12582  $as_echo "113. $at_setup_line: testing $at_desc ..."
12583  $at_traceon
12584
12585
12586
12587cat >prog.cob <<'_ATEOF'
12588
12589       IDENTIFICATION   DIVISION.
12590       PROGRAM-ID.      prog.
12591       DATA             DIVISION.
12592       WORKING-STORAGE  SECTION.
12593       01  MESSAGE-TEXT-2 EXTERNAL.
12594         02 AUSGABE-FILE-NAME     PIC X(50).
12595         02 FILLER REDEFINES AUSGABE-FILE-NAME.
12596             05 FILLER PIC 9999.
12597         02 AUSGABE-FILE-NAME-2.
12598             05 FILLER PIC 9999.
12599             05 DETAIL-NO PIC 9999.
12600         02 FILLER SAME AS AUSGABE-FILE-NAME.
12601
12602       77 OUTPUT-NAME SAME AS DETAIL-NO GLOBAL.
12603
12604       01 Z-MESSAGE-T2 SAME AS AUSGABE-FILE-NAME-2.
12605       01 Z-MESSAGE-T3.
12606          49 MT3       SAME AS MESSAGE-TEXT-2.
12607          49 MT3-REN  REDEFINES MT3 SAME AS MESSAGE-TEXT-2.
12608
12609       PROCEDURE DIVISION.
12610           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
12611           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
12612           DISPLAY AUSGABE-FILE-NAME OF MT3
12613           DISPLAY OUTPUT-NAME
12614           GOBACK.
12615_ATEOF
12616
12617
12618cat >badprog.cob <<'_ATEOF'
12619
12620       IDENTIFICATION   DIVISION.
12621       PROGRAM-ID.      prog.
12622       DATA             DIVISION.
12623       WORKING-STORAGE  SECTION.
12624       01  MESSAGE-TEXT-2.
12625         02 AUSGABE-FILE-NAME     PIC X(50).
12626         02 F1 SAME AS MESSAGE-TEXT-2.
12627       01 MT2 SAME AS MESSAGE-TEXT-2.
12628             05 FILLER PIC 9999.
12629       01 MT3 SAME AS MESSAGE-TEXT-2 PIC X.
12630       77 OUTPUT-NAME  SAME AS MESSAGE-TEXT-2.
12631_ATEOF
12632
12633
12634{ set +x
12635$as_echo "$at_srcdir/syn_definition.at:1965: \$COMPILE_ONLY prog.cob"
12636at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1965"
12637( $at_check_trace; $COMPILE_ONLY prog.cob
12638) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12639at_status=$? at_failed=false
12640$at_check_filter
12641at_fn_diff_devnull "$at_stderr" || at_failed=:
12642at_fn_diff_devnull "$at_stdout" || at_failed=:
12643at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1965"
12644$at_failed && at_fn_log_failure
12645$at_traceon; }
12646
12647{ set +x
12648$as_echo "$at_srcdir/syn_definition.at:1966: \$COMPILE_ONLY -std=mf-strict prog.cob"
12649at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:1966"
12650( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
12651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12652at_status=$? at_failed=false
12653$at_check_filter
12654echo >>"$at_stderr"; $as_echo "prog.cob:13: error: SAME AS clause does not conform to Micro Focus COBOL
12655prog.cob:15: error: SAME AS clause does not conform to Micro Focus COBOL
12656prog.cob:17: error: SAME AS clause does not conform to Micro Focus COBOL
12657prog.cob:19: error: SAME AS clause does not conform to Micro Focus COBOL
12658prog.cob:20: error: SAME AS clause does not conform to Micro Focus COBOL
12659" | \
12660  $at_diff - "$at_stderr" || at_failed=:
12661at_fn_diff_devnull "$at_stdout" || at_failed=:
12662at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1966"
12663$at_failed && at_fn_log_failure
12664$at_traceon; }
12665
12666{ set +x
12667$as_echo "$at_srcdir/syn_definition.at:1973: \$COMPILE_ONLY badprog.cob"
12668at_fn_check_prepare_dynamic "$COMPILE_ONLY badprog.cob" "syn_definition.at:1973"
12669( $at_check_trace; $COMPILE_ONLY badprog.cob
12670) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12671at_status=$? at_failed=false
12672$at_check_filter
12673echo >>"$at_stderr"; $as_echo "badprog.cob:8: error: item may not reference itself
12674badprog.cob:10: error: entry following SAME AS may not be subordinate to it
12675badprog.cob:11: error: illegal combination of SAME AS with other clauses
12676badprog.cob:12: error: elementary item expected
12677" | \
12678  $at_diff - "$at_stderr" || at_failed=:
12679at_fn_diff_devnull "$at_stdout" || at_failed=:
12680at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1973"
12681$at_failed && at_fn_log_failure
12682$at_traceon; }
12683
12684
12685  set +x
12686  $at_times_p && times >"$at_times_file"
12687) 5>&1 2>&1 7>&- | eval $at_tee_pipe
12688read at_status <"$at_status_file"
12689#AT_STOP_113
12690#AT_START_114
12691at_fn_group_banner 114 'syn_definition.at:1983' \
12692  "TYPEDEF clause" "                                 " 2
12693at_xfail=no
12694(
12695  $as_echo "114. $at_setup_line: testing $at_desc ..."
12696  $at_traceon
12697
12698
12699
12700cat >prog.cob <<'_ATEOF'
12701
12702       IDENTIFICATION   DIVISION.
12703       PROGRAM-ID.      prog.
12704       DATA             DIVISION.
12705       WORKING-STORAGE  SECTION.
12706       01 AUSGABE-FILE-NAME-T          PIC X(50) IS TYPEDEF.
12707       01 SOME-VERY-LONG-TYPEDEF-NAME  PIC 9999  IS TYPEDEF.
12708       01 AUSGABE-FILE-NAME-2T         IS TYPEDEF.
12709          05 FILLER    PIC 9999.
12710          05 DETAIL-NO USAGE SOME-VERY-LONG-TYPEDEF-NAME.
12711      *
12712       01  MESSAGE-TEXT-2T IS TYPEDEF.
12713         02 AUSGABE-FILE-NAME     USAGE AUSGABE-FILE-NAME-T.
12714         02 FILLER REDEFINES AUSGABE-FILE-NAME.
12715             05 FILLER PIC 9999.
12716         02 AUSGABE-FILE-NAME-2   USAGE AUSGABE-FILE-NAME-2T.
12717         02 FILLER                USAGE AUSGABE-FILE-NAME-T.
12718      *
12719       01  MESSAGE-TEXT-2 EXTERNAL USAGE MESSAGE-TEXT-2T.
12720
12721       77 OUTPUT-NAME USAGE SOME-VERY-LONG-TYPEDEF-NAME GLOBAL.
12722
12723       01 Z-MESSAGE-T2 USAGE AUSGABE-FILE-NAME-2T.
12724       01 Z-MESSAGE-T3.
12725          49 MT3                    USAGE MESSAGE-TEXT-2T.
12726          49 MT3-REN  REDEFINES MT3 USAGE MESSAGE-TEXT-2T.
12727
12728       77 CALCULUS             PIC S9(15)V9(03) IS TYPEDEF.
12729       01 USER-TYPE            IS TYPEDEF.
12730          02 AMOUNT            USAGE CALCULUS.
12731          02 FILLER            OCCURS 100.
12732             05 GRP-AMOUNT     USAGE CALCULUS.
12733       01 USER-VAR             USAGE USER-TYPE.
12734
12735       PROCEDURE DIVISION.
12736           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
12737           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
12738           DISPLAY AUSGABE-FILE-NAME OF MT3
12739           DISPLAY OUTPUT-NAME
12740           MOVE -123.45 TO AMOUNT
12741           MOVE AMOUNT  TO GRP-AMOUNT (1)
12742           GOBACK.
12743_ATEOF
12744
12745
12746cat >progstd.cob <<'_ATEOF'
12747
12748       IDENTIFICATION   DIVISION.
12749       PROGRAM-ID.      prog.
12750       DATA             DIVISION.
12751       WORKING-STORAGE  SECTION.
12752       01 AUSGABE-FILE-NAME-T     PIC X(50) IS TYPEDEF.
12753       01 DETAIL-NO-T             PIC 9999  IS TYPEDEF.
12754       01 AUSGABE-FILE-NAME-2T              IS TYPEDEF.
12755          05 FILLER    PIC 9999.
12756          05 DETAIL-NO TYPE TO DETAIL-NO-T.
12757      *
12758       01  MESSAGE-TEXT-2T IS TYPEDEF.
12759         02 AUSGABE-FILE-NAME     TYPE AUSGABE-FILE-NAME-T.
12760         02 FILLER REDEFINES AUSGABE-FILE-NAME.
12761             05 FILLER PIC 9999.
12762         02 AUSGABE-FILE-NAME-2   TYPE AUSGABE-FILE-NAME-2T.
12763         02 FILLER                TYPE AUSGABE-FILE-NAME-T.
12764      *
12765       01  MESSAGE-TEXT-2 EXTERNAL TYPE MESSAGE-TEXT-2T.
12766
12767       77 OUTPUT-NAME TYPE TO DETAIL-NO-T GLOBAL.
12768
12769       01 Z-MESSAGE-T2 TYPE AUSGABE-FILE-NAME-2T.
12770       01 Z-MESSAGE-T3.
12771          49 MT3                    TYPE MESSAGE-TEXT-2T.
12772          49 MT3-REN  REDEFINES MT3 TYPE MESSAGE-TEXT-2T.
12773
12774       77 CALCULUS             PIC S9(15)V9(03) IS TYPEDEF.
12775
12776       01 SOME-STRUCT          IS TYPEDEF.
12777          02 SOME-DATA         PIC 9.
12778          02 SOME-VALUES       OCCURS 3.
12779             03 OTHER-DATA     PIC X.
12780             03 OTHER-VALUES   OCCURS 2 PIC 9.
12781       77 SOME2-DATA           PIC 9.      *> temporary variant until solved...
12782       01 SOME-STRUCT2         IS TYPEDEF.
12783      *>  02 SOME2-DATA        PIC 9.      TODO!
12784          02 SOME2-VALUES      OCCURS 1 TO 6 DEPENDING ON SOME2-DATA
12785                               DESCENDING KEY SB SA
12786                               INDEXED BY SOME2-INDEX.
12787             05 SA             PIC X VALUE x'12'.
12788             05 SB             PIC 9 VALUE 0.
12789             05 SDATA          PIC X(12).
12790
12791       01 MY-TEST.
12792          02 AMOUNT            TYPE CALCULUS.
12793          02 FILLER            OCCURS 100.
12794             05 GRP-AMOUNT     TYPE CALCULUS.
12795          02 MY-NAME           TYPE SOME-STRUCT  OCCURS 5.
12796          02 MY-NAME2          TYPE SOME-STRUCT2.
12797       01 MY-TEST2             TYPE SOME-STRUCT2.
12798       LINKAGE SECTION.
12799       01 MY-STORE             TYPE CALCULUS.
12800
12801       PROCEDURE DIVISION USING MY-STORE.
12802           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
12803           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
12804           DISPLAY AUSGABE-FILE-NAME OF MT3
12805           DISPLAY OUTPUT-NAME
12806           SET ADDRESS OF MY-STORE TO NULL
12807           INITIALIZE MY-NAME(2) GRP-AMOUNT (99)
12808           INITIALIZE OTHER-VALUES (2, 3, 2)
12809           SEARCH ALL SOME2-VALUES OF MY-NAME2
12810      *>     WHEN SA(SOME2-INDEX) = x'12'  CHECKME: Should work
12811             WHEN SA OF MY-NAME2(SOME2-INDEX OF MY-NAME2) = x'12'
12812                CONTINUE.
12813           GOBACK.
12814_ATEOF
12815
12816
12817cat >badprog.cob <<'_ATEOF'
12818
12819       IDENTIFICATION   DIVISION.
12820       PROGRAM-ID.      prog.
12821       DATA             DIVISION.
12822       WORKING-STORAGE  SECTION.
12823       01  MESSAGE-TEXT-2T IS TYPEDEF.
12824         02 AUSGABE-FILE-NAME     PIC X(50).
12825         02 F1      USAGE MESSAGE-TEXT-2T.
12826       01 MT2 USAGE MESSAGE-TEXT-2T.
12827             05 FILLER PIC 9999.
12828       01 MT3 TYPE TO MESSAGE-TEXT-2T PIC X.
12829       77 OUTPUT-NAME  TYPE TO MESSAGE-TEXT-2T.
12830_ATEOF
12831
12832
12833{ set +x
12834$as_echo "$at_srcdir/syn_definition.at:2113: \$COMPILE_ONLY prog.cob"
12835at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2113"
12836( $at_check_trace; $COMPILE_ONLY prog.cob
12837) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12838at_status=$? at_failed=false
12839$at_check_filter
12840at_fn_diff_devnull "$at_stderr" || at_failed=:
12841at_fn_diff_devnull "$at_stdout" || at_failed=:
12842at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2113"
12843$at_failed && at_fn_log_failure
12844$at_traceon; }
12845
12846{ set +x
12847$as_echo "$at_srcdir/syn_definition.at:2114: \$COMPILE_ONLY -std=cobol2002 prog.cob"
12848at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 prog.cob" "syn_definition.at:2114"
12849( $at_check_trace; $COMPILE_ONLY -std=cobol2002 prog.cob
12850) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12851at_status=$? at_failed=false
12852$at_check_filter
12853echo >>"$at_stderr"; $as_echo "prog.cob:10: error: USAGE type-name does not conform to COBOL 2002
12854prog.cob:13: error: USAGE type-name does not conform to COBOL 2002
12855prog.cob:16: error: USAGE type-name does not conform to COBOL 2002
12856prog.cob:17: error: USAGE type-name does not conform to COBOL 2002
12857prog.cob:19: error: USAGE type-name does not conform to COBOL 2002
12858prog.cob:21: error: USAGE type-name does not conform to COBOL 2002
12859prog.cob:23: error: USAGE type-name does not conform to COBOL 2002
12860prog.cob:25: error: USAGE type-name does not conform to COBOL 2002
12861prog.cob:26: error: USAGE type-name does not conform to COBOL 2002
12862prog.cob:30: error: USAGE type-name does not conform to COBOL 2002
12863prog.cob:32: error: USAGE type-name does not conform to COBOL 2002
12864prog.cob:33: error: USAGE type-name does not conform to COBOL 2002
12865" | \
12866  $at_diff - "$at_stderr" || at_failed=:
12867at_fn_diff_devnull "$at_stdout" || at_failed=:
12868at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2114"
12869$at_failed && at_fn_log_failure
12870$at_traceon; }
12871
12872{ set +x
12873$as_echo "$at_srcdir/syn_definition.at:2128: \$COMPILE_ONLY -std=mf-strict prog.cob"
12874at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:2128"
12875( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
12876) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12877at_status=$? at_failed=false
12878$at_check_filter
12879at_fn_diff_devnull "$at_stderr" || at_failed=:
12880at_fn_diff_devnull "$at_stdout" || at_failed=:
12881at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2128"
12882$at_failed && at_fn_log_failure
12883$at_traceon; }
12884
12885{ set +x
12886$as_echo "$at_srcdir/syn_definition.at:2129: \$COMPILE_ONLY progstd.cob"
12887at_fn_check_prepare_dynamic "$COMPILE_ONLY progstd.cob" "syn_definition.at:2129"
12888( $at_check_trace; $COMPILE_ONLY progstd.cob
12889) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12890at_status=$? at_failed=false
12891$at_check_filter
12892at_fn_diff_devnull "$at_stderr" || at_failed=:
12893at_fn_diff_devnull "$at_stdout" || at_failed=:
12894at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2129"
12895$at_failed && at_fn_log_failure
12896$at_traceon; }
12897
12898{ set +x
12899$as_echo "$at_srcdir/syn_definition.at:2130: \$COMPILE_ONLY -std=cobol2002 progstd.cob"
12900at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 progstd.cob" "syn_definition.at:2130"
12901( $at_check_trace; $COMPILE_ONLY -std=cobol2002 progstd.cob
12902) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12903at_status=$? at_failed=false
12904$at_check_filter
12905at_fn_diff_devnull "$at_stderr" || at_failed=:
12906at_fn_diff_devnull "$at_stdout" || at_failed=:
12907at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2130"
12908$at_failed && at_fn_log_failure
12909$at_traceon; }
12910
12911{ set +x
12912$as_echo "$at_srcdir/syn_definition.at:2131: \$COMPILE_ONLY -std=mf-strict progstd.cob"
12913at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict progstd.cob" "syn_definition.at:2131"
12914( $at_check_trace; $COMPILE_ONLY -std=mf-strict progstd.cob
12915) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12916at_status=$? at_failed=false
12917$at_check_filter
12918echo >>"$at_stderr"; $as_echo "progstd.cob:10: error: TYPE TO clause does not conform to Micro Focus COBOL
12919progstd.cob:13: error: TYPE TO clause does not conform to Micro Focus COBOL
12920progstd.cob:16: error: TYPE TO clause does not conform to Micro Focus COBOL
12921progstd.cob:17: error: TYPE TO clause does not conform to Micro Focus COBOL
12922progstd.cob:19: error: TYPE TO clause does not conform to Micro Focus COBOL
12923progstd.cob:21: error: TYPE TO clause does not conform to Micro Focus COBOL
12924progstd.cob:23: error: TYPE TO clause does not conform to Micro Focus COBOL
12925progstd.cob:25: error: TYPE TO clause does not conform to Micro Focus COBOL
12926progstd.cob:26: error: TYPE TO clause does not conform to Micro Focus COBOL
12927progstd.cob:46: error: TYPE TO clause does not conform to Micro Focus COBOL
12928progstd.cob:48: error: TYPE TO clause does not conform to Micro Focus COBOL
12929progstd.cob:49: error: TYPE TO clause does not conform to Micro Focus COBOL
12930progstd.cob:50: error: TYPE TO clause does not conform to Micro Focus COBOL
12931progstd.cob:51: error: TYPE TO clause does not conform to Micro Focus COBOL
12932progstd.cob:53: error: TYPE TO clause does not conform to Micro Focus COBOL
12933" | \
12934  $at_diff - "$at_stderr" || at_failed=:
12935at_fn_diff_devnull "$at_stdout" || at_failed=:
12936at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2131"
12937$at_failed && at_fn_log_failure
12938$at_traceon; }
12939
12940
12941{ set +x
12942$as_echo "$at_srcdir/syn_definition.at:2149: \$COMPILE_ONLY badprog.cob"
12943at_fn_check_prepare_dynamic "$COMPILE_ONLY badprog.cob" "syn_definition.at:2149"
12944( $at_check_trace; $COMPILE_ONLY badprog.cob
12945) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12946at_status=$? at_failed=false
12947$at_check_filter
12948echo >>"$at_stderr"; $as_echo "badprog.cob:8: error: item may not reference itself
12949badprog.cob:10: error: entry following TYPE TO may not be subordinate to it
12950badprog.cob:11: error: illegal combination of TYPE TO with other clauses
12951badprog.cob:12: error: elementary item expected
12952" | \
12953  $at_diff - "$at_stderr" || at_failed=:
12954at_fn_diff_devnull "$at_stdout" || at_failed=:
12955at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2149"
12956$at_failed && at_fn_log_failure
12957$at_traceon; }
12958
12959
12960
12961{ set +x
12962$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"
12963at_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"
12964( $at_check_trace; $COMPILE_ONLY -std=mf-strict -t symbols.lst -tsymbols -fno-tsource -fno-tmessages -tlines=0 prog.cob
12965) >>"$at_stdout" 2>>"$at_stderr" 5>&-
12966at_status=$? at_failed=false
12967$at_check_filter
12968at_fn_diff_devnull "$at_stderr" || at_failed=:
12969at_fn_diff_devnull "$at_stdout" || at_failed=:
12970at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2157"
12971$at_failed && at_fn_log_failure  \
12972"symbols.lst"
12973$at_traceon; }
12974
12975
12976cat >prog.lst <<'_ATEOF'
12977GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
12978
12979SIZE  TYPE           LVL  NAME                           PICTURE
12980
12981      WORKING-STORAGE SECTION
12982
1298300050 ALPHANUMERIC   01   AUSGABE-FILE-NAME-T            X(50)
12984
1298500004 NUMERIC        01   SOME-VERY-LONG-TYPEDEF-NAME    9999
12986
1298700008 GROUP          01   AUSGABE-FILE-NAME-2T
1298800004 NUMERIC        05   FILLER                         9999
1298900004 NUMERIC        05   DETAIL-NO                      SOME-VERY-LONG-TYPEDE...
12990
1299100108 GROUP          01   MESSAGE-TEXT-2T
1299200050 ALPHANUMERIC   02   AUSGABE-FILE-NAME              AUSGABE-FILE-NAME-T
1299300004 GROUP          02   FILLER, REDEFINES AUSGABE-FILE-NAME
1299400004 NUMERIC        05   FILLER                         9999
1299500008 GROUP          02   AUSGABE-FILE-NAME-2            AUSGABE-FILE-NAME-2T
1299600050 ALPHANUMERIC   02   FILLER                         AUSGABE-FILE-NAME-T
12997
1299800108 GROUP          01   MESSAGE-TEXT-2                 MESSAGE-TEXT-2T EXTERNAL
12999
1300000004 NUMERIC        77   OUTPUT-NAME                    SOME-VERY-LONG-TYPEDE... GLOBAL
13001
1300200008 GROUP          01   Z-MESSAGE-T2                   AUSGABE-FILE-NAME-2T
13003
1300400108 GROUP          01   Z-MESSAGE-T3
1300500108 GROUP          49   MT3                            MESSAGE-TEXT-2T
1300600108 GROUP          49   MT3-REN                        MESSAGE-TEXT-2T, REDEFINES MT3
13007
1300800018 NUMERIC        77   CALCULUS                       S9(15)V9(03)
13009
1301001818 GROUP          01   USER-TYPE
1301100018 NUMERIC        02   AMOUNT                         CALCULUS
1301201800 GROUP          02   FILLER                         OCCURS 100
1301300018 NUMERIC        05   GRP-AMOUNT                     CALCULUS
13014
1301501818 GROUP          01   USER-VAR                       USER-TYPE
13016
13017
13018_ATEOF
13019
13020
13021
13022{ set +x
13023$as_echo "$at_srcdir/syn_definition.at:2205: \$UNIFY_LISTING symbols.lst symbols.lis once"
13024at_fn_check_prepare_dynamic "$UNIFY_LISTING symbols.lst symbols.lis once" "syn_definition.at:2205"
13025( $at_check_trace; $UNIFY_LISTING symbols.lst symbols.lis once
13026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13027at_status=$? at_failed=false
13028$at_check_filter
13029at_fn_diff_devnull "$at_stderr" || at_failed=:
13030at_fn_diff_devnull "$at_stdout" || at_failed=:
13031at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2205"
13032$at_failed && at_fn_log_failure  \
13033"symbols.lst"
13034$at_traceon; }
13035
13036{ set +x
13037$as_echo "$at_srcdir/syn_definition.at:2206: diff prog.lst symbols.lis"
13038at_fn_check_prepare_trace "syn_definition.at:2206"
13039( $at_check_trace; diff prog.lst symbols.lis
13040) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13041at_status=$? at_failed=false
13042$at_check_filter
13043at_fn_diff_devnull "$at_stderr" || at_failed=:
13044at_fn_diff_devnull "$at_stdout" || at_failed=:
13045at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2206"
13046$at_failed && at_fn_log_failure  \
13047"symbols.lst"
13048$at_traceon; }
13049
13050
13051
13052
13053
13054  set +x
13055  $at_times_p && times >"$at_times_file"
13056) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13057read at_status <"$at_status_file"
13058#AT_STOP_114
13059#AT_START_115
13060at_fn_group_banner 115 'syn_definition.at:2214' \
13061  "LIKE clause" "                                    " 2
13062at_xfail=yes
13063(
13064  $as_echo "115. $at_setup_line: testing $at_desc ..."
13065  $at_traceon
13066
13067
13068
13069# work in progress
13070
13071
13072cat >prog.cob <<'_ATEOF'
13073
13074       IDENTIFICATION   DIVISION.
13075       PROGRAM-ID.      prog.
13076       DATA             DIVISION.
13077       WORKING-STORAGE  SECTION.
13078       01  MESSAGE-TEXT-2 EXTERNAL.
13079         02 AUSGABE-FILE-NAME     PIC X(50).
13080         02 FILLER REDEFINES AUSGABE-FILE-NAME.
13081             05 FILLER PIC 9999.
13082         02 AUSGABE-FILE-NAME-2.
13083             05 FILLER PIC 9999.
13084             05 DETAIL-NO PIC 9999.
13085         02 FILLER LIKE AUSGABE-FILE-NAME.
13086
13087       77 OUTPUT-VAL     LIKE DETAIL-NO GLOBAL.
13088       77 OUTPUT-VAL-P1  LIKE DETAIL-NO (+1).
13089       77 OUTPUT-VAL-P1b LIKE DETAIL-NO (1).
13090       77 OUTPUT-VAL-M2  LIKE DETAIL-NO (-2).
13091
13092       01 Z-MESSAGE-T2 LIKE AUSGABE-FILE-NAME-2.
13093       01 Z-MESSAGE-T3.
13094          49 MT3      LIKE MESSAGE-TEXT-2.
13095
13096       PROCEDURE DIVISION.
13097           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
13098           DISPLAY Z-MESSAGE-T2 (55:LENGTH OF DETAIL-NO)
13099           DISPLAY MT3 (1:LENGTH OF AUSGABE-FILE-NAME)
13100           ADD OUTPUT-VAL TO DETAIL-NO
13101           GOBACK.
13102_ATEOF
13103
13104
13105# TODO add tests and syntax checks in cobc
13106# AT_DATA([badprog.cob], [
13107#        IDENTIFICATION   DIVISION.
13108#        PROGRAM-ID.      prog.
13109#        DATA             DIVISION.
13110#        WORKING-STORAGE  SECTION.
13111#
13112# ])
13113
13114{ set +x
13115$as_echo "$at_srcdir/syn_definition.at:2260: \$COMPILE_ONLY prog.cob"
13116at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2260"
13117( $at_check_trace; $COMPILE_ONLY prog.cob
13118) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13119at_status=$? at_failed=false
13120$at_check_filter
13121at_fn_diff_devnull "$at_stderr" || at_failed=:
13122at_fn_diff_devnull "$at_stdout" || at_failed=:
13123at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2260"
13124$at_failed && at_fn_log_failure
13125$at_traceon; }
13126
13127{ set +x
13128$as_echo "$at_srcdir/syn_definition.at:2261: \$COMPILE_ONLY -std=mf-strict prog.cob"
13129at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:2261"
13130( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
13131) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13132at_status=$? at_failed=false
13133$at_check_filter
13134echo >>"$at_stderr"; $as_echo "prog.cob:13: error: SAME AS clause does not conform to Micro Focus COBOL
13135prog.cob:15: error: SAME AS clause does not conform to Micro Focus COBOL
13136prog.cob:17: error: SAME AS clause does not conform to Micro Focus COBOL
13137prog.cob:19: error: SAME AS clause does not conform to Micro Focus COBOL
13138prog.cob:20: error: SAME AS clause does not conform to Micro Focus COBOL
13139" | \
13140  $at_diff - "$at_stderr" || at_failed=:
13141at_fn_diff_devnull "$at_stdout" || at_failed=:
13142at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2261"
13143$at_failed && at_fn_log_failure
13144$at_traceon; }
13145
13146
13147  set +x
13148  $at_times_p && times >"$at_times_file"
13149) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13150read at_status <"$at_status_file"
13151#AT_STOP_115
13152#AT_START_116
13153at_fn_group_banner 116 'syn_definition.at:2272' \
13154  "APPLY COMMIT clause" "                            " 2
13155at_xfail=no
13156(
13157  $as_echo "116. $at_setup_line: testing $at_desc ..."
13158  $at_traceon
13159
13160
13161
13162cat >prog.cob <<'_ATEOF'
13163
13164       IDENTIFICATION DIVISION.
13165       PROGRAM-ID. prog.  *> taken from "commit and rollback example"
13166                          *> from COBOL 202x draft
13167       ENVIRONMENT DIVISION.
13168       INPUT-OUTPUT SECTION.
13169       FILE-CONTROL.
13170           SELECT STCK-FILE
13171              ASSIGN TO "STOCK"
13172              ORGANIZATION IS INDEXED
13173              ACCESS MODE IS RANDOM
13174              FILE STATUS IS STCK-FILE-STATUS
13175              RECORD KEY  IS APPLY
13176              SHARING WITH ALL OTHER.
13177
13178           SELECT CHNG-FILE
13179              ASSIGN TO "CHANGE"
13180              ORGANIZATION IS SEQUENTIAL
13181              ACCESS MODE IS SEQUENTIAL
13182              FILE STATUS IS CHNG-FILE-STATUS
13183              SHARING WITH ALL OTHER.
13184
13185           SELECT SORT-FILE
13186              ASSIGN TO "SORT".
13187
13188       I-O-CONTROL.
13189           APPLY COMMIT ON STCK-FILE CHNG-FILE STCK-FILE not-there
13190                 SORT-FILE UPDATE-COUNT not-there-again BASED-STUFF
13191                 RED-DATA SOME-DATA.
13192
13193       DATA DIVISION.
13194       FILE SECTION.
13195
13196       FD  STCK-FILE.
13197       01  STCK-REC.
13198           03  APPLY                   PIC X(5).
13199           03  STCK-QTY                PIC 9(5)V99.
13200
13201       SD  SORT-FILE.
13202       01  SORT-REC                    PIC X(100).
13203
13204       FD  CHNG-FILE.
13205       01  CHNG-REC.
13206           03  CHNG-KEY                PIC X(5).
13207           03  CHNG-QTY                PIC 9(5)V99.
13208           03  CHNG-ACTION             PIC X.
13209           03  CHNG-STATE              PIC X.
13210
13211       WORKING-STORAGE SECTION.
13212
13213       01  FILE-STATES.
13214           03  STCK-FILE-STATUS        PIC XX.
13215               88  STCK-FILE-OK                  VALUE "00".
13216           03  CHNG-FILE-STATUS        PIC XX.
13217               88  CHNG-FILE-OK                  VALUE "00".
13218       77  UPDATE-COUNT  BINARY-LONG.
13219       77  BASED-STUFF   PIC X BASED.
13220       01  DATA-HERE.
13221           03 SOME-DATA  PIC 9.
13222       01  RED-DATA REDEFINES DATA-HERE PIC X.
13223
13224       PROCEDURE DIVISION.
13225
13226         MAIN SECTION.
13227
13228           PERFORM INITIALISATION
13229           PERFORM TERMINATION
13230           STOP RUN WITH NORMAL STATUS 0
13231
13232       . INITIALISATION SECTION.
13233
13234           OPEN I-O CHNG-FILE, STCK-FILE
13235           IF NOT STCK-FILE-OK OR NOT CHNG-FILE-OK
13236              PERFORM FATAL-ERROR
13237           END-IF
13238
13239       . TERMINATION SECTION.
13240
13241           COMMIT
13242           IF NOT STCK-FILE-OK OR NOT CHNG-FILE-OK
13243              PERFORM FATAL-ERROR
13244           END-IF
13245
13246       . FATAL-ERROR SECTION.
13247
13248           ROLLBACK
13249           STOP RUN WITH ERROR STATUS 16.
13250_ATEOF
13251
13252
13253{ set +x
13254$as_echo "$at_srcdir/syn_definition.at:2364: \$COMPILE_ONLY prog.cob"
13255at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2364"
13256( $at_check_trace; $COMPILE_ONLY prog.cob
13257) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13258at_status=$? at_failed=false
13259$at_check_filter
13260echo >>"$at_stderr"; $as_echo "prog.cob:29: warning: APPLY COMMIT is not implemented
13261prog.cob:27: error: 'not-there' is not defined
13262prog.cob:28: error: 'not-there-again' is not defined
13263prog.cob:27: error: duplicate APPLY COMMIT target: 'STCK-FILE'
13264prog.cob:28: error: APPLY COMMIT statement invalid for SORT file
13265prog.cob:29: error: 'RED-DATA' REDEFINES field not allowed here
13266prog.cob:29: error: 'SOME-DATA' not level 01 or 77
13267" | \
13268  $at_diff - "$at_stderr" || at_failed=:
13269at_fn_diff_devnull "$at_stdout" || at_failed=:
13270at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2364"
13271$at_failed && at_fn_log_failure
13272$at_traceon; }
13273
13274
13275  set +x
13276  $at_times_p && times >"$at_times_file"
13277) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13278read at_status <"$at_status_file"
13279#AT_STOP_116
13280#AT_START_117
13281at_fn_group_banner 117 'syn_subscripts.at:23' \
13282  "Non-numeric subscript" "                          " 2
13283at_xfail=no
13284(
13285  $as_echo "117. $at_setup_line: testing $at_desc ..."
13286  $at_traceon
13287
13288
13289
13290cat >prog.cob <<'_ATEOF'
13291
13292       IDENTIFICATION   DIVISION.
13293       PROGRAM-ID.      prog.
13294       DATA             DIVISION.
13295       WORKING-STORAGE  SECTION.
13296       01 G1.
13297         02 X           PIC X OCCURS 10.
13298       01 I             PIC X.
13299       PROCEDURE        DIVISION.
13300           DISPLAY X(I)
13301           END-DISPLAY.
13302           DISPLAY X(I + 1)
13303           END-DISPLAY.
13304           STOP RUN.
13305_ATEOF
13306
13307
13308{ set +x
13309$as_echo "$at_srcdir/syn_subscripts.at:42: \$COMPILE_ONLY prog.cob"
13310at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:42"
13311( $at_check_trace; $COMPILE_ONLY prog.cob
13312) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13313at_status=$? at_failed=false
13314$at_check_filter
13315echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'I' is not an integer value
13316prog.cob:12: error: 'I' is not a numeric value
13317" | \
13318  $at_diff - "$at_stderr" || at_failed=:
13319at_fn_diff_devnull "$at_stdout" || at_failed=:
13320at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:42"
13321$at_failed && at_fn_log_failure
13322$at_traceon; }
13323
13324
13325  set +x
13326  $at_times_p && times >"$at_times_file"
13327) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13328read at_status <"$at_status_file"
13329#AT_STOP_117
13330#AT_START_118
13331at_fn_group_banner 118 'syn_subscripts.at:50' \
13332  "Subscript range check" "                          " 2
13333at_xfail=no
13334(
13335  $as_echo "118. $at_setup_line: testing $at_desc ..."
13336  $at_traceon
13337
13338
13339
13340cat >prog.cob <<'_ATEOF'
13341
13342       IDENTIFICATION   DIVISION.
13343       PROGRAM-ID.      prog.
13344       DATA             DIVISION.
13345       WORKING-STORAGE  SECTION.
13346       01 G1.
13347         02 X           OCCURS 2.
13348           03 Y         PIC X OCCURS 3.
13349       PROCEDURE        DIVISION.
13350           DISPLAY X(0)
13351           END-DISPLAY.
13352           DISPLAY X(1)
13353           END-DISPLAY.
13354           DISPLAY X(2)
13355           END-DISPLAY.
13356           DISPLAY X(3)
13357           END-DISPLAY.
13358           DISPLAY Y(1, 0)
13359           END-DISPLAY.
13360           DISPLAY Y(1, 1)
13361           END-DISPLAY.
13362           DISPLAY Y(1, 3)
13363           END-DISPLAY.
13364           DISPLAY Y(1, 4)
13365           END-DISPLAY.
13366           STOP RUN.
13367_ATEOF
13368
13369
13370{ set +x
13371$as_echo "$at_srcdir/syn_subscripts.at:81: \$COMPILE_ONLY prog.cob"
13372at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:81"
13373( $at_check_trace; $COMPILE_ONLY prog.cob
13374) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13375at_status=$? at_failed=false
13376$at_check_filter
13377echo >>"$at_stderr"; $as_echo "prog.cob:10: error: subscript of 'X' out of bounds: 0
13378prog.cob:16: error: subscript of 'X' out of bounds: 3
13379prog.cob:18: error: subscript of 'Y' out of bounds: 0
13380prog.cob:24: error: subscript of 'Y' out of bounds: 4
13381" | \
13382  $at_diff - "$at_stderr" || at_failed=:
13383at_fn_diff_devnull "$at_stdout" || at_failed=:
13384at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:81"
13385$at_failed && at_fn_log_failure
13386$at_traceon; }
13387
13388
13389{ set +x
13390$as_echo "$at_srcdir/syn_subscripts.at:88: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
13391at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_subscripts.at:88"
13392( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
13393) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13394at_status=$? at_failed=false
13395$at_check_filter
13396echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: subscript of 'X' out of bounds: 0
13397prog.cob:16: warning: subscript of 'X' out of bounds: 3
13398prog.cob:18: warning: subscript of 'Y' out of bounds: 0
13399prog.cob:24: warning: subscript of 'Y' out of bounds: 4
13400" | \
13401  $at_diff - "$at_stderr" || at_failed=:
13402at_fn_diff_devnull "$at_stdout" || at_failed=:
13403at_fn_check_status 0 $at_status "$at_srcdir/syn_subscripts.at:88"
13404$at_failed && at_fn_log_failure
13405$at_traceon; }
13406
13407
13408  set +x
13409  $at_times_p && times >"$at_times_file"
13410) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13411read at_status <"$at_status_file"
13412#AT_STOP_118
13413#AT_START_119
13414at_fn_group_banner 119 'syn_subscripts.at:98' \
13415  "Subscript bounds with OCCURS DEPENDING ON" "      " 2
13416at_xfail=no
13417(
13418  $as_echo "119. $at_setup_line: testing $at_desc ..."
13419  $at_traceon
13420
13421
13422
13423cat >prog.cob <<'_ATEOF'
13424
13425       IDENTIFICATION   DIVISION.
13426       PROGRAM-ID.      prog.
13427       DATA             DIVISION.
13428       WORKING-STORAGE  SECTION.
13429       01 G.
13430         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
13431       01 N             PIC 9 VALUE 4.
13432       PROCEDURE        DIVISION.
13433           DISPLAY X(0)
13434           DISPLAY X(7)
13435           STOP RUN.
13436_ATEOF
13437
13438
13439{ set +x
13440$as_echo "$at_srcdir/syn_subscripts.at:115: \$COMPILE_ONLY prog.cob"
13441at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:115"
13442( $at_check_trace; $COMPILE_ONLY prog.cob
13443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13444at_status=$? at_failed=false
13445$at_check_filter
13446echo >>"$at_stderr"; $as_echo "prog.cob:10: error: subscript of 'X' out of bounds: 0
13447prog.cob:11: error: subscript of 'X' out of bounds: 7
13448" | \
13449  $at_diff - "$at_stderr" || at_failed=:
13450at_fn_diff_devnull "$at_stdout" || at_failed=:
13451at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:115"
13452$at_failed && at_fn_log_failure
13453$at_traceon; }
13454
13455
13456  set +x
13457  $at_times_p && times >"$at_times_file"
13458) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13459read at_status <"$at_status_file"
13460#AT_STOP_119
13461#AT_START_120
13462at_fn_group_banner 120 'syn_subscripts.at:125' \
13463  "Subscripted item requires OCCURS clause" "        " 2
13464at_xfail=no
13465(
13466  $as_echo "120. $at_setup_line: testing $at_desc ..."
13467  $at_traceon
13468
13469
13470
13471cat >prog.cob <<'_ATEOF'
13472
13473       IDENTIFICATION   DIVISION.
13474       PROGRAM-ID.      prog.
13475       DATA             DIVISION.
13476       WORKING-STORAGE  SECTION.
13477       01 G.
13478         02 X           PIC X.
13479       PROCEDURE        DIVISION.
13480           DISPLAY G(1)
13481           END-DISPLAY.
13482           DISPLAY X(1)
13483           END-DISPLAY.
13484           STOP RUN.
13485_ATEOF
13486
13487
13488{ set +x
13489$as_echo "$at_srcdir/syn_subscripts.at:143: \$COMPILE_ONLY prog.cob"
13490at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:143"
13491( $at_check_trace; $COMPILE_ONLY prog.cob
13492) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13493at_status=$? at_failed=false
13494$at_check_filter
13495echo >>"$at_stderr"; $as_echo "prog.cob:9: error: 'G' cannot be subscripted
13496prog.cob:11: error: 'X' cannot be subscripted
13497" | \
13498  $at_diff - "$at_stderr" || at_failed=:
13499at_fn_diff_devnull "$at_stdout" || at_failed=:
13500at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:143"
13501$at_failed && at_fn_log_failure
13502$at_traceon; }
13503
13504
13505  set +x
13506  $at_times_p && times >"$at_times_file"
13507) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13508read at_status <"$at_status_file"
13509#AT_STOP_120
13510#AT_START_121
13511at_fn_group_banner 121 'syn_subscripts.at:151' \
13512  "Number of subscripts" "                           " 2
13513at_xfail=no
13514(
13515  $as_echo "121. $at_setup_line: testing $at_desc ..."
13516  $at_traceon
13517
13518
13519
13520cat >prog.cob <<'_ATEOF'
13521
13522       IDENTIFICATION   DIVISION.
13523       PROGRAM-ID.      prog.
13524       DATA             DIVISION.
13525       WORKING-STORAGE  SECTION.
13526       01 G1.
13527         02 X           OCCURS 2.
13528           03 Y         PIC X OCCURS 3.
13529       PROCEDURE        DIVISION.
13530           DISPLAY X
13531           END-DISPLAY.
13532           DISPLAY X(1)
13533           END-DISPLAY.
13534           DISPLAY X(1, 2)
13535           END-DISPLAY.
13536           DISPLAY Y(1)
13537           END-DISPLAY.
13538           DISPLAY Y(1, 2)
13539           END-DISPLAY.
13540           DISPLAY Y(1, 2, 3)
13541           END-DISPLAY.
13542           STOP RUN.
13543_ATEOF
13544
13545
13546{ set +x
13547$as_echo "$at_srcdir/syn_subscripts.at:178: \$COMPILE_ONLY prog.cob"
13548at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:178"
13549( $at_check_trace; $COMPILE_ONLY prog.cob
13550) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13551at_status=$? at_failed=false
13552$at_check_filter
13553echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'X' requires one subscript
13554prog.cob:14: error: 'X' requires one subscript
13555prog.cob:16: error: 'Y' requires 2 subscripts
13556prog.cob:20: error: 'Y' requires 2 subscripts
13557" | \
13558  $at_diff - "$at_stderr" || at_failed=:
13559at_fn_diff_devnull "$at_stdout" || at_failed=:
13560at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:178"
13561$at_failed && at_fn_log_failure
13562$at_traceon; }
13563
13564
13565{ set +x
13566$as_echo "$at_srcdir/syn_subscripts.at:185: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
13567at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_subscripts.at:185"
13568( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
13569) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13570at_status=$? at_failed=false
13571$at_check_filter
13572echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: subscript missing for 'X' - defaulting to 1
13573prog.cob:14: error: 'X' requires one subscript
13574prog.cob:16: warning: subscript missing for 'Y' - defaulting to 1
13575prog.cob:20: error: 'Y' requires 2 subscripts
13576" | \
13577  $at_diff - "$at_stderr" || at_failed=:
13578at_fn_diff_devnull "$at_stdout" || at_failed=:
13579at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:185"
13580$at_failed && at_fn_log_failure
13581$at_traceon; }
13582
13583
13584  set +x
13585  $at_times_p && times >"$at_times_file"
13586) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13587read at_status <"$at_status_file"
13588#AT_STOP_121
13589#AT_START_122
13590at_fn_group_banner 122 'syn_subscripts.at:195' \
13591  "SET SSRANGE syntax" "                             " 2
13592at_xfail=no
13593(
13594  $as_echo "122. $at_setup_line: testing $at_desc ..."
13595  $at_traceon
13596
13597
13598
13599cat >prog.cob <<'_ATEOF'
13600
13601       *> Valid
13602      $SET SSRANGE
13603      $SET SSRANGE(1)
13604      $SET SSRANGE "2"
13605      $SET SSRANGE (3)
13606
13607       *> Invalid
13608      $SET SSRANGE(0)
13609      $SET SSRANGE(4)
13610      $SET SSRANGE "variable"
13611
13612       IDENTIFICATION DIVISION.
13613       PROGRAM-ID. prog.
13614       PROCEDURE DIVISION.
13615           GOBACK
13616           .
13617_ATEOF
13618
13619
13620{ set +x
13621$as_echo "$at_srcdir/syn_subscripts.at:217: \$COMPILE_ONLY prog.cob"
13622at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:217"
13623( $at_check_trace; $COMPILE_ONLY prog.cob
13624) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13625at_status=$? at_failed=false
13626$at_check_filter
13627echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid SSRANGE directive option '0'
13628prog.cob:10: error: invalid SSRANGE directive option '4'
13629prog.cob:11: error: invalid SSRANGE directive option 'variable'
13630" | \
13631  $at_diff - "$at_stderr" || at_failed=:
13632at_fn_diff_devnull "$at_stdout" || at_failed=:
13633at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:217"
13634$at_failed && at_fn_log_failure
13635$at_traceon; }
13636
13637
13638  set +x
13639  $at_times_p && times >"$at_times_file"
13640) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13641read at_status <"$at_status_file"
13642#AT_STOP_122
13643#AT_START_123
13644at_fn_group_banner 123 'syn_occurs.at:29' \
13645  "OCCURS with level 01 and 77" "                    " 2
13646at_xfail=no
13647(
13648  $as_echo "123. $at_setup_line: testing $at_desc ..."
13649  $at_traceon
13650
13651#AT_KEYWORDS([occurs])
13652
13653cat >prog.cob <<'_ATEOF'
13654
13655       IDENTIFICATION   DIVISION.
13656       PROGRAM-ID.      prog.
13657       DATA             DIVISION.
13658       WORKING-STORAGE  SECTION.
13659       01 X-01          PIC X OCCURS 10.
13660       01 G             OCCURS 10.
13661         02 X-02        PIC X OCCURS 10.
13662       01 G2.
13663         02 X2-02       PIC X OCCURS 10.
13664       77 X-77          PIC X OCCURS 10.
13665_ATEOF
13666
13667
13668{ set +x
13669$as_echo "$at_srcdir/syn_occurs.at:45: \$COMPILE_ONLY -std=cobol2014 prog.cob"
13670at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_occurs.at:45"
13671( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
13672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13673at_status=$? at_failed=false
13674$at_check_filter
13675echo >>"$at_stderr"; $as_echo "prog.cob:6: error: level 01 item 'X-01' cannot have a OCCURS clause
13676prog.cob:7: error: level 01 item 'G' cannot have a OCCURS clause
13677prog.cob:11: error: level 77 item 'X-77' cannot have a OCCURS clause
13678" | \
13679  $at_diff - "$at_stderr" || at_failed=:
13680at_fn_diff_devnull "$at_stdout" || at_failed=:
13681at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:45"
13682$at_failed && at_fn_log_failure
13683$at_traceon; }
13684
13685
13686{ set +x
13687$as_echo "$at_srcdir/syn_occurs.at:51: \$COMPILE_ONLY prog.cob"
13688at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:51"
13689( $at_check_trace; $COMPILE_ONLY prog.cob
13690) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13691at_status=$? at_failed=false
13692$at_check_filter
13693at_fn_diff_devnull "$at_stderr" || at_failed=:
13694at_fn_diff_devnull "$at_stdout" || at_failed=:
13695at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:51"
13696$at_failed && at_fn_log_failure
13697$at_traceon; }
13698
13699{ set +x
13700$as_echo "$at_srcdir/syn_occurs.at:52: \$COMPILE_ONLY -ftop-level-occurs-clause=warning prog.cob"
13701at_fn_check_prepare_dynamic "$COMPILE_ONLY -ftop-level-occurs-clause=warning prog.cob" "syn_occurs.at:52"
13702( $at_check_trace; $COMPILE_ONLY -ftop-level-occurs-clause=warning prog.cob
13703) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13704at_status=$? at_failed=false
13705$at_check_filter
13706echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: 01/77 OCCURS used
13707prog.cob:7: warning: 01/77 OCCURS used
13708prog.cob:11: warning: 01/77 OCCURS used
13709" | \
13710  $at_diff - "$at_stderr" || at_failed=:
13711at_fn_diff_devnull "$at_stdout" || at_failed=:
13712at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:52"
13713$at_failed && at_fn_log_failure
13714$at_traceon; }
13715
13716
13717  set +x
13718  $at_times_p && times >"$at_times_file"
13719) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13720read at_status <"$at_status_file"
13721#AT_STOP_123
13722#AT_START_124
13723at_fn_group_banner 124 'syn_occurs.at:84' \
13724  "OCCURS with level 66" "                           " 2
13725at_xfail=no
13726(
13727  $as_echo "124. $at_setup_line: testing $at_desc ..."
13728  $at_traceon
13729
13730
13731
13732cat >prog.cob <<'_ATEOF'
13733
13734       IDENTIFICATION   DIVISION.
13735       PROGRAM-ID.      prog.
13736       DATA             DIVISION.
13737       WORKING-STORAGE  SECTION.
13738       01  x PIC X.
13739       66  y RENAMES x OCCURS 10.
13740_ATEOF
13741
13742
13743{ set +x
13744$as_echo "$at_srcdir/syn_occurs.at:96: \$COMPILE_ONLY prog.cob"
13745at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:96"
13746( $at_check_trace; $COMPILE_ONLY prog.cob
13747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13748at_status=$? at_failed=false
13749$at_check_filter
13750echo >>"$at_stderr"; $as_echo "prog.cob:7: error: syntax error, unexpected OCCURS, expecting .
13751" | \
13752  $at_diff - "$at_stderr" || at_failed=:
13753at_fn_diff_devnull "$at_stdout" || at_failed=:
13754at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:96"
13755$at_failed && at_fn_log_failure
13756$at_traceon; }
13757
13758
13759  set +x
13760  $at_times_p && times >"$at_times_file"
13761) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13762read at_status <"$at_status_file"
13763#AT_STOP_124
13764#AT_START_125
13765at_fn_group_banner 125 'syn_occurs.at:103' \
13766  "OCCURS with level 78" "                           " 2
13767at_xfail=no
13768(
13769  $as_echo "125. $at_setup_line: testing $at_desc ..."
13770  $at_traceon
13771
13772#AT_KEYWORDS([occurs])
13773
13774cat >prog.cob <<'_ATEOF'
13775
13776       IDENTIFICATION   DIVISION.
13777       PROGRAM-ID.      prog.
13778       DATA             DIVISION.
13779       WORKING-STORAGE  SECTION.
13780       78  c value "a" OCCURS 10.
13781_ATEOF
13782
13783
13784{ set +x
13785$as_echo "$at_srcdir/syn_occurs.at:114: \$COMPILE_ONLY prog.cob"
13786at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:114"
13787( $at_check_trace; $COMPILE_ONLY prog.cob
13788) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13789at_status=$? at_failed=false
13790$at_check_filter
13791echo >>"$at_stderr"; $as_echo "prog.cob:6: error: syntax error, unexpected OCCURS, expecting .
13792" | \
13793  $at_diff - "$at_stderr" || at_failed=:
13794at_fn_diff_devnull "$at_stdout" || at_failed=:
13795at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:114"
13796$at_failed && at_fn_log_failure
13797$at_traceon; }
13798
13799
13800  set +x
13801  $at_times_p && times >"$at_times_file"
13802) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13803read at_status <"$at_status_file"
13804#AT_STOP_125
13805#AT_START_126
13806at_fn_group_banner 126 'syn_occurs.at:121' \
13807  "OCCURS with level 88" "                           " 2
13808at_xfail=no
13809(
13810  $as_echo "126. $at_setup_line: testing $at_desc ..."
13811  $at_traceon
13812
13813#AT_KEYWORDS([occurs])
13814
13815cat >prog.cob <<'_ATEOF'
13816
13817       IDENTIFICATION   DIVISION.
13818       PROGRAM-ID.      prog.
13819       DATA             DIVISION.
13820       WORKING-STORAGE  SECTION.
13821       01  x PIC X.
13822           88  y VALUE "a" OCCURS 10.
13823_ATEOF
13824
13825
13826{ set +x
13827$as_echo "$at_srcdir/syn_occurs.at:133: \$COMPILE_ONLY prog.cob"
13828at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:133"
13829( $at_check_trace; $COMPILE_ONLY prog.cob
13830) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13831at_status=$? at_failed=false
13832$at_check_filter
13833echo >>"$at_stderr"; $as_echo "prog.cob:7: error: syntax error, unexpected OCCURS, expecting .
13834" | \
13835  $at_diff - "$at_stderr" || at_failed=:
13836at_fn_diff_devnull "$at_stdout" || at_failed=:
13837at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:133"
13838$at_failed && at_fn_log_failure
13839$at_traceon; }
13840
13841
13842  set +x
13843  $at_times_p && times >"$at_times_file"
13844) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13845read at_status <"$at_status_file"
13846#AT_STOP_126
13847#AT_START_127
13848at_fn_group_banner 127 'syn_occurs.at:141' \
13849  "OCCURS with variable-occurrence data item" "      " 2
13850at_xfail=no
13851(
13852  $as_echo "127. $at_setup_line: testing $at_desc ..."
13853  $at_traceon
13854
13855
13856
13857cat >prog.cob <<'_ATEOF'
13858
13859       IDENTIFICATION   DIVISION.
13860       PROGRAM-ID.      prog.
13861       DATA             DIVISION.
13862       WORKING-STORAGE  SECTION.
13863       01 G-1.
13864         02 G-2         OCCURS 10.
13865           03 X         PIC X(10) OCCURS 1 TO 4 DEPENDING ON I.
13866       77 I             PIC 9.
13867_ATEOF
13868
13869
13870cat >prog2.cob <<'_ATEOF'
13871
13872       IDENTIFICATION   DIVISION.
13873       PROGRAM-ID.      prog2.
13874       DATA             DIVISION.
13875       WORKING-STORAGE  SECTION.
13876       01 G-1.
13877         02 G-2         OCCURS 1 TO 10 DEPENDING ON I.
13878           03 X         PIC X(10) OCCURS 1 TO 4 DEPENDING ON I.
13879       77 I             PIC 9.
13880       PROCEDURE        DIVISION.
13881           DISPLAY  X(I, I) END-DISPLAY
13882           DISPLAY  G-2 (I) END-DISPLAY
13883           DISPLAY  G-1     END-DISPLAY
13884           .
13885
13886_ATEOF
13887
13888
13889{ set +x
13890$as_echo "$at_srcdir/syn_occurs.at:172: \$COMPILE_ONLY prog.cob"
13891at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:172"
13892( $at_check_trace; $COMPILE_ONLY prog.cob
13893) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13894at_status=$? at_failed=false
13895$at_check_filter
13896echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'G-2' cannot have the OCCURS clause due to 'X'
13897" | \
13898  $at_diff - "$at_stderr" || at_failed=:
13899at_fn_diff_devnull "$at_stdout" || at_failed=:
13900at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:172"
13901$at_failed && at_fn_log_failure
13902$at_traceon; }
13903
13904
13905{ set +x
13906$as_echo "$at_srcdir/syn_occurs.at:176: \$COMPILE_ONLY -fcomplex-odo prog.cob"
13907at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog.cob" "syn_occurs.at:176"
13908( $at_check_trace; $COMPILE_ONLY -fcomplex-odo prog.cob
13909) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13910at_status=$? at_failed=false
13911$at_check_filter
13912at_fn_diff_devnull "$at_stderr" || at_failed=:
13913at_fn_diff_devnull "$at_stdout" || at_failed=:
13914at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:176"
13915$at_failed && at_fn_log_failure
13916$at_traceon; }
13917
13918
13919{ set +x
13920$as_echo "$at_srcdir/syn_occurs.at:178: \$COMPILE_ONLY -fcomplex-odo prog2.cob"
13921at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog2.cob" "syn_occurs.at:178"
13922( $at_check_trace; $COMPILE_ONLY -fcomplex-odo prog2.cob
13923) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13924at_status=$? at_failed=false
13925$at_check_filter
13926echo >>"$at_stderr"; $as_echo "prog2.cob:8: error: 'X' cannot have nested OCCURS DEPENDING
13927" | \
13928  $at_diff - "$at_stderr" || at_failed=:
13929at_fn_diff_devnull "$at_stdout" || at_failed=:
13930at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:178"
13931$at_failed && at_fn_log_failure
13932$at_traceon; }
13933
13934
13935{ set +x
13936$as_echo "$at_srcdir/syn_occurs.at:182: \$COMPILE_ONLY -fodoslide prog2.cob"
13937at_fn_check_prepare_dynamic "$COMPILE_ONLY -fodoslide prog2.cob" "syn_occurs.at:182"
13938( $at_check_trace; $COMPILE_ONLY -fodoslide prog2.cob
13939) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13940at_status=$? at_failed=false
13941$at_check_filter
13942at_fn_diff_devnull "$at_stderr" || at_failed=:
13943at_fn_diff_devnull "$at_stdout" || at_failed=:
13944at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:182"
13945$at_failed && at_fn_log_failure
13946$at_traceon; }
13947
13948
13949  set +x
13950  $at_times_p && times >"$at_times_file"
13951) 5>&1 2>&1 7>&- | eval $at_tee_pipe
13952read at_status <"$at_status_file"
13953#AT_STOP_127
13954#AT_START_128
13955at_fn_group_banner 128 'syn_occurs.at:189' \
13956  "OCCURS data-items for INDEXED and KEY" "          " 2
13957at_xfail=no
13958(
13959  $as_echo "128. $at_setup_line: testing $at_desc ..."
13960  $at_traceon
13961
13962
13963
13964cat >prog.cob <<'_ATEOF'
13965
13966       IDENTIFICATION DIVISION.
13967       PROGRAM-ID. prog.
13968       DATA  DIVISION.
13969       WORKING-STORAGE SECTION.
13970       01  TAB.
13971           05  TAB-ENTRY1
13972                  OCCURS 5 TIMES
13973                  ASCENDING KEY IS X1
13974                                OF TAB-ENTRY1
13975                                OF TAB
13976                  INDEXED BY IDX1 OF TAB.
13977              10 X1 PIC 9.
13978_ATEOF
13979
13980
13981{ set +x
13982$as_echo "$at_srcdir/syn_occurs.at:207: \$COMPILE_ONLY prog.cob"
13983at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:207"
13984( $at_check_trace; $COMPILE_ONLY prog.cob
13985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
13986at_status=$? at_failed=false
13987$at_check_filter
13988echo >>"$at_stderr"; $as_echo "prog.cob:9: error: a subscripted data-item cannot be used here
13989prog.cob:12: error: a subscripted data-item cannot be used here
13990" | \
13991  $at_diff - "$at_stderr" || at_failed=:
13992at_fn_diff_devnull "$at_stdout" || at_failed=:
13993at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:207"
13994$at_failed && at_fn_log_failure
13995$at_traceon; }
13996
13997
13998  set +x
13999  $at_times_p && times >"$at_times_file"
14000) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14001read at_status <"$at_status_file"
14002#AT_STOP_128
14003#AT_START_129
14004at_fn_group_banner 129 'syn_occurs.at:229' \
14005  "Nested OCCURS clause" "                           " 2
14006at_xfail=no
14007(
14008  $as_echo "129. $at_setup_line: testing $at_desc ..."
14009  $at_traceon
14010
14011#AT_KEYWORDS([occurs])
14012
14013cat >prog.cob <<'_ATEOF'
14014
14015       IDENTIFICATION   DIVISION.
14016       PROGRAM-ID.      prog.
14017       DATA             DIVISION.
14018       WORKING-STORAGE  SECTION.
14019       01 G-1.
14020        02 G-2          OCCURS 2.
14021         03 G-3         OCCURS 2.
14022          04 G-4        OCCURS 2.
14023           05 G-5       OCCURS 2.
14024            06 G-6      OCCURS 2.
14025             07 G-7     OCCURS 2.
14026              08 G-8    OCCURS 2.
14027               09 X     PIC X.
14028_ATEOF
14029
14030
14031{ set +x
14032$as_echo "$at_srcdir/syn_occurs.at:248: \$COMPILE_ONLY prog.cob"
14033at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:248"
14034( $at_check_trace; $COMPILE_ONLY prog.cob
14035) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14036at_status=$? at_failed=false
14037$at_check_filter
14038at_fn_diff_devnull "$at_stderr" || at_failed=:
14039at_fn_diff_devnull "$at_stdout" || at_failed=:
14040at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:248"
14041$at_failed && at_fn_log_failure
14042$at_traceon; }
14043
14044
14045  set +x
14046  $at_times_p && times >"$at_times_file"
14047) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14048read at_status <"$at_status_file"
14049#AT_STOP_129
14050#AT_START_130
14051at_fn_group_banner 130 'syn_occurs.at:266' \
14052  "OCCURS DEPENDING with wrong size" "               " 2
14053at_xfail=no
14054(
14055  $as_echo "130. $at_setup_line: testing $at_desc ..."
14056  $at_traceon
14057
14058
14059
14060cat >prog.cob <<'_ATEOF'
14061
14062       IDENTIFICATION   DIVISION.
14063       PROGRAM-ID.      prog.
14064       DATA             DIVISION.
14065       WORKING-STORAGE  SECTION.
14066       01 FILLER.
14067         02 G-1         PIC X OCCURS  1 TO 1 DEPENDING ON I.
14068       01 FILLER.
14069         02 G-2         PIC X OCCURS -1 TO 1 DEPENDING ON I.
14070       01 FILLER.
14071         02 G-3         PIC X OCCURS +1 TO 1 DEPENDING ON I.
14072       01 FILLER.
14073         02 G-4         PIC X OCCURS  0 TO 1 DEPENDING ON I.
14074       01 I             PIC 9.
14075_ATEOF
14076
14077
14078{ set +x
14079$as_echo "$at_srcdir/syn_occurs.at:285: \$COMPILE_ONLY prog.cob"
14080at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:285"
14081( $at_check_trace; $COMPILE_ONLY prog.cob
14082) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14083at_status=$? at_failed=false
14084$at_check_filter
14085echo >>"$at_stderr"; $as_echo "prog.cob:7: error: OCCURS TO must be greater than OCCURS FROM
14086prog.cob:9: error: unsigned integer value expected
14087prog.cob:11: error: unsigned integer value expected
14088" | \
14089  $at_diff - "$at_stderr" || at_failed=:
14090at_fn_diff_devnull "$at_stdout" || at_failed=:
14091at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:285"
14092$at_failed && at_fn_log_failure
14093$at_traceon; }
14094
14095
14096  set +x
14097  $at_times_p && times >"$at_times_file"
14098) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14099read at_status <"$at_status_file"
14100#AT_STOP_130
14101#AT_START_131
14102at_fn_group_banner 131 'syn_occurs.at:305' \
14103  "OCCURS DEPENDING followed by another field" "     " 2
14104at_xfail=no
14105(
14106  $as_echo "131. $at_setup_line: testing $at_desc ..."
14107  $at_traceon
14108
14109
14110
14111cat >prog.cob <<'_ATEOF'
14112
14113       IDENTIFICATION   DIVISION.
14114       PROGRAM-ID.      prog.
14115       DATA             DIVISION.
14116       WORKING-STORAGE  SECTION.
14117       01 G-1.
14118         02 X           PIC X OCCURS 1 TO 3 DEPENDING ON I.
14119         02 Y           PIC X.
14120       01 G-2.
14121         02 G-3         OCCURS 1 TO 3 DEPENDING ON I.
14122           03 X         PIC X.
14123         02 Y           PIC X.
14124       01 G-4.
14125         02 G-5.
14126           03 X         PIC X OCCURS 1 TO 3 DEPENDING ON I.
14127         02 Y           PIC X.
14128       01 I             PIC 9.
14129_ATEOF
14130
14131
14132{ set +x
14133$as_echo "$at_srcdir/syn_occurs.at:327: \$COMPILE_ONLY prog.cob"
14134at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:327"
14135( $at_check_trace; $COMPILE_ONLY prog.cob
14136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14137at_status=$? at_failed=false
14138$at_check_filter
14139echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'X' cannot have OCCURS DEPENDING because of 'Y'
14140prog.cob:10: error: 'G-3' cannot have OCCURS DEPENDING because of 'Y'
14141prog.cob:15: error: 'X' cannot have OCCURS DEPENDING because of 'Y'
14142" | \
14143  $at_diff - "$at_stderr" || at_failed=:
14144at_fn_diff_devnull "$at_stdout" || at_failed=:
14145at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:327"
14146$at_failed && at_fn_log_failure
14147$at_traceon; }
14148
14149
14150{ set +x
14151$as_echo "$at_srcdir/syn_occurs.at:333: \$COMPILE_ONLY -fcomplex-odo prog.cob"
14152at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog.cob" "syn_occurs.at:333"
14153( $at_check_trace; $COMPILE_ONLY -fcomplex-odo prog.cob
14154) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14155at_status=$? at_failed=false
14156$at_check_filter
14157at_fn_diff_devnull "$at_stderr" || at_failed=:
14158at_fn_diff_devnull "$at_stdout" || at_failed=:
14159at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:333"
14160$at_failed && at_fn_log_failure
14161$at_traceon; }
14162
14163
14164  set +x
14165  $at_times_p && times >"$at_times_file"
14166) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14167read at_status <"$at_status_file"
14168#AT_STOP_131
14169#AT_START_132
14170at_fn_group_banner 132 'syn_occurs.at:347' \
14171  "OCCURS with unmatched DEPENDING / TO phrases" "   " 2
14172at_xfail=no
14173(
14174  $as_echo "132. $at_setup_line: testing $at_desc ..."
14175  $at_traceon
14176
14177
14178
14179cat >prog.cob <<'_ATEOF'
14180
14181       IDENTIFICATION   DIVISION.
14182       PROGRAM-ID.      prog.
14183       DATA             DIVISION.
14184       WORKING-STORAGE  SECTION.
14185       01 Y             PIC 9.
14186       01 XTAB.
14187          03 X  PIC X OCCURS 10 DEPENDING ON Y.
14188       01 XTAB2.
14189          03 X2 PIC X OCCURS 1 TO 10.
14190       01 XTAB3.
14191          03 X3 PIC X OCCURS 1 TO 10 DEPENDING ON MISSING.
14192       PROCEDURE DIVISION.
14193           MOVE 'A' TO X(1), X2(2), X3(3)
14194           GOBACK.
14195_ATEOF
14196
14197
14198{ set +x
14199$as_echo "$at_srcdir/syn_occurs.at:367: \$COMPILE_ONLY -std=cobol2014 prog.cob"
14200at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_occurs.at:367"
14201( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
14202) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14203at_status=$? at_failed=false
14204$at_check_filter
14205echo >>"$at_stderr"; $as_echo "prog.cob:8: error: OCCURS DEPENDING ON without TO phrase does not conform to COBOL 2014
14206prog.cob:10: error: TO phrase without DEPENDING phrase
14207prog.cob:12: error: 'MISSING' is not defined
14208" | \
14209  $at_diff - "$at_stderr" || at_failed=:
14210at_fn_diff_devnull "$at_stdout" || at_failed=:
14211at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:367"
14212$at_failed && at_fn_log_failure
14213$at_traceon; }
14214
14215{ set +x
14216$as_echo "$at_srcdir/syn_occurs.at:372: \$COMPILE_ONLY prog.cob"
14217at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:372"
14218( $at_check_trace; $COMPILE_ONLY prog.cob
14219) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14220at_status=$? at_failed=false
14221$at_check_filter
14222echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: OCCURS DEPENDING ON without TO phrase used
14223prog.cob:10: error: TO phrase without DEPENDING phrase
14224prog.cob:12: error: 'MISSING' is not defined
14225" | \
14226  $at_diff - "$at_stderr" || at_failed=:
14227at_fn_diff_devnull "$at_stdout" || at_failed=:
14228at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:372"
14229$at_failed && at_fn_log_failure
14230$at_traceon; }
14231
14232{ set +x
14233$as_echo "$at_srcdir/syn_occurs.at:377: \$COMPILE_ONLY -frelax-syntax prog.cob"
14234at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_occurs.at:377"
14235( $at_check_trace; $COMPILE_ONLY -frelax-syntax prog.cob
14236) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14237at_status=$? at_failed=false
14238$at_check_filter
14239echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: OCCURS DEPENDING ON without TO phrase used
14240prog.cob:10: warning: TO phrase without DEPENDING phrase
14241prog.cob:10: warning: maximum number of occurrences assumed to be exact number
14242prog.cob:12: error: 'MISSING' is not defined
14243" | \
14244  $at_diff - "$at_stderr" || at_failed=:
14245at_fn_diff_devnull "$at_stdout" || at_failed=:
14246at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:377"
14247$at_failed && at_fn_log_failure
14248$at_traceon; }
14249
14250
14251  set +x
14252  $at_times_p && times >"$at_times_file"
14253) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14254read at_status <"$at_status_file"
14255#AT_STOP_132
14256#AT_START_133
14257at_fn_group_banner 133 'syn_occurs.at:390' \
14258  "OCCURS INDEXED before KEY" "                      " 2
14259at_xfail=no
14260(
14261  $as_echo "133. $at_setup_line: testing $at_desc ..."
14262  $at_traceon
14263
14264
14265
14266cat >prog.cob <<'_ATEOF'
14267
14268       IDENTIFICATION DIVISION.
14269       PROGRAM-ID. prog.
14270       DATA  DIVISION.
14271       WORKING-STORAGE SECTION.
14272       01  TAB.
14273           05  TAB-ENTRY1
14274                  OCCURS 5 TIMES
14275                  INDEXED BY IDX1
14276                  ASCENDING KEY IS X1
14277                  DESCENDING Y1.
14278             10  X1 PIC 9(4).
14279             10  Y1 PIC X.
14280           05  TAB-ENTRY
14281                  OCCURS 2 TIMES
14282                  INDEXED BY IDX2
14283                  DESCENDING KEY IS X2
14284                  ASCENDING  Y2.
14285             10  X2 PIC 9(4).
14286             10  Y2 PIC X.
14287_ATEOF
14288
14289
14290{ set +x
14291$as_echo "$at_srcdir/syn_occurs.at:415: \$COMPILE_ONLY prog.cob"
14292at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:415"
14293( $at_check_trace; $COMPILE_ONLY prog.cob
14294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14295at_status=$? at_failed=false
14296$at_check_filter
14297echo >>"$at_stderr"; $as_echo "prog.cob:10: error: INDEXED should follow ASCENDING/DESCENDING
14298prog.cob:17: error: INDEXED should follow ASCENDING/DESCENDING
14299" | \
14300  $at_diff - "$at_stderr" || at_failed=:
14301at_fn_diff_devnull "$at_stdout" || at_failed=:
14302at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:415"
14303$at_failed && at_fn_log_failure
14304$at_traceon; }
14305
14306
14307{ set +x
14308$as_echo "$at_srcdir/syn_occurs.at:420: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
14309at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_occurs.at:420"
14310( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
14311) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14312at_status=$? at_failed=false
14313$at_check_filter
14314echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: INDEXED should follow ASCENDING/DESCENDING
14315prog.cob:17: warning: INDEXED should follow ASCENDING/DESCENDING
14316" | \
14317  $at_diff - "$at_stderr" || at_failed=:
14318at_fn_diff_devnull "$at_stdout" || at_failed=:
14319at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:420"
14320$at_failed && at_fn_log_failure
14321$at_traceon; }
14322
14323
14324  set +x
14325  $at_times_p && times >"$at_times_file"
14326) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14327read at_status <"$at_status_file"
14328#AT_STOP_133
14329#AT_START_134
14330at_fn_group_banner 134 'syn_occurs.at:428' \
14331  "OCCURS size check" "                              " 2
14332at_xfail=no
14333(
14334  $as_echo "134. $at_setup_line: testing $at_desc ..."
14335  $at_traceon
14336
14337
14338
14339cat >prog.cob <<'_ATEOF'
14340
14341       IDENTIFICATION   DIVISION.
14342       PROGRAM-ID.      prog.
14343       DATA             DIVISION.
14344       WORKING-STORAGE  SECTION.
14345       01 X1.
14346          03 X  PIC X OCCURS 1530001234 TIMES.
14347       01 X2.
14348          03 X  PIC X OCCURS 2147483648 TIMES.
14349       01 X3.
14350          03 X  PIC X OCCURS 9223372036854775808 TIMES.
14351_ATEOF
14352
14353
14354# Don't check actual output here as the actual limit depends on INT_MAX, therefore
14355# all entries may raise this error but only the last error message is guaranteed.
14356{ set +x
14357$as_echo "$at_srcdir/syn_occurs.at:446: \$COMPILE_ONLY prog.cob"
14358at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:446"
14359( $at_check_trace; $COMPILE_ONLY prog.cob
14360) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14361at_status=$? at_failed=false
14362$at_check_filter
14363echo stderr:; cat "$at_stderr"
14364at_fn_diff_devnull "$at_stdout" || at_failed=:
14365at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:446"
14366$at_failed && at_fn_log_failure
14367$at_traceon; }
14368
14369{ set +x
14370$as_echo "$at_srcdir/syn_occurs.at:447: \$COMPILE_ONLY prog.cob 2>&1 | \\
14371\$GREP \"prog.cob:11: error: numeric literal '9223372036854775808' exceeds limit\""
14372at_fn_check_prepare_notrace 'an embedded newline' "syn_occurs.at:447"
14373( $at_check_trace; $COMPILE_ONLY prog.cob 2>&1 | \
14374$GREP "prog.cob:11: error: numeric literal '9223372036854775808' exceeds limit"
14375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14376at_status=$? at_failed=false
14377$at_check_filter
14378at_fn_diff_devnull "$at_stderr" || at_failed=:
14379echo stdout:; cat "$at_stdout"
14380at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:447"
14381$at_failed && at_fn_log_failure
14382$at_traceon; }
14383
14384
14385  set +x
14386  $at_times_p && times >"$at_times_file"
14387) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14388read at_status <"$at_status_file"
14389#AT_STOP_134
14390#AT_START_135
14391at_fn_group_banner 135 'syn_redefines.at:28' \
14392  "REDEFINES: not following entry-name" "            " 2
14393at_xfail=no
14394(
14395  $as_echo "135. $at_setup_line: testing $at_desc ..."
14396  $at_traceon
14397
14398
14399
14400cat >prog.cob <<'_ATEOF'
14401
14402       IDENTIFICATION   DIVISION.
14403       PROGRAM-ID.      prog.
14404       DATA             DIVISION.
14405       WORKING-STORAGE  SECTION.
14406       01 X             PIC X.
14407       01 Y             PIC 9 REDEFINES X.
14408_ATEOF
14409
14410
14411{ set +x
14412$as_echo "$at_srcdir/syn_redefines.at:40: \$COMPILE_ONLY -ffree-redefines-position=error prog.cob"
14413at_fn_check_prepare_dynamic "$COMPILE_ONLY -ffree-redefines-position=error prog.cob" "syn_redefines.at:40"
14414( $at_check_trace; $COMPILE_ONLY -ffree-redefines-position=error prog.cob
14415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14416at_status=$? at_failed=false
14417$at_check_filter
14418echo >>"$at_stderr"; $as_echo "prog.cob:7: error: REDEFINES clause not following entry-name used
14419" | \
14420  $at_diff - "$at_stderr" || at_failed=:
14421at_fn_diff_devnull "$at_stdout" || at_failed=:
14422at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:40"
14423$at_failed && at_fn_log_failure
14424$at_traceon; }
14425
14426
14427{ set +x
14428$as_echo "$at_srcdir/syn_redefines.at:44: \$COMPILE_ONLY prog.cob"
14429at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:44"
14430( $at_check_trace; $COMPILE_ONLY prog.cob
14431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14432at_status=$? at_failed=false
14433$at_check_filter
14434echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: REDEFINES clause not following entry-name used
14435" | \
14436  $at_diff - "$at_stderr" || at_failed=:
14437at_fn_diff_devnull "$at_stdout" || at_failed=:
14438at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:44"
14439$at_failed && at_fn_log_failure
14440$at_traceon; }
14441
14442
14443  set +x
14444  $at_times_p && times >"$at_times_file"
14445) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14446read at_status <"$at_status_file"
14447#AT_STOP_135
14448#AT_START_136
14449at_fn_group_banner 136 'syn_redefines.at:53' \
14450  "REDEFINES: level 02 by 01" "                      " 2
14451at_xfail=no
14452(
14453  $as_echo "136. $at_setup_line: testing $at_desc ..."
14454  $at_traceon
14455
14456
14457
14458cat >prog.cob <<'_ATEOF'
14459
14460       IDENTIFICATION   DIVISION.
14461       PROGRAM-ID.      prog.
14462       DATA             DIVISION.
14463       WORKING-STORAGE  SECTION.
14464       01 G.
14465         02 X           PIC X.
14466       01 Y             REDEFINES X PIC 9.
14467       PROCEDURE        DIVISION.
14468           STOP RUN.
14469_ATEOF
14470
14471
14472{ set +x
14473$as_echo "$at_srcdir/syn_redefines.at:68: \$COMPILE_ONLY prog.cob"
14474at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:68"
14475( $at_check_trace; $COMPILE_ONLY prog.cob
14476) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14477at_status=$? at_failed=false
14478$at_check_filter
14479echo >>"$at_stderr"; $as_echo "prog.cob:8: error: level number of REDEFINES entries must be identical
14480" | \
14481  $at_diff - "$at_stderr" || at_failed=:
14482at_fn_diff_devnull "$at_stdout" || at_failed=:
14483at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:68"
14484$at_failed && at_fn_log_failure
14485$at_traceon; }
14486
14487
14488  set +x
14489  $at_times_p && times >"$at_times_file"
14490) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14491read at_status <"$at_status_file"
14492#AT_STOP_136
14493#AT_START_137
14494at_fn_group_banner 137 'syn_redefines.at:74' \
14495  "REDEFINES: level 03 by 02" "                      " 2
14496at_xfail=no
14497(
14498  $as_echo "137. $at_setup_line: testing $at_desc ..."
14499  $at_traceon
14500
14501
14502
14503cat >prog.cob <<'_ATEOF'
14504
14505       IDENTIFICATION   DIVISION.
14506       PROGRAM-ID.      prog.
14507       DATA             DIVISION.
14508       WORKING-STORAGE  SECTION.
14509       01 G1.
14510         02 G2.
14511           03 X         PIC X.
14512         02 Y           REDEFINES X PIC 9.
14513       PROCEDURE        DIVISION.
14514           STOP RUN.
14515_ATEOF
14516
14517
14518{ set +x
14519$as_echo "$at_srcdir/syn_redefines.at:90: \$COMPILE_ONLY prog.cob"
14520at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:90"
14521( $at_check_trace; $COMPILE_ONLY prog.cob
14522) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14523at_status=$? at_failed=false
14524$at_check_filter
14525echo >>"$at_stderr"; $as_echo "prog.cob:9: error: 'X' is not defined in 'G1'
14526" | \
14527  $at_diff - "$at_stderr" || at_failed=:
14528at_fn_diff_devnull "$at_stdout" || at_failed=:
14529at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:90"
14530$at_failed && at_fn_log_failure
14531$at_traceon; }
14532
14533
14534  set +x
14535  $at_times_p && times >"$at_times_file"
14536) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14537read at_status <"$at_status_file"
14538#AT_STOP_137
14539#AT_START_138
14540at_fn_group_banner 138 'syn_redefines.at:96' \
14541  "REDEFINES: level 66" "                            " 2
14542at_xfail=no
14543(
14544  $as_echo "138. $at_setup_line: testing $at_desc ..."
14545  $at_traceon
14546
14547
14548
14549cat >prog.cob <<'_ATEOF'
14550
14551       IDENTIFICATION   DIVISION.
14552       PROGRAM-ID.      prog.
14553       DATA             DIVISION.
14554       WORKING-STORAGE  SECTION.
14555       01 G.
14556         02 X           PIC X.
14557         66 A           RENAMES X.
14558         66 B           REDEFINES A PIC 9.
14559       PROCEDURE        DIVISION.
14560           STOP RUN.
14561_ATEOF
14562
14563
14564{ set +x
14565$as_echo "$at_srcdir/syn_redefines.at:112: \$COMPILE_ONLY prog.cob"
14566at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:112"
14567( $at_check_trace; $COMPILE_ONLY prog.cob
14568) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14569at_status=$? at_failed=false
14570$at_check_filter
14571echo >>"$at_stderr"; $as_echo "prog.cob:9: error: syntax error, unexpected REDEFINES, expecting RENAMES
14572" | \
14573  $at_diff - "$at_stderr" || at_failed=:
14574at_fn_diff_devnull "$at_stdout" || at_failed=:
14575at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:112"
14576$at_failed && at_fn_log_failure
14577$at_traceon; }
14578
14579
14580  set +x
14581  $at_times_p && times >"$at_times_file"
14582) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14583read at_status <"$at_status_file"
14584#AT_STOP_138
14585#AT_START_139
14586at_fn_group_banner 139 'syn_redefines.at:118' \
14587  "REDEFINES: level 88" "                            " 2
14588at_xfail=no
14589(
14590  $as_echo "139. $at_setup_line: testing $at_desc ..."
14591  $at_traceon
14592
14593
14594
14595cat >prog.cob <<'_ATEOF'
14596
14597       IDENTIFICATION   DIVISION.
14598       PROGRAM-ID.      prog.
14599       DATA             DIVISION.
14600       WORKING-STORAGE  SECTION.
14601       01 X             PIC X.
14602         88 A           VALUE "A".
14603         88 B           REDEFINES A VALUE "B".
14604       PROCEDURE        DIVISION.
14605           STOP RUN.
14606_ATEOF
14607
14608
14609{ set +x
14610$as_echo "$at_srcdir/syn_redefines.at:133: \$COMPILE_ONLY prog.cob"
14611at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:133"
14612( $at_check_trace; $COMPILE_ONLY prog.cob
14613) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14614at_status=$? at_failed=false
14615$at_check_filter
14616echo >>"$at_stderr"; $as_echo "prog.cob:8: error: syntax error, unexpected REDEFINES, expecting VALUE
14617" | \
14618  $at_diff - "$at_stderr" || at_failed=:
14619at_fn_diff_devnull "$at_stdout" || at_failed=:
14620at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:133"
14621$at_failed && at_fn_log_failure
14622$at_traceon; }
14623
14624
14625  set +x
14626  $at_times_p && times >"$at_times_file"
14627) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14628read at_status <"$at_status_file"
14629#AT_STOP_139
14630#AT_START_140
14631at_fn_group_banner 140 'syn_redefines.at:147' \
14632  "REDEFINES: lower level number" "                  " 2
14633at_xfail=no
14634(
14635  $as_echo "140. $at_setup_line: testing $at_desc ..."
14636  $at_traceon
14637
14638
14639
14640cat >prog.cob <<'_ATEOF'
14641
14642       IDENTIFICATION   DIVISION.
14643       PROGRAM-ID.      prog.
14644       DATA             DIVISION.
14645       WORKING-STORAGE  SECTION.
14646       01 G1.
14647         02 G2.
14648           03 X         PIC X.
14649         02 G3.
14650           03 A         REDEFINES X PIC 9.
14651       PROCEDURE        DIVISION.
14652           STOP RUN.
14653_ATEOF
14654
14655
14656{ set +x
14657$as_echo "$at_srcdir/syn_redefines.at:164: \$COMPILE_ONLY prog.cob"
14658at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:164"
14659( $at_check_trace; $COMPILE_ONLY prog.cob
14660) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14661at_status=$? at_failed=false
14662$at_check_filter
14663echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'X' is not defined in 'G3'
14664" | \
14665  $at_diff - "$at_stderr" || at_failed=:
14666at_fn_diff_devnull "$at_stdout" || at_failed=:
14667at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:164"
14668$at_failed && at_fn_log_failure
14669$at_traceon; }
14670
14671
14672  set +x
14673  $at_times_p && times >"$at_times_file"
14674) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14675read at_status <"$at_status_file"
14676#AT_STOP_140
14677#AT_START_141
14678at_fn_group_banner 141 'syn_redefines.at:173' \
14679  "REDEFINES: with OCCURS" "                         " 2
14680at_xfail=no
14681(
14682  $as_echo "141. $at_setup_line: testing $at_desc ..."
14683  $at_traceon
14684
14685
14686
14687cat >prog.cob <<'_ATEOF'
14688
14689       IDENTIFICATION   DIVISION.
14690       PROGRAM-ID.      prog.
14691       DATA             DIVISION.
14692       WORKING-STORAGE  SECTION.
14693       01 G.
14694         02 X           PIC X OCCURS 2.
14695         02 Y           REDEFINES X PIC XX.
14696       PROCEDURE        DIVISION.
14697           STOP RUN.
14698_ATEOF
14699
14700
14701{ set +x
14702$as_echo "$at_srcdir/syn_redefines.at:188: \$COMPILE_ONLY prog.cob"
14703at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:188"
14704( $at_check_trace; $COMPILE_ONLY prog.cob
14705) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14706at_status=$? at_failed=false
14707$at_check_filter
14708echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: the original definition 'X' should not have OCCURS clause
14709" | \
14710  $at_diff - "$at_stderr" || at_failed=:
14711at_fn_diff_devnull "$at_stdout" || at_failed=:
14712at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:188"
14713$at_failed && at_fn_log_failure
14714$at_traceon; }
14715
14716
14717  set +x
14718  $at_times_p && times >"$at_times_file"
14719) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14720read at_status <"$at_status_file"
14721#AT_STOP_141
14722#AT_START_142
14723at_fn_group_banner 142 'syn_redefines.at:194' \
14724  "REDEFINES: with subscript" "                      " 2
14725at_xfail=no
14726(
14727  $as_echo "142. $at_setup_line: testing $at_desc ..."
14728  $at_traceon
14729
14730
14731
14732cat >prog.cob <<'_ATEOF'
14733
14734       IDENTIFICATION   DIVISION.
14735       PROGRAM-ID.      prog.
14736       DATA             DIVISION.
14737       WORKING-STORAGE  SECTION.
14738       01 G1.
14739         02 G2          OCCURS 2.
14740           03 X         PIC X.
14741           03 Y         REDEFINES X(1) PIC X.
14742       PROCEDURE        DIVISION.
14743           STOP RUN.
14744_ATEOF
14745
14746
14747{ set +x
14748$as_echo "$at_srcdir/syn_redefines.at:210: \$COMPILE_ONLY prog.cob"
14749at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:210"
14750( $at_check_trace; $COMPILE_ONLY prog.cob
14751) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14752at_status=$? at_failed=false
14753$at_check_filter
14754echo >>"$at_stderr"; $as_echo "prog.cob:9: error: 'X' cannot be subscripted here
14755" | \
14756  $at_diff - "$at_stderr" || at_failed=:
14757at_fn_diff_devnull "$at_stdout" || at_failed=:
14758at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:210"
14759$at_failed && at_fn_log_failure
14760$at_traceon; }
14761
14762
14763  set +x
14764  $at_times_p && times >"$at_times_file"
14765) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14766read at_status <"$at_status_file"
14767#AT_STOP_142
14768#AT_START_143
14769at_fn_group_banner 143 'syn_redefines.at:216' \
14770  "REDEFINES: with variable occurrence" "            " 2
14771at_xfail=no
14772(
14773  $as_echo "143. $at_setup_line: testing $at_desc ..."
14774  $at_traceon
14775
14776
14777
14778cat >prog.cob <<'_ATEOF'
14779
14780       IDENTIFICATION   DIVISION.
14781       PROGRAM-ID.      prog.
14782       DATA             DIVISION.
14783       WORKING-STORAGE  SECTION.
14784       01 G1.
14785         02 X           PIC XX.
14786         02 Y           REDEFINES X PIC X OCCURS 1 TO 2 DEPENDING ON I.
14787       01 G2.
14788         02 X           PIC XX.
14789         02 Y           REDEFINES X.
14790           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
14791       01 G3.
14792         02 X.
14793           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
14794         02 Y           REDEFINES X PIC X.
14795       01 I             PIC 9.
14796       PROCEDURE        DIVISION.
14797           STOP RUN.
14798_ATEOF
14799
14800
14801{ set +x
14802$as_echo "$at_srcdir/syn_redefines.at:240: \$COMPILE_ONLY prog.cob"
14803at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:240"
14804( $at_check_trace; $COMPILE_ONLY prog.cob
14805) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14806at_status=$? at_failed=false
14807$at_check_filter
14808echo >>"$at_stderr"; $as_echo "prog.cob:8: error: 'Y' cannot be variable length
14809prog.cob:11: error: 'Y' cannot be variable length
14810prog.cob:16: error: the original definition 'X' cannot be variable length
14811" | \
14812  $at_diff - "$at_stderr" || at_failed=:
14813at_fn_diff_devnull "$at_stdout" || at_failed=:
14814at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:240"
14815$at_failed && at_fn_log_failure
14816$at_traceon; }
14817
14818
14819  set +x
14820  $at_times_p && times >"$at_times_file"
14821) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14822read at_status <"$at_status_file"
14823#AT_STOP_143
14824#AT_START_144
14825at_fn_group_banner 144 'syn_redefines.at:251' \
14826  "REDEFINES: with qualification" "                  " 2
14827at_xfail=no
14828(
14829  $as_echo "144. $at_setup_line: testing $at_desc ..."
14830  $at_traceon
14831
14832
14833
14834cat >prog.cob <<'_ATEOF'
14835
14836       IDENTIFICATION   DIVISION.
14837       PROGRAM-ID.      prog.
14838       DATA             DIVISION.
14839       WORKING-STORAGE  SECTION.
14840       01 G1.
14841         02 X           PIC X.
14842       01 G2.
14843         02 X           PIC X.
14844         02 A           REDEFINES X IN G1.
14845       PROCEDURE        DIVISION.
14846           STOP RUN.
14847_ATEOF
14848
14849
14850{ set +x
14851$as_echo "$at_srcdir/syn_redefines.at:268: \$COMPILE_ONLY prog.cob"
14852at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:268"
14853( $at_check_trace; $COMPILE_ONLY prog.cob
14854) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14855at_status=$? at_failed=false
14856$at_check_filter
14857echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'X' cannot be qualified here
14858" | \
14859  $at_diff - "$at_stderr" || at_failed=:
14860at_fn_diff_devnull "$at_stdout" || at_failed=:
14861at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:268"
14862$at_failed && at_fn_log_failure
14863$at_traceon; }
14864
14865
14866  set +x
14867  $at_times_p && times >"$at_times_file"
14868) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14869read at_status <"$at_status_file"
14870#AT_STOP_144
14871#AT_START_145
14872at_fn_group_banner 145 'syn_redefines.at:277' \
14873  "REDEFINES: multiple redefinition" "               " 2
14874at_xfail=no
14875(
14876  $as_echo "145. $at_setup_line: testing $at_desc ..."
14877  $at_traceon
14878
14879
14880
14881cat >prog.cob <<'_ATEOF'
14882
14883       IDENTIFICATION   DIVISION.
14884       PROGRAM-ID.      prog.
14885       DATA             DIVISION.
14886       WORKING-STORAGE  SECTION.
14887       01 G1.
14888         02 X           PIC X.
14889         02 A           REDEFINES X PIC 9.
14890         02 B           REDEFINES X PIC 9.
14891         02 C           REDEFINES B PIC 9.
14892       PROCEDURE        DIVISION.
14893           STOP RUN.
14894_ATEOF
14895
14896
14897{ set +x
14898$as_echo "$at_srcdir/syn_redefines.at:294: \$COMPILE_ONLY prog.cob"
14899at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:294"
14900( $at_check_trace; $COMPILE_ONLY prog.cob
14901) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14902at_status=$? at_failed=false
14903$at_check_filter
14904echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'B' is not the original definition
14905" | \
14906  $at_diff - "$at_stderr" || at_failed=:
14907at_fn_diff_devnull "$at_stdout" || at_failed=:
14908at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:294"
14909$at_failed && at_fn_log_failure
14910$at_traceon; }
14911
14912
14913{ set +x
14914$as_echo "$at_srcdir/syn_redefines.at:298: \$COMPILE_ONLY -std=mvs prog.cob"
14915at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "syn_redefines.at:298"
14916( $at_check_trace; $COMPILE_ONLY -std=mvs prog.cob
14917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14918at_status=$? at_failed=false
14919$at_check_filter
14920at_fn_diff_devnull "$at_stderr" || at_failed=:
14921at_fn_diff_devnull "$at_stdout" || at_failed=:
14922at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:298"
14923$at_failed && at_fn_log_failure
14924$at_traceon; }
14925
14926
14927  set +x
14928  $at_times_p && times >"$at_times_file"
14929) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14930read at_status <"$at_status_file"
14931#AT_STOP_145
14932#AT_START_146
14933at_fn_group_banner 146 'syn_redefines.at:305' \
14934  "REDEFINES: size exceeds" "                        " 2
14935at_xfail=no
14936(
14937  $as_echo "146. $at_setup_line: testing $at_desc ..."
14938  $at_traceon
14939
14940
14941
14942cat >prog.cob <<'_ATEOF'
14943
14944       IDENTIFICATION   DIVISION.
14945       PROGRAM-ID.      prog.
14946       DATA             DIVISION.
14947       WORKING-STORAGE  SECTION.
14948       01 G1.
14949         02 X           PIC X.
14950         02 A           REDEFINES X PIC 99.
14951       01 G2.
14952         02 X           PIC X.
14953         02 A           REDEFINES X PIC 9 OCCURS 2.
14954       01 WRK-X         PIC X.
14955       01 WRK-X-REDEF   REDEFINES WRK-X PIC 99.
14956       01 EXT-X         PIC X EXTERNAL.
14957       01 EXT-X-REDEF   REDEFINES EXT-X PIC 99.
14958       PROCEDURE        DIVISION.
14959           STOP RUN.
14960_ATEOF
14961
14962
14963{ set +x
14964$as_echo "$at_srcdir/syn_redefines.at:327: \$COMPILE_ONLY prog.cob"
14965at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:327"
14966( $at_check_trace; $COMPILE_ONLY prog.cob
14967) >>"$at_stdout" 2>>"$at_stderr" 5>&-
14968at_status=$? at_failed=false
14969$at_check_filter
14970echo >>"$at_stderr"; $as_echo "prog.cob:8: error: size of 'A' larger than size of 'X'
14971prog.cob:11: error: size of 'A' larger than size of 'X'
14972prog.cob:15: error: size of 'EXT-X-REDEF' larger than size of 'EXT-X'
14973" | \
14974  $at_diff - "$at_stderr" || at_failed=:
14975at_fn_diff_devnull "$at_stdout" || at_failed=:
14976at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:327"
14977$at_failed && at_fn_log_failure
14978$at_traceon; }
14979
14980
14981  set +x
14982  $at_times_p && times >"$at_times_file"
14983) 5>&1 2>&1 7>&- | eval $at_tee_pipe
14984read at_status <"$at_status_file"
14985#AT_STOP_146
14986#AT_START_147
14987at_fn_group_banner 147 'syn_redefines.at:338' \
14988  "REDEFINES: with VALUE" "                          " 2
14989at_xfail=no
14990(
14991  $as_echo "147. $at_setup_line: testing $at_desc ..."
14992  $at_traceon
14993
14994
14995
14996cat >prog.cob <<'_ATEOF'
14997
14998       IDENTIFICATION   DIVISION.
14999       PROGRAM-ID.      prog.
15000       DATA             DIVISION.
15001       WORKING-STORAGE  SECTION.
15002       01 X             PIC X.
15003       01 A             REDEFINES X PIC X VALUE "A".
15004       01 G             REDEFINES X.
15005         02 B           PIC X VALUE "A".
15006       01 Y             REDEFINES X PIC X.
15007         88 C           VALUE "A".
15008       PROCEDURE        DIVISION.
15009           STOP RUN.
15010_ATEOF
15011
15012
15013# FIXME: add a compiler configuration as the COBOL standard forbids this
15014#        default.conf will allow it (with a warning)
15015
15016{ set +x
15017$as_echo "$at_srcdir/syn_redefines.at:359: \$COMPILE_ONLY prog.cob"
15018at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:359"
15019( $at_check_trace; $COMPILE_ONLY prog.cob
15020) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15021at_status=$? at_failed=false
15022$at_check_filter
15023echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: initial VALUE clause ignored for REDEFINES item 'A'
15024prog.cob:9: warning: initial VALUE clause ignored for REDEFINES item 'B'
15025" | \
15026  $at_diff - "$at_stderr" || at_failed=:
15027at_fn_diff_devnull "$at_stdout" || at_failed=:
15028at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:359"
15029$at_failed && at_fn_log_failure
15030$at_traceon; }
15031
15032{ set +x
15033$as_echo "$at_srcdir/syn_redefines.at:363: \$COMPILE -frelax-syntax-checks prog.cob"
15034at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog.cob" "syn_redefines.at:363"
15035( $at_check_trace; $COMPILE -frelax-syntax-checks prog.cob
15036) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15037at_status=$? at_failed=false
15038$at_check_filter
15039at_fn_diff_devnull "$at_stderr" || at_failed=:
15040at_fn_diff_devnull "$at_stdout" || at_failed=:
15041at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:363"
15042$at_failed && at_fn_log_failure
15043$at_traceon; }
15044
15045
15046  set +x
15047  $at_times_p && times >"$at_times_file"
15048) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15049read at_status <"$at_status_file"
15050#AT_STOP_147
15051#AT_START_148
15052at_fn_group_banner 148 'syn_redefines.at:370' \
15053  "REDEFINES: with intervention" "                   " 2
15054at_xfail=no
15055(
15056  $as_echo "148. $at_setup_line: testing $at_desc ..."
15057  $at_traceon
15058
15059
15060
15061cat >prog.cob <<'_ATEOF'
15062
15063       IDENTIFICATION   DIVISION.
15064       PROGRAM-ID.      prog.
15065       DATA             DIVISION.
15066       WORKING-STORAGE  SECTION.
15067       01 X             PIC X.
15068       01 Y             PIC X.
15069       01 A             REDEFINES X PIC X.
15070       01 G.
15071         02 G-X         PIC X.
15072         02 G-Y         PIC X.
15073         02 G-A         REDEFINES G-X PIC X.
15074       PROCEDURE        DIVISION.
15075           STOP RUN.
15076_ATEOF
15077
15078
15079{ set +x
15080$as_echo "$at_srcdir/syn_redefines.at:389: \$COMPILE_ONLY prog.cob"
15081at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:389"
15082( $at_check_trace; $COMPILE_ONLY prog.cob
15083) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15084at_status=$? at_failed=false
15085$at_check_filter
15086echo >>"$at_stderr"; $as_echo "prog.cob:8: error: REDEFINES must follow the original definition
15087prog.cob:12: error: REDEFINES must follow the original definition
15088" | \
15089  $at_diff - "$at_stderr" || at_failed=:
15090at_fn_diff_devnull "$at_stdout" || at_failed=:
15091at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:389"
15092$at_failed && at_fn_log_failure
15093$at_traceon; }
15094
15095
15096  set +x
15097  $at_times_p && times >"$at_times_file"
15098) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15099read at_status <"$at_status_file"
15100#AT_STOP_148
15101#AT_START_149
15102at_fn_group_banner 149 'syn_redefines.at:399' \
15103  "REDEFINES: within REDEFINES" "                    " 2
15104at_xfail=no
15105(
15106  $as_echo "149. $at_setup_line: testing $at_desc ..."
15107  $at_traceon
15108
15109
15110
15111cat >prog.cob <<'_ATEOF'
15112
15113       IDENTIFICATION   DIVISION.
15114       PROGRAM-ID.      prog.
15115       DATA             DIVISION.
15116       WORKING-STORAGE  SECTION.
15117       01 X             PIC X.
15118       01 G             REDEFINES X.
15119         02 A           PIC X.
15120         02 B           REDEFINES A PIC 9.
15121       PROCEDURE        DIVISION.
15122           STOP RUN.
15123_ATEOF
15124
15125
15126{ set +x
15127$as_echo "$at_srcdir/syn_redefines.at:415: \$COMPILE_ONLY prog.cob"
15128at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:415"
15129( $at_check_trace; $COMPILE_ONLY prog.cob
15130) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15131at_status=$? at_failed=false
15132$at_check_filter
15133at_fn_diff_devnull "$at_stderr" || at_failed=:
15134at_fn_diff_devnull "$at_stdout" || at_failed=:
15135at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:415"
15136$at_failed && at_fn_log_failure
15137$at_traceon; }
15138
15139
15140  set +x
15141  $at_times_p && times >"$at_times_file"
15142) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15143read at_status <"$at_status_file"
15144#AT_STOP_149
15145#AT_START_150
15146at_fn_group_banner 150 'syn_redefines.at:420' \
15147  "REDEFINES: non-referenced ambiguous item" "       " 2
15148at_xfail=no
15149(
15150  $as_echo "150. $at_setup_line: testing $at_desc ..."
15151  $at_traceon
15152
15153
15154
15155# bad extension, supported for compatibility to at least MicroFocus
15156# the redefines always applies to the item defined before, verified in
15157# run_extensions.at, syntax check for redefinition in syn_definition.at
15158
15159cat >prog.cob <<'_ATEOF'
15160
15161       IDENTIFICATION   DIVISION.
15162       PROGRAM-ID.      prog.
15163       DATA             DIVISION.
15164       WORKING-STORAGE  SECTION.
15165       01 X             PIC X.
15166       01 X             PIC X.
15167       01 G             REDEFINES X PIC 9.
15168       PROCEDURE        DIVISION.
15169           STOP RUN.
15170_ATEOF
15171
15172
15173{ set +x
15174$as_echo "$at_srcdir/syn_redefines.at:439: \$COMPILE_ONLY prog.cob"
15175at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:439"
15176( $at_check_trace; $COMPILE_ONLY prog.cob
15177) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15178at_status=$? at_failed=false
15179$at_check_filter
15180echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: redefinition of 'X'
15181prog.cob:6: note: 'X' previously defined here
15182" | \
15183  $at_diff - "$at_stderr" || at_failed=:
15184at_fn_diff_devnull "$at_stdout" || at_failed=:
15185at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:439"
15186$at_failed && at_fn_log_failure
15187$at_traceon; }
15188
15189
15190  set +x
15191  $at_times_p && times >"$at_times_file"
15192) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15193read at_status <"$at_status_file"
15194#AT_STOP_150
15195#AT_START_151
15196at_fn_group_banner 151 'syn_value.at:43' \
15197  "Numeric item (integer)" "                         " 2
15198at_xfail=no
15199(
15200  $as_echo "151. $at_setup_line: testing $at_desc ..."
15201  $at_traceon
15202
15203
15204
15205cat >prog.cob <<'_ATEOF'
15206
15207       IDENTIFICATION   DIVISION.
15208       PROGRAM-ID.      prog.
15209       DATA             DIVISION.
15210       WORKING-STORAGE  SECTION.
15211       01 X-SPACE       PIC 999 VALUE SPACE.
15212       01 X-ABC         PIC 999 VALUE "abc".
15213       01 X-12-3        PIC 999 VALUE 12.3.
15214       01 X-123         PIC 999 VALUE 123.
15215       01 X-1234        PIC 999 VALUE 1234.
15216       PROCEDURE        DIVISION.
15217           STOP RUN.
15218_ATEOF
15219
15220
15221{ set +x
15222$as_echo "$at_srcdir/syn_value.at:60: \$COMPILE_ONLY prog.cob"
15223at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:60"
15224( $at_check_trace; $COMPILE_ONLY prog.cob
15225) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15226at_status=$? at_failed=false
15227$at_check_filter
15228echo >>"$at_stderr"; $as_echo "prog.cob:6: error: invalid VALUE clause
15229prog.cob:7: warning: numeric value is expected
15230prog.cob:8: warning: value size exceeds data size
15231prog.cob:10: warning: value size exceeds data size
15232" | \
15233  $at_diff - "$at_stderr" || at_failed=:
15234at_fn_diff_devnull "$at_stdout" || at_failed=:
15235at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:60"
15236$at_failed && at_fn_log_failure
15237$at_traceon; }
15238
15239
15240  set +x
15241  $at_times_p && times >"$at_times_file"
15242) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15243read at_status <"$at_status_file"
15244#AT_STOP_151
15245#AT_START_152
15246at_fn_group_banner 152 'syn_value.at:70' \
15247  "Numeric item (non-integer)" "                     " 2
15248at_xfail=no
15249(
15250  $as_echo "152. $at_setup_line: testing $at_desc ..."
15251  $at_traceon
15252
15253
15254
15255cat >prog.cob <<'_ATEOF'
15256
15257       IDENTIFICATION   DIVISION.
15258       PROGRAM-ID.      prog.
15259       DATA             DIVISION.
15260       WORKING-STORAGE  SECTION.
15261       01 X-12          PIC 99V9 VALUE 12.
15262       01 X-123         PIC 99V9 VALUE 123.
15263       01 X-12-3        PIC 99V9 VALUE 12.3.
15264       01 X-12-34       PIC 99V9 VALUE 12.34.
15265       PROCEDURE        DIVISION.
15266           STOP RUN.
15267_ATEOF
15268
15269
15270{ set +x
15271$as_echo "$at_srcdir/syn_value.at:86: \$COMPILE_ONLY prog.cob"
15272at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:86"
15273( $at_check_trace; $COMPILE_ONLY prog.cob
15274) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15275at_status=$? at_failed=false
15276$at_check_filter
15277echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: value size exceeds data size
15278prog.cob:9: warning: value size exceeds data size
15279" | \
15280  $at_diff - "$at_stderr" || at_failed=:
15281at_fn_diff_devnull "$at_stdout" || at_failed=:
15282at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:86"
15283$at_failed && at_fn_log_failure
15284$at_traceon; }
15285
15286
15287  set +x
15288  $at_times_p && times >"$at_times_file"
15289) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15290read at_status <"$at_status_file"
15291#AT_STOP_152
15292#AT_START_153
15293at_fn_group_banner 153 'syn_value.at:94' \
15294  "Numeric item with picture P" "                    " 2
15295at_xfail=no
15296(
15297  $as_echo "153. $at_setup_line: testing $at_desc ..."
15298  $at_traceon
15299
15300
15301
15302cat >prog.cob <<'_ATEOF'
15303
15304       IDENTIFICATION   DIVISION.
15305       PROGRAM-ID.      prog.
15306       DATA             DIVISION.
15307       WORKING-STORAGE  SECTION.
15308       01 X-99PP-0      PIC 99PP VALUE 0.
15309       01 X-99PP-1200   PIC 99PP VALUE 1200.
15310       01 X-99PP-1230   PIC 99PP VALUE 1230.
15311       01 X-99PP-10000  PIC 99PP VALUE 10000.
15312       01 X-PP99--0     PIC PP99 VALUE .0.
15313       01 X-PP99--0012  PIC PP99 VALUE .0012.
15314       01 X-PP99--0123  PIC PP99 VALUE .0123.
15315       01 X-PP99--00001 PIC PP99 VALUE .00001.
15316       PROCEDURE        DIVISION.
15317           STOP RUN.
15318_ATEOF
15319
15320
15321{ set +x
15322$as_echo "$at_srcdir/syn_value.at:114: \$COMPILE_ONLY prog.cob"
15323at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:114"
15324( $at_check_trace; $COMPILE_ONLY prog.cob
15325) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15326at_status=$? at_failed=false
15327$at_check_filter
15328echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: value does not fit the picture string
15329prog.cob:9: warning: value size exceeds data size
15330prog.cob:12: warning: value does not fit the picture string
15331prog.cob:13: warning: value size exceeds data size
15332" | \
15333  $at_diff - "$at_stderr" || at_failed=:
15334at_fn_diff_devnull "$at_stdout" || at_failed=:
15335at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:114"
15336$at_failed && at_fn_log_failure
15337$at_traceon; }
15338
15339
15340  set +x
15341  $at_times_p && times >"$at_times_file"
15342) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15343read at_status <"$at_status_file"
15344#AT_STOP_153
15345#AT_START_154
15346at_fn_group_banner 154 'syn_value.at:126' \
15347  "Signed numeric literal" "                         " 2
15348at_xfail=no
15349(
15350  $as_echo "154. $at_setup_line: testing $at_desc ..."
15351  $at_traceon
15352
15353
15354
15355cat >prog.cob <<'_ATEOF'
15356
15357       IDENTIFICATION   DIVISION.
15358       PROGRAM-ID.      prog.
15359       DATA             DIVISION.
15360       WORKING-STORAGE  SECTION.
15361       01 X-9P          PIC 9  VALUE +1.
15362       01 X-9N          PIC 9  VALUE -1.
15363       01 X-S9P         PIC S9 VALUE +1.
15364       01 X-S9N         PIC S9 VALUE -1.
15365       PROCEDURE        DIVISION.
15366           STOP RUN.
15367_ATEOF
15368
15369
15370{ set +x
15371$as_echo "$at_srcdir/syn_value.at:142: \$COMPILE_ONLY prog.cob"
15372at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:142"
15373( $at_check_trace; $COMPILE_ONLY prog.cob
15374) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15375at_status=$? at_failed=false
15376$at_check_filter
15377echo >>"$at_stderr"; $as_echo "prog.cob:6: error: data item not signed
15378prog.cob:7: error: data item not signed
15379" | \
15380  $at_diff - "$at_stderr" || at_failed=:
15381at_fn_diff_devnull "$at_stdout" || at_failed=:
15382at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:142"
15383$at_failed && at_fn_log_failure
15384$at_traceon; }
15385
15386
15387  set +x
15388  $at_times_p && times >"$at_times_file"
15389) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15390read at_status <"$at_status_file"
15391#AT_STOP_154
15392#AT_START_155
15393at_fn_group_banner 155 'syn_value.at:152' \
15394  "Alphabetic item" "                                " 2
15395at_xfail=no
15396(
15397  $as_echo "155. $at_setup_line: testing $at_desc ..."
15398  $at_traceon
15399
15400
15401
15402cat >prog.cob <<'_ATEOF'
15403
15404       IDENTIFICATION   DIVISION.
15405       PROGRAM-ID.      prog.
15406       DATA             DIVISION.
15407       WORKING-STORAGE  SECTION.
15408       01 X-123         PIC AAA VALUE 123.
15409       01 X-ZERO        PIC AAA VALUE ZERO.
15410       01 X-AB1         PIC AAA VALUE "ab1".
15411       01 X-ABC         PIC AAA VALUE "abc".
15412       01 X-ABCD        PIC AAA VALUE "abcd".
15413       PROCEDURE        DIVISION.
15414           STOP RUN.
15415_ATEOF
15416
15417
15418{ set +x
15419$as_echo "$at_srcdir/syn_value.at:169: \$COMPILE_ONLY prog.cob"
15420at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:169"
15421( $at_check_trace; $COMPILE_ONLY prog.cob
15422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15423at_status=$? at_failed=false
15424$at_check_filter
15425echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: alphanumeric value is expected
15426prog.cob:7: error: invalid VALUE clause
15427prog.cob:8: warning: value does not fit the picture string
15428prog.cob:10: warning: value size exceeds data size
15429" | \
15430  $at_diff - "$at_stderr" || at_failed=:
15431at_fn_diff_devnull "$at_stdout" || at_failed=:
15432at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:169"
15433$at_failed && at_fn_log_failure
15434$at_traceon; }
15435
15436
15437  set +x
15438  $at_times_p && times >"$at_times_file"
15439) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15440read at_status <"$at_status_file"
15441#AT_STOP_155
15442#AT_START_156
15443at_fn_group_banner 156 'syn_value.at:179' \
15444  "Alphanumeric item" "                              " 2
15445at_xfail=no
15446(
15447  $as_echo "156. $at_setup_line: testing $at_desc ..."
15448  $at_traceon
15449
15450
15451
15452cat >prog.cob <<'_ATEOF'
15453
15454       IDENTIFICATION   DIVISION.
15455       PROGRAM-ID.      prog.
15456       DATA             DIVISION.
15457       WORKING-STORAGE  SECTION.
15458       01 X-123         PIC XXX VALUE 123.
15459       01 X-ABC         PIC XXX VALUE "abc".
15460       01 X-ABCD        PIC XXX VALUE "abcd".
15461       01 X-SPACE       PIC XXX VALUE "abc   ".
15462       PROCEDURE        DIVISION.
15463           STOP RUN.
15464_ATEOF
15465
15466
15467{ set +x
15468$as_echo "$at_srcdir/syn_value.at:195: \$COMPILE_ONLY prog.cob"
15469at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:195"
15470( $at_check_trace; $COMPILE_ONLY prog.cob
15471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15472at_status=$? at_failed=false
15473$at_check_filter
15474echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: alphanumeric value is expected
15475prog.cob:8: warning: value size exceeds data size
15476prog.cob:9: warning: value does not fit the picture string
15477" | \
15478  $at_diff - "$at_stderr" || at_failed=:
15479at_fn_diff_devnull "$at_stdout" || at_failed=:
15480at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:195"
15481$at_failed && at_fn_log_failure
15482$at_traceon; }
15483
15484
15485  set +x
15486  $at_times_p && times >"$at_times_file"
15487) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15488read at_status <"$at_status_file"
15489#AT_STOP_156
15490#AT_START_157
15491at_fn_group_banner 157 'syn_value.at:204' \
15492  "Alphanumeric group item" "                        " 2
15493at_xfail=no
15494(
15495  $as_echo "157. $at_setup_line: testing $at_desc ..."
15496  $at_traceon
15497
15498
15499
15500cat >prog.cob <<'_ATEOF'
15501
15502       IDENTIFICATION   DIVISION.
15503       PROGRAM-ID.      prog.
15504       DATA             DIVISION.
15505       WORKING-STORAGE  SECTION.
15506       01 G-1           VALUE 123.
15507         02 X           PIC XXX.
15508       01 G-2           VALUE "abc".
15509         02 X           PIC XXX.
15510       01 G-3           VALUE "abcd".
15511         02 X           PIC XXX.
15512       PROCEDURE        DIVISION.
15513           STOP RUN.
15514_ATEOF
15515
15516
15517{ set +x
15518$as_echo "$at_srcdir/syn_value.at:222: \$COMPILE_ONLY prog.cob"
15519at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:222"
15520( $at_check_trace; $COMPILE_ONLY prog.cob
15521) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15522at_status=$? at_failed=false
15523$at_check_filter
15524echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: alphanumeric value is expected
15525prog.cob:10: warning: value size exceeds data size
15526" | \
15527  $at_diff - "$at_stderr" || at_failed=:
15528at_fn_diff_devnull "$at_stdout" || at_failed=:
15529at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:222"
15530$at_failed && at_fn_log_failure
15531$at_traceon; }
15532
15533
15534  set +x
15535  $at_times_p && times >"$at_times_file"
15536) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15537read at_status <"$at_status_file"
15538#AT_STOP_157
15539#AT_START_158
15540at_fn_group_banner 158 'syn_value.at:239' \
15541  "Numeric-edited item" "                            " 2
15542at_xfail=no
15543(
15544  $as_echo "158. $at_setup_line: testing $at_desc ..."
15545  $at_traceon
15546
15547
15548
15549cat >prog.cob <<'_ATEOF'
15550
15551       IDENTIFICATION   DIVISION.
15552       PROGRAM-ID.      prog.
15553       DATA             DIVISION.
15554       WORKING-STORAGE  SECTION.
15555       01 X-SPACE       PIC **99.00  VALUE SPACE.
15556       01 X-123         PIC **999.00 VALUE 123.
15557       01 X-ABC         PIC **99.00  VALUE "abc".
15558       01 X-MATCH       PIC **99.00  VALUE "*123.00".
15559       01 X-OVERFLOW    PIC **99.00  VALUE "*123.000".
15560       PROCEDURE        DIVISION.
15561           MOVE     320.00 TO X-123
15562           STOP RUN.
15563_ATEOF
15564
15565
15566{ set +x
15567$as_echo "$at_srcdir/syn_value.at:257: \$COMPILE_ONLY prog.cob"
15568at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:257"
15569( $at_check_trace; $COMPILE_ONLY prog.cob
15570) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15571at_status=$? at_failed=false
15572$at_check_filter
15573echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: value size exceeds data size
15574" | \
15575  $at_diff - "$at_stderr" || at_failed=:
15576at_fn_diff_devnull "$at_stdout" || at_failed=:
15577at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:257"
15578$at_failed && at_fn_log_failure
15579$at_traceon; }
15580
15581{ set +x
15582$as_echo "$at_srcdir/syn_value.at:260: \$COMPILE_ONLY -std=ibm-strict prog.cob"
15583at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "syn_value.at:260"
15584( $at_check_trace; $COMPILE_ONLY -std=ibm-strict prog.cob
15585) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15586at_status=$? at_failed=false
15587$at_check_filter
15588echo >>"$at_stderr"; $as_echo "prog.cob:7: error: numeric literal in VALUE clause of numeric-edited item used
15589prog.cob:10: warning: value size exceeds data size
15590" | \
15591  $at_diff - "$at_stderr" || at_failed=:
15592at_fn_diff_devnull "$at_stdout" || at_failed=:
15593at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:260"
15594$at_failed && at_fn_log_failure
15595$at_traceon; }
15596
15597{ set +x
15598$as_echo "$at_srcdir/syn_value.at:264: \$COMPILE_ONLY -std=ibm prog.cob"
15599at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_value.at:264"
15600( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
15601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15602at_status=$? at_failed=false
15603$at_check_filter
15604echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: numeric literal in VALUE clause of numeric-edited item used
15605prog.cob:10: warning: value size exceeds data size
15606" | \
15607  $at_diff - "$at_stderr" || at_failed=:
15608at_fn_diff_devnull "$at_stdout" || at_failed=:
15609at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:264"
15610$at_failed && at_fn_log_failure
15611$at_traceon; }
15612
15613
15614  set +x
15615  $at_times_p && times >"$at_times_file"
15616) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15617read at_status <"$at_status_file"
15618#AT_STOP_158
15619#AT_START_159
15620at_fn_group_banner 159 'syn_value.at:272' \
15621  "Alphanumeric-edited item" "                       " 2
15622at_xfail=no
15623(
15624  $as_echo "159. $at_setup_line: testing $at_desc ..."
15625  $at_traceon
15626
15627
15628
15629cat >prog.cob <<'_ATEOF'
15630
15631       IDENTIFICATION   DIVISION.
15632       PROGRAM-ID.      prog.
15633       DATA             DIVISION.
15634       WORKING-STORAGE  SECTION.
15635       01 X-123         PIC BXX VALUE 123.
15636       01 X-ABC         PIC BXX VALUE "abc".
15637       01 X-MATCH       PIC BXX VALUE " ab".
15638       01 X-OVERFLOW    PIC BXX VALUE " abc".
15639       PROCEDURE        DIVISION.
15640           STOP RUN.
15641_ATEOF
15642
15643
15644{ set +x
15645$as_echo "$at_srcdir/syn_value.at:288: \$COMPILE_ONLY prog.cob"
15646at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:288"
15647( $at_check_trace; $COMPILE_ONLY prog.cob
15648) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15649at_status=$? at_failed=false
15650$at_check_filter
15651echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: alphanumeric value is expected
15652prog.cob:9: warning: value size exceeds data size
15653" | \
15654  $at_diff - "$at_stderr" || at_failed=:
15655at_fn_diff_devnull "$at_stdout" || at_failed=:
15656at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:288"
15657$at_failed && at_fn_log_failure
15658$at_traceon; }
15659
15660
15661  set +x
15662  $at_times_p && times >"$at_times_file"
15663) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15664read at_status <"$at_status_file"
15665#AT_STOP_159
15666#AT_START_160
15667at_fn_group_banner 160 'syn_value.at:340' \
15668  "Implicit picture from value" "                    " 2
15669at_xfail=no
15670(
15671  $as_echo "160. $at_setup_line: testing $at_desc ..."
15672  $at_traceon
15673
15674
15675
15676cat >prog.cob <<'_ATEOF'
15677
15678       IDENTIFICATION   DIVISION.
15679       PROGRAM-ID.      prog.
15680       DATA             DIVISION.
15681       WORKING-STORAGE  SECTION.
15682       01 IMPHEAD.
15683          05 IMPPIC     VALUE " abc".
15684       PROCEDURE        DIVISION.
15685           DISPLAY IMPPIC END-DISPLAY
15686           STOP RUN.
15687_ATEOF
15688
15689
15690# Check: should we raise an error without -frelax-syntax-checks?
15691#AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
15692#[prog.cob:7: error: PICTURE clause required for 'IMPPIC'
15693#])
15694
15695{ set +x
15696$as_echo "$at_srcdir/syn_value.at:360: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
15697at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_value.at:360"
15698( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
15699) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15700at_status=$? at_failed=false
15701$at_check_filter
15702echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: defining implicit picture size 4 for 'IMPPIC'
15703" | \
15704  $at_diff - "$at_stderr" || at_failed=:
15705at_fn_diff_devnull "$at_stdout" || at_failed=:
15706at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:360"
15707$at_failed && at_fn_log_failure
15708$at_traceon; }
15709
15710
15711{ set +x
15712$as_echo "$at_srcdir/syn_value.at:364: \$COMPILE_ONLY -frelax-syntax-checks -w prog.cob"
15713at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks -w prog.cob" "syn_value.at:364"
15714( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks -w prog.cob
15715) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15716at_status=$? at_failed=false
15717$at_check_filter
15718at_fn_diff_devnull "$at_stderr" || at_failed=:
15719at_fn_diff_devnull "$at_stdout" || at_failed=:
15720at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:364"
15721$at_failed && at_fn_log_failure
15722$at_traceon; }
15723
15724
15725  set +x
15726  $at_times_p && times >"$at_times_file"
15727) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15728read at_status <"$at_status_file"
15729#AT_STOP_160
15730#AT_START_161
15731at_fn_group_banner 161 'syn_file.at:23' \
15732  "Missing SELECT" "                                 " 2
15733at_xfail=no
15734(
15735  $as_echo "161. $at_setup_line: testing $at_desc ..."
15736  $at_traceon
15737
15738
15739
15740cat >prog.cob <<'_ATEOF'
15741
15742       IDENTIFICATION DIVISION.
15743       PROGRAM-ID. prog.
15744       ENVIRONMENT DIVISION.
15745       INPUT-OUTPUT SECTION.
15746       FILE-CONTROL.
15747           SELECT file2 ASSIGN DISK.
15748       DATA DIVISION.
15749       FILE SECTION.
15750       FD  file1.
15751       01  file1-rec PIC X.
15752       FD  file2.
15753       01  file2-rec PIC X.
15754       PROCEDURE DIVISION.
15755           STOP RUN.
15756_ATEOF
15757
15758
15759{ set +x
15760$as_echo "$at_srcdir/syn_file.at:43: \$COMPILE_ONLY prog.cob"
15761at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:43"
15762( $at_check_trace; $COMPILE_ONLY prog.cob
15763) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15764at_status=$? at_failed=false
15765$at_check_filter
15766echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'file1' is not defined
15767prog.cob:10: error: 'file1' is not a file name
15768" | \
15769  $at_diff - "$at_stderr" || at_failed=:
15770at_fn_diff_devnull "$at_stdout" || at_failed=:
15771at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:43"
15772$at_failed && at_fn_log_failure
15773$at_traceon; }
15774
15775  set +x
15776  $at_times_p && times >"$at_times_file"
15777) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15778read at_status <"$at_status_file"
15779#AT_STOP_161
15780#AT_START_162
15781at_fn_group_banner 162 'syn_file.at:50' \
15782  "Duplicated SELECT" "                              " 2
15783at_xfail=no
15784(
15785  $as_echo "162. $at_setup_line: testing $at_desc ..."
15786  $at_traceon
15787
15788
15789
15790cat >prog.cob <<'_ATEOF'
15791
15792       IDENTIFICATION DIVISION.
15793       PROGRAM-ID. prog.
15794       ENVIRONMENT DIVISION.
15795       INPUT-OUTPUT SECTION.
15796       FILE-CONTROL.
15797       SELECT file1 ASSIGN DISK.
15798       SELECT file2 ASSIGN DISK.
15799       SELECT file1 ASSIGN DISK.
15800       DATA DIVISION.
15801       FILE SECTION.
15802       FD  file1.
15803       01  file1-rec PIC X.
15804       FD  file2.
15805       01  file2-rec PIC X.
15806       PROCEDURE DIVISION.
15807           STOP RUN.
15808_ATEOF
15809
15810
15811{ set +x
15812$as_echo "$at_srcdir/syn_file.at:72: \$COMPILE_ONLY prog.cob"
15813at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:72"
15814( $at_check_trace; $COMPILE_ONLY prog.cob
15815) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15816at_status=$? at_failed=false
15817$at_check_filter
15818echo >>"$at_stderr"; $as_echo "prog.cob:9: error: redefinition of 'file1'
15819prog.cob:7: note: 'file1' previously defined here
15820prog.cob:9: error: missing file description for FILE SELECT on line 9
15821" | \
15822  $at_diff - "$at_stderr" || at_failed=:
15823at_fn_diff_devnull "$at_stdout" || at_failed=:
15824at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:72"
15825$at_failed && at_fn_log_failure
15826$at_traceon; }
15827
15828  set +x
15829  $at_times_p && times >"$at_times_file"
15830) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15831read at_status <"$at_status_file"
15832#AT_STOP_162
15833#AT_START_163
15834at_fn_group_banner 163 'syn_file.at:82' \
15835  "Missing FD" "                                     " 2
15836at_xfail=no
15837(
15838  $as_echo "163. $at_setup_line: testing $at_desc ..."
15839  $at_traceon
15840
15841
15842
15843cat >prog.cob <<'_ATEOF'
15844
15845       IDENTIFICATION DIVISION.
15846       PROGRAM-ID. prog.
15847       ENVIRONMENT DIVISION.
15848       INPUT-OUTPUT SECTION.
15849       FILE-CONTROL.
15850       SELECT file1 ASSIGN DISK.
15851       SELECT file2 ASSIGN DISK.
15852       DATA DIVISION.
15853       FILE SECTION.
15854       FD file2.
15855       01 file2-rec PIC X.
15856       PROCEDURE DIVISION.
15857           OPEN input file1
15858           STOP RUN.
15859_ATEOF
15860
15861
15862{ set +x
15863$as_echo "$at_srcdir/syn_file.at:102: \$COMPILE_ONLY prog.cob"
15864at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:102"
15865( $at_check_trace; $COMPILE_ONLY prog.cob
15866) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15867at_status=$? at_failed=false
15868$at_check_filter
15869echo >>"$at_stderr"; $as_echo "prog.cob:7: error: missing file description for FILE file1
15870" | \
15871  $at_diff - "$at_stderr" || at_failed=:
15872at_fn_diff_devnull "$at_stdout" || at_failed=:
15873at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:102"
15874$at_failed && at_fn_log_failure
15875$at_traceon; }
15876
15877  set +x
15878  $at_times_p && times >"$at_times_file"
15879) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15880read at_status <"$at_status_file"
15881#AT_STOP_163
15882#AT_START_164
15883at_fn_group_banner 164 'syn_file.at:108' \
15884  "Duplicated FD" "                                  " 2
15885at_xfail=no
15886(
15887  $as_echo "164. $at_setup_line: testing $at_desc ..."
15888  $at_traceon
15889
15890
15891
15892cat >prog.cob <<'_ATEOF'
15893
15894       IDENTIFICATION DIVISION.
15895       PROGRAM-ID. prog.
15896       ENVIRONMENT DIVISION.
15897       INPUT-OUTPUT SECTION.
15898       FILE-CONTROL.
15899       SELECT file1 ASSIGN DISK.
15900       SELECT file2 ASSIGN DISK.
15901       DATA DIVISION.
15902       FILE SECTION.
15903       FD  file1.
15904       01  file1-rec PIC X.
15905       FD  file2.
15906       01  file2-rec PIC X.
15907       FD  file1.
15908       01  file1-rec-2 PIC X.
15909       PROCEDURE DIVISION.
15910           STOP RUN.
15911_ATEOF
15912
15913
15914{ set +x
15915$as_echo "$at_srcdir/syn_file.at:131: \$COMPILE_ONLY prog.cob"
15916at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:131"
15917( $at_check_trace; $COMPILE_ONLY prog.cob
15918) >>"$at_stdout" 2>>"$at_stderr" 5>&-
15919at_status=$? at_failed=false
15920$at_check_filter
15921echo >>"$at_stderr"; $as_echo "prog.cob:15: error: duplicate file description for FILE file1
15922" | \
15923  $at_diff - "$at_stderr" || at_failed=:
15924at_fn_diff_devnull "$at_stdout" || at_failed=:
15925at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:131"
15926$at_failed && at_fn_log_failure
15927$at_traceon; }
15928
15929  set +x
15930  $at_times_p && times >"$at_times_file"
15931) 5>&1 2>&1 7>&- | eval $at_tee_pipe
15932read at_status <"$at_status_file"
15933#AT_STOP_164
15934#AT_START_165
15935at_fn_group_banner 165 'syn_file.at:137' \
15936  "ASSIGN to device-name" "                          " 2
15937at_xfail=no
15938(
15939  $as_echo "165. $at_setup_line: testing $at_desc ..."
15940  $at_traceon
15941
15942
15943
15944cat >prog.cob <<'_ATEOF'
15945
15946       IDENTIFICATION   DIVISION.
15947       PROGRAM-ID.      prog.
15948       ENVIRONMENT      DIVISION.
15949       INPUT-OUTPUT     SECTION.
15950       FILE-CONTROL.
15951       SELECT TEST-FILE ASSIGN       TO DISK
15952                        ORGANIZATION IS SEQUENTIAL.
15953       DATA             DIVISION.
15954       FILE             SECTION.
15955       FD TEST-FILE.
15956       01 TEST-REC      PIC X(4).
15957       PROCEDURE        DIVISION.
15958           OPEN  INPUT TEST-FILE.
15959           CLOSE TEST-FILE.
15960           STOP RUN.
15961_ATEOF
15962
15963
15964cat >prog2.cob <<'_ATEOF'
15965
15966       IDENTIFICATION   DIVISION.
15967       PROGRAM-ID.      prog2.
15968       ENVIRONMENT      DIVISION.
15969       INPUT-OUTPUT     SECTION.
15970       FILE-CONTROL.
15971       SELECT TEST-FILE ASSIGN       TO DISK 'TFILE'
15972                        ORGANIZATION IS SEQUENTIAL.
15973       DATA             DIVISION.
15974       FILE             SECTION.
15975       FD TEST-FILE.
15976       01 TEST-REC      PIC X(4).
15977       PROCEDURE        DIVISION.
15978           OPEN  INPUT TEST-FILE.
15979           CLOSE TEST-FILE.
15980           STOP RUN.
15981_ATEOF
15982
15983
15984cat >prog3.cob <<'_ATEOF'
15985
15986       IDENTIFICATION   DIVISION.
15987       PROGRAM-ID.      prog3.
15988       ENVIRONMENT      DIVISION.
15989       INPUT-OUTPUT     SECTION.
15990       FILE-CONTROL.
15991       SELECT TEST-FILE ASSIGN       TO DISK FNAME OF F1
15992                        ORGANIZATION IS SEQUENTIAL.
15993       DATA             DIVISION.
15994       FILE             SECTION.
15995       FD TEST-FILE.
15996       01 TEST-REC      PIC X(4).
15997       WORKING-STORAGE  SECTION.
15998       01 F1.
15999          05 FNAME      PIC X(255) VALUE 'TFILEOF'.
16000       PROCEDURE        DIVISION.
16001           OPEN  INPUT TEST-FILE.
16002           CLOSE TEST-FILE.
16003           STOP RUN.
16004_ATEOF
16005
16006
16007{ set +x
16008$as_echo "$at_srcdir/syn_file.at:197: \$COMPILE_ONLY -std=acu prog.cob"
16009at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:197"
16010( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
16011) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16012at_status=$? at_failed=false
16013$at_check_filter
16014at_fn_diff_devnull "$at_stderr" || at_failed=:
16015at_fn_diff_devnull "$at_stdout" || at_failed=:
16016at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:197"
16017$at_failed && at_fn_log_failure
16018$at_traceon; }
16019
16020{ set +x
16021$as_echo "$at_srcdir/syn_file.at:198: \$COMPILE_ONLY -std=acu prog2.cob"
16022at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog2.cob" "syn_file.at:198"
16023( $at_check_trace; $COMPILE_ONLY -std=acu prog2.cob
16024) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16025at_status=$? at_failed=false
16026$at_check_filter
16027at_fn_diff_devnull "$at_stderr" || at_failed=:
16028at_fn_diff_devnull "$at_stdout" || at_failed=:
16029at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:198"
16030$at_failed && at_fn_log_failure
16031$at_traceon; }
16032
16033{ set +x
16034$as_echo "$at_srcdir/syn_file.at:199: \$COMPILE_ONLY -std=acu prog3.cob"
16035at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog3.cob" "syn_file.at:199"
16036( $at_check_trace; $COMPILE_ONLY -std=acu prog3.cob
16037) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16038at_status=$? at_failed=false
16039$at_check_filter
16040at_fn_diff_devnull "$at_stderr" || at_failed=:
16041at_fn_diff_devnull "$at_stdout" || at_failed=:
16042at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:199"
16043$at_failed && at_fn_log_failure
16044$at_traceon; }
16045
16046
16047  set +x
16048  $at_times_p && times >"$at_times_file"
16049) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16050read at_status <"$at_status_file"
16051#AT_STOP_165
16052#AT_START_166
16053at_fn_group_banner 166 'syn_file.at:204' \
16054  "ASSIGN to printer-name" "                         " 2
16055at_xfail=no
16056(
16057  $as_echo "166. $at_setup_line: testing $at_desc ..."
16058  $at_traceon
16059
16060
16061
16062cat >prog.cob <<'_ATEOF'
16063
16064       IDENTIFICATION   DIVISION.
16065       PROGRAM-ID.      prog.
16066       ENVIRONMENT      DIVISION.
16067       INPUT-OUTPUT     SECTION.
16068       FILE-CONTROL.
16069       SELECT TEST-FILE ASSIGN       TO PRINT
16070                        ORGANIZATION IS SEQUENTIAL.
16071       DATA             DIVISION.
16072       FILE             SECTION.
16073       FD TEST-FILE.
16074       01 TEST-REC      PIC X(4).
16075       PROCEDURE        DIVISION.
16076           OPEN  INPUT TEST-FILE.
16077           CLOSE TEST-FILE.
16078           STOP RUN.
16079_ATEOF
16080
16081
16082cat >prog2.cob <<'_ATEOF'
16083
16084       IDENTIFICATION   DIVISION.
16085       PROGRAM-ID.      prog2.
16086       ENVIRONMENT      DIVISION.
16087       INPUT-OUTPUT     SECTION.
16088       FILE-CONTROL.
16089       SELECT TEST-FILE ASSIGN       TO PRINTER 'PFILE'
16090                        ORGANIZATION IS SEQUENTIAL.
16091       DATA             DIVISION.
16092       FILE             SECTION.
16093       FD TEST-FILE.
16094       01 TEST-REC      PIC X(4).
16095       PROCEDURE        DIVISION.
16096           OPEN  INPUT TEST-FILE.
16097           CLOSE TEST-FILE.
16098           STOP RUN.
16099_ATEOF
16100
16101
16102cat >prog3.cob <<'_ATEOF'
16103
16104       IDENTIFICATION   DIVISION.
16105       PROGRAM-ID.      prog3.
16106       ENVIRONMENT      DIVISION.
16107       INPUT-OUTPUT     SECTION.
16108       FILE-CONTROL.
16109       SELECT TEST-FILE ASSIGN       TO PRINTER-1 FNAME OF F1
16110                        ORGANIZATION IS SEQUENTIAL.
16111       DATA             DIVISION.
16112       FILE             SECTION.
16113       FD TEST-FILE.
16114       01 TEST-REC      PIC X(4).
16115       WORKING-STORAGE  SECTION.
16116       01 F1.
16117          05 FNAME      PIC X(255) VALUE 'PFILEOF'.
16118       PROCEDURE        DIVISION.
16119           OPEN  INPUT TEST-FILE.
16120           CLOSE TEST-FILE.
16121           STOP RUN.
16122_ATEOF
16123
16124
16125{ set +x
16126$as_echo "$at_srcdir/syn_file.at:264: \$COMPILE_ONLY -std=acu prog.cob"
16127at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:264"
16128( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
16129) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16130at_status=$? at_failed=false
16131$at_check_filter
16132at_fn_diff_devnull "$at_stderr" || at_failed=:
16133at_fn_diff_devnull "$at_stdout" || at_failed=:
16134at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:264"
16135$at_failed && at_fn_log_failure
16136$at_traceon; }
16137
16138{ set +x
16139$as_echo "$at_srcdir/syn_file.at:265: \$COMPILE_ONLY -std=acu prog2.cob"
16140at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog2.cob" "syn_file.at:265"
16141( $at_check_trace; $COMPILE_ONLY -std=acu prog2.cob
16142) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16143at_status=$? at_failed=false
16144$at_check_filter
16145at_fn_diff_devnull "$at_stderr" || at_failed=:
16146at_fn_diff_devnull "$at_stdout" || at_failed=:
16147at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:265"
16148$at_failed && at_fn_log_failure
16149$at_traceon; }
16150
16151{ set +x
16152$as_echo "$at_srcdir/syn_file.at:266: \$COMPILE_ONLY -std=acu prog3.cob"
16153at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog3.cob" "syn_file.at:266"
16154( $at_check_trace; $COMPILE_ONLY -std=acu prog3.cob
16155) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16156at_status=$? at_failed=false
16157$at_check_filter
16158at_fn_diff_devnull "$at_stderr" || at_failed=:
16159at_fn_diff_devnull "$at_stdout" || at_failed=:
16160at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:266"
16161$at_failed && at_fn_log_failure
16162$at_traceon; }
16163
16164
16165  set +x
16166  $at_times_p && times >"$at_times_file"
16167) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16168read at_status <"$at_status_file"
16169#AT_STOP_166
16170#AT_START_167
16171at_fn_group_banner 167 'syn_file.at:271' \
16172  "ASSIGN to lsq-device-name" "                      " 2
16173at_xfail=no
16174(
16175  $as_echo "167. $at_setup_line: testing $at_desc ..."
16176  $at_traceon
16177
16178
16179
16180cat >prog.cob <<'_ATEOF'
16181
16182       IDENTIFICATION   DIVISION.
16183       PROGRAM-ID.      prog.
16184       ENVIRONMENT      DIVISION.
16185       INPUT-OUTPUT     SECTION.
16186       FILE-CONTROL.
16187       SELECT TST-FILE1 ASSIGN       TO CARD-PUNCH  "F1".
16188       SELECT TST-FILE2 ASSIGN       TO CARD-READER "F2".
16189       SELECT TST-FILE3 ASSIGN       TO CASSETTE    "F3".
16190       SELECT TST-FILE4 ASSIGN       TO INPUT       "F4".
16191       SELECT TST-FILE5 ASSIGN       TO INPUT-OUTPUT.
16192       SELECT TST-FILE6 ASSIGN       TO MAGNETIC-TAPE.
16193       SELECT TST-FILE7 ASSIGN       TO OUTPUT      "F7".
16194       DATA             DIVISION.
16195       FILE             SECTION.
16196       FD TST-FILE1.
16197       01 TST1-REC      PIC X(4).
16198       FD TST-FILE2.
16199       01 TST2-REC      PIC X(4).
16200       FD TST-FILE3.
16201       01 TST3-REC      PIC X(4).
16202       FD TST-FILE4.
16203       01 TST4-REC      PIC X(4).
16204       FD TST-FILE5.
16205       01 TST5-REC      PIC X(4).
16206       FD TST-FILE6.
16207       01 TST6-REC      PIC X(4).
16208       FD TST-FILE7.
16209       01 TST7-REC      PIC X(4).
16210       PROCEDURE        DIVISION.
16211           OPEN  INPUT TST-FILE1.
16212           CLOSE TST-FILE1.
16213           OPEN  INPUT TST-FILE2.
16214           CLOSE TST-FILE2.
16215           OPEN  INPUT TST-FILE3.
16216           CLOSE TST-FILE3.
16217           OPEN  INPUT TST-FILE4.
16218           CLOSE TST-FILE4.
16219           OPEN  INPUT TST-FILE5.
16220           CLOSE TST-FILE5.
16221           OPEN  INPUT TST-FILE6.
16222           CLOSE TST-FILE6.
16223           OPEN  INPUT TST-FILE7.
16224           CLOSE TST-FILE7.
16225           STOP RUN.
16226_ATEOF
16227
16228
16229{ set +x
16230$as_echo "$at_srcdir/syn_file.at:321: \$COMPILE_ONLY -std=acu prog.cob"
16231at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:321"
16232( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
16233) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16234at_status=$? at_failed=false
16235$at_check_filter
16236at_fn_diff_devnull "$at_stderr" || at_failed=:
16237at_fn_diff_devnull "$at_stdout" || at_failed=:
16238at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:321"
16239$at_failed && at_fn_log_failure
16240$at_traceon; }
16241
16242
16243  set +x
16244  $at_times_p && times >"$at_times_file"
16245) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16246read at_status <"$at_status_file"
16247#AT_STOP_167
16248#AT_START_168
16249at_fn_group_banner 168 'syn_file.at:326' \
16250  "ASSIGN to variable" "                             " 2
16251at_xfail=no
16252(
16253  $as_echo "168. $at_setup_line: testing $at_desc ..."
16254  $at_traceon
16255
16256
16257
16258# Valid ASSIGNs
16259cat >prog.cob <<'_ATEOF'
16260
16261       IDENTIFICATION   DIVISION.
16262       PROGRAM-ID.      prog.
16263       ENVIRONMENT      DIVISION.
16264       INPUT-OUTPUT     SECTION.
16265       FILE-CONTROL.
16266           SELECT test-file-1 ASSIGN TO var-1
16267               ORGANIZATION IS SEQUENTIAL.
16268           SELECT test-file-2 ASSIGN USING var-2
16269              ORGANIZATION IS SEQUENTIAL.
16270           SELECT test-file-3 ASSIGN TO VARYING var-3
16271               ORGANIZATION IS SEQUENTIAL.
16272           SELECT test-file-4 ASSIGN DISK USING var-4
16273               ORGANIZATION IS SEQUENTIAL.
16274           SELECT test-file-5 ASSIGN DYNAMIC DISK var-5
16275               ORGANIZATION IS SEQUENTIAL.
16276           SELECT test-file-6 ASSIGN DISK FROM var-6
16277               ORGANIZATION IS SEQUENTIAL.
16278       DATA             DIVISION.
16279       FILE             SECTION.
16280       FD test-file-1.
16281       01 test-rec-1    PIC X(4).
16282       FD test-file-2.
16283       01 test-rec-2    PIC X(4).
16284       FD test-file-3.
16285       01 test-rec-3    PIC X(4).
16286       FD test-file-4.
16287       01 test-rec-4    PIC X(4).
16288       FD test-file-5.
16289       01 test-rec-5    PIC X(4).
16290       FD test-file-6.
16291       01 test-rec-6    PIC X(4).
16292       WORKING-STORAGE  SECTION.
16293       01  var-1        PIC X(255).
16294       01  var-2        PIC X(255).
16295       01  var-3        PIC X(255).
16296       01  var-4        PIC X(255).
16297       01  var-5        PIC X(255).
16298       01  var-6        PIC X(255).
16299       PROCEDURE        DIVISION.
16300           OPEN INPUT test-file-1
16301           CLOSE test-file-1
16302           OPEN INPUT test-file-2
16303           CLOSE test-file-2
16304           OPEN INPUT test-file-3
16305           CLOSE test-file-3
16306           OPEN INPUT test-file-4
16307           CLOSE test-file-4
16308           OPEN INPUT test-file-5
16309           CLOSE test-file-5
16310           OPEN INPUT test-file-6
16311           CLOSE test-file-6
16312           .
16313_ATEOF
16314
16315
16316# Invalid assigns
16317cat >prog2.cob <<'_ATEOF'
16318
16319       IDENTIFICATION   DIVISION.
16320       PROGRAM-ID.      prog.
16321       ENVIRONMENT      DIVISION.
16322       INPUT-OUTPUT     SECTION.
16323       FILE-CONTROL.
16324           SELECT test-file-1 ASSIGN USING not-a-var
16325              ORGANIZATION IS SEQUENTIAL.
16326           SELECT test-file-2 ASSIGN DYNAMIC not-a-var
16327               ORGANIZATION IS SEQUENTIAL.
16328           SELECT test-file-3 ASSIGN DISK FROM not-a-var
16329               ORGANIZATION IS SEQUENTIAL.
16330       DATA             DIVISION.
16331       FILE             SECTION.
16332       FD test-file-1.
16333       01 test-rec-1    PIC X(4).
16334       FD test-file-2.
16335       01 test-rec-2    PIC X(4).
16336       FD test-file-3.
16337       01 test-rec-3    PIC X(4).
16338       PROCEDURE        DIVISION.
16339           OPEN INPUT test-file-1
16340           CLOSE test-file-1
16341           OPEN INPUT test-file-2
16342           CLOSE test-file-2
16343           OPEN INPUT test-file-3
16344           CLOSE test-file-3
16345           .
16346_ATEOF
16347
16348
16349{ set +x
16350$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"
16351at_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"
16352( $at_check_trace; $COMPILE_ONLY -fassign-variable=warning -fassign-using-variable=warning -fassign-ext-dyn=warning -fassign-disk-from=warning prog.cob
16353) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16354at_status=$? at_failed=false
16355$at_check_filter
16356echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ASSIGN USING/VARYING variable used
16357prog.cob:12: warning: ASSIGN USING/VARYING variable used
16358prog.cob:14: warning: ASSIGN USING/VARYING variable used
16359prog.cob:15: warning: ASSIGN EXTERNAL/DYNAMIC used
16360prog.cob:18: warning: ASSIGN DISK FROM used
16361prog.cob:7: warning: ASSIGN variable used
16362" | \
16363  $at_diff - "$at_stderr" || at_failed=:
16364at_fn_diff_devnull "$at_stdout" || at_failed=:
16365at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:416"
16366$at_failed && at_fn_log_failure
16367$at_traceon; }
16368
16369{ set +x
16370$as_echo "$at_srcdir/syn_file.at:424: \$COMPILE_ONLY prog2.cob"
16371at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_file.at:424"
16372( $at_check_trace; $COMPILE_ONLY prog2.cob
16373) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16374at_status=$? at_failed=false
16375$at_check_filter
16376echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: 'not-a-var' is not defined
16377" | \
16378  $at_diff - "$at_stderr" || at_failed=:
16379at_fn_diff_devnull "$at_stdout" || at_failed=:
16380at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:424"
16381$at_failed && at_fn_log_failure
16382$at_traceon; }
16383
16384
16385  set +x
16386  $at_times_p && times >"$at_times_file"
16387) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16388read at_status <"$at_status_file"
16389#AT_STOP_168
16390#AT_START_169
16391at_fn_group_banner 169 'syn_file.at:431' \
16392  "SELECT without ASSIGN" "                          " 2
16393at_xfail=no
16394(
16395  $as_echo "169. $at_setup_line: testing $at_desc ..."
16396  $at_traceon
16397
16398
16399
16400cat >prog.cob <<'_ATEOF'
16401
16402       IDENTIFICATION   DIVISION.
16403       PROGRAM-ID.      prog.
16404       ENVIRONMENT      DIVISION.
16405       INPUT-OUTPUT     SECTION.
16406       FILE-CONTROL.
16407       SELECT TEST-FILE
16408              ORGANIZATION IS SEQUENTIAL.
16409       DATA             DIVISION.
16410       FILE             SECTION.
16411       FD TEST-FILE.
16412       01 TEST-REC      PIC X(4).
16413       PROCEDURE        DIVISION.
16414           OPEN  INPUT TEST-FILE.
16415           CLOSE TEST-FILE.
16416           STOP RUN.
16417_ATEOF
16418
16419
16420{ set +x
16421$as_echo "$at_srcdir/syn_file.at:452: \$COMPILE_ONLY prog.cob"
16422at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:452"
16423( $at_check_trace; $COMPILE_ONLY prog.cob
16424) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16425at_status=$? at_failed=false
16426$at_check_filter
16427echo >>"$at_stderr"; $as_echo "prog.cob:7: error: ASSIGN clause is required for file 'TEST-FILE'
16428" | \
16429  $at_diff - "$at_stderr" || at_failed=:
16430at_fn_diff_devnull "$at_stdout" || at_failed=:
16431at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:452"
16432$at_failed && at_fn_log_failure
16433$at_traceon; }
16434
16435
16436  set +x
16437  $at_times_p && times >"$at_times_file"
16438) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16439read at_status <"$at_status_file"
16440#AT_STOP_169
16441#AT_START_170
16442at_fn_group_banner 170 'syn_file.at:459' \
16443  "START on SEQUENTIAL file" "                       " 2
16444at_xfail=no
16445(
16446  $as_echo "170. $at_setup_line: testing $at_desc ..."
16447  $at_traceon
16448
16449
16450
16451cat >prog.cob <<'_ATEOF'
16452
16453       IDENTIFICATION   DIVISION.
16454       PROGRAM-ID.      prog.
16455       ENVIRONMENT      DIVISION.
16456       INPUT-OUTPUT     SECTION.
16457       FILE-CONTROL.
16458       SELECT TEST-FILE  ASSIGN       "./TEST-FILE"
16459                         ORGANIZATION IS SEQUENTIAL.
16460       SELECT TEST-FILE2 ASSIGN       "./TEST-FILE"
16461                         ORGANIZATION IS LINE SEQUENTIAL.
16462       DATA             DIVISION.
16463       FILE             SECTION.
16464       FD TEST-FILE.
16465       01 TEST-REC      PIC X(4).
16466       FD TEST-FILE2.
16467       01 TEST-REC2     PIC X(4).
16468       PROCEDURE        DIVISION.
16469           OPEN  INPUT TEST-FILE TEST-FILE2
16470           START TEST-FILE  KEY EQUAL TEST-REC
16471           END-START
16472           START TEST-FILE2 KEY EQUAL TEST-REC2
16473           END-START
16474           CLOSE TEST-FILE TEST-FILE2
16475           STOP RUN.
16476_ATEOF
16477
16478
16479{ set +x
16480$as_echo "$at_srcdir/syn_file.at:488: \$COMPILE_ONLY prog.cob"
16481at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:488"
16482( $at_check_trace; $COMPILE_ONLY prog.cob
16483) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16484at_status=$? at_failed=false
16485$at_check_filter
16486echo >>"$at_stderr"; $as_echo "prog.cob:19: error: START not allowed on SEQUENTIAL files
16487prog.cob:21: error: START not allowed on SEQUENTIAL files
16488" | \
16489  $at_diff - "$at_stderr" || at_failed=:
16490at_fn_diff_devnull "$at_stdout" || at_failed=:
16491at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:488"
16492$at_failed && at_fn_log_failure
16493$at_traceon; }
16494
16495
16496  set +x
16497  $at_times_p && times >"$at_times_file"
16498) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16499read at_status <"$at_status_file"
16500#AT_STOP_170
16501#AT_START_171
16502at_fn_group_banner 171 'syn_file.at:496' \
16503  "OPEN SEQUENTIAL file REVERSED" "                  " 2
16504at_xfail=no
16505(
16506  $as_echo "171. $at_setup_line: testing $at_desc ..."
16507  $at_traceon
16508
16509
16510
16511# FIXME: only allowed for INPUT + sequential files (currently not checked).
16512# If added we likely can allow this for LINE SEQUENTIAL, too.
16513
16514cat >prog.cob <<'_ATEOF'
16515
16516       IDENTIFICATION   DIVISION.
16517       PROGRAM-ID.      prog.
16518       ENVIRONMENT      DIVISION.
16519       INPUT-OUTPUT     SECTION.
16520       FILE-CONTROL.
16521       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
16522                        ORGANIZATION IS SEQUENTIAL.
16523       DATA             DIVISION.
16524       FILE             SECTION.
16525       FD TEST-FILE.
16526       01 TEST-REC      PIC X(4).
16527       PROCEDURE        DIVISION.
16528           OPEN  INPUT TEST-FILE
16529           READ TEST-FILE NEXT
16530           END-READ
16531           CLOSE TEST-FILE
16532           OPEN  INPUT TEST-FILE REVERSED
16533           READ TEST-FILE NEXT
16534           END-READ
16535           CLOSE TEST-FILE
16536           OPEN  INPUT TEST-FILE WITH LOCK REVERSED
16537           READ TEST-FILE NEXT
16538           END-READ
16539           CLOSE TEST-FILE
16540           STOP RUN.
16541_ATEOF
16542
16543
16544{ set +x
16545$as_echo "$at_srcdir/syn_file.at:530: \$COMPILE_ONLY prog.cob"
16546at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:530"
16547( $at_check_trace; $COMPILE_ONLY prog.cob
16548) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16549at_status=$? at_failed=false
16550$at_check_filter
16551echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: OPEN REVERSED is not implemented
16552prog.cob:22: warning: OPEN REVERSED is not implemented
16553" | \
16554  $at_diff - "$at_stderr" || at_failed=:
16555at_fn_diff_devnull "$at_stdout" || at_failed=:
16556at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:530"
16557$at_failed && at_fn_log_failure
16558$at_traceon; }
16559
16560
16561# note: as soon as implemented: won't be obsolete in GnuCOBOL, but leave message for now...
16562{ set +x
16563$as_echo "$at_srcdir/syn_file.at:536: \$COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob"
16564at_fn_check_prepare_dynamic "$COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob" "syn_file.at:536"
16565( $at_check_trace; $COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob
16566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16567at_status=$? at_failed=false
16568$at_check_filter
16569echo >>"$at_stderr"; $as_echo "prog.cob:18: error: OPEN REVERSED is obsolete in GnuCOBOL [-Werror=obsolete]
16570prog.cob:22: error: OPEN REVERSED is obsolete in GnuCOBOL [-Werror=obsolete]
16571" | \
16572  $at_diff - "$at_stderr" || at_failed=:
16573at_fn_diff_devnull "$at_stdout" || at_failed=:
16574at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:536"
16575$at_failed && at_fn_log_failure
16576$at_traceon; }
16577
16578
16579  set +x
16580  $at_times_p && times >"$at_times_file"
16581) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16582read at_status <"$at_status_file"
16583#AT_STOP_171
16584#AT_START_172
16585at_fn_group_banner 172 'syn_file.at:544' \
16586  "OPEN SEQUENTIAL file NO REWIND" "                 " 2
16587at_xfail=no
16588(
16589  $as_echo "172. $at_setup_line: testing $at_desc ..."
16590  $at_traceon
16591
16592
16593
16594# FIXME: only allowed for INPUT/OUTPUT sequential files (currently not checked).
16595
16596cat >prog.cob <<'_ATEOF'
16597
16598       IDENTIFICATION   DIVISION.
16599       PROGRAM-ID.      prog.
16600       ENVIRONMENT      DIVISION.
16601       INPUT-OUTPUT     SECTION.
16602       FILE-CONTROL.
16603       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
16604                        ORGANIZATION IS SEQUENTIAL.
16605       DATA             DIVISION.
16606       FILE             SECTION.
16607       FD TEST-FILE.
16608       01 TEST-REC      PIC X(4).
16609       PROCEDURE        DIVISION.
16610           OPEN  OUTPUT TEST-FILE NO REWIND
16611           WRITE TEST-REC FROM "tEsT"
16612           END-WRITE
16613           WRITE TEST-REC FROM "TeSt"
16614           END-WRITE
16615           CLOSE TEST-FILE WITH NO REWIND
16616           OPEN  INPUT TEST-FILE WITH LOCK WITH NO REWIND
16617           READ TEST-FILE NEXT  *> should get EOF
16618           END-READ
16619           CLOSE TEST-FILE
16620           STOP RUN.
16621_ATEOF
16622
16623
16624{ set +x
16625$as_echo "$at_srcdir/syn_file.at:575: \$COMPILE_ONLY prog.cob"
16626at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:575"
16627( $at_check_trace; $COMPILE_ONLY prog.cob
16628) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16629at_status=$? at_failed=false
16630$at_check_filter
16631echo >>"$at_stderr"; $as_echo "prog.cob:14: warning: OPEN WITH NO REWIND is not implemented
16632prog.cob:20: warning: OPEN WITH NO REWIND is not implemented
16633" | \
16634  $at_diff - "$at_stderr" || at_failed=:
16635at_fn_diff_devnull "$at_stdout" || at_failed=:
16636at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:575"
16637$at_failed && at_fn_log_failure
16638$at_traceon; }
16639
16640
16641  set +x
16642  $at_times_p && times >"$at_times_file"
16643) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16644read at_status <"$at_status_file"
16645#AT_STOP_172
16646#AT_START_173
16647at_fn_group_banner 173 'syn_file.at:583' \
16648  "valid key items" "                                " 2
16649at_xfail=no
16650(
16651  $as_echo "173. $at_setup_line: testing $at_desc ..."
16652  $at_traceon
16653
16654
16655
16656cat >prog.cob <<'_ATEOF'
16657
16658       IDENTIFICATION   DIVISION.
16659       PROGRAM-ID.      prog.
16660       ENVIRONMENT      DIVISION.
16661       INPUT-OUTPUT     SECTION.
16662       FILE-CONTROL.
16663       SELECT TEST-SOME ASSIGN TO 'FILE-TEST'
16664                        ORGANIZATION  IS INDEXED
16665                        ACCESS MODE   IS DYNAMIC
16666                        RECORD    KEY IS TEST-P2 IN TEST-SOME
16667                        ALTERNATE KEY IS TEST-P3 IN TEST-SOME.
16668       SELECT TEST-FILE ASSIGN TO 'FILE-TEST2'
16669                        ORGANIZATION  IS INDEXED
16670                        ACCESS MODE   IS DYNAMIC
16671                        RECORD    KEY IS TEST-P1
16672                        ALTERNATE KEY IS TEST-P4.
16673       DATA             DIVISION.
16674       FILE             SECTION.
16675       FD TEST-SOME.
16676       01  SOME-REC.
16677           05  TEST-P2   PIC S9(4) COMP.
16678           05  TEST-P3   PIC S9(5) COMP-3.
16679       FD TEST-FILE.
16680       01  TEST-REC.
16681           05 TEST-P1   PIC X(4).
16682           05 FILLER    PIC X(4).
16683           05 TEST-P4   PIC X(4).
16684       WORKING-STORAGE  SECTION.
16685       01  WS-REC.
16686           05  TEST-P2   PIC S9(4) COMP.
16687           05  TEST-P3   PIC S9(5) COMP-3.
16688       PROCEDURE        DIVISION.
16689           OPEN  INPUT TEST-FILE
16690           CLOSE TEST-FILE
16691           OPEN  OUTPUT TEST-SOME
16692           MOVE CORRESPONDING WS-REC TO SOME-REC
16693           WRITE SOME-REC
16694           CLOSE TEST-SOME
16695      *
16696           STOP RUN.
16697_ATEOF
16698
16699
16700{ set +x
16701$as_echo "$at_srcdir/syn_file.at:628: \$COMPILE_ONLY prog.cob"
16702at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:628"
16703( $at_check_trace; $COMPILE_ONLY prog.cob
16704) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16705at_status=$? at_failed=false
16706$at_check_filter
16707at_fn_diff_devnull "$at_stderr" || at_failed=:
16708at_fn_diff_devnull "$at_stdout" || at_failed=:
16709at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:628"
16710$at_failed && at_fn_log_failure
16711$at_traceon; }
16712
16713
16714  set +x
16715  $at_times_p && times >"$at_times_file"
16716) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16717read at_status <"$at_status_file"
16718#AT_STOP_173
16719#AT_START_174
16720at_fn_group_banner 174 'syn_file.at:633' \
16721  "INDEXED file invalid key items" "                 " 2
16722at_xfail=no
16723(
16724  $as_echo "174. $at_setup_line: testing $at_desc ..."
16725  $at_traceon
16726
16727
16728
16729cat >prog.cob <<'_ATEOF'
16730
16731       IDENTIFICATION   DIVISION.
16732       PROGRAM-ID.      prog.
16733       ENVIRONMENT      DIVISION.
16734       INPUT-OUTPUT     SECTION.
16735       FILE-CONTROL.
16736       SELECT TEST-SOME ASSIGN TO 'FILE-TEST'
16737                        ORGANIZATION  IS INDEXED
16738                        ACCESS MODE   IS DYNAMIC
16739                        RECORD    KEY IS TEST-P2
16740                        ALTERNATE KEY IS TEST-P1
16741                        ALTERNATE KEY IS TEST-P3.
16742       SELECT TEST-FILE ASSIGN TO 'FILE-TEST2'
16743                        ORGANIZATION  IS INDEXED
16744                        ACCESS MODE   IS DYNAMIC
16745                        RECORD    KEY IS TEST-P1
16746                        ALTERNATE KEY IS TEST-P4
16747                        ALTERNATE KEY IS NOT-THERE
16748                        ALTERNATE KEY IS SOME-REC.
16749       SELECT TEST-MORE ASSIGN TO 'FILE-TEST-EXT'
16750                        ORGANIZATION  IS INDEXED
16751                        ACCESS MODE   IS DYNAMIC
16752                        RECORD KEY    IS NOT-HERE-KEY
16753                           SOURCE     IS NOT-IN-FILE1
16754                                         NOT-IN-FILE2.
16755       DATA             DIVISION.
16756       FILE             SECTION.
16757       FD TEST-SOME.
16758       01  SOME-REC  PIC X(20).
16759       FD TEST-FILE.
16760       01  TEST-REC.
16761           05 TEST-P1   PIC X(4).
16762           05 FILLER    PIC X(4).
16763           05 TEST-P4   PIC X(4).
16764       FD TEST-MORE.
16765       01  MORE-REC.
16766           05 MORE-DATA PIC X(4).
16767       WORKING-STORAGE  SECTION.
16768       77  TEST-P2   PIC S9(4) COMP.
16769       77  TEST-P3   PIC S9(5) COMP-3.
16770       PROCEDURE        DIVISION.
16771           OPEN  INPUT TEST-FILE.
16772           CLOSE TEST-FILE.
16773           STOP RUN.
16774_ATEOF
16775
16776
16777# FIXME: "is not defined" should be changed in "is not defined in file ..."
16778{ set +x
16779$as_echo "$at_srcdir/syn_file.at:683: \$COMPILE_ONLY prog.cob"
16780at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:683"
16781( $at_check_trace; $COMPILE_ONLY prog.cob
16782) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16783at_status=$? at_failed=false
16784$at_check_filter
16785echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'TEST-P2' is not defined
16786prog.cob:11: error: 'TEST-P1' is not defined
16787prog.cob:12: error: 'TEST-P3' is not defined
16788prog.cob:18: error: 'NOT-THERE' is not defined
16789prog.cob:13: error: invalid KEY item 'SOME-REC', not in file 'TEST-FILE'
16790prog.cob:24: error: 'NOT-IN-FILE1' is not defined
16791prog.cob:20: error: invalid KEY item 'NOT-HERE-KEY', not in file 'TEST-MORE'
16792prog.cob:25: error: 'NOT-IN-FILE2' is not defined
16793" | \
16794  $at_diff - "$at_stderr" || at_failed=:
16795at_fn_diff_devnull "$at_stdout" || at_failed=:
16796at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:683"
16797$at_failed && at_fn_log_failure
16798$at_traceon; }
16799
16800
16801  set +x
16802  $at_times_p && times >"$at_times_file"
16803) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16804read at_status <"$at_status_file"
16805#AT_STOP_174
16806#AT_START_175
16807at_fn_group_banner 175 'syn_file.at:697' \
16808  "variable record length" "                         " 2
16809at_xfail=no
16810(
16811  $as_echo "175. $at_setup_line: testing $at_desc ..."
16812  $at_traceon
16813
16814
16815
16816cat >prog.cob <<'_ATEOF'
16817
16818       IDENTIFICATION   DIVISION.
16819       PROGRAM-ID.      prog.
16820       ENVIRONMENT      DIVISION.
16821       INPUT-OUTPUT     SECTION.
16822       FILE-CONTROL.
16823       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
16824                        ORGANIZATION IS SEQUENTIAL.
16825       DATA             DIVISION.
16826       FILE             SECTION.
16827       FD TEST-FILE
16828           RECORD IS VARYING IN SIZE
16829           RECORD CONTAINS  1 TO 1250 CHARACTERS.
16830       01  TEST-REC.
16831           05 TEST-P1   PIC X(4).
16832           05 TEST-P2   PIC S9(4) COMP.
16833           05 TEST-P3   PIC S9(5) COMP-3.
16834           05 TEST-P4   PIC S9(5).
16835           05 TEST-P5   PIC S9(2) BINARY.
16836           05 FILLER    PIC X(129).
16837       PROCEDURE        DIVISION.
16838           OPEN  INPUT TEST-FILE.
16839           CLOSE TEST-FILE.
16840           STOP RUN.
16841_ATEOF
16842
16843
16844cat >prog2.cob <<'_ATEOF'
16845
16846       IDENTIFICATION   DIVISION.
16847       PROGRAM-ID.      prog2.
16848       ENVIRONMENT      DIVISION.
16849       INPUT-OUTPUT     SECTION.
16850       FILE-CONTROL.
16851       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
16852                        ORGANIZATION IS INDEXED
16853                        ACCESS MODE  IS DYNAMIC
16854                        RECORD KEY IS TEST-P2
16855                        ALTERNATE KEY IS TEST-P1
16856                        ALTERNATE KEY IS TEST-P3.
16857       DATA             DIVISION.
16858       FILE             SECTION.
16859       FD TEST-FILE
16860           RECORD IS VARYING IN SIZE
16861              FROM 2 TO 1250 CHARACTERS.
16862       01  TEST-REC.
16863           05 TEST-P1   PIC X(4).
16864           05 TEST-P2   PIC S9(4) COMP.
16865           05 TEST-P3   PIC S9(5) COMP-3.
16866           05 TEST-P4   PIC S9(5).
16867           05 TEST-P5   PIC S9(2) BINARY.
16868           05 FILLER    PIC X(129).
16869       01  RECORDSIZE   PIC X(04).
16870       PROCEDURE        DIVISION.
16871           OPEN  INPUT TEST-FILE.
16872           CLOSE TEST-FILE.
16873           STOP RUN.
16874_ATEOF
16875
16876
16877cat >prog3.cob <<'_ATEOF'
16878
16879       IDENTIFICATION   DIVISION.
16880       PROGRAM-ID.      prog3.
16881       ENVIRONMENT      DIVISION.
16882       INPUT-OUTPUT     SECTION.
16883       FILE-CONTROL.
16884       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
16885                        ORGANIZATION IS SEQUENTIAL.
16886       DATA             DIVISION.
16887       FILE             SECTION.
16888       FD TEST-FILE
16889           RECORD CONTAINS  5 TO 10 CHARACTERS.
16890       01  TEST-REC-1.
16891           05 FILLER    PIC X(4).
16892       01  TEST-REC-2.
16893           05 FILLER    PIC X(50).
16894       PROCEDURE        DIVISION.
16895           OPEN  INPUT TEST-FILE.
16896           CLOSE TEST-FILE.
16897           STOP RUN.
16898_ATEOF
16899
16900
16901{ set +x
16902$as_echo "$at_srcdir/syn_file.at:779: \$COMPILE_ONLY prog.cob"
16903at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:779"
16904( $at_check_trace; $COMPILE_ONLY prog.cob
16905) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16906at_status=$? at_failed=false
16907$at_check_filter
16908echo >>"$at_stderr"; $as_echo "prog.cob:13: error: duplicate RECORD clause
16909" | \
16910  $at_diff - "$at_stderr" || at_failed=:
16911at_fn_diff_devnull "$at_stdout" || at_failed=:
16912at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:779"
16913$at_failed && at_fn_log_failure
16914$at_traceon; }
16915
16916
16917{ set +x
16918$as_echo "$at_srcdir/syn_file.at:783: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
16919at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:783"
16920( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
16921) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16922at_status=$? at_failed=false
16923$at_check_filter
16924echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: duplicate RECORD clause
16925" | \
16926  $at_diff - "$at_stderr" || at_failed=:
16927at_fn_diff_devnull "$at_stdout" || at_failed=:
16928at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:783"
16929$at_failed && at_fn_log_failure
16930$at_traceon; }
16931
16932
16933{ set +x
16934$as_echo "$at_srcdir/syn_file.at:787: \$COMPILE_ONLY prog2.cob"
16935at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_file.at:787"
16936( $at_check_trace; $COMPILE_ONLY prog2.cob
16937) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16938at_status=$? at_failed=false
16939$at_check_filter
16940echo >>"$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
16941prog2.cob:19: error: minimal record length 2 can not hold the key item 'TEST-P1'; needs to be at least 4
16942prog2.cob:21: error: minimal record length 2 can not hold the key item 'TEST-P3'; needs to be at least 9
16943" | \
16944  $at_diff - "$at_stderr" || at_failed=:
16945at_fn_diff_devnull "$at_stdout" || at_failed=:
16946at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:787"
16947$at_failed && at_fn_log_failure
16948$at_traceon; }
16949
16950
16951{ set +x
16952$as_echo "$at_srcdir/syn_file.at:793: \$COMPILE_ONLY -std=cobol2014 prog3.cob"
16953at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog3.cob" "syn_file.at:793"
16954( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog3.cob
16955) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16956at_status=$? at_failed=false
16957$at_check_filter
16958echo >>"$at_stderr"; $as_echo "prog3.cob:13: error: size of record 'TEST-REC-1' (4) smaller than minimum of file 'TEST-FILE' (5)
16959prog3.cob:15: error: size of record 'TEST-REC-2' (50) larger than maximum of file 'TEST-FILE' (10)
16960" | \
16961  $at_diff - "$at_stderr" || at_failed=:
16962at_fn_diff_devnull "$at_stdout" || at_failed=:
16963at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:793"
16964$at_failed && at_fn_log_failure
16965$at_traceon; }
16966
16967
16968{ set +x
16969$as_echo "$at_srcdir/syn_file.at:798: \$COMPILE_ONLY prog3.cob"
16970at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_file.at:798"
16971( $at_check_trace; $COMPILE_ONLY prog3.cob
16972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
16973at_status=$? at_failed=false
16974$at_check_filter
16975echo >>"$at_stderr"; $as_echo "prog3.cob:13: warning: size of record 'TEST-REC-1' (4) smaller than minimum of file 'TEST-FILE' (5)
16976prog3.cob:13: warning: file size adjusted
16977prog3.cob:15: warning: size of record 'TEST-REC-2' (50) larger than maximum of file 'TEST-FILE' (10)
16978prog3.cob:15: warning: file size adjusted
16979" | \
16980  $at_diff - "$at_stderr" || at_failed=:
16981at_fn_diff_devnull "$at_stdout" || at_failed=:
16982at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:798"
16983$at_failed && at_fn_log_failure
16984$at_traceon; }
16985
16986
16987  set +x
16988  $at_times_p && times >"$at_times_file"
16989) 5>&1 2>&1 7>&- | eval $at_tee_pipe
16990read at_status <"$at_status_file"
16991#AT_STOP_175
16992#AT_START_176
16993at_fn_group_banner 176 'syn_file.at:808' \
16994  "variable record length DEPENDING item" "          " 2
16995at_xfail=no
16996(
16997  $as_echo "176. $at_setup_line: testing $at_desc ..."
16998  $at_traceon
16999
17000
17001
17002cat >prog.cob <<'_ATEOF'
17003
17004       IDENTIFICATION   DIVISION.
17005       PROGRAM-ID.      prog.
17006       ENVIRONMENT      DIVISION.
17007       INPUT-OUTPUT     SECTION.
17008       FILE-CONTROL.
17009       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
17010                        ORGANIZATION IS SEQUENTIAL.
17011       SELECT TEST-FIL2 ASSIGN TO 'FILE-TEST-2'
17012                        ORGANIZATION IS SEQUENTIAL.
17013       SELECT TEST-FIL3 ASSIGN TO 'FILE-TEST-3'
17014                        ORGANIZATION IS SEQUENTIAL.
17015       SELECT TEST-FIL4 ASSIGN TO 'FILE-TEST-4'
17016                        ORGANIZATION IS SEQUENTIAL.
17017       DATA             DIVISION.
17018       FILE             SECTION.
17019       FD TEST-FILE
17020           RECORD IS VARYING IN SIZE
17021              FROM 12 TO 125 CHARACTERS
17022                 DEPENDING ON RECORDSIZE.
17023       01  TEST-REC.
17024           05 FILLER    PIC X(40).
17025       FD TEST-FIL2
17026           RECORD IS VARYING IN SIZE
17027              FROM 20 TO 250 CHARACTERS
17028                 DEPENDING ON TEST-FILE.
17029       01  TEST-REC2.
17030           05 FILLER       PIC X(129).
17031           05 RECORDSIZE3  PIC 9(04).
17032           05 RECORDSIZE4  PIC X(04).
17033       FD TEST-FIL3
17034           RECORD IS VARYING IN SIZE
17035              FROM 40 TO 50  CHARACTERS
17036                 DEPENDING ON RECORDSIZE3.
17037       01  TEST-REC3.
17038           05 FILLER    PIC X(50).
17039       FD TEST-FIL4
17040           RECORD IS VARYING IN SIZE
17041              FROM 1 TO 2  CHARACTERS
17042                 DEPENDING ON RECORDSIZE4.
17043       01  TEST-REC4.
17044           05 FILLER    PIC X(2).
17045       PROCEDURE        DIVISION.
17046           OPEN  INPUT TEST-FILE.
17047           CLOSE TEST-FILE.
17048           OPEN  INPUT TEST-FIL2.
17049           CLOSE TEST-FIL2.
17050           OPEN  INPUT TEST-FIL3.
17051           CLOSE TEST-FIL3.
17052           OPEN  INPUT TEST-FIL4.
17053           CLOSE TEST-FIL4.
17054           STOP RUN.
17055_ATEOF
17056
17057
17058# FIXME: the check misses "prog.cob:40: error: RECORD DEPENDING item must be unsigned numeric"
17059{ set +x
17060$as_echo "$at_srcdir/syn_file.at:866: \$COMPILE_ONLY prog.cob"
17061at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:866"
17062( $at_check_trace; $COMPILE_ONLY prog.cob
17063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17064at_status=$? at_failed=false
17065$at_check_filter
17066echo >>"$at_stderr"; $as_echo "prog.cob:20: error: 'RECORDSIZE' is not defined
17067prog.cob:26: error: RECORD DEPENDING must reference a data-item
17068prog.cob:34: error: RECORD DEPENDING item 'RECORDSIZE3' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
17069prog.cob:40: error: RECORD DEPENDING item 'RECORDSIZE4' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
17070" | \
17071  $at_diff - "$at_stderr" || at_failed=:
17072at_fn_diff_devnull "$at_stdout" || at_failed=:
17073at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:866"
17074$at_failed && at_fn_log_failure
17075$at_traceon; }
17076
17077{ set +x
17078$as_echo "$at_srcdir/syn_file.at:872: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
17079at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:872"
17080( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
17081) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17082at_status=$? at_failed=false
17083$at_check_filter
17084echo >>"$at_stderr"; $as_echo "prog.cob:20: error: 'RECORDSIZE' is not defined
17085prog.cob:26: error: RECORD DEPENDING must reference a data-item
17086prog.cob:34: warning: RECORD DEPENDING item 'RECORDSIZE3' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
17087prog.cob:40: warning: RECORD DEPENDING item 'RECORDSIZE4' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
17088" | \
17089  $at_diff - "$at_stderr" || at_failed=:
17090at_fn_diff_devnull "$at_stdout" || at_failed=:
17091at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:872"
17092$at_failed && at_fn_log_failure
17093$at_traceon; }
17094
17095
17096  set +x
17097  $at_times_p && times >"$at_times_file"
17098) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17099read at_status <"$at_status_file"
17100#AT_STOP_176
17101#AT_START_177
17102at_fn_group_banner 177 'syn_file.at:882' \
17103  "DECLARATIVES invalid procedure reference (1)" "   " 2
17104at_xfail=no
17105(
17106  $as_echo "177. $at_setup_line: testing $at_desc ..."
17107  $at_traceon
17108
17109
17110
17111cat >prog.cob <<'_ATEOF'
17112
17113       IDENTIFICATION   DIVISION.
17114       PROGRAM-ID.      prog.
17115       ENVIRONMENT      DIVISION.
17116       INPUT-OUTPUT     SECTION.
17117       FILE-CONTROL.
17118       SELECT GO-FILE   ASSIGN       "./TEST-FILE"
17119                        ORGANIZATION IS LINE SEQUENTIAL.
17120       SELECT PERF-FILE ASSIGN       "./TEST-FILE"
17121                        ORGANIZATION IS LINE SEQUENTIAL.
17122       DATA             DIVISION.
17123       FILE             SECTION.
17124       FD GO-FILE.
17125       01 GO-REC      PIC X(4).
17126       FD PERF-FILE.
17127       01 PERF-REC      PIC X(4).
17128       PROCEDURE        DIVISION.
17129       DECLARATIVES.
17130       G01 SECTION.
17131           USE AFTER ERROR PROCEDURE ON GO-FILE.
17132       G02.
17133           DISPLAY "OK"
17134           END-DISPLAY.
17135           GO TO GG02.
17136       P01 SECTION.
17137           USE AFTER ERROR PROCEDURE ON PERF-FILE.
17138       P02.
17139           DISPLAY "OK"
17140           END-DISPLAY.
17141      * programs may do this -> nothing happens there with PERF-FILE
17142           PERFORM PPOK.
17143      * programs should not do this
17144      * (the compiler currently cannot distinguish this)
17145           PERFORM PP02.
17146       END DECLARATIVES.
17147       GG01 SECTION.
17148       GG02.
17149           OPEN  INPUT GO-FILE.
17150           CLOSE GO-FILE.
17151       PP01 SECTION.
17152       PP02.
17153           OPEN  INPUT PERF-FILE.
17154           CLOSE PERF-FILE.
17155       PP03.
17156           DISPLAY 'LOG OUTPUT HERE'.
17157       PPOK.
17158           STOP RUN.
17159_ATEOF
17160
17161
17162{ set +x
17163$as_echo "$at_srcdir/syn_file.at:934: \$COMPILE_ONLY -Wno-dialect prog.cob"
17164at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-dialect prog.cob" "syn_file.at:934"
17165( $at_check_trace; $COMPILE_ONLY -Wno-dialect prog.cob
17166) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17167at_status=$? at_failed=false
17168$at_check_filter
17169at_fn_diff_devnull "$at_stderr" || at_failed=:
17170at_fn_diff_devnull "$at_stdout" || at_failed=:
17171at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:934"
17172$at_failed && at_fn_log_failure
17173$at_traceon; }
17174
17175
17176{ set +x
17177$as_echo "$at_srcdir/syn_file.at:936: \$COMPILE_ONLY prog.cob"
17178at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:936"
17179( $at_check_trace; $COMPILE_ONLY prog.cob
17180) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17181at_status=$? at_failed=false
17182$at_check_filter
17183echo >>"$at_stderr"; $as_echo "prog.cob: in section 'G01':
17184prog.cob: in paragraph 'G02':
17185prog.cob:24: warning: 'GG02' is not in DECLARATIVES
17186prog.cob: in section 'P01':
17187prog.cob: in paragraph 'P02':
17188prog.cob:31: warning: 'PPOK' is not in DECLARATIVES
17189prog.cob:34: warning: 'PP02' is not in DECLARATIVES
17190" | \
17191  $at_diff - "$at_stderr" || at_failed=:
17192at_fn_diff_devnull "$at_stdout" || at_failed=:
17193at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:936"
17194$at_failed && at_fn_log_failure
17195$at_traceon; }
17196
17197
17198{ set +x
17199$as_echo "$at_srcdir/syn_file.at:946: \$COMPILE_ONLY -freference-out-of-declaratives=ok prog.cob"
17200at_fn_check_prepare_dynamic "$COMPILE_ONLY -freference-out-of-declaratives=ok prog.cob" "syn_file.at:946"
17201( $at_check_trace; $COMPILE_ONLY -freference-out-of-declaratives=ok prog.cob
17202) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17203at_status=$? at_failed=false
17204$at_check_filter
17205at_fn_diff_devnull "$at_stderr" || at_failed=:
17206at_fn_diff_devnull "$at_stdout" || at_failed=:
17207at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:946"
17208$at_failed && at_fn_log_failure
17209$at_traceon; }
17210
17211
17212{ set +x
17213$as_echo "$at_srcdir/syn_file.at:948: \$COMPILE_ONLY -std=cobol2014 prog.cob"
17214at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_file.at:948"
17215( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
17216) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17217at_status=$? at_failed=false
17218$at_check_filter
17219echo >>"$at_stderr"; $as_echo "prog.cob: in section 'G01':
17220prog.cob: in paragraph 'G02':
17221prog.cob:24: error: 'GG02' is not in DECLARATIVES
17222prog.cob: in section 'P01':
17223prog.cob: in paragraph 'P02':
17224prog.cob:31: error: 'PPOK' is not in DECLARATIVES
17225prog.cob:34: error: 'PP02' is not in DECLARATIVES
17226" | \
17227  $at_diff - "$at_stderr" || at_failed=:
17228at_fn_diff_devnull "$at_stdout" || at_failed=:
17229at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:948"
17230$at_failed && at_fn_log_failure
17231$at_traceon; }
17232
17233
17234{ set +x
17235$as_echo "$at_srcdir/syn_file.at:958: \$COMPILE_ONLY -std=cobol2014 -frelax-syntax prog.cob"
17236at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 -frelax-syntax prog.cob" "syn_file.at:958"
17237( $at_check_trace; $COMPILE_ONLY -std=cobol2014 -frelax-syntax prog.cob
17238) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17239at_status=$? at_failed=false
17240$at_check_filter
17241echo >>"$at_stderr"; $as_echo "prog.cob: in section 'G01':
17242prog.cob: in paragraph 'G02':
17243prog.cob:24: warning: 'GG02' is not in DECLARATIVES
17244prog.cob: in section 'P01':
17245prog.cob: in paragraph 'P02':
17246prog.cob:31: warning: 'PPOK' is not in DECLARATIVES
17247prog.cob:34: warning: 'PP02' is not in DECLARATIVES
17248" | \
17249  $at_diff - "$at_stderr" || at_failed=:
17250at_fn_diff_devnull "$at_stdout" || at_failed=:
17251at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:958"
17252$at_failed && at_fn_log_failure
17253$at_traceon; }
17254
17255
17256  set +x
17257  $at_times_p && times >"$at_times_file"
17258) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17259read at_status <"$at_status_file"
17260#AT_STOP_177
17261#AT_START_178
17262at_fn_group_banner 178 'syn_file.at:971' \
17263  "DECLARATIVES invalid procedure reference (2)" "   " 2
17264at_xfail=no
17265(
17266  $as_echo "178. $at_setup_line: testing $at_desc ..."
17267  $at_traceon
17268
17269
17270
17271cat >prog.cob <<'_ATEOF'
17272
17273       IDENTIFICATION   DIVISION.
17274       PROGRAM-ID.      prog.
17275       ENVIRONMENT      DIVISION.
17276       INPUT-OUTPUT     SECTION.
17277       FILE-CONTROL.
17278       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
17279                        ORGANIZATION IS LINE SEQUENTIAL.
17280       DATA             DIVISION.
17281       FILE             SECTION.
17282       FD TEST-FILE.
17283       01 TEST-REC      PIC X(4).
17284       PROCEDURE        DIVISION.
17285       DECLARATIVES.
17286       P01 SECTION.
17287           USE AFTER ERROR PROCEDURE ON TEST-FILE.
17288       P02.
17289           DISPLAY "OK"
17290           END-DISPLAY.
17291       END DECLARATIVES.
17292       PP01 SECTION.
17293       PP02.
17294           OPEN  INPUT TEST-FILE.
17295           CLOSE TEST-FILE.
17296           PERFORM P02.
17297           GO TO P02.
17298           STOP RUN.
17299_ATEOF
17300
17301
17302{ set +x
17303$as_echo "$at_srcdir/syn_file.at:1003: \$COMPILE_ONLY prog.cob"
17304at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1003"
17305( $at_check_trace; $COMPILE_ONLY prog.cob
17306) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17307at_status=$? at_failed=false
17308$at_check_filter
17309echo >>"$at_stderr"; $as_echo "prog.cob: in section 'PP01':
17310prog.cob: in paragraph 'PP02':
17311prog.cob:26: error: invalid reference to 'P02' (in DECLARATIVES)
17312" | \
17313  $at_diff - "$at_stderr" || at_failed=:
17314at_fn_diff_devnull "$at_stdout" || at_failed=:
17315at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1003"
17316$at_failed && at_fn_log_failure
17317$at_traceon; }
17318
17319
17320  set +x
17321  $at_times_p && times >"$at_times_file"
17322) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17323read at_status <"$at_status_file"
17324#AT_STOP_178
17325#AT_START_179
17326at_fn_group_banner 179 'syn_file.at:1012' \
17327  "EXTERNAL file" "                                  " 2
17328at_xfail=no
17329(
17330  $as_echo "179. $at_setup_line: testing $at_desc ..."
17331  $at_traceon
17332
17333
17334
17335cat >prog.cob <<'_ATEOF'
17336
17337       IDENTIFICATION DIVISION.
17338       PROGRAM-ID. prog.
17339
17340       ENVIRONMENT DIVISION.
17341       INPUT-OUTPUT SECTION.
17342       FILE-CONTROL.
17343           SELECT my-file
17344               ASSIGN TO "somefile"
17345               ORGANIZATION IS SEQUENTIAL.
17346
17347       DATA DIVISION.
17348       FILE SECTION.
17349       FD my-file EXTERNAL.
17350       01 my-record.
17351           03 my-record-data PIC X(80).
17352
17353       PROCEDURE DIVISION.
17354           GOBACK.
17355_ATEOF
17356
17357
17358{ set +x
17359$as_echo "$at_srcdir/syn_file.at:1036: \$COMPILE_ONLY prog.cob"
17360at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1036"
17361( $at_check_trace; $COMPILE_ONLY prog.cob
17362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17363at_status=$? at_failed=false
17364$at_check_filter
17365at_fn_diff_devnull "$at_stderr" || at_failed=:
17366at_fn_diff_devnull "$at_stdout" || at_failed=:
17367at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1036"
17368$at_failed && at_fn_log_failure
17369$at_traceon; }
17370
17371  set +x
17372  $at_times_p && times >"$at_times_file"
17373) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17374read at_status <"$at_status_file"
17375#AT_STOP_179
17376#AT_START_180
17377at_fn_group_banner 180 'syn_file.at:1040' \
17378  "RECORDING MODE" "                                 " 2
17379at_xfail=no
17380(
17381  $as_echo "180. $at_setup_line: testing $at_desc ..."
17382  $at_traceon
17383
17384
17385
17386cat >prog.cob <<'_ATEOF'
17387
17388       IDENTIFICATION DIVISION.
17389       PROGRAM-ID. prog.
17390
17391       ENVIRONMENT DIVISION.
17392       INPUT-OUTPUT SECTION.
17393       FILE-CONTROL.
17394           SELECT f ASSIGN "f.dat" LINE SEQUENTIAL.
17395
17396       DATA DIVISION.
17397       FILE SECTION.
17398       FD  f RECORDING MODE IS U.
17399       01  x PIC X.
17400
17401       PROCEDURE DIVISION.
17402           OPEN INPUT f
17403           CLOSE f
17404           .
17405_ATEOF
17406
17407
17408{ set +x
17409$as_echo "$at_srcdir/syn_file.at:1063: \$COMPILE_ONLY prog.cob"
17410at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1063"
17411( $at_check_trace; $COMPILE_ONLY prog.cob
17412) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17413at_status=$? at_failed=false
17414$at_check_filter
17415echo >>"$at_stderr"; $as_echo "prog.cob:12: error: RECORDING MODE U or S can only be used with RECORD SEQUENTIAL files
17416" | \
17417  $at_diff - "$at_stderr" || at_failed=:
17418at_fn_diff_devnull "$at_stdout" || at_failed=:
17419at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1063"
17420$at_failed && at_fn_log_failure
17421$at_traceon; }
17422
17423  set +x
17424  $at_times_p && times >"$at_times_file"
17425) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17426read at_status <"$at_status_file"
17427#AT_STOP_180
17428#AT_START_181
17429at_fn_group_banner 181 'syn_file.at:1069' \
17430  "CODE-SET clause" "                                " 2
17431at_xfail=no
17432(
17433  $as_echo "181. $at_setup_line: testing $at_desc ..."
17434  $at_traceon
17435
17436
17437
17438cat >prog.cob <<'_ATEOF'
17439
17440       IDENTIFICATION DIVISION.
17441       PROGRAM-ID. prog.
17442
17443       ENVIRONMENT DIVISION.
17444       CONFIGURATION SECTION.
17445       SPECIAL-NAMES.
17446           ALPHABET A IS ASCII.
17447
17448       INPUT-OUTPUT SECTION.
17449       FILE-CONTROL.
17450           SELECT f, ASSIGN "f.dat", LINE SEQUENTIAL.
17451           SELECT g, ASSIGN "g.dat", LINE SEQUENTIAL.
17452
17453       DATA DIVISION.
17454       FILE SECTION.
17455       FD  f CODE-SET A.
17456       01  f-rec PIC X(10).
17457
17458       FD  g CODE-SET foo.
17459       01  g-rec PIC X(10).
17460_ATEOF
17461
17462
17463{ set +x
17464$as_echo "$at_srcdir/syn_file.at:1095: \$COMPILE_ONLY prog.cob"
17465at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1095"
17466( $at_check_trace; $COMPILE_ONLY prog.cob
17467) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17468at_status=$? at_failed=false
17469$at_check_filter
17470echo >>"$at_stderr"; $as_echo "prog.cob:17: warning: ignoring CODE-SET 'A'
17471prog.cob:20: error: 'foo' is not defined
17472prog.cob:20: error: 'foo' is not an alphabet-name
17473" | \
17474  $at_diff - "$at_stderr" || at_failed=:
17475at_fn_diff_devnull "$at_stdout" || at_failed=:
17476at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1095"
17477$at_failed && at_fn_log_failure
17478$at_traceon; }
17479
17480  set +x
17481  $at_times_p && times >"$at_times_file"
17482) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17483read at_status <"$at_status_file"
17484#AT_STOP_181
17485#AT_START_182
17486at_fn_group_banner 182 'syn_file.at:1103' \
17487  "CODE-SET FOR clause" "                            " 2
17488at_xfail=no
17489(
17490  $as_echo "182. $at_setup_line: testing $at_desc ..."
17491  $at_traceon
17492
17493
17494
17495cat >prog.cob <<'_ATEOF'
17496
17497       IDENTIFICATION DIVISION.
17498       PROGRAM-ID. prog.
17499
17500       ENVIRONMENT DIVISION.
17501       CONFIGURATION SECTION.
17502       SPECIAL-NAMES.
17503           ALPHABET A IS EBCDIC.
17504
17505       INPUT-OUTPUT SECTION.
17506       FILE-CONTROL.
17507           SELECT f ASSIGN "f.dat" LINE SEQUENTIAL.
17508
17509       DATA DIVISION.
17510       FILE SECTION.
17511       FD  f CODE-SET A FOR x, y, z.
17512       01  x.
17513           03  y PIC X(10).
17514       01  x-2.
17515           03  z PIC X(10).
17516_ATEOF
17517
17518
17519{ set +x
17520$as_echo "$at_srcdir/syn_file.at:1128: \$COMPILE_ONLY prog.cob"
17521at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1128"
17522( $at_check_trace; $COMPILE_ONLY prog.cob
17523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17524at_status=$? at_failed=false
17525$at_check_filter
17526echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: FOR sub-records is not implemented
17527prog.cob:16: warning: CODE-SET is not implemented
17528prog.cob:16: error: FOR item 'x' is a record
17529prog.cob:16: error: FOR item 'z' is in different record to 'x'
17530" | \
17531  $at_diff - "$at_stderr" || at_failed=:
17532at_fn_diff_devnull "$at_stdout" || at_failed=:
17533at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1128"
17534$at_failed && at_fn_log_failure
17535$at_traceon; }
17536
17537  set +x
17538  $at_times_p && times >"$at_times_file"
17539) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17540read at_status <"$at_status_file"
17541#AT_STOP_182
17542#AT_START_183
17543at_fn_group_banner 183 'syn_file.at:1137' \
17544  "WRITE / REWRITE FROM clause and FILE" "           " 2
17545at_xfail=no
17546(
17547  $as_echo "183. $at_setup_line: testing $at_desc ..."
17548  $at_traceon
17549
17550
17551
17552cat >prog.cob <<'_ATEOF'
17553
17554       IDENTIFICATION DIVISION.
17555       PROGRAM-ID.    prog.
17556       ENVIRONMENT    DIVISION.
17557       INPUT-OUTPUT   SECTION.
17558       FILE-CONTROL.
17559       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
17560                        ORGANIZATION IS INDEXED
17561                        ACCESS MODE  IS DYNAMIC
17562                        RECORD KEY   IS TEST-P1.
17563       DATA             DIVISION.
17564       FILE             SECTION.
17565       FD TEST-FILE.
17566       01  TEST-REC.
17567           05 TEST-P1   PIC X(4).
17568           05 TEST-P2   PIC S9(4) COMP.
17569       WORKING-STORAGE  SECTION.
17570       01  SOME-REC     PIC X(04).
17571           88  SOME-VAL VALUE 'ABCD'.
17572       PROCEDURE        DIVISION.
17573           OPEN  I-O TEST-FILE.
17574           WRITE   SOME-VAL.
17575           WRITE   SOME-REC.
17576           WRITE   TEST-REC.
17577           WRITE   TEST-REC FROM SOME-REC.
17578           WRITE   TEST-FILE.
17579           WRITE   FILE TEST-REC.
17580           WRITE   FILE TEST-FILE.
17581           WRITE   FILE TEST-FILE FROM TEST-REC.
17582           WRITE   FILE TEST-FILE FROM SOME-REC.
17583           REWRITE SOME-VAL.
17584           REWRITE SOME-REC.
17585           REWRITE TEST-REC.
17586           REWRITE TEST-REC FROM SOME-REC.
17587           REWRITE TEST-FILE.
17588           REWRITE FILE TEST-REC.
17589           REWRITE FILE TEST-FILE.
17590           REWRITE FILE TEST-FILE FROM TEST-REC.
17591           REWRITE FILE TEST-FILE FROM SOME-REC.
17592           CLOSE TEST-FILE.
17593           STOP RUN.
17594_ATEOF
17595
17596
17597{ set +x
17598$as_echo "$at_srcdir/syn_file.at:1183: \$COMPILE_ONLY prog.cob"
17599at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1183"
17600( $at_check_trace; $COMPILE_ONLY prog.cob
17601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17602at_status=$? at_failed=false
17603$at_check_filter
17604echo >>"$at_stderr"; $as_echo "prog.cob:22: error: condition-name not allowed here: 'SOME-VAL'
17605prog.cob:23: error: WRITE subject does not refer to a record name
17606prog.cob:26: error: WRITE requires a record name as subject
17607prog.cob:27: error: 'TEST-REC' is not a file name
17608prog.cob:28: error: WRITE FILE requires a FROM clause
17609prog.cob:31: error: condition-name not allowed here: 'SOME-VAL'
17610prog.cob:32: error: REWRITE subject does not refer to a record name
17611prog.cob:35: error: REWRITE requires a record name as subject
17612prog.cob:36: error: 'TEST-REC' is not a file name
17613prog.cob:37: error: REWRITE FILE requires a FROM clause
17614" | \
17615  $at_diff - "$at_stderr" || at_failed=:
17616at_fn_diff_devnull "$at_stdout" || at_failed=:
17617at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1183"
17618$at_failed && at_fn_log_failure
17619$at_traceon; }
17620
17621  set +x
17622  $at_times_p && times >"$at_times_file"
17623) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17624read at_status <"$at_status_file"
17625#AT_STOP_183
17626#AT_START_184
17627at_fn_group_banner 184 'syn_file.at:1198' \
17628  "Clauses following invalid ACCESS clause" "        " 2
17629at_xfail=no
17630(
17631  $as_echo "184. $at_setup_line: testing $at_desc ..."
17632  $at_traceon
17633
17634
17635
17636cat >prog.cob <<'_ATEOF'
17637
17638       IDENTIFICATION DIVISION.
17639       PROGRAM-ID.    prog.
17640
17641       ENVIRONMENT    DIVISION.
17642       INPUT-OUTPUT   SECTION.
17643       FILE-CONTROL.
17644           SELECT testfile
17645               ASSIGN TO filename
17646               ORGANIZATION RELATIVE
17647               ACCESS IS sequentia
17648               STATUS IS stat.
17649_ATEOF
17650
17651
17652{ set +x
17653$as_echo "$at_srcdir/syn_file.at:1215: \$COMPILE_ONLY prog.cob"
17654at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1215"
17655( $at_check_trace; $COMPILE_ONLY prog.cob
17656) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17657at_status=$? at_failed=false
17658$at_check_filter
17659echo >>"$at_stderr"; $as_echo "prog.cob:11: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
17660prog.cob:8: error: missing file description for FILE testfile
17661" | \
17662  $at_diff - "$at_stderr" || at_failed=:
17663at_fn_diff_devnull "$at_stdout" || at_failed=:
17664at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1215"
17665$at_failed && at_fn_log_failure
17666$at_traceon; }
17667
17668  set +x
17669  $at_times_p && times >"$at_times_file"
17670) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17671read at_status <"$at_status_file"
17672#AT_STOP_184
17673#AT_START_185
17674at_fn_group_banner 185 'syn_file.at:1222' \
17675  "RELATIVE KEY type checks" "                       " 2
17676at_xfail=no
17677(
17678  $as_echo "185. $at_setup_line: testing $at_desc ..."
17679  $at_traceon
17680
17681
17682
17683cat >prog.cob <<'_ATEOF'
17684
17685       IDENTIFICATION DIVISION.
17686       PROGRAM-ID. prog.
17687       ENVIRONMENT DIVISION.
17688       INPUT-OUTPUT SECTION.
17689       FILE-CONTROL.
17690            SELECT FILE1 ASSIGN DISK
17691            ORGANIZATION RELATIVE ACCESS MODE RANDOM
17692            RELATIVE KEY FILE1-KEY.
17693            SELECT FILE2 ASSIGN DISK
17694            ORGANIZATION RELATIVE ACCESS MODE RANDOM
17695            RELATIVE KEY FILE2-KEY.
17696            SELECT FILE3 ASSIGN DISK
17697            ORGANIZATION RELATIVE ACCESS MODE RANDOM
17698            RELATIVE KEY FILE3-KEY.
17699            SELECT FILE4 ASSIGN DISK
17700            ORGANIZATION RELATIVE ACCESS MODE RANDOM
17701            RELATIVE KEY FILE4-KEY.
17702            SELECT FILE5 ASSIGN DISK
17703            ORGANIZATION RELATIVE ACCESS MODE RANDOM
17704            RELATIVE KEY FILE5-KEY.
17705       DATA DIVISION.
17706       FILE SECTION.
17707       FD FILE1.
17708       01  FILE1-REC PIC X.
17709       FD FILE2.
17710       01  FILE2-REC PIC X.
17711       FD FILE3.
17712       01  FILE3-REC PIC X.
17713       FD FILE4.
17714       01  FILE4-REC.
17715          05  FLD1      PIC X.
17716          05  FILE4-KEY PIC 999.
17717       FD FILE5.
17718       01  FILE5-REC PIC X.
17719       WORKING-STORAGE SECTION.
17720       77  FILE1-KEY PIC XXXX.
17721       01  FILE2-KEY.
17722           05  F2-KEY PIC 9(5).
17723       01  F3-KEY.
17724           05  FILE3-KEY PIC 9(5) OCCURS 2 TIMES.
17725       77  FILE5-KEY PIC 999V9.
17726       PROCEDURE DIVISION.
17727            STOP RUN.
17728_ATEOF
17729
17730
17731{ set +x
17732$as_echo "$at_srcdir/syn_file.at:1271: \$COMPILE_ONLY prog.cob"
17733at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1271"
17734( $at_check_trace; $COMPILE_ONLY prog.cob
17735) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17736at_status=$? at_failed=false
17737$at_check_filter
17738echo >>"$at_stderr"; $as_echo "prog.cob:9: error: file FILE1: RELATIVE KEY FILE1-KEY is not numeric
17739prog.cob:12: error: file FILE2: RELATIVE KEY FILE2-KEY is not numeric
17740prog.cob:15: error: file FILE3: RELATIVE KEY FILE3-KEY cannot have OCCURS
17741prog.cob:18: error: RELATIVE KEY FILE4-KEY cannot be in file record belonging to FILE4
17742prog.cob:21: error: file FILE5: RELATIVE KEY FILE5-KEY must be integer
17743" | \
17744  $at_diff - "$at_stderr" || at_failed=:
17745at_fn_diff_devnull "$at_stdout" || at_failed=:
17746at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1271"
17747$at_failed && at_fn_log_failure
17748$at_traceon; }
17749
17750
17751  set +x
17752  $at_times_p && times >"$at_times_file"
17753) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17754read at_status <"$at_status_file"
17755#AT_STOP_185
17756#AT_START_186
17757at_fn_group_banner 186 'syn_file.at:1282' \
17758  "Mismatched KEY clause" "                          " 2
17759at_xfail=no
17760(
17761  $as_echo "186. $at_setup_line: testing $at_desc ..."
17762  $at_traceon
17763
17764
17765
17766cat >prog.cob <<'_ATEOF'
17767
17768       IDENTIFICATION DIVISION.
17769       PROGRAM-ID. prog.
17770       ENVIRONMENT DIVISION.
17771       INPUT-OUTPUT SECTION.
17772       FILE-CONTROL.
17773            SELECT file-1 ASSIGN DISK,
17774                INDEXED, RELATIVE KEY file-1-key.
17775            SELECT file-2 ASSIGN DISK,
17776                RELATIVE, RECORD KEY file-2-key.
17777_ATEOF
17778
17779
17780{ set +x
17781$as_echo "$at_srcdir/syn_file.at:1297: \$COMPILE_ONLY prog.cob"
17782at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1297"
17783( $at_check_trace; $COMPILE_ONLY prog.cob
17784) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17785at_status=$? at_failed=false
17786$at_check_filter
17787echo >>"$at_stderr"; $as_echo "prog.cob:8: error: cannot use RELATIVE KEY clause on INDEXED files
17788prog.cob:10: error: cannot use RECORD KEY clause on RELATIVE files
17789prog.cob:7: error: missing file description for FILE file-1
17790prog.cob:8: error: 'file-1-key' is not defined
17791prog.cob:9: error: missing file description for FILE file-2
17792prog.cob:10: error: 'file-2-key' is not defined
17793" | \
17794  $at_diff - "$at_stderr" || at_failed=:
17795at_fn_diff_devnull "$at_stdout" || at_failed=:
17796at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1297"
17797$at_failed && at_fn_log_failure
17798$at_traceon; }
17799
17800
17801  set +x
17802  $at_times_p && times >"$at_times_file"
17803) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17804read at_status <"$at_status_file"
17805#AT_STOP_186
17806#AT_START_187
17807at_fn_group_banner 187 'syn_file.at:1309' \
17808  "RECORD DELIMITER" "                               " 2
17809at_xfail=no
17810(
17811  $as_echo "187. $at_setup_line: testing $at_desc ..."
17812  $at_traceon
17813
17814
17815
17816cat >prog.cob <<'_ATEOF'
17817
17818       IDENTIFICATION DIVISION.
17819       PROGRAM-ID. prog.
17820
17821       ENVIRONMENT DIVISION.
17822       INPUT-OUTPUT SECTION.
17823       FILE-CONTROL.
17824           *> Valid.
17825           SELECT good-1 ASSIGN "a"
17826               RECORD DELIMITER LINE-SEQUENTIAL.
17827
17828           SELECT good-2 ASSIGN "a"
17829               SEQUENTIAL
17830               RECORD DELIMITER LINE-SEQUENTIAL.
17831
17832           SELECT good-3 ASSIGN "a"
17833               RECORD DELIMITER LINE-SEQUENTIAL
17834               LINE SEQUENTIAL.
17835
17836           SELECT good-4 ASSIGN "a"
17837               RECORD DELIMITER BINARY-SEQUENTIAL.
17838
17839           *> Warning.
17840           SELECT ok-i-guess-1 ASSIGN "a"
17841               RECORD DELIMITER STANDARD-1.
17842
17843           SELECT ok-i-guess-2 ASSIGN "a"
17844               RECORD DELIMITER THE-END-OF-THE-WORLD.
17845
17846           *> Not valid.
17847           SELECT bad-1 ASSIGN "a"
17848               RECORD DELIMITER LINE-SEQUENTIAL
17849               INDEXED
17850               RECORD KEY bad-1-rec.
17851
17852           SELECT bad-2 ASSIGN "a"
17853               INDEXED
17854               RECORD KEY bad-2-rec
17855               RECORD DELIMITER LINE-SEQUENTIAL.
17856
17857           SELECT bad-3 ASSIGN "a"
17858               LINE SEQUENTIAL
17859               RECORD DELIMITER BINARY-SEQUENTIAL.
17860
17861           SELECT bad-4 ASSIGN "a"
17862               LINE SEQUENTIAL
17863               RECORD DELIMITER STANDARD-1.
17864
17865           SELECT bad-5 ASSIGN "a"
17866               RECORD DELIMITER BINARY-SEQUENTIAL.
17867
17868       DATA DIVISION.
17869       FILE SECTION.
17870       FD  good-1.
17871       01  good-1-rec PIC 9.
17872       01  good-1-rec-2 PIC 99.
17873
17874       FD  good-2 RECORD VARYING FROM 1 TO 5 CHARACTERS.
17875       01  good-2-rec PIC 9.
17876
17877       FD  good-3.
17878       01  good-3-rec PIC 9.
17879       01  good-3-rec-2 PIC 99.
17880
17881       FD  good-4 RECORD CONTAINS 1 TO 5 CHARACTERS.
17882       01  good-4-rec PIC 9.
17883
17884       FD  ok-i-guess-1.
17885       01  ok-i-guess-1-rec PIC 9.
17886       01  ok-i-guess-1-rec-2 PIC 99.
17887
17888       FD  ok-i-guess-2.
17889       01  ok-i-guess-2-rec PIC 9.
17890       01  ok-i-guess-2-rec-2 PIC 99.
17891
17892       FD  bad-1.
17893       01  bad-1-rec PIC 9.
17894
17895       FD  bad-2.
17896       01  bad-2-rec PIC 9.
17897
17898       FD  bad-3.
17899       01  bad-3-rec PIC 9.
17900
17901       FD  bad-4.
17902       01  bad-4-rec PIC 9.
17903
17904       FD  bad-5 RECORD CONTAINS 1 CHARACTERS.
17905       01  bad-5-rec PIC 9.
17906_ATEOF
17907
17908
17909{ set +x
17910$as_echo "$at_srcdir/syn_file.at:1403: \$COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob"
17911at_fn_check_prepare_dynamic "$COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob" "syn_file.at:1403"
17912( $at_check_trace; $COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob
17913) >>"$at_stdout" 2>>"$at_stderr" 5>&-
17914at_status=$? at_failed=false
17915$at_check_filter
17916echo >>"$at_stderr"; $as_echo "prog.cob:25: warning: RECORD DELIMITER STANDARD-1 ignored
17917prog.cob:28: warning: RECORD DELIMITER THE-END-OF-THE-WORLD not recognized; will be ignored
17918prog.cob:33: error: ORGANIZATION INDEXED is incompatible with RECORD DELIMITER
17919prog.cob:39: error: RECORD DELIMITER LINE-SEQUENTIAL only allowed with (LINE) SEQUENTIAL files
17920prog.cob:36: error: RECORD clause is invalid for file 'bad-2' (file type)
17921prog.cob:43: error: RECORD DELIMITER BINARY-SEQUENTIAL only allowed with SEQUENTIAL files
17922prog.cob:47: error: RECORD DELIMITER STANDARD-1 only allowed with SEQUENTIAL files
17923prog.cob:76: warning: RECORD DELIMITER clause on file with fixed-length records used
17924prog.cob:88: warning: RECORD DELIMITER clause on file with fixed-length records used
17925" | \
17926  $at_diff - "$at_stderr" || at_failed=:
17927at_fn_diff_devnull "$at_stdout" || at_failed=:
17928at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1403"
17929$at_failed && at_fn_log_failure
17930$at_traceon; }
17931
17932  set +x
17933  $at_times_p && times >"$at_times_file"
17934) 5>&1 2>&1 7>&- | eval $at_tee_pipe
17935read at_status <"$at_status_file"
17936#AT_STOP_187
17937#AT_START_188
17938at_fn_group_banner 188 'syn_file.at:1417' \
17939  "FILE STATUS" "                                    " 2
17940at_xfail=no
17941(
17942  $as_echo "188. $at_setup_line: testing $at_desc ..."
17943  $at_traceon
17944
17945
17946
17947cat >prog.cob <<'_ATEOF'
17948
17949       IDENTIFICATION DIVISION.
17950       PROGRAM-ID. prog.
17951
17952       ENVIRONMENT DIVISION.
17953       INPUT-OUTPUT SECTION.
17954       FILE-CONTROL.
17955           SELECT f ASSIGN "f.txt" FILE STATUS fs.
17956           SELECT g ASSIGN "g.txt" FILE STATUS gs.
17957           SELECT h ASSIGN "h.txt" FILE STATUS hs.
17958           SELECT j ASSIGN "j.txt" FILE STATUS js.
17959           SELECT k ASSIGN "k.txt" FILE STATUS ks.
17960           SELECT l ASSIGN "l.txt" FILE STATUS ls.
17961           SELECT m ASSIGN "m.txt" FILE STATUS ms.
17962           SELECT n ASSIGN "n.txt" FILE STATUS ns.
17963           SELECT o ASSIGN "o.txt" FILE STATUS os.
17964           SELECT p ASSIGN "p.txt" FILE STATUS ps.
17965           SELECT q ASSIGN "q.txt" FILE STATUS non-existent.
17966           SELECT r ASSIGN "r.txt" FILE STATUS rs.
17967
17968       DATA DIVISION.
17969       FILE SECTION.
17970       FD  f.
17971       01  hs    PIC XX.
17972       FD  g.
17973       01  g-rec PIC X.
17974       FD  h.
17975       01  h-rec PIC X.
17976       FD  j.
17977       01  j-rec PIC X.
17978       FD  k.
17979       01  k-rec PIC X.
17980       FD  l.
17981       01  l-rec PIC X.
17982       FD  m.
17983       01  m-rec PIC X.
17984       FD  n.
17985       01  n-rec PIC X.
17986       FD  o.
17987       01  o-rec PIC X.
17988       FD  p.
17989       01  p-rec PIC X.
17990       FD  q.
17991       01  q-rec PIC X.
17992       FD  r.
17993       01  r-rec PIC X.
17994
17995       WORKING-STORAGE SECTION.
17996       *> Valid
17997       01  fs          PIC XX.
17998
17999       LOCAL-STORAGE   SECTION.
18000       *> Valid, but warning
18001       01  gs          PIC 99.
18002
18003       *> Invalid
18004       01  js          PIC N.
18005       01  ks          PIC XX COMP-X.
18006       01  ls          PIC V99.
18007       01  ms          PIC 99PP.
18008       01  ns          PIC XXX.
18009       01  x.
18010           03  y       PIC 99.
18011           03  z       PIC XX OCCURS 1 TO 10 TIMES DEPENDING ON y.
18012           03  os      PIC XX.
18013               88  ps  VALUE "00".
18014           03  z2      PIC XX OCCURS 1 TO 10 TIMES DEPENDING ON y.
18015
18016       01  rs          CONSTANT "00".
18017
18018       PROCEDURE DIVISION.
18019           CONTINUE
18020           .
18021       END PROGRAM prog.
18022_ATEOF
18023
18024
18025{ set +x
18026$as_echo "$at_srcdir/syn_file.at:1496: \$COMPILE_ONLY -fodoslide prog.cob"
18027at_fn_check_prepare_dynamic "$COMPILE_ONLY -fodoslide prog.cob" "syn_file.at:1496"
18028( $at_check_trace; $COMPILE_ONLY -fodoslide prog.cob
18029) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18030at_status=$? at_failed=false
18031$at_check_filter
18032echo >>"$at_stderr"; $as_echo "prog.cob:57: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
18033prog.cob:18: error: 'non-existent' is not defined
18034prog.cob:9: warning: FILE STATUS 'gs' is a numeric field, but I-O status codes are not numeric in general
18035prog.cob:10: error: FILE STATUS 'hs' must be in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE
18036prog.cob:11: error: FILE STATUS 'js' must be alphanumeric or numeric field
18037prog.cob:12: warning: FILE STATUS 'ks' is a numeric field, but I-O status codes are not numeric in general
18038prog.cob:12: error: FILE STATUS 'ks' must be USAGE DISPLAY
18039prog.cob:13: error: FILE STATUS 'ls' may not be a decimal or have a PIC with a P
18040prog.cob:13: warning: FILE STATUS 'ls' is a numeric field, but I-O status codes are not numeric in general
18041prog.cob:14: error: FILE STATUS 'ms' may not be a decimal or have a PIC with a P
18042prog.cob:14: warning: FILE STATUS 'ms' is a numeric field, but I-O status codes are not numeric in general
18043prog.cob:15: error: FILE STATUS 'ns' must be 2 characters long
18044prog.cob:16: error: FILE STATUS 'os' may not be located after an OCCURS DEPENDING field
18045prog.cob:17: error: FILE STATUS 'ps' must be alphanumeric or numeric field
18046prog.cob:19: error: FILE STATUS 'rs' must be alphanumeric or numeric field
18047" | \
18048  $at_diff - "$at_stderr" || at_failed=:
18049at_fn_diff_devnull "$at_stdout" || at_failed=:
18050at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1496"
18051$at_failed && at_fn_log_failure
18052$at_traceon; }
18053
18054  set +x
18055  $at_times_p && times >"$at_times_file"
18056) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18057read at_status <"$at_status_file"
18058#AT_STOP_188
18059#AT_START_189
18060at_fn_group_banner 189 'syn_file.at:1516' \
18061  "VSAM status" "                                    " 2
18062at_xfail=no
18063(
18064  $as_echo "189. $at_setup_line: testing $at_desc ..."
18065  $at_traceon
18066
18067
18068
18069cat >prog.cob <<'_ATEOF'
18070
18071       IDENTIFICATION DIVISION.
18072       PROGRAM-ID. prog.
18073       ENVIRONMENT DIVISION.
18074       INPUT-OUTPUT SECTION.
18075       FILE-CONTROL.
18076           SELECT file1 ASSIGN TO 'FILE-TEST'
18077                        ORGANIZATION IS INDEXED
18078                        ACCESS MODE  IS DYNAMIC
18079                        RECORD KEY   IS file1-key
18080                        STATUS       IS STATUS-1.
18081           SELECT file2 ASSIGN TO 'FILE-TEST'
18082                        ORGANIZATION IS INDEXED
18083                        ACCESS MODE  IS DYNAMIC
18084                        RECORD KEY   IS file2-key
18085                        STATUS       IS STATUS-1, STATUS-2.
18086       DATA DIVISION.
18087       FILE SECTION.
18088       FD  FILE1.
18089       01  FILE1-REC.
18090           05 FILE1-KEY PIC X.
18091       FD  FILE2.
18092       01  FILE2-REC.
18093           05 FILE2-KEY PIC 9.
18094           05 FILE2-DAT PIC X.
18095       WORKING-STORAGE SECTION.
18096       77  STATUS-1 PIC X(02).
18097       77  STATUS-2 PIC X(06).
18098       PROCEDURE DIVISION.
18099            STOP RUN.
18100_ATEOF
18101
18102
18103{ set +x
18104$as_echo "$at_srcdir/syn_file.at:1551: \$COMPILE_ONLY -std=ibm prog.cob"
18105at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_file.at:1551"
18106( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
18107) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18108at_status=$? at_failed=false
18109$at_check_filter
18110at_fn_diff_devnull "$at_stderr" || at_failed=:
18111at_fn_diff_devnull "$at_stdout" || at_failed=:
18112at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1551"
18113$at_failed && at_fn_log_failure
18114$at_traceon; }
18115
18116{ set +x
18117$as_echo "$at_srcdir/syn_file.at:1552: \$COMPILE_ONLY prog.cob"
18118at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1552"
18119( $at_check_trace; $COMPILE_ONLY prog.cob
18120) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18121at_status=$? at_failed=false
18122$at_check_filter
18123echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: VSAM status ignored
18124" | \
18125  $at_diff - "$at_stderr" || at_failed=:
18126at_fn_diff_devnull "$at_stdout" || at_failed=:
18127at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1552"
18128$at_failed && at_fn_log_failure
18129$at_traceon; }
18130
18131{ set +x
18132$as_echo "$at_srcdir/syn_file.at:1555: \$COMPILE_ONLY -std=cobol2014 prog.cob"
18133at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_file.at:1555"
18134( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
18135) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18136at_status=$? at_failed=false
18137$at_check_filter
18138echo >>"$at_stderr"; $as_echo "prog.cob:16: error: VSAM status does not conform to COBOL 2014
18139" | \
18140  $at_diff - "$at_stderr" || at_failed=:
18141at_fn_diff_devnull "$at_stdout" || at_failed=:
18142at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1555"
18143$at_failed && at_fn_log_failure
18144$at_traceon; }
18145
18146
18147  set +x
18148  $at_times_p && times >"$at_times_file"
18149) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18150read at_status <"$at_status_file"
18151#AT_STOP_189
18152#AT_START_190
18153at_fn_group_banner 190 'syn_file.at:1562' \
18154  "INDEXED file PASSWORD clause" "                   " 2
18155at_xfail=no
18156(
18157  $as_echo "190. $at_setup_line: testing $at_desc ..."
18158  $at_traceon
18159
18160
18161
18162cat >prog.cob <<'_ATEOF'
18163
18164       IDENTIFICATION DIVISION.
18165       PROGRAM-ID. prog.
18166       ENVIRONMENT DIVISION.
18167       INPUT-OUTPUT SECTION.
18168       FILE-CONTROL.
18169           SELECT file1 ASSIGN TO 'FILE-TEST'
18170                        ORGANIZATION  IS INDEXED
18171                        ACCESS MODE   IS DYNAMIC
18172                        RECORD KEY    IS file1-key PASSWORD IS PASS1
18173                        STATUS        IS FSTAT.
18174           SELECT file2 ASSIGN TO 'FILE-TEST-EXT'
18175                        ORGANIZATION  IS INDEXED
18176                        ACCESS MODE   IS DYNAMIC
18177                        RECORD KEY    IS file2-key PASSWORD IS PASS2
18178                        ALTERNATE RECORD KEY IS NOTHEREKEY
18179                           SOURCE     IS file2-dat file2-key
18180                           PASSWORD   IS PASS-EXT
18181                        STATUS        IS FSTAT.
18182       DATA DIVISION.
18183       FILE SECTION.
18184       FD  FILE1.
18185       01  FILE1-REC.
18186           05 FILE1-KEY PIC X.
18187       FD  FILE2  EXTERNAL.
18188       01  FILE2-REC.
18189           05 FILE2-KEY PIC 9.
18190           05 FILE2-DAT PIC X.
18191       WORKING-STORAGE SECTION.
18192       77  FSTAT       PIC X(02).
18193      *> note: IBM specifies PASSWORDs are cut at / space filled to 8 bytes
18194       77  PASS1       PIC X(08).
18195       77  PASS2       PIC X(10).
18196       77  PASS-EXT    PIC X(04) EXTERNAL.
18197       PROCEDURE DIVISION.
18198           STOP RUN.
18199_ATEOF
18200
18201
18202{ set +x
18203$as_echo "$at_srcdir/syn_file.at:1603: \$COMPILE_ONLY prog.cob"
18204at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1603"
18205( $at_check_trace; $COMPILE_ONLY prog.cob
18206) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18207at_status=$? at_failed=false
18208$at_check_filter
18209echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: PASSWORD clause is not implemented
18210prog.cob:15: warning: PASSWORD clause is not implemented
18211prog.cob:18: warning: PASSWORD clause is not implemented
18212prog.cob:15: error: PASSWORD 'PASS2' for EXTERNAL file 'file2' must have EXTERNAL attribute
18213" | \
18214  $at_diff - "$at_stderr" || at_failed=:
18215at_fn_diff_devnull "$at_stdout" || at_failed=:
18216at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1603"
18217$at_failed && at_fn_log_failure
18218$at_traceon; }
18219
18220
18221  set +x
18222  $at_times_p && times >"$at_times_file"
18223) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18224read at_status <"$at_status_file"
18225#AT_STOP_190
18226#AT_START_191
18227at_fn_group_banner 191 'syn_file.at:1613' \
18228  "RECORD clause equal limits" "                     " 2
18229at_xfail=no
18230(
18231  $as_echo "191. $at_setup_line: testing $at_desc ..."
18232  $at_traceon
18233
18234
18235
18236cat >prog.cob <<'_ATEOF'
18237
18238       IDENTIFICATION DIVISION.
18239       PROGRAM-ID. prog.
18240
18241       ENVIRONMENT DIVISION.
18242       INPUT-OUTPUT SECTION.
18243       FILE-CONTROL.
18244           SELECT f1 ASSIGN "f1".
18245           SELECT f2 ASSIGN "f2".
18246           SELECT f3 ASSIGN "f3".
18247           SELECT f4 ASSIGN "f4".
18248
18249       DATA DIVISION.
18250       FILE SECTION.
18251       FD  f1 RECORD VARYING.
18252       01  f1-rec-1 PIC X.
18253       01  f1-rec-2 PIC 9.
18254
18255       FD  f2 RECORD VARYING 1 TO 1.
18256       01  f2-rec PIC X.
18257
18258       FD  f3 RECORD 1 TO 1.
18259       01  f3-rec PIC X.
18260
18261       FD  f4 RECORD IS VARYING IN SIZE.
18262       01  f4-rec-1 PIC X.
18263       01  f4-rec-2 PIC 99.
18264_ATEOF
18265
18266
18267{ set +x
18268$as_echo "$at_srcdir/syn_file.at:1645: \$COMPILE_ONLY -Wadditional prog.cob"
18269at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wadditional prog.cob" "syn_file.at:1645"
18270( $at_check_trace; $COMPILE_ONLY -Wadditional prog.cob
18271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18272at_status=$? at_failed=false
18273$at_check_filter
18274echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: RECORD VARYING specified without limits, but implied limits are equal
18275prog.cob:19: error: RECORD clause invalid
18276prog.cob:22: error: RECORD clause invalid
18277" | \
18278  $at_diff - "$at_stderr" || at_failed=:
18279at_fn_diff_devnull "$at_stdout" || at_failed=:
18280at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1645"
18281$at_failed && at_fn_log_failure
18282$at_traceon; }
18283
18284  set +x
18285  $at_times_p && times >"$at_times_file"
18286) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18287read at_status <"$at_status_file"
18288#AT_STOP_191
18289#AT_START_192
18290at_fn_group_banner 192 'syn_file.at:1653' \
18291  "FILE ... FROM literal" "                          " 2
18292at_xfail=no
18293(
18294  $as_echo "192. $at_setup_line: testing $at_desc ..."
18295  $at_traceon
18296
18297
18298
18299cat >prog.cob <<'_ATEOF'
18300
18301       IDENTIFICATION DIVISION.
18302       PROGRAM-ID. prog.
18303
18304       ENVIRONMENT DIVISION.
18305       INPUT-OUTPUT SECTION.
18306       FILE-CONTROL.
18307           SELECT f ASSIGN TO "ssad".
18308
18309       DATA DIVISION.
18310       FILE SECTION.
18311       FD  f.
18312       01  f-rec PIC 999999.
18313
18314       WORKING-STORAGE SECTION.
18315       01  num PIC 9(6) VALUE 123456.
18316
18317       PROCEDURE DIVISION.
18318           OPEN OUTPUT f
18319           WRITE FILE f FROM zero
18320           WRITE FILE f FROM 0
18321           WRITE FILE f FROM "abc"
18322           REWRITE FILE f FROM zero
18323           REWRITE FILE f FROM 0
18324           REWRITE FILE f FROM "abc"
18325           CLOSE f
18326           .
18327_ATEOF
18328
18329
18330# FIXME: the references to ZERO should actually show one less
18331
18332{ set +x
18333$as_echo "$at_srcdir/syn_file.at:1687: \$COMPILE_ONLY prog.cob"
18334at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1687"
18335( $at_check_trace; $COMPILE_ONLY prog.cob
18336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18337at_status=$? at_failed=false
18338$at_check_filter
18339echo >>"$at_stderr"; $as_echo "prog.cob:21: error: figurative constants not allowed in FROM clause
18340prog.cob:21: error: literal in FROM clause must be alphanumeric, national or boolean
18341prog.cob:22: warning: numeric value is expected
18342prog.cob:13: note: 'f-rec' defined here as PIC 999999
18343prog.cob:24: error: figurative constants not allowed in FROM clause
18344prog.cob:24: error: literal in FROM clause must be alphanumeric, national or boolean
18345prog.cob:25: warning: numeric value is expected
18346prog.cob:13: note: 'f-rec' defined here as PIC 999999
18347" | \
18348  $at_diff - "$at_stderr" || at_failed=:
18349at_fn_diff_devnull "$at_stdout" || at_failed=:
18350at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1687"
18351$at_failed && at_fn_log_failure
18352$at_traceon; }
18353
18354{ set +x
18355$as_echo "$at_srcdir/syn_file.at:1697: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
18356at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:1697"
18357( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
18358) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18359at_status=$? at_failed=false
18360$at_check_filter
18361echo >>"$at_stderr"; $as_echo "prog.cob:22: warning: numeric value is expected
18362prog.cob:13: note: 'f-rec' defined here as PIC 999999
18363prog.cob:25: warning: numeric value is expected
18364prog.cob:13: note: 'f-rec' defined here as PIC 999999
18365" | \
18366  $at_diff - "$at_stderr" || at_failed=:
18367at_fn_diff_devnull "$at_stdout" || at_failed=:
18368at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1697"
18369$at_failed && at_fn_log_failure
18370$at_traceon; }
18371
18372{ set +x
18373$as_echo "$at_srcdir/syn_file.at:1703: \$COMPILE_ONLY -std=mf-strict prog.cob"
18374at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_file.at:1703"
18375( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
18376) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18377at_status=$? at_failed=false
18378$at_check_filter
18379echo >>"$at_stderr"; $as_echo "prog.cob:22: warning: source is non-numeric - substituting zero
18380prog.cob:25: warning: source is non-numeric - substituting zero
18381" | \
18382  $at_diff - "$at_stderr" || at_failed=:
18383at_fn_diff_devnull "$at_stdout" || at_failed=:
18384at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1703"
18385$at_failed && at_fn_log_failure
18386$at_traceon; }
18387
18388
18389  set +x
18390  $at_times_p && times >"$at_times_file"
18391) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18392read at_status <"$at_status_file"
18393#AT_STOP_192
18394#AT_START_193
18395at_fn_group_banner 193 'syn_file.at:1712' \
18396  "WRITE / REWRITE on LINE SEQUENTIAL files" "       " 2
18397at_xfail=no
18398(
18399  $as_echo "193. $at_setup_line: testing $at_desc ..."
18400  $at_traceon
18401
18402
18403
18404# FIXME: this should be depending on a compilation flag,
18405#        see reportwriter branch for this feature
18406
18407cat >prog.cob <<'_ATEOF'
18408
18409       IDENTIFICATION DIVISION.
18410       PROGRAM-ID. prog.
18411
18412       ENVIRONMENT DIVISION.
18413       INPUT-OUTPUT SECTION.
18414       FILE-CONTROL.
18415           SELECT f ASSIGN TO "ssad" LINE SEQUENTIAL.
18416
18417       DATA DIVISION.
18418       FILE SECTION.
18419       FD  f.
18420       01  f-rec PIC X(05).
18421
18422       PROCEDURE DIVISION.
18423           OPEN OUTPUT f
18424           WRITE FILE f FROM "abc"
18425           REWRITE FILE f FROM "abc"
18426           CLOSE f
18427           .
18428_ATEOF
18429
18430
18431{ set +x
18432$as_echo "$at_srcdir/syn_file.at:1740: \$COMPILE_ONLY prog.cob"
18433at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1740"
18434( $at_check_trace; $COMPILE_ONLY prog.cob
18435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18436at_status=$? at_failed=false
18437$at_check_filter
18438echo >>"$at_stderr"; $as_echo "prog.cob:18: error: REWRITE not allowed on LINE SEQUENTIAL files
18439" | \
18440  $at_diff - "$at_stderr" || at_failed=:
18441at_fn_diff_devnull "$at_stdout" || at_failed=:
18442at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1740"
18443$at_failed && at_fn_log_failure
18444$at_traceon; }
18445
18446  set +x
18447  $at_times_p && times >"$at_times_file"
18448) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18449read at_status <"$at_status_file"
18450#AT_STOP_193
18451#AT_START_194
18452at_fn_group_banner 194 'syn_file.at:1747' \
18453  "WRITE / REWRITE on REPORT files" "                " 2
18454at_xfail=no
18455(
18456  $as_echo "194. $at_setup_line: testing $at_desc ..."
18457  $at_traceon
18458
18459
18460
18461cat >prog.cob <<'_ATEOF'
18462
18463       IDENTIFICATION DIVISION.
18464       PROGRAM-ID. prog.
18465
18466       ENVIRONMENT DIVISION.
18467       INPUT-OUTPUT SECTION.
18468       FILE-CONTROL.
18469           SELECT f ASSIGN TO "ssad" LINE SEQUENTIAL.
18470
18471       DATA DIVISION.
18472       FILE SECTION.
18473       FD  f REPORT f-rep.
18474       01  f-rec PIC X(05).
18475
18476       REPORT SECTION.
18477       RD  f-rep.
18478       01  f-rep-line TYPE DE PIC XXX.
18479
18480       PROCEDURE DIVISION.
18481           OPEN OUTPUT f
18482           WRITE FILE f FROM "abc"
18483           REWRITE FILE f FROM "abc"
18484           CLOSE f
18485           .
18486_ATEOF
18487
18488
18489{ set +x
18490$as_echo "$at_srcdir/syn_file.at:1776: \$COMPILE_ONLY prog.cob"
18491at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1776"
18492( $at_check_trace; $COMPILE_ONLY prog.cob
18493) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18494at_status=$? at_failed=false
18495$at_check_filter
18496echo >>"$at_stderr"; $as_echo "prog.cob:21: error: WRITE not allowed on REPORT files
18497prog.cob:22: error: REWRITE not allowed on REPORT files
18498" | \
18499  $at_diff - "$at_stderr" || at_failed=:
18500at_fn_diff_devnull "$at_stdout" || at_failed=:
18501at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1776"
18502$at_failed && at_fn_log_failure
18503$at_traceon; }
18504
18505  set +x
18506  $at_times_p && times >"$at_times_file"
18507) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18508read at_status <"$at_status_file"
18509#AT_STOP_194
18510#AT_START_195
18511at_fn_group_banner 195 'syn_file.at:1784' \
18512  "SELECT without fd-name" "                         " 2
18513at_xfail=no
18514(
18515  $as_echo "195. $at_setup_line: testing $at_desc ..."
18516  $at_traceon
18517
18518
18519
18520cat >prog.cob <<'_ATEOF'
18521
18522       IDENTIFICATION DIVISION.
18523       PROGRAM-ID. prog.
18524
18525       ENVIRONMENT DIVISION.
18526       INPUT-OUTPUT SECTION.
18527       FILE-CONTROL.
18528           SELECT ASSIGN "asd".
18529_ATEOF
18530
18531
18532{ set +x
18533$as_echo "$at_srcdir/syn_file.at:1797: \$COMPILE_ONLY prog.cob"
18534at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1797"
18535( $at_check_trace; $COMPILE_ONLY prog.cob
18536) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18537at_status=$? at_failed=false
18538$at_check_filter
18539echo >>"$at_stderr"; $as_echo "prog.cob:8: error: syntax error, unexpected ASSIGN, expecting Identifier
18540prog.cob:8: error: syntax error, unexpected Literal
18541prog.cob:8: error: missing file description for FILE SELECT on line 8
18542" | \
18543  $at_diff - "$at_stderr" || at_failed=:
18544at_fn_diff_devnull "$at_stdout" || at_failed=:
18545at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1797"
18546$at_failed && at_fn_log_failure
18547$at_traceon; }
18548
18549  set +x
18550  $at_times_p && times >"$at_times_file"
18551) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18552read at_status <"$at_status_file"
18553#AT_STOP_195
18554#AT_START_196
18555at_fn_group_banner 196 'syn_file.at:1805' \
18556  "Undeclared FILE-ID variable" "                    " 2
18557at_xfail=no
18558(
18559  $as_echo "196. $at_setup_line: testing $at_desc ..."
18560  $at_traceon
18561
18562
18563
18564cat >prog.cob <<'_ATEOF'
18565
18566       IDENTIFICATION DIVISION.
18567       PROGRAM-ID. prog.
18568       ENVIRONMENT DIVISION.
18569       INPUT-OUTPUT SECTION.
18570       FILE-CONTROL.
18571           SELECT file1 ASSIGN DISK.
18572       DATA DIVISION.
18573       FILE SECTION.
18574       FD  file1 VALUE OF FILE-ID fid-file1.
18575       01  file1-rec PIC X.
18576       PROCEDURE DIVISION.
18577           STOP RUN.
18578_ATEOF
18579
18580
18581{ set +x
18582$as_echo "$at_srcdir/syn_file.at:1823: \$COMPILE_ONLY -Wimplicit-define prog.cob"
18583at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wimplicit-define prog.cob" "syn_file.at:1823"
18584( $at_check_trace; $COMPILE_ONLY -Wimplicit-define prog.cob
18585) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18586at_status=$? at_failed=false
18587$at_check_filter
18588echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: VALUE OF is obsolete in GnuCOBOL
18589prog.cob:12: warning: variable 'fid-file1' will be implicitly defined
18590" | \
18591  $at_diff - "$at_stderr" || at_failed=:
18592at_fn_diff_devnull "$at_stdout" || at_failed=:
18593at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1823"
18594$at_failed && at_fn_log_failure
18595$at_traceon; }
18596
18597  set +x
18598  $at_times_p && times >"$at_times_file"
18599) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18600read at_status <"$at_status_file"
18601#AT_STOP_196
18602#AT_START_197
18603at_fn_group_banner 197 'syn_file.at:1830' \
18604  "Undeclared ASSIGN variable" "                     " 2
18605at_xfail=no
18606(
18607  $as_echo "197. $at_setup_line: testing $at_desc ..."
18608  $at_traceon
18609
18610
18611
18612cat >prog.cob <<'_ATEOF'
18613
18614       IDENTIFICATION   DIVISION.
18615       PROGRAM-ID.      prog.
18616       ENVIRONMENT      DIVISION.
18617       INPUT-OUTPUT     SECTION.
18618       FILE-CONTROL.
18619       SELECT TEST-FILE
18620              ASSIGN    GLOB-PATH
18621       .
18622       DATA             DIVISION.
18623       FILE             SECTION.
18624       FD  TEST-FILE    GLOBAL.
18625       01  TEST-REC     PIC X(4).
18626       WORKING-STORAGE  SECTION.
18627       78  GLOB-PATH           GLOBAL VALUE "GLOBP1".
18628       01  GLOB-PATH2 CONSTANT GLOBAL       "GLOBP2".
18629      * Test global vars because of implicitly defined ASSIGN var, too.
18630       78  GLOB-VAR            GLOBAL VALUE "GLOBV1".
18631       01  GLOB-VAR2  CONSTANT GLOBAL       "GLOBV2".
18632       PROCEDURE        DIVISION.
18633           DISPLAY GLOB-PATH GLOB-VAR
18634           END-DISPLAY.
18635           CALL "prog2"
18636           END-CALL.
18637           CALL "prog3"
18638           END-CALL.
18639           STOP RUN.
18640        IDENTIFICATION   DIVISION.
18641        PROGRAM-ID.      prog2.
18642        ENVIRONMENT      DIVISION.
18643        INPUT-OUTPUT     SECTION.
18644        FILE-CONTROL.
18645        SELECT TEST2-FILE
18646               ASSIGN    GLOB-PATH2
18647        .
18648        DATA             DIVISION.
18649        FILE             SECTION.
18650        FD  TEST2-FILE   GLOBAL.
18651        01  TEST2-REC    PIC X(4).
18652        WORKING-STORAGE  SECTION.
18653        PROCEDURE        DIVISION.
18654            DISPLAY GLOB-PATH2 GLOB-VAR2
18655            END-DISPLAY.
18656            EXIT PROGRAM.
18657        END PROGRAM prog2.
18658       END PROGRAM prog.
18659       IDENTIFICATION   DIVISION.
18660       PROGRAM-ID.      prog3.
18661       ENVIRONMENT      DIVISION.
18662       INPUT-OUTPUT     SECTION.
18663       FILE-CONTROL.
18664       SELECT TEST3-FILE
18665              ASSIGN    GLOB-PATH
18666       .
18667       DATA             DIVISION.
18668       FILE             SECTION.
18669       FD  TEST3-FILE   GLOBAL.
18670       01  TEST3-REC    PIC X(4).
18671       WORKING-STORAGE  SECTION.
18672       PROCEDURE        DIVISION.
18673           DISPLAY 'in prog3'
18674           END-DISPLAY
18675           IF GLOB-PATH NOT = SPACES
18676              DISPLAY GLOB-PATH
18677              END-DISPLAY
18678           END-IF
18679           EXIT PROGRAM.
18680       END PROGRAM prog3.
18681_ATEOF
18682
18683
18684{ set +x
18685$as_echo "$at_srcdir/syn_file.at:1903: \$COMPILE_ONLY -Wimplicit-define prog.cob"
18686at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wimplicit-define prog.cob" "syn_file.at:1903"
18687( $at_check_trace; $COMPILE_ONLY -Wimplicit-define prog.cob
18688) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18689at_status=$? at_failed=false
18690$at_check_filter
18691echo >>"$at_stderr"; $as_echo "prog.cob:60: warning: variable 'GLOB-PATH' will be implicitly defined
18692" | \
18693  $at_diff - "$at_stderr" || at_failed=:
18694at_fn_diff_devnull "$at_stdout" || at_failed=:
18695at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1903"
18696$at_failed && at_fn_log_failure
18697$at_traceon; }
18698
18699  set +x
18700  $at_times_p && times >"$at_times_file"
18701) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18702read at_status <"$at_status_file"
18703#AT_STOP_197
18704#AT_START_198
18705at_fn_group_banner 198 'syn_file.at:1909' \
18706  "OPEN I-O with LINE SEQUENTIAL" "                  " 2
18707at_xfail=no
18708(
18709  $as_echo "198. $at_setup_line: testing $at_desc ..."
18710  $at_traceon
18711
18712
18713
18714cat >prog.cob <<'_ATEOF'
18715
18716       IDENTIFICATION DIVISION.
18717       PROGRAM-ID. prog.
18718       ENVIRONMENT DIVISION.
18719       INPUT-OUTPUT SECTION.
18720       FILE-CONTROL.
18721           SELECT file1 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
18722       DATA DIVISION.
18723       FILE SECTION.
18724       FD  file1.
18725       01  file1-rec PIC X.
18726       PROCEDURE DIVISION.
18727           OPEN I-O file1.
18728_ATEOF
18729
18730
18731{ set +x
18732$as_echo "$at_srcdir/syn_file.at:1927: \$COMPILE_ONLY prog.cob"
18733at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1927"
18734( $at_check_trace; $COMPILE_ONLY prog.cob
18735) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18736at_status=$? at_failed=false
18737$at_check_filter
18738echo >>"$at_stderr"; $as_echo "prog.cob:13: error: OPEN I-O not allowed on LINE SEQUENTIAL files
18739" | \
18740  $at_diff - "$at_stderr" || at_failed=:
18741at_fn_diff_devnull "$at_stdout" || at_failed=:
18742at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1927"
18743$at_failed && at_fn_log_failure
18744$at_traceon; }
18745
18746
18747  set +x
18748  $at_times_p && times >"$at_times_file"
18749) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18750read at_status <"$at_status_file"
18751#AT_STOP_198
18752#AT_START_199
18753at_fn_group_banner 199 'syn_file.at:1934' \
18754  "ACCESS RANDOM with ORG SEQUENTIAL" "              " 2
18755at_xfail=no
18756(
18757  $as_echo "199. $at_setup_line: testing $at_desc ..."
18758  $at_traceon
18759
18760
18761
18762cat >prog.cob <<'_ATEOF'
18763
18764       IDENTIFICATION DIVISION.
18765       PROGRAM-ID. prog.
18766       ENVIRONMENT DIVISION.
18767       INPUT-OUTPUT SECTION.
18768       FILE-CONTROL.
18769           SELECT file1 ASSIGN DISK ORGANIZATION SEQUENTIAL
18770               ACCESS RANDOM.
18771       DATA DIVISION.
18772       FILE SECTION.
18773       FD  file1.
18774       01  file1-rec PIC X.
18775       PROCEDURE DIVISION.
18776           STOP RUN.
18777_ATEOF
18778
18779
18780# TO-DO: Improve error message - say ACCESS RANDOM is incompatible with ORGANIZATION SEQUENTIAL.
18781{ set +x
18782$as_echo "$at_srcdir/syn_file.at:1954: \$COMPILE_ONLY prog.cob"
18783at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1954"
18784( $at_check_trace; $COMPILE_ONLY prog.cob
18785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18786at_status=$? at_failed=false
18787$at_check_filter
18788echo >>"$at_stderr"; $as_echo "prog.cob:7: error: ORGANIZATION clause is invalid for file 'file1'
18789" | \
18790  $at_diff - "$at_stderr" || at_failed=:
18791at_fn_diff_devnull "$at_stdout" || at_failed=:
18792at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1954"
18793$at_failed && at_fn_log_failure
18794$at_traceon; }
18795
18796
18797  set +x
18798  $at_times_p && times >"$at_times_file"
18799) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18800read at_status <"$at_status_file"
18801#AT_STOP_199
18802#AT_START_200
18803at_fn_group_banner 200 'syn_file.at:1961' \
18804  "ALTERNATE RECORD KEY SUPPRESS WHEN" "             " 2
18805at_xfail=no
18806(
18807  $as_echo "200. $at_setup_line: testing $at_desc ..."
18808  $at_traceon
18809
18810
18811
18812cat >prog.cob <<'_ATEOF'
18813
18814       IDENTIFICATION   DIVISION.
18815       PROGRAM-ID.      prog.
18816       ENVIRONMENT      DIVISION.
18817       INPUT-OUTPUT     SECTION.
18818       FILE-CONTROL.
18819       SELECT TEST-FILE
18820              ASSIGN        "TESTFILE"
18821              ACCESS        DYNAMIC
18822              ORGANIZATION  INDEXED
18823              RECORD KEY    TESTKEY-P1
18824              ALTERNATE RECORD KEY TESTKEY-P2
18825                 WITH DUPLICATES
18826                 SUPPRESS WHEN ZEROES
18827              ALTERNATE RECORD KEY TESTKEY-P3
18828                 WITH DUPLICATES
18829                 SUPPRESS WHEN SPACES
18830              ALTERNATE RECORD KEY TESTKEY-P4
18831                 WITH DUPLICATES
18832                 SUPPRESS WHEN ALL "A"
18833              ALTERNATE RECORD KEY TESTKEY-P5
18834                 WITH DUPLICATES
18835                 SUPPRESS WHEN ALL SPACES
18836              .
18837       DATA             DIVISION.
18838       FILE             SECTION.
18839       FD  TEST-FILE.
18840       01  TEST-REC.
18841           03  TESTKEY-P1 PIC X(4).
18842           03  TESTKEY-P2 PIC 9(4).
18843           03  TESTDATA   PIC X(4).
18844           03  TESTKEY-P3 PIC X(4).
18845           03  TESTKEY-P4 PIC X(4).
18846           03  TESTKEY-P5 PIC X(4).
18847       PROCEDURE DIVISION.
18848           STOP RUN.
18849_ATEOF
18850
18851
18852{ set +x
18853$as_echo "$at_srcdir/syn_file.at:2002: \$COMPILE_ONLY -std=mf prog.cob"
18854at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_file.at:2002"
18855( $at_check_trace; $COMPILE_ONLY -std=mf prog.cob
18856) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18857at_status=$? at_failed=false
18858$at_check_filter
18859at_fn_diff_devnull "$at_stderr" || at_failed=:
18860at_fn_diff_devnull "$at_stdout" || at_failed=:
18861at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2002"
18862$at_failed && at_fn_log_failure
18863$at_traceon; }
18864
18865  set +x
18866  $at_times_p && times >"$at_times_file"
18867) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18868read at_status <"$at_status_file"
18869#AT_STOP_200
18870#AT_START_201
18871at_fn_group_banner 201 'syn_file.at:2006' \
18872  "RECORD definition with SOURCE IS / =" "           " 2
18873at_xfail=no
18874(
18875  $as_echo "201. $at_setup_line: testing $at_desc ..."
18876  $at_traceon
18877
18878
18879
18880cat >prog.cob <<'_ATEOF'
18881
18882       IDENTIFICATION   DIVISION.
18883       PROGRAM-ID.      prog.
18884       ENVIRONMENT      DIVISION.
18885       INPUT-OUTPUT     SECTION.
18886       FILE-CONTROL.
18887       SELECT TEST-FILE1
18888              ASSIGN         "TESTFILE"
18889              ACCESS         DYNAMIC
18890              ORGANIZATION   INDEXED
18891              RECORD KEY     TESTKEY-P1 OF TEST-REC1
18892              ALTERNATE RECORD KEY
18893                 TEST1KEY2 = TESTKEY-P2 OF TEST-REC1,
18894                             TESTKEY-P3 OF TEST-REC1
18895                 WITH DUPLICATES
18896              .
18897       SELECT TEST-FILE2
18898              ASSIGN         "TESTFILE"
18899              ACCESS         DYNAMIC
18900              ORGANIZATION   INDEXED
18901              RECORD KEY     TESTKEY-P1 OF TEST-REC2
18902              ALTERNATE RECORD KEY
18903                 TEST2KEY2 SOURCE IS TESTKEY-P2 OF TEST-REC2,
18904                                     TESTKEY-P3 OF TEST-REC2
18905                 WITH DUPLICATES
18906                 .
18907       DATA             DIVISION.
18908       FILE             SECTION.
18909       FD  TEST-FILE1.
18910       01  TEST-REC1.
18911           03  TESTKEY-P1 PIC X(4).
18912           03  TESTKEY-P2 PIC 9(4).
18913           03  TESTDATA   PIC X(4).
18914           03  TESTKEY-P3 PIC X(4).
18915       FD  TEST-FILE2.
18916       01  TEST-REC2.
18917           03  TESTKEY-P1 PIC X(4).
18918           03  TESTKEY-P2 PIC 9(4).
18919           03  TESTDATA   PIC X(4).
18920           03  TESTKEY-P3 PIC X(4).
18921       PROCEDURE DIVISION.
18922           STOP RUN.
18923_ATEOF
18924
18925
18926{ set +x
18927$as_echo "$at_srcdir/syn_file.at:2053: \$COMPILE_ONLY prog.cob"
18928at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2053"
18929( $at_check_trace; $COMPILE_ONLY prog.cob
18930) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18931at_status=$? at_failed=false
18932$at_check_filter
18933at_fn_diff_devnull "$at_stderr" || at_failed=:
18934at_fn_diff_devnull "$at_stdout" || at_failed=:
18935at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2053"
18936$at_failed && at_fn_log_failure
18937$at_traceon; }
18938
18939  set +x
18940  $at_times_p && times >"$at_times_file"
18941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
18942read at_status <"$at_status_file"
18943#AT_STOP_201
18944#AT_START_202
18945at_fn_group_banner 202 'syn_file.at:2057' \
18946  "ALTERNATE RECORD definition WITH NO DUPLICATES" " " 2
18947at_xfail=yes
18948(
18949  $as_echo "202. $at_setup_line: testing $at_desc ..."
18950  $at_traceon
18951
18952
18953
18954
18955
18956cat >prog.cob <<'_ATEOF'
18957
18958       IDENTIFICATION   DIVISION.
18959       PROGRAM-ID.      prog.
18960       ENVIRONMENT      DIVISION.
18961       INPUT-OUTPUT     SECTION.
18962       FILE-CONTROL.
18963       SELECT TEST-FILE
18964              ASSIGN        "TESTFILE"
18965              ACCESS        DYNAMIC
18966              ORGANIZATION  INDEXED
18967              RECORD KEY    TESTKEY1
18968              ALTERNATE RECORD KEY TESTKEY2
18969                               WITH DUPLICATES
18970              ALTERNATE RECORD KEY TESTKEY3
18971                               WITH NO DUPLICATES
18972              .
18973_ATEOF
18974
18975
18976{ set +x
18977$as_echo "$at_srcdir/syn_file.at:2080: \$COMPILE_ONLY prog.cob"
18978at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2080"
18979( $at_check_trace; $COMPILE_ONLY prog.cob
18980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18981at_status=$? at_failed=false
18982$at_check_filter
18983echo >>"$at_stderr"; $as_echo "prog.cob:15: error: non-standard 'NO DUPLICATES'
18984" | \
18985  $at_diff - "$at_stderr" || at_failed=:
18986at_fn_diff_devnull "$at_stdout" || at_failed=:
18987at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2080"
18988$at_failed && at_fn_log_failure
18989$at_traceon; }
18990
18991{ set +x
18992$as_echo "$at_srcdir/syn_file.at:2083: \$COMPILE_ONLY -frelax-syntax prog.cob"
18993at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_file.at:2083"
18994( $at_check_trace; $COMPILE_ONLY -frelax-syntax prog.cob
18995) >>"$at_stdout" 2>>"$at_stderr" 5>&-
18996at_status=$? at_failed=false
18997$at_check_filter
18998at_fn_diff_devnull "$at_stderr" || at_failed=:
18999at_fn_diff_devnull "$at_stdout" || at_failed=:
19000at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2083"
19001$at_failed && at_fn_log_failure
19002$at_traceon; }
19003
19004  set +x
19005  $at_times_p && times >"$at_times_file"
19006) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19007read at_status <"$at_status_file"
19008#AT_STOP_202
19009#AT_START_203
19010at_fn_group_banner 203 'syn_file.at:2087' \
19011  "ALTERNATE RECORD definition omitting RECORD" "    " 2
19012at_xfail=yes
19013(
19014  $as_echo "203. $at_setup_line: testing $at_desc ..."
19015  $at_traceon
19016
19017
19018
19019
19020
19021cat >prog.cob <<'_ATEOF'
19022
19023       IDENTIFICATION   DIVISION.
19024       PROGRAM-ID.      prog.
19025       ENVIRONMENT      DIVISION.
19026       INPUT-OUTPUT     SECTION.
19027       FILE-CONTROL.
19028       SELECT TEST-FILE
19029              ASSIGN        "TESTFILE"
19030              ACCESS        DYNAMIC
19031              ORGANIZATION  INDEXED
19032              RECORD     KEY  TESTKEY1
19033              ALTERNATE  KEY  TESTKEY2
19034              .
19035       PROCEDURE DIVISION.
19036           STOP RUN.
19037_ATEOF
19038
19039
19040{ set +x
19041$as_echo "$at_srcdir/syn_file.at:2109: \$COMPILE_ONLY prog.cob"
19042at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2109"
19043( $at_check_trace; $COMPILE_ONLY prog.cob
19044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19045at_status=$? at_failed=false
19046$at_check_filter
19047echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'RECORD' is mandatory here
19048" | \
19049  $at_diff - "$at_stderr" || at_failed=:
19050at_fn_diff_devnull "$at_stdout" || at_failed=:
19051at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2109"
19052$at_failed && at_fn_log_failure
19053$at_traceon; }
19054
19055{ set +x
19056$as_echo "$at_srcdir/syn_file.at:2112: \$COMPILE_ONLY -frelax-syntax prog.cob"
19057at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_file.at:2112"
19058( $at_check_trace; $COMPILE_ONLY -frelax-syntax prog.cob
19059) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19060at_status=$? at_failed=false
19061$at_check_filter
19062at_fn_diff_devnull "$at_stderr" || at_failed=:
19063at_fn_diff_devnull "$at_stdout" || at_failed=:
19064at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2112"
19065$at_failed && at_fn_log_failure
19066$at_traceon; }
19067
19068  set +x
19069  $at_times_p && times >"$at_times_file"
19070) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19071read at_status <"$at_status_file"
19072#AT_STOP_203
19073#AT_START_204
19074at_fn_group_banner 204 'syn_file.at:2116' \
19075  "SELECT/OPEN syntax extensions" "                  " 2
19076at_xfail=no
19077(
19078  $as_echo "204. $at_setup_line: testing $at_desc ..."
19079  $at_traceon
19080
19081
19082
19083# FIXME: split tests, possibly add dialect configuration,
19084#        add checks for "mutually exclusive" and ORGANIZATION
19085
19086cat >prog.cob <<'_ATEOF'
19087
19088       IDENTIFICATION   DIVISION.
19089       PROGRAM-ID.      prog.
19090       ENVIRONMENT      DIVISION.
19091       INPUT-OUTPUT     SECTION.
19092       FILE-CONTROL.
19093       SELECT TEST-FILE1
19094              ASSIGN        "TESTFILE1"
19095      *>      WITH ENCRYPTION    shift/reduce conflict ?
19096              ORGANIZATION  INDEXED
19097              ACCESS        DYNAMIC
19098              RECORD KEY    TESTKEY-1P1
19099                 WITH DUPLICATES
19100              ALTERNATE RECORD KEY TESTKEY-1P2
19101                 WITH NO DUPLICATES
19102              LOCK EXCLUSIVE MASS-UPDATE
19103              .
19104       SELECT TEST-FILE2
19105              ASSIGN        "TESTFILE2"
19106      *>      ENCRYPTION         shift/reduce conflict ?
19107              ORGANIZATION  INDEXED
19108              ACCESS        DYNAMIC
19109              RECORD KEY    TESTKEY-2P1
19110                 WITH NO DUPLICATES
19111              ALTERNATE RECORD KEY TESTKEY-2P2
19112                 WITH DUPLICATES
19113              .
19114       DATA             DIVISION.
19115       FILE             SECTION.
19116       FD  TEST-FILE1.
19117       01  TEST-REC1.
19118           03  TESTKEY-1P1 PIC X(4).
19119           03  TESTKEY-1P2 PIC 9(4).
19120           03  ENCRYPTION  PIC X(4).
19121       FD  TEST-FILE2.
19122       01  TEST-REC2.
19123           03  TESTKEY-2P1 PIC X(4).
19124           03  ALLOWING    PIC X(4).
19125           03  TESTKEY-2P2 PIC 9(4).
19126       PROCEDURE DIVISION.
19127           OPEN EXCLUSIVE INPUT TEST-FILE2
19128           CLOSE TEST-FILE2
19129           OPEN I-O TEST-FILE1 TEST-FILE2 ALLOWING UPDATERS
19130           CLOSE TEST-FILE1
19131           OPEN I-O TEST-FILE1 ALLOWING UPDATERS
19132           CLOSE TEST-FILE1
19133           CLOSE TEST-FILE1
19134           OPEN I-O TEST-FILE1 ALLOWING READERS
19135           CLOSE TEST-FILE1
19136           CLOSE TEST-FILE1
19137           OPEN I-O TEST-FILE1 ALLOWING WRITERS
19138           CLOSE TEST-FILE1
19139           CLOSE TEST-FILE1
19140           OPEN I-O TEST-FILE1 ALLOWING ALL
19141           CLOSE TEST-FILE1
19142           CLOSE TEST-FILE1
19143           OPEN I-O TEST-FILE1 ALLOWING NO
19144           CLOSE TEST-FILE1
19145           OPEN I-O TEST-FILE1 ALLOWING NO OTHERS
19146           CLOSE TEST-FILE1
19147           OPEN I-O TEST-FILE1 FOR LOCK
19148           CLOSE TEST-FILE1
19149           OPEN I-O TEST-FILE1 LOCK
19150           CLOSE TEST-FILE1
19151           OPEN I-O TEST-FILE1 BULK-ADDITION
19152           CLOSE TEST-FILE1
19153           OPEN I-O TEST-FILE1 MASS-UPDATE
19154           CLOSE TEST-FILE1
19155      *
19156           STOP RUN.
19157_ATEOF
19158
19159
19160{ set +x
19161$as_echo "$at_srcdir/syn_file.at:2194: \$COMPILE_ONLY prog.cob"
19162at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2194"
19163( $at_check_trace; $COMPILE_ONLY prog.cob
19164) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19165at_status=$? at_failed=false
19166$at_check_filter
19167echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: DUPLICATES for primary keys is not implemented
19168prog.cob:16: warning: WITH MASS-UPDATE is not implemented
19169prog.cob:65: warning: WITH BULK-ADDITION is not implemented
19170prog.cob:67: warning: WITH MASS-UPDATE is not implemented
19171" | \
19172  $at_diff - "$at_stderr" || at_failed=:
19173at_fn_diff_devnull "$at_stdout" || at_failed=:
19174at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2194"
19175$at_failed && at_fn_log_failure
19176$at_traceon; }
19177
19178{ set +x
19179$as_echo "$at_srcdir/syn_file.at:2200: \$COMPILE_ONLY -std=acu-strict prog.cob"
19180at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_file.at:2200"
19181( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
19182) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19183at_status=$? at_failed=false
19184$at_check_filter
19185echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: DUPLICATES for primary keys is not implemented
19186prog.cob:16: warning: WITH MASS-UPDATE is not implemented
19187prog.cob:34: error: syntax error, unexpected ENCRYPTION
19188prog.cob:38: error: syntax error, unexpected ALLOWING
19189prog.cob:65: warning: WITH BULK-ADDITION is not implemented
19190prog.cob:67: warning: WITH MASS-UPDATE is not implemented
19191" | \
19192  $at_diff - "$at_stderr" || at_failed=:
19193at_fn_diff_devnull "$at_stdout" || at_failed=:
19194at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2200"
19195$at_failed && at_fn_log_failure
19196$at_traceon; }
19197
19198  set +x
19199  $at_times_p && times >"$at_times_file"
19200) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19201read at_status <"$at_status_file"
19202#AT_STOP_204
19203#AT_START_205
19204at_fn_group_banner 205 'syn_file.at:2211' \
19205  "GLOBAL FD nested progam" "                        " 2
19206at_xfail=no
19207(
19208  $as_echo "205. $at_setup_line: testing $at_desc ..."
19209  $at_traceon
19210
19211
19212
19213cat >prog.cob <<'_ATEOF'
19214
19215       IDENTIFICATION DIVISION.
19216       PROGRAM-ID. prog.
19217
19218       ENVIRONMENT DIVISION.
19219       INPUT-OUTPUT SECTION.
19220       FILE-CONTROL.
19221           SELECT f ASSIGN "foo.dat"
19222               ORGANIZATION INDEXED
19223               RECORD KEY f-key.
19224
19225       DATA DIVISION.
19226       FILE SECTION.
19227       FD  f                                   GLOBAL.
19228       01  f-rec                               GLOBAL.
19229           03  f-key                           PIC 9.
19230
19231       PROCEDURE DIVISION.
19232           CALL "output-statement".
19233
19234       IDENTIFICATION DIVISION.
19235       PROGRAM-ID. output-statement.
19236
19237       PROCEDURE DIVISION.
19238           WRITE f-rec.
19239           END PROGRAM output-statement.
19240       END PROGRAM prog.
19241_ATEOF
19242
19243
19244# note: we actually want to check codegen -> C compilation here
19245{ set +x
19246$as_echo "$at_srcdir/syn_file.at:2244: \$COMPILE -std=cobol2002 prog.cob"
19247at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "syn_file.at:2244"
19248( $at_check_trace; $COMPILE -std=cobol2002 prog.cob
19249) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19250at_status=$? at_failed=false
19251$at_check_filter
19252at_fn_diff_devnull "$at_stderr" || at_failed=:
19253at_fn_diff_devnull "$at_stdout" || at_failed=:
19254at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2244"
19255$at_failed && at_fn_log_failure
19256$at_traceon; }
19257
19258
19259  set +x
19260  $at_times_p && times >"$at_times_file"
19261) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19262read at_status <"$at_status_file"
19263#AT_STOP_205
19264#AT_START_206
19265at_fn_group_banner 206 'syn_file.at:2249' \
19266  "Invalid file name in SELECT" "                    " 2
19267at_xfail=no
19268(
19269  $as_echo "206. $at_setup_line: testing $at_desc ..."
19270  $at_traceon
19271
19272
19273
19274cat >prog.cob <<'_ATEOF'
19275
19276       IDENTIFICATION DIVISION.
19277       PROGRAM-ID. HELLO.
19278
19279       ENVIRONMENT DIVISION.
19280       INPUT-OUTPUT SECTION.
19281       FILE-CONTROL.
19282           SELECT input ASSIGN "in.txt".
19283
19284       DATA DIVISION.
19285       FILE SECTION.
19286       FD input.
19287       01 input-rec PIC X.
19288
19289       PROCEDURE DIVISION.
19290           CONTINUE
19291           .
19292_ATEOF
19293
19294
19295{ set +x
19296$as_echo "$at_srcdir/syn_file.at:2271: \$COMPILE_ONLY prog.cob"
19297at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2271"
19298( $at_check_trace; $COMPILE_ONLY prog.cob
19299) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19300at_status=$? at_failed=false
19301$at_check_filter
19302echo >>"$at_stderr"; $as_echo "prog.cob:8: error: syntax error, unexpected INPUT, expecting Identifier
19303prog.cob:12: error: syntax error, unexpected INPUT, expecting Identifier
19304" | \
19305  $at_diff - "$at_stderr" || at_failed=:
19306at_fn_diff_devnull "$at_stdout" || at_failed=:
19307at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2271"
19308$at_failed && at_fn_log_failure
19309$at_traceon; }
19310
19311  set +x
19312  $at_times_p && times >"$at_times_file"
19313) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19314read at_status <"$at_status_file"
19315#AT_STOP_206
19316#AT_START_207
19317at_fn_group_banner 207 'syn_reportwriter.at:23' \
19318  "REPORT error/warning" "                           " 2
19319at_xfail=no
19320(
19321  $as_echo "207. $at_setup_line: testing $at_desc ..."
19322  $at_traceon
19323
19324
19325
19326cat >prog.cob <<'_ATEOF'
19327
19328       IDENTIFICATION   DIVISION.
19329       PROGRAM-ID. prog.
19330       ENVIRONMENT      DIVISION.
19331       INPUT-OUTPUT     SECTION.
19332       FILE-CONTROL.
19333           SELECT TRANSACTION-DATA
19334           ASSIGN TO EXTERNAL DATAIN
19335           ORGANIZATION IS LINE SEQUENTIAL.
19336
19337           SELECT REPORT-FILE
19338           ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
19339
19340       DATA             DIVISION.
19341       FILE             SECTION.
19342       FD TRANSACTION-DATA.
19343       01 TRANSACTION-RECORD.
19344          03 TR-CUSTOMER-NUMBER     PIC 9(04).
19345          03 FILLER                 PIC X(01).
19346          03 TR-CUSTOMER-NAME       PIC X(16).
19347          03 FILLER                 PIC X(01).
19348          03 TR-ITEM-NUMBER         PIC 9(05).
19349          03 FILLER                 REDEFINES TR-ITEM-NUMBER.
19350             05 TR-ITEM-DEPARTMENT  PIC 9(01).
19351             05 FILLER              PIC 9(04).
19352          03 FILLER                 PIC X(01).
19353          03 TR-ITEM-COST           PIC 9(03)V99.
19354          03 FILLER                 PIC X(47).
19355       FD REPORT-FILE
19356          REPORT IS NO-REPORT.
19357       WORKING-STORAGE  SECTION.
19358       01 END-OF-FILE-SWITCH        PIC X(1)    VALUE 'N'.
19359          88 END-OF-FILE            VALUE 'Y'.
19360          88 GOFOREVER              VALUE 'X'.
19361
19362       REPORT           SECTION.
19363       RD NO-REPORT
19364          PAGE LIMIT IS 66 LINES
19365          HEADING 1
19366          FIRST DETAIL 5
19367          LAST DETAIL 58.
19368
19369       01 PAGE-HEAD-GROUP TYPE PAGE HEADING.
19370          02 LINE 1.
19371             03 COLUMN 27   PIC X(41) VALUE
19372                'S A M P L E  R E P O R T'.
19373          02 LINE PLUS 2.
19374             03 COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
19375             03 COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
19376             03 COLUMN 30   PIC X(05) VALUE 'DEPT.'.
19377             03 COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
19378             03 COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
19379
19380       01 CHARGE-DETAIL TYPE DETAIL.
19381          02 LINE PLUS 1.
19382             03 COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
19383             03 COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
19384             03 COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
19385             03 COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
19386             03 COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
19387
19388       PROCEDURE        DIVISION.
19389
19390           OPEN INPUT TRANSACTION-DATA,
19391                OUTPUT REPORT-FILE.
19392
19393           INITIATE CUSTOMER-REPORT.
19394
19395           READ TRANSACTION-DATA
19396               AT END
19397                   MOVE 'Y' TO END-OF-FILE-SWITCH
19398           END-READ.
19399
19400           PERFORM UNTIL GOFOREVER
19401              GENERATE CHARGE-DETAIL
19402              READ TRANSACTION-DATA
19403                  AT END
19404                     EXIT PERFORM
19405              END-READ
19406           END-PERFORM.
19407
19408           TERMINATE CUSTOMER-REPORT.
19409
19410           CLOSE TRANSACTION-DATA,
19411                 REPORT-FILE.
19412
19413           STOP RUN.
19414_ATEOF
19415
19416
19417{ set +x
19418$as_echo "$at_srcdir/syn_reportwriter.at:115: \$COMPILE_ONLY prog.cob"
19419at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:115"
19420( $at_check_trace; $COMPILE_ONLY prog.cob
19421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19422at_status=$? at_failed=false
19423$at_check_filter
19424echo >>"$at_stderr"; $as_echo "prog.cob:67: error: 'CUSTOMER-REPORT' is not defined
19425prog.cob:67: error: 'CUSTOMER-REPORT' is not a valid report name
19426prog.cob:82: error: 'CUSTOMER-REPORT' is not a valid report name
19427" | \
19428  $at_diff - "$at_stderr" || at_failed=:
19429at_fn_diff_devnull "$at_stdout" || at_failed=:
19430at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:115"
19431$at_failed && at_fn_log_failure
19432$at_traceon; }
19433
19434
19435  set +x
19436  $at_times_p && times >"$at_times_file"
19437) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19438read at_status <"$at_status_file"
19439#AT_STOP_207
19440#AT_START_208
19441at_fn_group_banner 208 'syn_reportwriter.at:124' \
19442  "REPORT not positive integers in COL / LINE PLUS" "" 2
19443at_xfail=no
19444(
19445  $as_echo "208. $at_setup_line: testing $at_desc ..."
19446  $at_traceon
19447
19448
19449
19450cat >prog.cob <<'_ATEOF'
19451
19452       IDENTIFICATION DIVISION.
19453       PROGRAM-ID. prog.
19454
19455       ENVIRONMENT DIVISION.
19456       INPUT-OUTPUT SECTION.
19457       FILE-CONTROL.
19458       SELECT out-file ASSIGN "blah.txt"
19459           ORGANIZATION LINE SEQUENTIAL.
19460
19461       DATA DIVISION.
19462       FILE SECTION.
19463       FD  out-file REPORT rp.
19464
19465       REPORT SECTION.
19466       RD  rp.
19467       01  rp-head TYPE PH.
19468          02  LINE NUMBER IS 1, COLUMNS 0 VALUE "Hello!".
19469          02  LINE IS 2,        COLS    2 VALUE "Hello!".
19470          02  LINE NUMBERS ARE PLUS 1.
19471              03 COLUMN NUMBER 01  PIC X(09) VALUE 'CUST. NO.'.
19472              03 COLUMN PLUS 0     PIC X(09) VALUE 'ITEM'.
19473          02  LINES ARE PLUS 2 COL NUMBERS PLUS 0.
19474              03 COLUMN 1.5        PIC X(09) VALUE 'CUST. NO.'.
19475              03 COLUMN + -10      PIC X(09) VALUE 'ITEM'.
19476
19477       01 rp-detail TYPE DETAIL.
19478          02 LINE PLUS 1.
19479             03 COLUMN 03   PIC X(06) VALUE 'SAMPLE'.
19480             03 COLUMN +9   PIC X(06) VALUE 'REPORT'.
19481
19482       PROCEDURE DIVISION.
19483           OPEN OUTPUT out-file.
19484           INITIATE rp.
19485           GENERATE rp-detail.
19486           TERMINATE rp.
19487           CLOSE out-file.
19488           STOP RUN.
19489_ATEOF
19490
19491
19492{ set +x
19493$as_echo "$at_srcdir/syn_reportwriter.at:167: \$COMPILE_ONLY prog.cob"
19494at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:167"
19495( $at_check_trace; $COMPILE_ONLY prog.cob
19496) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19497at_status=$? at_failed=false
19498$at_check_filter
19499echo >>"$at_stderr"; $as_echo "prog.cob:18: error: invalid COLUMN integer; must be > 0
19500prog.cob:24: error: unsigned integer value expected
19501prog.cob:25: error: unsigned integer value expected
19502prog.cob:30: error: unsigned integer value expected
19503" | \
19504  $at_diff - "$at_stderr" || at_failed=:
19505at_fn_diff_devnull "$at_stdout" || at_failed=:
19506at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:167"
19507$at_failed && at_fn_log_failure
19508$at_traceon; }
19509
19510
19511  set +x
19512  $at_times_p && times >"$at_times_file"
19513) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19514read at_status <"$at_status_file"
19515#AT_STOP_208
19516#AT_START_209
19517at_fn_group_banner 209 'syn_reportwriter.at:177' \
19518  "Missing DETAIL line" "                            " 2
19519at_xfail=no
19520(
19521  $as_echo "209. $at_setup_line: testing $at_desc ..."
19522  $at_traceon
19523
19524
19525
19526cat >prog.cob <<'_ATEOF'
19527
19528       IDENTIFICATION DIVISION.
19529       PROGRAM-ID. prog.
19530
19531       ENVIRONMENT DIVISION.
19532       INPUT-OUTPUT SECTION.
19533       FILE-CONTROL.
19534       SELECT out-file ASSIGN "blah.txt"
19535           ORGANIZATION LINE SEQUENTIAL.
19536
19537       DATA DIVISION.
19538       FILE SECTION.
19539       FD  out-file REPORT rp.
19540
19541       REPORT SECTION.
19542       RD  rp.
19543       01  rp-head TYPE PH.
19544          02  LINE 1, COL 2 VALUE "Hello!".
19545          02  LINE PLUS 1.
19546              03 COLUMN 01      PIC X(09) VALUE 'CUST. NO.'.
19547              03 COLUMN PLUS 20 PIC X(09) VALUE 'ITEM'.
19548
19549
19550       PROCEDURE DIVISION.
19551           OPEN OUTPUT out-file.
19552           INITIATE rp.
19553           GENERATE rp-detail.
19554           TERMINATE rp.
19555           CLOSE out-file.
19556           STOP RUN.
19557_ATEOF
19558
19559
19560{ set +x
19561$as_echo "$at_srcdir/syn_reportwriter.at:212: \$COMPILE_ONLY prog.cob"
19562at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:212"
19563( $at_check_trace; $COMPILE_ONLY prog.cob
19564) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19565at_status=$? at_failed=false
19566$at_check_filter
19567echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: no DETAIL line defined in report rp
19568prog.cob:27: error: 'rp-detail' is not defined
19569" | \
19570  $at_diff - "$at_stderr" || at_failed=:
19571at_fn_diff_devnull "$at_stdout" || at_failed=:
19572at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:212"
19573$at_failed && at_fn_log_failure
19574$at_traceon; }
19575
19576
19577  set +x
19578  $at_times_p && times >"$at_times_file"
19579) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19580read at_status <"$at_status_file"
19581#AT_STOP_209
19582#AT_START_210
19583at_fn_group_banner 210 'syn_reportwriter.at:220' \
19584  "REPORT LINE PLUS ZERO" "                          " 2
19585at_xfail=no
19586(
19587  $as_echo "210. $at_setup_line: testing $at_desc ..."
19588  $at_traceon
19589
19590
19591
19592cat >prog.cob <<'_ATEOF'
19593
19594       IDENTIFICATION DIVISION.
19595       PROGRAM-ID. prog.
19596
19597       ENVIRONMENT DIVISION.
19598       INPUT-OUTPUT SECTION.
19599       FILE-CONTROL.
19600       SELECT out-file ASSIGN "blah.txt"
19601           ORGANIZATION LINE SEQUENTIAL.
19602
19603       DATA DIVISION.
19604       FILE SECTION.
19605       FD  out-file REPORT rp.
19606
19607       REPORT SECTION.
19608       RD  rp.
19609       01  rp-head TYPE PH.
19610          02  LINE 1  COL 5 PIC X(20) VALUE "Hello World!".
19611          02  LINE 2  COL 4 PIC X(20) VALUE "Hello Goodbye!".
19612          02  LINE PLUS 0.
19613              03 COLUMN  1      PIC X(09) VALUE 'CUST. No.'.
19614              03 COLUMN PLUS 0  PIC X(09) VALUE 'ITEM'.
19615          02  LINE PLUS ZERO.
19616              03 COLUMN 1       PIC X(09) VALUE 'Cust. No.'.
19617              03 COLUMN + 10    PIC X(09) VALUE 'Item'.
19618
19619       01 rp-detail TYPE DETAIL.
19620          02 LINE PLUS 1.
19621             03 COLUMN 03   PIC X(06) VALUE 'SAMPLE'.
19622
19623       PROCEDURE DIVISION.
19624           OPEN OUTPUT out-file.
19625           INITIATE rp.
19626           GENERATE rp-detail.
19627           TERMINATE rp.
19628           CLOSE out-file.
19629           STOP RUN.
19630_ATEOF
19631
19632
19633{ set +x
19634$as_echo "$at_srcdir/syn_reportwriter.at:262: \$COMPILE_ONLY prog.cob"
19635at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:262"
19636( $at_check_trace; $COMPILE_ONLY prog.cob
19637) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19638at_status=$? at_failed=false
19639$at_check_filter
19640echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: LINE PLUS 0 is not implemented
19641prog.cob:23: warning: LINE PLUS 0 is not implemented
19642" | \
19643  $at_diff - "$at_stderr" || at_failed=:
19644at_fn_diff_devnull "$at_stdout" || at_failed=:
19645at_fn_check_status 0 $at_status "$at_srcdir/syn_reportwriter.at:262"
19646$at_failed && at_fn_log_failure
19647$at_traceon; }
19648
19649
19650  set +x
19651  $at_times_p && times >"$at_times_file"
19652) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19653read at_status <"$at_status_file"
19654#AT_STOP_210
19655#AT_START_211
19656at_fn_group_banner 211 'syn_reportwriter.at:270' \
19657  "Incorrect REPORT NAME" "                          " 2
19658at_xfail=no
19659(
19660  $as_echo "211. $at_setup_line: testing $at_desc ..."
19661  $at_traceon
19662
19663
19664
19665cat >prog.cob <<'_ATEOF'
19666
19667       IDENTIFICATION   DIVISION.
19668       PROGRAM-ID. prog.
19669       ENVIRONMENT      DIVISION.
19670       INPUT-OUTPUT     SECTION.
19671       FILE-CONTROL.
19672           SELECT TRANSACTION-DATA
19673           ASSIGN TO EXTERNAL DATAIN
19674           ORGANIZATION IS LINE SEQUENTIAL.
19675
19676           SELECT REPORT-FILE
19677           ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
19678
19679       DATA             DIVISION.
19680       FILE             SECTION.
19681       FD TRANSACTION-DATA
19682          LABEL RECORDS ARE OMITTED
19683         BLOCK CONTAINS 0 RECORDS
19684         RECORD CONTAINS 80 CHARACTERS
19685         DATA RECORD IS TRANSACTION-RECORD.
19686       01 TRANSACTION-RECORD.
19687          03 TR-CUSTOMER-NUMBER     PIC 9(04).
19688          03 FILLER                 PIC X(01).
19689          03 TR-CUSTOMER-NAME       PIC X(16).
19690          03 FILLER                 PIC X(01).
19691          03 TR-ITEM-NUMBER         PIC 9(05).
19692          03 FILLER                 REDEFINES TR-ITEM-NUMBER.
19693             05 TR-ITEM-DEPARTMENT  PIC 9(01).
19694             05 FILLER              PIC 9(04).
19695          03 FILLER                 PIC X(01).
19696          03 TR-ITEM-COST           PIC 9(03)V99.
19697          03 FILLER                 PIC X(47).
19698       FD REPORT-FILE
19699          LABEL RECORDS ARE OMITTED
19700          REPORT IS NO-REPORT.
19701       WORKING-STORAGE  SECTION.
19702       01 END-OF-FILE-SWITCH        PIC X(1)    VALUE 'N'.
19703          88 END-OF-FILE            VALUE 'Y'.
19704          88 GOFOREVER              VALUE 'X'.
19705
19706       REPORT           SECTION.
19707       RD SOME-REPORT
19708          PAGE LIMIT IS 66 LINES
19709          HEADING 1
19710          FIRST DETAIL 5
19711          LAST DETAIL 58.
19712
19713       01 PAGE-HEAD-GROUP TYPE PAGE HEADING.
19714          02 LINE 1.
19715             03 COLUMN 27   PIC X(41) VALUE
19716                'S A M P L E  R E P O R T'.
19717          02 LINE PLUS 2.
19718             03 COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
19719             03 COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
19720             03 COLUMN 30   PIC X(05) VALUE 'DEPT.'.
19721             03 COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
19722             03 COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
19723
19724       01 CHARGE-DETAIL TYPE DETAIL.
19725          02 LINE PLUS 1.
19726             03 COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
19727             03 COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
19728             03 COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
19729             03 COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
19730             03 COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
19731
19732       PROCEDURE DIVISION.
19733
19734           OPEN INPUT  TRANSACTION-DATA,
19735                OUTPUT REPORT-FILE.
19736
19737           INITIATE CUSTOMER-REPORT.
19738
19739           READ TRANSACTION-DATA
19740               AT END
19741                   MOVE 'Y' TO END-OF-FILE-SWITCH
19742           END-READ.
19743
19744           PERFORM UNTIL GOFOREVER
19745              GENERATE CHARGE-DETAIL
19746              READ TRANSACTION-DATA
19747                  AT END
19748                     EXIT PERFORM
19749              END-READ
19750           END-PERFORM.
19751
19752           TERMINATE CUSTOMER-REPORT.
19753
19754           CLOSE TRANSACTION-DATA,
19755                 REPORT-FILE.
19756
19757           STOP RUN.
19758_ATEOF
19759
19760
19761{ set +x
19762$as_echo "$at_srcdir/syn_reportwriter.at:367: \$COMPILE_ONLY -std=mf-strict prog.cob"
19763at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_reportwriter.at:367"
19764( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
19765) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19766at_status=$? at_failed=false
19767$at_check_filter
19768echo >>"$at_stderr"; $as_echo "prog.cob:17: warning: LABEL RECORDS is obsolete in Micro Focus COBOL
19769prog.cob:19: warning: RECORD clause ignored for LINE SEQUENTIAL
19770prog.cob:20: warning: DATA RECORDS is obsolete in Micro Focus COBOL
19771prog.cob:34: warning: LABEL RECORDS is obsolete in Micro Focus COBOL
19772prog.cob:42: error: 'SOME-REPORT' is not defined
19773prog.cob:42: error: 'SOME-REPORT' is not a valid report name
19774" | \
19775  $at_diff - "$at_stderr" || at_failed=:
19776at_fn_diff_devnull "$at_stdout" || at_failed=:
19777at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:367"
19778$at_failed && at_fn_log_failure
19779$at_traceon; }
19780
19781
19782{ set +x
19783$as_echo "$at_srcdir/syn_reportwriter.at:376: \$COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob"
19784at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob" "syn_reportwriter.at:376"
19785( $at_check_trace; $COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob
19786) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19787at_status=$? at_failed=false
19788$at_check_filter
19789echo >>"$at_stderr"; $as_echo "prog.cob:17: error: syntax error, unexpected Identifier, expecting EXTERNAL or GLOBAL
19790prog.cob:34: error: syntax error, unexpected Identifier, expecting EXTERNAL or GLOBAL
19791prog.cob:36: error: RECORD description missing or invalid
19792prog.cob:42: error: 'SOME-REPORT' is not defined
19793prog.cob:42: error: 'SOME-REPORT' is not a valid report name
19794" | \
19795  $at_diff - "$at_stderr" || at_failed=:
19796at_fn_diff_devnull "$at_stdout" || at_failed=:
19797at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:376"
19798$at_failed && at_fn_log_failure
19799$at_traceon; }
19800
19801
19802  set +x
19803  $at_times_p && times >"$at_times_file"
19804) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19805read at_status <"$at_status_file"
19806#AT_STOP_211
19807#AT_START_212
19808at_fn_group_banner 212 'syn_reportwriter.at:387' \
19809  "REPORT with PLUS RIGHT/CENTER" "                  " 2
19810at_xfail=no
19811(
19812  $as_echo "212. $at_setup_line: testing $at_desc ..."
19813  $at_traceon
19814
19815
19816
19817cat >prog.cob <<'_ATEOF'
19818
19819       IDENTIFICATION DIVISION.
19820       PROGRAM-ID. prog.
19821       ENVIRONMENT DIVISION.
19822       CONFIGURATION SECTION.
19823       INPUT-OUTPUT SECTION.
19824       FILE-CONTROL.
19825               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
19826                              ORGANIZATION IS LINE SEQUENTIAL.
19827               SELECT PRINT-FILE ASSIGN TO EXTERNAL
19828                              LINE ADVANCING REPORT1.
19829
19830       DATA DIVISION.
19831       FILE SECTION.
19832       FD   INPUT-FILE.
19833       01   INPUT-REC.
19834               05  STUDENT-ID               PIC  9(5).
19835               05  STUDENT-NAME             PIC  X(20).
19836               05  MAJOR                    PIC  XXX.
19837               05  NUM-COURSES              PIC  9(6).
19838
19839       FD   PRINT-FILE
19840             REPORT IS STUDENT-REPORT.
19841
19842       WORKING-STORAGE SECTION.
19843       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".
19844
19845       REPORT SECTION.
19846       RD   STUDENT-REPORT
19847           PAGE LIMIT 30 LINES
19848           HEADING 1
19849           FIRST DETAIL 3
19850           LAST DETAIL 25
19851           FOOTING 28.
19852       01   HEADING-LINE
19853            TYPE PAGE HEADING LINE PLUS 1.
19854            05  COLUMN 1      PIC X(2)  VALUE "Ln".
19855            05  COLUMN 4      PIC X(6)  VALUE "--ID--".
19856            05  COLUMN 16     PIC X(20) VALUE "--------Name--------".
19857            05  COLUMN 39     PIC X(5)  VALUE "  Mjr".
19858            05  COLUMN 48     PIC XXX   VALUE "*-*".
19859            05  COLUMN 54     PIC X(5)  VALUE "+Num+".
19860
19861       01   REPORT-LINE
19862            TYPE DETAIL LINE PLUS  1.
19863            05  COLUMN PLUS 1 PIC 9(2)
19864                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
19865            05  COLUMN LEFT PLUS 1   PIC Z(5)9 SOURCE STUDENT-ID.
19866            05  COLUMN CENTER 25     PIC X(20) SOURCE STUDENT-NAME.
19867            05  COLUMN RIGHT  43     PIC X(5)  SOURCE MAJOR.
19868            05  COLUMN        48     PIC XXX   VALUE "<->".
19869            05  COLUMN CENTER 56     PIC Z(4)9 SOURCE NUM-COURSES.
19870            05  COLUMN 60 62 65      PIC Z9 OCCURS 3 TIMES.
19871
19872       PROCEDURE DIVISION.
19873       A000-MAINLINE.
19874           OPEN  INPUT  INPUT-FILE
19875                 OUTPUT PRINT-FILE
19876           PERFORM DO-INIT.
19877           READ INPUT-FILE
19878               AT END
19879                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
19880           PERFORM A001-LOOP
19881               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
19882           PERFORM DO-TERM.
19883           CLOSE INPUT-FILE
19884                 PRINT-FILE.
19885           STOP RUN.
19886
19887       A001-LOOP.
19888           GENERATE REPORT-LINE.
19889           READ INPUT-FILE
19890               AT END
19891                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
19892       DO-INIT.
19893           INITIATE STUDENT-REPORT.
19894
19895       DO-TERM.
19896           TERMINATE STUDENT-REPORT.
19897_ATEOF
19898
19899
19900{ set +x
19901$as_echo "$at_srcdir/syn_reportwriter.at:471: \$COMPILE_ONLY prog.cob"
19902at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:471"
19903( $at_check_trace; $COMPILE_ONLY prog.cob
19904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19905at_status=$? at_failed=false
19906$at_check_filter
19907echo >>"$at_stderr"; $as_echo "prog.cob:46: warning: PLUS is ignored on first field of line
19908prog.cob:48: error: PLUS is not allowed with LEFT, RIGHT or CENTER
19909prog.cob:53: error: OCCURS and multi COLUMNs is not allowed
19910" | \
19911  $at_diff - "$at_stderr" || at_failed=:
19912at_fn_diff_devnull "$at_stdout" || at_failed=:
19913at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:471"
19914$at_failed && at_fn_log_failure
19915$at_traceon; }
19916
19917
19918  set +x
19919  $at_times_p && times >"$at_times_file"
19920) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19921read at_status <"$at_status_file"
19922#AT_STOP_212
19923#AT_START_213
19924at_fn_group_banner 213 'syn_reportwriter.at:480' \
19925  "PAGE LIMITS clause" "                             " 2
19926at_xfail=no
19927(
19928  $as_echo "213. $at_setup_line: testing $at_desc ..."
19929  $at_traceon
19930
19931
19932
19933cat >prog.cob <<'_ATEOF'
19934
19935       IDENTIFICATION  DIVISION.
19936       PROGRAM-ID.     prog.
19937
19938       ENVIRONMENT     DIVISION.
19939       INPUT-OUTPUT    SECTION.
19940       FILE-CONTROL.
19941           SELECT f ASSIGN "f.txt".
19942
19943       DATA            DIVISION.
19944       FILE            SECTION.
19945       FD  f           REPORT r1, r2.
19946       01  f-rec       PIC XXXXX.
19947
19948       REPORT          SECTION.
19949       RD  r1          PAGE LIMIT 1 LINES 1 COLUMNS
19950                       HEADING f-rec,
19951                       HEADING f-rec,
19952                       LINE LIMIT 1.
19953
19954       RD  r2          PAGE LIMIT 1 COLUMNS
19955                       HEADING f-rec.
19956_ATEOF
19957
19958
19959{ set +x
19960$as_echo "$at_srcdir/syn_reportwriter.at:507: \$COMPILE_ONLY prog.cob"
19961at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:507"
19962( $at_check_trace; $COMPILE_ONLY prog.cob
19963) >>"$at_stdout" 2>>"$at_stderr" 5>&-
19964at_status=$? at_failed=false
19965$at_check_filter
19966echo >>"$at_stderr"; $as_echo "prog.cob:19: error: duplicate HEADING clause
19967prog.cob:19: error: duplicate LINE LIMIT clause
19968prog.cob:22: error: Cannot specify HEADING without number of lines on page
19969" | \
19970  $at_diff - "$at_stderr" || at_failed=:
19971at_fn_diff_devnull "$at_stdout" || at_failed=:
19972at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:507"
19973$at_failed && at_fn_log_failure
19974$at_traceon; }
19975
19976  set +x
19977  $at_times_p && times >"$at_times_file"
19978) 5>&1 2>&1 7>&- | eval $at_tee_pipe
19979read at_status <"$at_status_file"
19980#AT_STOP_213
19981#AT_START_214
19982at_fn_group_banner 214 'syn_reportwriter.at:515' \
19983  "Report FD without period" "                       " 2
19984at_xfail=no
19985(
19986  $as_echo "214. $at_setup_line: testing $at_desc ..."
19987  $at_traceon
19988
19989
19990
19991cat >prog.cob <<'_ATEOF'
19992
19993       IDENTIFICATION  DIVISION.
19994       PROGRAM-ID.     prog.
19995
19996       ENVIRONMENT     DIVISION.
19997       INPUT-OUTPUT    SECTION.
19998       FILE-CONTROL.
19999           SELECT f ASSIGN "f.txt".
20000
20001       DATA            DIVISION.
20002       FILE            SECTION.
20003       FD  f           REPORT r
20004_ATEOF
20005
20006
20007# In this case, the error handler enters an infinite loop, but it's OK as the
20008# error is still easy to identify and it doesn't occur if anything follows the
20009# "REPORT r".
20010{ set +x
20011$as_echo "$at_srcdir/syn_reportwriter.at:535: \$COMPILE_ONLY -fmax-errors=4 prog.cob"
20012at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmax-errors=4 prog.cob" "syn_reportwriter.at:535"
20013( $at_check_trace; $COMPILE_ONLY -fmax-errors=4 prog.cob
20014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20015at_status=$? at_failed=false
20016$at_check_filter
20017echo >>"$at_stderr"; $as_echo "prog.cob:13: error: syntax error, unexpected end of file
20018prog.cob:13: error: syntax error, unexpected end of file
20019prog.cob:13: error: syntax error, unexpected end of file
20020prog.cob:13: error: syntax error, unexpected end of file
20021prog.cob:13: error: syntax error, unexpected end of file
20022cobc: too many errors
20023
20024cobc: aborting compile of prog.cob at line 13 (PROGRAM-ID: prog)
20025" | \
20026  $at_diff - "$at_stderr" || at_failed=:
20027at_fn_diff_devnull "$at_stdout" || at_failed=:
20028at_fn_check_status 97 $at_status "$at_srcdir/syn_reportwriter.at:535"
20029$at_failed && at_fn_log_failure
20030$at_traceon; }
20031
20032  set +x
20033  $at_times_p && times >"$at_times_file"
20034) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20035read at_status <"$at_status_file"
20036#AT_STOP_214
20037#AT_START_215
20038at_fn_group_banner 215 'syn_reportwriter.at:548' \
20039  "REPORT with unreferenced control field" "         " 2
20040at_xfail=no
20041(
20042  $as_echo "215. $at_setup_line: testing $at_desc ..."
20043  $at_traceon
20044
20045
20046
20047cat >prog.cob <<'_ATEOF'
20048
20049       IDENTIFICATION  DIVISION.
20050       PROGRAM-ID. prog.
20051
20052       ENVIRONMENT     DIVISION.
20053       INPUT-OUTPUT    SECTION.
20054       FILE-CONTROL.
20055           SELECT f ASSIGN "f.txt".
20056
20057       DATA            DIVISION.
20058       FILE            SECTION.
20059       FD  f           REPORT r.
20060       01  f-rec       PIC X.
20061
20062       REPORT          SECTION.
20063       RD  r.
20064       01  r0          TYPE DETAIL, PRESENT AFTER NEW f-rec.
20065_ATEOF
20066
20067
20068# no compile_only here as we check the C generation
20069{ set +x
20070$as_echo "$at_srcdir/syn_reportwriter.at:571: \$COMPILE prog.cob "
20071at_fn_check_prepare_dynamic "$COMPILE prog.cob " "syn_reportwriter.at:571"
20072( $at_check_trace; $COMPILE prog.cob
20073) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20074at_status=$? at_failed=false
20075$at_check_filter
20076at_fn_diff_devnull "$at_stderr" || at_failed=:
20077at_fn_diff_devnull "$at_stdout" || at_failed=:
20078at_fn_check_status 0 $at_status "$at_srcdir/syn_reportwriter.at:571"
20079$at_failed && at_fn_log_failure
20080$at_traceon; }
20081
20082
20083  set +x
20084  $at_times_p && times >"$at_times_file"
20085) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20086read at_status <"$at_status_file"
20087#AT_STOP_215
20088#AT_START_216
20089at_fn_group_banner 216 'syn_reportwriter.at:576' \
20090  "Incorrect USAGE clause" "                         " 2
20091at_xfail=no
20092(
20093  $as_echo "216. $at_setup_line: testing $at_desc ..."
20094  $at_traceon
20095
20096
20097
20098cat >prog.cob <<'_ATEOF'
20099
20100       IDENTIFICATION DIVISION.
20101       PROGRAM-ID. prog.
20102
20103       ENVIRONMENT DIVISION.
20104       INPUT-OUTPUT SECTION.
20105       FILE-CONTROL.
20106       SELECT report-file ASSIGN EXTERNAL PRINTOUT
20107            ORGANIZATION LINE SEQUENTIAL.
20108
20109       DATA DIVISION.
20110       FILE SECTION.
20111       FD  report-file REPORT rp.
20112
20113       WORKING-STORAGE SECTION.
20114       01  foo  PIC X(20).
20115
20116       REPORT SECTION.
20117       RD  rp PAGE LIMIT 3.
20118
20119       01  rp-detail TYPE DE.
20120         02  LINE PLUS 1.
20121            03  FILLER   SOURCE foo  PIC X(30).
20122            03  FILLER                PIC X(6) VALUE "<--->".
20123            03  THING1                PIC 9(3) BINARY VALUE 12.
20124            03  FILLER                PIC 9 COMP-5 VALUE 1.
20125            03  THING3                COMP-2          VALUE 12.
20126
20127       PROCEDURE DIVISION.
20128           OPEN OUTPUT report-file.
20129           INITIATE rp.
20130
20131           MOVE "hello" TO foo.
20132            GENERATE rp-detail.
20133
20134           MOVE "goodbye" TO foo.
20135            GENERATE rp-detail.
20136
20137           TERMINATE rp.
20138             CLOSE report-file.
20139           STOP RUN.
20140           END PROGRAM prog.
20141_ATEOF
20142
20143
20144{ set +x
20145$as_echo "$at_srcdir/syn_reportwriter.at:623: \$COMPILE prog.cob"
20146at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_reportwriter.at:623"
20147( $at_check_trace; $COMPILE prog.cob
20148) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20149at_status=$? at_failed=false
20150$at_check_filter
20151echo >>"$at_stderr"; $as_echo "prog.cob:25: error: REPORT SECTION item 'THING1' should be USAGE DISPLAY
20152prog.cob:26: error: REPORT SECTION item 'FILLER 4' should be USAGE DISPLAY
20153prog.cob:27: error: REPORT SECTION item 'THING3' should be USAGE DISPLAY
20154" | \
20155  $at_diff - "$at_stderr" || at_failed=:
20156at_fn_diff_devnull "$at_stdout" || at_failed=:
20157at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:623"
20158$at_failed && at_fn_log_failure
20159$at_traceon; }
20160
20161
20162  set +x
20163  $at_times_p && times >"$at_times_file"
20164) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20165read at_status <"$at_status_file"
20166#AT_STOP_216
20167#AT_START_217
20168at_fn_group_banner 217 'syn_refmod.at:25' \
20169  "valid reference modification" "                   " 2
20170at_xfail=no
20171(
20172  $as_echo "217. $at_setup_line: testing $at_desc ..."
20173  $at_traceon
20174
20175
20176
20177cat >prog.cob <<'_ATEOF'
20178
20179       IDENTIFICATION   DIVISION.
20180       PROGRAM-ID.      prog.
20181       DATA             DIVISION.
20182       WORKING-STORAGE  SECTION.
20183       01 X             PIC X(4) VALUE "abcd".
20184       PROCEDURE        DIVISION.
20185           DISPLAY X(1:1) ":" X(1:2) ":" X(1:3) ":" X(1:4) ":" X(1:)
20186           END-DISPLAY.
20187           DISPLAY X(2:1) ":" X(2:2) ":" X(2:3) ":" X(2:)
20188           END-DISPLAY.
20189           DISPLAY X(3:1) ":" X(3:2) ":" X(3:)
20190           END-DISPLAY.
20191           DISPLAY X(4:1) ":" X(4:)
20192           END-DISPLAY.
20193           STOP RUN.
20194_ATEOF
20195
20196
20197{ set +x
20198$as_echo "$at_srcdir/syn_refmod.at:46: \$COMPILE prog.cob"
20199at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_refmod.at:46"
20200( $at_check_trace; $COMPILE prog.cob
20201) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20202at_status=$? at_failed=false
20203$at_check_filter
20204at_fn_diff_devnull "$at_stderr" || at_failed=:
20205at_fn_diff_devnull "$at_stdout" || at_failed=:
20206at_fn_check_status 0 $at_status "$at_srcdir/syn_refmod.at:46"
20207$at_failed && at_fn_log_failure
20208$at_traceon; }
20209
20210
20211  set +x
20212  $at_times_p && times >"$at_times_file"
20213) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20214read at_status <"$at_status_file"
20215#AT_STOP_217
20216#AT_START_218
20217at_fn_group_banner 218 'syn_refmod.at:51' \
20218  "Static out of bounds" "                           " 2
20219at_xfail=no
20220(
20221  $as_echo "218. $at_setup_line: testing $at_desc ..."
20222  $at_traceon
20223
20224
20225
20226cat >prog.cob <<'_ATEOF'
20227
20228       IDENTIFICATION   DIVISION.
20229       PROGRAM-ID.      prog.
20230       DATA             DIVISION.
20231       WORKING-STORAGE  SECTION.
20232       01 X             PIC X(4).
20233       01 Y             PIC 9 VALUE 1.
20234       PROCEDURE        DIVISION.
20235           DISPLAY X(0:1)
20236           END-DISPLAY.
20237           DISPLAY X(0:Y)
20238           END-DISPLAY.
20239           DISPLAY X(5:1)
20240           END-DISPLAY.
20241           DISPLAY X(5:Y)
20242           END-DISPLAY.
20243           DISPLAY X(1:0)
20244           END-DISPLAY.
20245           DISPLAY X(Y:0)
20246           END-DISPLAY.
20247           DISPLAY X(1:5)
20248           END-DISPLAY.
20249           DISPLAY X(Y:5)
20250           END-DISPLAY.
20251           STOP RUN.
20252_ATEOF
20253
20254
20255{ set +x
20256$as_echo "$at_srcdir/syn_refmod.at:81: \$COMPILE_ONLY prog.cob"
20257at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_refmod.at:81"
20258( $at_check_trace; $COMPILE_ONLY prog.cob
20259) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20260at_status=$? at_failed=false
20261$at_check_filter
20262echo >>"$at_stderr"; $as_echo "prog.cob:9: error: offset of 'X' out of bounds: 0
20263prog.cob:11: error: offset of 'X' out of bounds: 0
20264prog.cob:13: error: offset of 'X' out of bounds: 5
20265prog.cob:15: error: offset of 'X' out of bounds: 5
20266prog.cob:17: error: length of 'X' out of bounds: 0
20267prog.cob:19: error: length of 'X' out of bounds: 0
20268prog.cob:21: error: length of 'X' out of bounds: 5
20269prog.cob:23: error: length of 'X' out of bounds: 5
20270" | \
20271  $at_diff - "$at_stderr" || at_failed=:
20272at_fn_diff_devnull "$at_stdout" || at_failed=:
20273at_fn_check_status 1 $at_status "$at_srcdir/syn_refmod.at:81"
20274$at_failed && at_fn_log_failure
20275$at_traceon; }
20276
20277
20278  set +x
20279  $at_times_p && times >"$at_times_file"
20280) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20281read at_status <"$at_status_file"
20282#AT_STOP_218
20283#AT_START_219
20284at_fn_group_banner 219 'syn_refmod.at:95' \
20285  "constant-folding out of bounds" "                 " 2
20286at_xfail=no
20287(
20288  $as_echo "219. $at_setup_line: testing $at_desc ..."
20289  $at_traceon
20290
20291
20292
20293cat >prog.cob <<'_ATEOF'
20294
20295       IDENTIFICATION   DIVISION.
20296       PROGRAM-ID.      prog.
20297       DATA             DIVISION.
20298       WORKING-STORAGE  SECTION.
20299       78 VAR-LEN       VALUE 4.
20300       01 X             PIC X(VAR-LEN).
20301       PROCEDURE        DIVISION.
20302           IF VAR-LEN < 4
20303              DISPLAY X(4 - VAR-LEN:1)
20304              END-DISPLAY
20305              DISPLAY X(1: 4 - VAR-LEN)
20306              END-DISPLAY
20307              DISPLAY X(9 - VAR-LEN:1)
20308              END-DISPLAY
20309              DISPLAY X(1:9 - VAR-LEN)
20310              END-DISPLAY
20311      *>      special test...
20312              INSPECT X CONVERTING "DEF"  TO X (1:0 + VAR-LEN)
20313           END-IF
20314           STOP RUN.
20315_ATEOF
20316
20317
20318{ set +x
20319$as_echo "$at_srcdir/syn_refmod.at:121: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob"
20320at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob" "syn_refmod.at:121"
20321( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob
20322) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20323at_status=$? at_failed=false
20324$at_check_filter
20325echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: offset of 'X' out of bounds: 0 [-Wignored-error]
20326prog.cob:12: warning: length of 'X' out of bounds: 0 [-Wignored-error]
20327prog.cob:14: warning: offset of 'X' out of bounds: 5 [-Wignored-error]
20328prog.cob:16: warning: length of 'X' out of bounds: 5 [-Wignored-error]
20329prog.cob:19: warning: CONVERTING operands differ in size [-Wignored-error]
20330" | \
20331  $at_diff - "$at_stderr" || at_failed=:
20332at_fn_diff_devnull "$at_stdout" || at_failed=:
20333at_fn_check_status 0 $at_status "$at_srcdir/syn_refmod.at:121"
20334$at_failed && at_fn_log_failure
20335$at_traceon; }
20336
20337{ set +x
20338$as_echo "$at_srcdir/syn_refmod.at:128: \$COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding prog.cob"
20339at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding prog.cob" "syn_refmod.at:128"
20340( $at_check_trace; $COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding prog.cob
20341) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20342at_status=$? at_failed=false
20343$at_check_filter
20344at_fn_diff_devnull "$at_stderr" || at_failed=:
20345at_fn_diff_devnull "$at_stdout" || at_failed=:
20346at_fn_check_status 0 $at_status "$at_srcdir/syn_refmod.at:128"
20347$at_failed && at_fn_log_failure
20348$at_traceon; }
20349
20350
20351  set +x
20352  $at_times_p && times >"$at_times_file"
20353) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20354read at_status <"$at_status_file"
20355#AT_STOP_219
20356#AT_START_220
20357at_fn_group_banner 220 'syn_misc.at:23' \
20358  "ambiguous AND/OR" "                               " 2
20359at_xfail=no
20360(
20361  $as_echo "220. $at_setup_line: testing $at_desc ..."
20362  $at_traceon
20363
20364
20365
20366cat >prog.cob <<'_ATEOF'
20367
20368       IDENTIFICATION   DIVISION.
20369       PROGRAM-ID.      prog.
20370       DATA             DIVISION.
20371       WORKING-STORAGE  SECTION.
20372       01 ONE   PIC 9 VALUE 1.
20373       01 TWO   PIC 9 VALUE 2.
20374       01 THREE PIC 9 VALUE 3.
20375       PROCEDURE        DIVISION.
20376           IF THREE = ONE AND TWO OR THREE
20377               DISPLAY "OK"
20378               END-DISPLAY
20379           END-IF.
20380           IF 3 = 1 OR 2 AND 3
20381               DISPLAY "NO"
20382               END-DISPLAY
20383           END-IF.
20384           STOP RUN.
20385_ATEOF
20386
20387
20388{ set +x
20389$as_echo "$at_srcdir/syn_misc.at:46: \$COMPILE_ONLY -Wno-constant-expression prog.cob"
20390at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-constant-expression prog.cob" "syn_misc.at:46"
20391( $at_check_trace; $COMPILE_ONLY -Wno-constant-expression prog.cob
20392) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20393at_status=$? at_failed=false
20394$at_check_filter
20395echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: suggest parentheses around AND within OR
20396prog.cob:14: warning: suggest parentheses around OR within AND
20397" | \
20398  $at_diff - "$at_stderr" || at_failed=:
20399at_fn_diff_devnull "$at_stdout" || at_failed=:
20400at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:46"
20401$at_failed && at_fn_log_failure
20402$at_traceon; }
20403
20404
20405  set +x
20406  $at_times_p && times >"$at_times_file"
20407) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20408read at_status <"$at_status_file"
20409#AT_STOP_220
20410#AT_START_221
20411at_fn_group_banner 221 'syn_misc.at:54' \
20412  "warn constant expressions" "                      " 2
20413at_xfail=no
20414(
20415  $as_echo "221. $at_setup_line: testing $at_desc ..."
20416  $at_traceon
20417
20418
20419
20420cat >prog.cob <<'_ATEOF'
20421
20422       IDENTIFICATION   DIVISION.
20423       PROGRAM-ID.      prog.
20424       PROCEDURE        DIVISION.
20425           IF 3 = 1
20426           AND 2 OR 3
20427              DISPLAY "OK"
20428              END-DISPLAY
20429           END-IF.
20430           IF 3 = 1 OR
20431              2 AND 3
20432              DISPLAY "NO"
20433              END-DISPLAY
20434           END-IF.
20435           STOP RUN.
20436_ATEOF
20437
20438
20439# FIXME positions broken
20440{ set +x
20441$as_echo "$at_srcdir/syn_misc.at:75: \$COMPILE_ONLY -w -Wconstant-expression prog.cob"
20442at_fn_check_prepare_dynamic "$COMPILE_ONLY -w -Wconstant-expression prog.cob" "syn_misc.at:75"
20443( $at_check_trace; $COMPILE_ONLY -w -Wconstant-expression prog.cob
20444) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20445at_status=$? at_failed=false
20446$at_check_filter
20447echo >>"$at_stderr"; $as_echo "prog.cob:5: warning: expression '3' EQUALS '1' is always FALSE
20448prog.cob:6: warning: expression '3' EQUALS '2' is always FALSE
20449prog.cob:6: warning: expression '3' EQUALS '3' is always TRUE
20450prog.cob:10: warning: expression '3' EQUALS '1' is always FALSE
20451prog.cob:11: warning: expression '3' EQUALS '2' is always FALSE
20452prog.cob:11: warning: expression '3' EQUALS '3' is always TRUE
20453" | \
20454  $at_diff - "$at_stderr" || at_failed=:
20455at_fn_diff_devnull "$at_stdout" || at_failed=:
20456at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:75"
20457$at_failed && at_fn_log_failure
20458$at_traceon; }
20459
20460
20461  set +x
20462  $at_times_p && times >"$at_times_file"
20463) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20464read at_status <"$at_status_file"
20465#AT_STOP_221
20466#AT_START_222
20467at_fn_group_banner 222 'syn_misc.at:87' \
20468  "warn literal size" "                              " 2
20469at_xfail=no
20470(
20471  $as_echo "222. $at_setup_line: testing $at_desc ..."
20472  $at_traceon
20473
20474
20475
20476cat >prog.cob <<'_ATEOF'
20477
20478       IDENTIFICATION DIVISION.
20479       PROGRAM-ID. prog.
20480       DATA DIVISION.
20481       WORKING-STORAGE SECTION.
20482       01 WS-LINE-NUMBER         PIC 9(3) VALUE ZERO.
20483       01 WS-NUMBER              PIC 9(3)V99 VALUE ZERO.
20484       01 WS-TEXT                PIC X(5) VALUE 'CAT'.
20485       01 PIC-9-SIGNED           PIC S9(2) VALUE 5.
20486       01 PIC-9-SIGNED-DECIMAL   PIC S9(2)V99 VALUE 5.
20487       01 PIC-9-NOT-SIGNED       PIC 9(3) VALUE 5.
20488       01 PIC-9-NOT-DECIMAL      PIC 9(3) VALUE 5.
20489       01 XX                     PIC 9(2) VALUE 2.
20490       01 PIC-9-DECIMAL          PIC 9(3)V9 VALUE 5.
20491       01 COMPUTE-1              PIC 999V9999 VALUE 654.1873.
20492       01 GROUP-ITEM-X6.
20493          05 FILLER              PIC X(6) VALUE 'CAT'.
20494       78 CONST1                 VALUE 'CAT     '.
20495       01 CONST2                 CONSTANT AS 00000001234.
20496       01 IF-D16                 PIC PP99 VALUE .0012.
20497       PROCEDURE DIVISION.
20498       MAIN.
20499           IF GROUP-ITEM-X6 = '1234567'   CONTINUE.
20500           IF PIC-9-NOT-DECIMAL = 1.1     CONTINUE.
20501           IF PIC-9-NOT-DECIMAL = 1.0
20502               CONTINUE.
20503           IF PIC-9-DECIMAL = 1.01
20504               CONTINUE.
20505           IF PIC-9-DECIMAL = 1.100
20506               CONTINUE.
20507           IF PIC-9-SIGNED NOT = 11.0
20508               CONTINUE.
20509           IF PIC-9-NOT-SIGNED < 0
20510               CONTINUE.
20511           IF PIC-9-NOT-SIGNED < ZERO
20512               CONTINUE.
20513           IF PIC-9-NOT-SIGNED < (25 - 50)
20514               CONTINUE.
20515           IF PIC-9-DECIMAL = (2.24 / 2)
20516               CONTINUE.
20517           IF PIC-9-NOT-DECIMAL = "123"
20518               CONTINUE.
20519           IF PIC-9-NOT-DECIMAL = "1B0"       *> field is numeric
20520               CONTINUE.
20521           IF PIC-9-NOT-DECIMAL (1:3) = "1B0" *> refmod is always alphanumeric
20522               CONTINUE.
20523           IF PIC-9-NOT-DECIMAL (1:3) NOT = "Hot Doggy"
20524               CONTINUE.
20525           IF PIC-9-NOT-DECIMAL (1:XX) NOT = "Hi"
20526               CONTINUE.
20527           IF WS-LINE-NUMBER > '123'
20528              CONTINUE.
20529           IF WS-TEXT > 'DOGGY'
20530              CONTINUE.
20531           IF WS-NUMBER > 123.999
20532              CONTINUE.
20533           IF WS-LINE-NUMBER > 2345
20534              CONTINUE.
20535           IF WS-LINE-NUMBER <= 1234
20536              CONTINUE.
20537           IF WS-LINE-NUMBER > '1234'
20538              CONTINUE.
20539           IF 5432 < WS-LINE-NUMBER
20540              CONTINUE.
20541           IF 7855 >= WS-LINE-NUMBER
20542              CONTINUE.
20543           IF 1234 < WS-LINE-NUMBER
20544              CONTINUE.
20545           IF 5432 >= WS-LINE-NUMBER
20546              CONTINUE.
20547           IF WS-TEXT > 'DOGGY++'
20548              CONTINUE.
20549           IF WS-TEXT > 3141596
20550              CONTINUE.
20551           IF WS-TEXT > 3.141596
20552              CONTINUE.
20553           IF WS-TEXT = 3.141596
20554              CONTINUE.
20555           IF 'DOG+CAT' NOT = WS-TEXT
20556              CONTINUE.
20557           IF WS-TEXT = 'CAT+DOG'
20558              CONTINUE.
20559           EVALUATE TRUE
20560              WHEN 'DOG+CAT' = WS-TEXT
20561                 CONTINUE
20562              WHEN CONST1 = 'CAT+DOG'
20563                 CONTINUE
20564              WHEN CONST1 = 'CAT'
20565                 CONTINUE
20566              WHEN CONST2 = 1234
20567                 CONTINUE
20568           END-EVALUATE
20569           IF WS-LINE-NUMBER > 0000234
20570              CONTINUE.
20571           IF WS-TEXT = 'CAT         '
20572              CONTINUE.
20573           IF ( COMPUTE-1 < 654.20038) AND
20574              ( COMPUTE-1 > 654.17422) THEN
20575              CONTINUE.
20576           IF ( COMPUTE-1 < 5654.20) CONTINUE.
20577           IF ( COMPUTE-1 > 5654.20) CONTINUE.
20578           IF   COMPUTE-1 < 05654.20 CONTINUE.
20579           IF   COMPUTE-1 > 05654.20 CONTINUE.
20580           IF ( 5654.20 > COMPUTE-1) CONTINUE.
20581           IF ( 5654.20 < COMPUTE-1) CONTINUE.
20582           IF  05654.20 > COMPUTE-1  CONTINUE.
20583           IF  05654.20 < COMPUTE-1  CONTINUE.
20584           IF IF-D16 POSITIVE
20585              CONTINUE.
20586           IF IF-D16 NOT POSITIVE
20587              CONTINUE.
20588           IF IF-D16 NEGATIVE
20589              CONTINUE.
20590           IF IF-D16 NOT NEGATIVE
20591              CONTINUE.
20592           IF PIC-9-NOT-SIGNED > (25 - 50)
20593               CONTINUE.
20594           IF PIC-9-NOT-SIGNED >= -1  CONTINUE.
20595           IF PIC-9-NOT-SIGNED >= -.1 CONTINUE.
20596           IF PIC-9-NOT-SIGNED > 0.0  CONTINUE.
20597           IF PIC-9-NOT-SIGNED >  .0  CONTINUE.
20598           IF PIC-9-NOT-SIGNED > ZERO
20599               CONTINUE.
20600           IF PIC-9-NOT-SIGNED >= 0.0 CONTINUE.
20601           IF PIC-9-NOT-SIGNED >=  .0 CONTINUE.
20602           IF PIC-9-NOT-SIGNED >= ZERO
20603               CONTINUE.
20604           IF GROUP-ITEM-X6 (1:6) = '123456'
20605               CONTINUE.
20606      * Both have correct error check verified in syn_refmod.at
20607      *    IF GROUP-ITEM-X6 (2:6) = '123456'
20608      *        CONTINUE.
20609      *    IF GROUP-ITEM-X6 (WS-LINE-NUMBER:7) = '123456'
20610      *        CONTINUE.
20611           IF GROUP-ITEM-X6 (1:5) = '123456'
20612               CONTINUE.
20613           IF GROUP-ITEM-X6 (3:) = '12345'
20614               CONTINUE.
20615           IF GROUP-ITEM-X6 (3:WS-LINE-NUMBER) = '12345'
20616               CONTINUE.
20617           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:3) = '12345'
20618               CONTINUE.
20619           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:WS-LINE-NUMBER) = '12345'
20620               CONTINUE.
20621           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:) = '12345'
20622               CONTINUE.
20623           IF PIC-9-NOT-DECIMAL    >     9     CONTINUE.
20624           IF PIC-9-NOT-DECIMAL    >   009     CONTINUE.
20625           IF PIC-9-NOT-DECIMAL    >   900     CONTINUE.
20626           IF PIC-9-NOT-DECIMAL    >   909     CONTINUE.
20627           IF PIC-9-NOT-DECIMAL    >   999     CONTINUE.
20628           IF PIC-9-NOT-DECIMAL    >  0000999  CONTINUE.
20629           IF PIC-9-DECIMAL        >   999     CONTINUE.
20630           IF PIC-9-DECIMAL        >   990.9   CONTINUE.
20631           IF PIC-9-DECIMAL        >   999.9   CONTINUE.
20632           IF PIC-9-DECIMAL        >  0999.90  CONTINUE.
20633           IF PIC-9-DECIMAL        > -0999.90  CONTINUE.
20634           IF PIC-9-SIGNED-DECIMAL >    99.99  CONTINUE.
20635           IF PIC-9-SIGNED-DECIMAL >=   99.99  CONTINUE.
20636           IF PIC-9-SIGNED-DECIMAL <   -99.99  CONTINUE.
20637           IF PIC-9-SIGNED-DECIMAL <= -099.990 CONTINUE.
20638           IF PIC-9-SIGNED-DECIMAL <= -099.991 CONTINUE.
20639
20640
20641           STOP RUN.
20642_ATEOF
20643
20644
20645{ set +x
20646$as_echo "$at_srcdir/syn_misc.at:257: \$COMPILE_ONLY prog.cob"
20647at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:257"
20648( $at_check_trace; $COMPILE_ONLY prog.cob
20649) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20650at_status=$? at_failed=false
20651$at_check_filter
20652echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
20653prog.cob:23: warning: literal '1234567' is longer than 'GROUP-ITEM-X6'
20654prog.cob:23: warning: expression is always FALSE
20655prog.cob:24: warning: literal '1.1' has more decimals than 'PIC-9-NOT-DECIMAL'
20656prog.cob:24: warning: expression is always FALSE
20657prog.cob:27: warning: literal '1.01' has more decimals than 'PIC-9-DECIMAL'
20658prog.cob:27: warning: expression is always FALSE
20659prog.cob:33: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN ZERO
20660prog.cob:35: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN ZERO
20661prog.cob:38: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN -25
20662prog.cob:40: warning: literal '1.12' has more decimals than 'PIC-9-DECIMAL'
20663prog.cob:40: warning: expression is always FALSE
20664prog.cob:43: warning: literal '1B0' is alphanumeric but 'PIC-9-NOT-DECIMAL' is numeric
20665prog.cob:47: warning: literal 'Hot Doggy' is longer than 'PIC-9-NOT-DECIMAL'
20666prog.cob:47: warning: expression is always TRUE
20667prog.cob:55: warning: literal '123.999' has more decimals than 'WS-NUMBER'
20668prog.cob:57: warning: literal '2345' has more digits than 'WS-LINE-NUMBER'
20669prog.cob:57: warning: expression is always FALSE
20670prog.cob:59: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
20671prog.cob:59: warning: expression is always TRUE
20672prog.cob:61: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
20673prog.cob:61: warning: expression is always FALSE
20674prog.cob:63: warning: literal '5432' has more digits than 'WS-LINE-NUMBER'
20675prog.cob:63: warning: expression is always FALSE
20676prog.cob:65: warning: literal '7855' has more digits than 'WS-LINE-NUMBER'
20677prog.cob:65: warning: expression is always TRUE
20678prog.cob:67: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
20679prog.cob:67: warning: expression is always FALSE
20680prog.cob:69: warning: literal '5432' has more digits than 'WS-LINE-NUMBER'
20681prog.cob:69: warning: expression is always TRUE
20682prog.cob:71: warning: literal 'DOGGY++' is longer than 'WS-TEXT'
20683prog.cob:73: warning: literal '3141596' is longer than 'WS-TEXT'
20684prog.cob:75: warning: literal '3.141596' is longer than 'WS-TEXT'
20685prog.cob:77: warning: literal '3.141596' is longer than 'WS-TEXT'
20686prog.cob:77: warning: expression is always FALSE
20687prog.cob:79: warning: literal 'DOG+CAT' is longer than 'WS-TEXT'
20688prog.cob:79: warning: expression is always TRUE
20689prog.cob:81: warning: literal 'CAT+DOG' is longer than 'WS-TEXT'
20690prog.cob:81: warning: expression is always FALSE
20691prog.cob:84: warning: literal 'DOG+CAT' is longer than 'WS-TEXT'
20692prog.cob:84: warning: expression is always FALSE
20693prog.cob:86: warning: expression 'CAT     ' EQUALS 'CAT+DOG' is always FALSE
20694prog.cob:88: warning: expression 'CAT     ' EQUALS 'CAT' is always TRUE
20695prog.cob:90: warning: expression '00000001234' EQUALS '1234' is always TRUE
20696prog.cob:97: warning: literal '654.20038' has more decimals than 'COMPUTE-1'
20697prog.cob:98: warning: literal '654.17422' has more decimals than 'COMPUTE-1'
20698prog.cob:100: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20699prog.cob:100: warning: expression is always TRUE
20700prog.cob:101: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20701prog.cob:101: warning: expression is always FALSE
20702prog.cob:102: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20703prog.cob:102: warning: expression is always TRUE
20704prog.cob:103: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20705prog.cob:103: warning: expression is always FALSE
20706prog.cob:104: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20707prog.cob:104: warning: expression is always TRUE
20708prog.cob:105: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20709prog.cob:105: warning: expression is always FALSE
20710prog.cob:106: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20711prog.cob:106: warning: expression is always TRUE
20712prog.cob:107: warning: literal '5654.20' has more digits than 'COMPUTE-1'
20713prog.cob:107: warning: expression is always FALSE
20714prog.cob:112: warning: unsigned 'IF-D16' may not be LESS THAN ZERO
20715prog.cob:114: warning: unsigned 'IF-D16' may not be LESS THAN ZERO
20716prog.cob:117: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER THAN -25
20717prog.cob:118: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL -1
20718prog.cob:119: warning: literal '-.1' has more decimals than 'PIC-9-NOT-SIGNED'
20719prog.cob:119: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL -.1
20720prog.cob:124: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
20721prog.cob:125: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
20722prog.cob:126: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
20723prog.cob:135: warning: literal '123456' is longer than reference-modification of 'GROUP-ITEM-X6'
20724prog.cob:135: warning: expression is always FALSE
20725prog.cob:137: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
20726prog.cob:137: warning: expression is always FALSE
20727prog.cob:139: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
20728prog.cob:139: warning: expression is always FALSE
20729prog.cob:141: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
20730prog.cob:141: warning: expression is always FALSE
20731prog.cob:151: warning: 'PIC-9-NOT-DECIMAL' may not be GREATER THAN 999
20732prog.cob:152: warning: 'PIC-9-NOT-DECIMAL' may not be GREATER THAN 999
20733prog.cob:155: warning: 'PIC-9-DECIMAL' may not be GREATER THAN 999.9
20734prog.cob:156: warning: 'PIC-9-DECIMAL' may not be GREATER THAN 999.9
20735prog.cob:157: warning: unsigned 'PIC-9-DECIMAL' may always be GREATER THAN -999.90
20736prog.cob:158: warning: 'PIC-9-SIGNED-DECIMAL' may not be GREATER THAN 99.99
20737prog.cob:159: warning: 'PIC-9-SIGNED-DECIMAL' may not be GREATER THAN 99.99
20738prog.cob:160: warning: 'PIC-9-SIGNED-DECIMAL' may not be LESS THAN -99.99
20739prog.cob:161: warning: 'PIC-9-SIGNED-DECIMAL' may not be LESS THAN -99.99
20740prog.cob:162: warning: literal '-99.991' has more decimals than 'PIC-9-SIGNED-DECIMAL'
20741" | \
20742  $at_diff - "$at_stderr" || at_failed=:
20743at_fn_diff_devnull "$at_stdout" || at_failed=:
20744at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:257"
20745$at_failed && at_fn_log_failure
20746$at_traceon; }
20747
20748
20749  set +x
20750  $at_times_p && times >"$at_times_file"
20751) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20752read at_status <"$at_status_file"
20753#AT_STOP_222
20754#AT_START_223
20755at_fn_group_banner 223 'syn_misc.at:352' \
20756  "warn literal size in constant expr. (level 88)" " " 2
20757at_xfail=no
20758(
20759  $as_echo "223. $at_setup_line: testing $at_desc ..."
20760  $at_traceon
20761
20762
20763
20764cat >prog.cob <<'_ATEOF'
20765
20766       IDENTIFICATION DIVISION.
20767
20768       PROGRAM-ID. prog.
20769       DATA DIVISION.
20770       WORKING-STORAGE SECTION.
20771       01  x PIC 9.
20772        88 never-true value 99.
20773       01  y PIC 9.
20774        88 never-truen value -9.
20775       01  xx pic x.
20776        88 some-not values 'a', 'b', 'cd'.
20777        88 some-not-s values '00', 'a', 'b', 'cd'.
20778
20779       PROCEDURE DIVISION.
20780           if never-true
20781            continue
20782           end-if
20783           if never-truen
20784            continue
20785           end-if
20786           if some-not-s
20787            set some-not   to true
20788            set some-not-s to true
20789           end-if
20790           set never-true  to true
20791           goback.
20792_ATEOF
20793
20794
20795{ set +x
20796$as_echo "$at_srcdir/syn_misc.at:384: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
20797at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:384"
20798( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option prog.cob
20799) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20800at_status=$? at_failed=false
20801$at_check_filter
20802echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: literal '99' has more digits than 'x' [-Wconstant-expression]
20803prog.cob:8: warning: expression is always FALSE [-Wconstant-expression]
20804prog.cob:13: warning: literal '00' is longer than 'xx' [-Wconstant-expression]
20805prog.cob:13: warning: expression is always FALSE [-Wconstant-expression]
20806prog.cob:13: warning: literal 'cd' is longer than 'xx' [-Wconstant-expression]
20807prog.cob:13: warning: expression is always FALSE [-Wconstant-expression]
20808prog.cob:24: warning: value size exceeds data size [-Wtruncate]
20809prog.cob:24: note: value size is 2 [-Wtruncate]
20810prog.cob:11: note: 'xx' defined here as PIC X [-Wtruncate]
20811prog.cob:26: warning: value size exceeds data size [-Wtruncate]
20812prog.cob:26: note: value is 99 [-Wtruncate]
20813prog.cob:7: note: 'x' defined here as PIC 9 [-Wtruncate]
20814" | \
20815  $at_diff - "$at_stderr" || at_failed=:
20816at_fn_diff_devnull "$at_stdout" || at_failed=:
20817at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:384"
20818$at_failed && at_fn_log_failure
20819$at_traceon; }
20820
20821
20822  set +x
20823  $at_times_p && times >"$at_times_file"
20824) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20825read at_status <"$at_status_file"
20826#AT_STOP_223
20827#AT_START_224
20828at_fn_group_banner 224 'syn_misc.at:402' \
20829  "Invalid conditional expression (1)" "             " 2
20830at_xfail=no
20831(
20832  $as_echo "224. $at_setup_line: testing $at_desc ..."
20833  $at_traceon
20834
20835
20836
20837cat >prog.cob <<'_ATEOF'
20838
20839       IDENTIFICATION   DIVISION.
20840       PROGRAM-ID.      prog.
20841       DATA             DIVISION.
20842       WORKING-STORAGE  SECTION.
20843       01  CON          CONSTANT 10.
20844       01  V            PIC 9.
20845       78  C78          VALUE 'A'.
20846       PROCEDURE        DIVISION.
20847           IF FUNCTION TRIM (' ')
20848              CONTINUE
20849              CONTINUE
20850           END-IF.
20851           IF CON
20852              CONTINUE
20853              CONTINUE
20854           END-IF.
20855           IF V
20856              CONTINUE
20857              CONTINUE
20858           END-IF.
20859           IF C78
20860              CONTINUE
20861              CONTINUE
20862           END-IF.
20863           IF '2'
20864              CONTINUE
20865              CONTINUE
20866           END-IF.
20867           IF C78 OR V
20868               CONTINUE
20869               CONTINUE
20870           END-IF.
20871           EVALUATE TRUE
20872              WHEN FUNCTION TRIM (' ')
20873                 CONTINUE
20874                 CONTINUE
20875              WHEN CON
20876                 CONTINUE
20877                 CONTINUE
20878              WHEN V
20879                 CONTINUE
20880                 CONTINUE
20881              WHEN C78
20882                 CONTINUE
20883                 CONTINUE
20884              WHEN '2'
20885                 CONTINUE
20886              WHEN OTHER
20887                 CONTINUE
20888           END-EVALUATE.
20889           PERFORM VARYING V
20890                   FROM 1 BY 1
20891                   UNTIL FUNCTION TRIM (' ')
20892              CONTINUE
20893              CONTINUE
20894           END-PERFORM.
20895           PERFORM VARYING V
20896                   FROM 1 BY 1
20897                   UNTIL V
20898              CONTINUE
20899              CONTINUE
20900           END-PERFORM.
20901           PERFORM VARYING V
20902                   FROM 1 BY 1
20903                   UNTIL C78
20904              CONTINUE
20905              CONTINUE
20906           END-PERFORM.
20907           PERFORM VARYING V
20908                   FROM 1 BY 1
20909                   UNTIL '2'
20910              CONTINUE
20911              CONTINUE
20912           END-PERFORM.
20913           IF NOTDEFINED = 1 OR 2
20914              CONTINUE
20915           END-IF.
20916
20917           IF (V = 1) AND V
20918              CONTINUE
20919           END-IF
20920
20921           STOP RUN.
20922_ATEOF
20923
20924
20925{ set +x
20926$as_echo "$at_srcdir/syn_misc.at:491: \$COMPILE_ONLY prog.cob"
20927at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:491"
20928( $at_check_trace; $COMPILE_ONLY prog.cob
20929) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20930at_status=$? at_failed=false
20931$at_check_filter
20932echo >>"$at_stderr"; $as_echo "prog.cob:10: error: invalid expression
20933prog.cob:14: error: invalid expression
20934prog.cob:18: error: invalid expression
20935prog.cob:22: error: invalid expression
20936prog.cob:26: error: invalid expression
20937prog.cob:30: error: invalid conditional expression
20938prog.cob:35: error: invalid expression
20939prog.cob:38: error: invalid expression
20940prog.cob:41: error: invalid expression
20941prog.cob:44: error: invalid expression
20942prog.cob:47: error: invalid expression
20943prog.cob:54: error: invalid expression
20944prog.cob:60: error: invalid expression
20945prog.cob:66: error: invalid expression
20946prog.cob:72: error: invalid expression
20947prog.cob:76: error: 'NOTDEFINED' is not defined
20948prog.cob:76: error: invalid expression
20949prog.cob:80: error: invalid expression
20950" | \
20951  $at_diff - "$at_stderr" || at_failed=:
20952at_fn_diff_devnull "$at_stdout" || at_failed=:
20953at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:491"
20954$at_failed && at_fn_log_failure
20955$at_traceon; }
20956
20957
20958  set +x
20959  $at_times_p && times >"$at_times_file"
20960) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20961read at_status <"$at_status_file"
20962#AT_STOP_224
20963#AT_START_225
20964at_fn_group_banner 225 'syn_misc.at:515' \
20965  "Invalid conditional expression (2)" "             " 2
20966at_xfail=no
20967(
20968  $as_echo "225. $at_setup_line: testing $at_desc ..."
20969  $at_traceon
20970
20971
20972
20973cat >prog.cob <<'_ATEOF'
20974
20975        IDENTIFICATION DIVISION.
20976        PROGRAM-ID. prog.
20977        DATA DIVISION.
20978        WORKING-STORAGE SECTION.
20979        01 WRKN  PIC S999 VALUE 123.
20980        01 WRKX  PIC X(8) VALUE 'House'.
20981        PROCEDURE DIVISION.
20982        MAIN.
20983            EVALUATE WRKN
20984              GREATER ZERO
20985              < 0
20986              > 0
20987            WHEN TRUE
20988              DISPLAY "WHAT IS IT?"
20989            END-EVALUATE.
20990            IF WRKN = 123 EQUAL 456
20991              DISPLAY "Strange brew! " WRKN
20992            END-IF.
20993            IF WRKN NOT EQUAL 123 NOT = 456
20994              DISPLAY "Strange brew! " WRKN
20995            END-IF.
20996            IF WRKN = 123 OR 456
20997              DISPLAY "Home brew! " WRKN
20998            END-IF.
20999            IF WRKX = "Red" OR "White"
21000              DISPLAY "Home wine! " WRKX
21001            END-IF.
21002            IF WRKX <= "Red" = "White"
21003              DISPLAY "Home wine! " WRKX
21004            END-IF.
21005            IF WRKX = "Red" NOT "White"
21006              DISPLAY "Home wine! " WRKX
21007            END-IF.
21008            IF WRKN = (123 - 12) OR
21009                   >= (456 + 16)
21010              DISPLAY "And another brew! " WRKN
21011            END-IF.
21012            STOP RUN.
21013_ATEOF
21014
21015
21016{ set +x
21017$as_echo "$at_srcdir/syn_misc.at:559: \$COMPILE_ONLY prog.cob"
21018at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:559"
21019( $at_check_trace; $COMPILE_ONLY prog.cob
21020) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21021at_status=$? at_failed=false
21022$at_check_filter
21023echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
21024prog.cob:10: error: GREATER THAN operator may be misplaced
21025prog.cob:17: error: EQUALS operator may be misplaced
21026prog.cob:20: error: NOT EQUAL operator may be misplaced
21027prog.cob:29: error: LESS OR EQUAL operator may be misplaced
21028prog.cob:32: error: invalid expression
21029" | \
21030  $at_diff - "$at_stderr" || at_failed=:
21031at_fn_diff_devnull "$at_stdout" || at_failed=:
21032at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:559"
21033$at_failed && at_fn_log_failure
21034$at_traceon; }
21035
21036
21037  set +x
21038  $at_times_p && times >"$at_times_file"
21039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21040read at_status <"$at_status_file"
21041#AT_STOP_225
21042#AT_START_226
21043at_fn_group_banner 226 'syn_misc.at:571' \
21044  "Invalid conditional expression (3)" "             " 2
21045at_xfail=no
21046(
21047  $as_echo "226. $at_setup_line: testing $at_desc ..."
21048  $at_traceon
21049
21050
21051
21052cat >prog.cob <<'_ATEOF'
21053
21054       IDENTIFICATION DIVISION.
21055       PROGRAM-ID. prog.
21056       ENVIRONMENT DIVISION.
21057       DATA DIVISION.
21058      ******************************************************************
21059       WORKING-STORAGE SECTION.
21060      *
21061       01 FLD1 PIC 9 VALUE 1.
21062       01 FLD2 PIC 9 VALUE 2.
21063       01 FLDX PIC 9 VALUE 5.
21064       01 FLDY PIC 9 VALUE 6.
21065
21066       PROCEDURE DIVISION.
21067           IF 1 AND 2 > 1 THEN
21068                DISPLAY 'Test 1 is WRONG'
21069           ELSE
21070                DISPLAY 'Test 1 is OK'.
21071
21072           IF FLD1 AND FLDX > FLD2 THEN
21073                DISPLAY 'Test 2 is OK'
21074           ELSE
21075                DISPLAY 'Test 2 is Wrong'.
21076
21077           IF FLD1 OR FLDX > FLD2 THEN
21078                DISPLAY 'Test 2 is OK'
21079           ELSE
21080                DISPLAY 'Test 2 is Wrong'.
21081
21082           IF FLD1 > 2 AND FLDX > FLD2 THEN
21083                DISPLAY 'Test 2 is OK'
21084           ELSE
21085                DISPLAY 'Test 2 is Wrong'.
21086
21087           IF FLD2 IS NUMERIC AND FLD1 THEN
21088                DISPLAY 'Test 2 is OK'
21089           ELSE
21090                DISPLAY 'Test 2 is Wrong'.
21091
21092           IF FLDX > FLD2 AND FLD1 AND 8 THEN
21093                DISPLAY 'Test 3 is OK ' FLDX ' > ' FLD2 ' & ' FLD1
21094           ELSE
21095                DISPLAY 'Test 3 is Wrong'.
21096
21097           IF FLDX > FLD2 OR FLD1 OR 8 THEN
21098                DISPLAY 'Test 3 is OK'
21099           ELSE
21100                DISPLAY 'Test 3 is Wrong'.
21101           STOP RUN.
21102_ATEOF
21103
21104
21105{ set +x
21106$as_echo "$at_srcdir/syn_misc.at:625: \$COMPILE_ONLY prog.cob"
21107at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:625"
21108( $at_check_trace; $COMPILE_ONLY prog.cob
21109) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21110at_status=$? at_failed=false
21111$at_check_filter
21112echo >>"$at_stderr"; $as_echo "prog.cob:15: error: invalid conditional expression
21113prog.cob:20: error: invalid conditional expression
21114prog.cob:25: error: invalid conditional expression
21115prog.cob:35: error: invalid expression
21116" | \
21117  $at_diff - "$at_stderr" || at_failed=:
21118at_fn_diff_devnull "$at_stdout" || at_failed=:
21119at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:625"
21120$at_failed && at_fn_log_failure
21121$at_traceon; }
21122
21123
21124  set +x
21125  $at_times_p && times >"$at_times_file"
21126) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21127read at_status <"$at_status_file"
21128#AT_STOP_226
21129#AT_START_227
21130at_fn_group_banner 227 'syn_misc.at:635' \
21131  "Valid conditional expression" "                   " 2
21132at_xfail=no
21133(
21134  $as_echo "227. $at_setup_line: testing $at_desc ..."
21135  $at_traceon
21136
21137
21138
21139cat >prog.cob <<'_ATEOF'
21140
21141       IDENTIFICATION  DIVISION.
21142       PROGRAM-ID.     prog.
21143
21144       DATA            DIVISION.
21145       WORKING-STORAGE SECTION.
21146       01  var         PIC 999.
21147
21148       PROCEDURE       DIVISION.
21149           IF  var = 83  AND >  1 + 1
21150              CONTINUE
21151           END-IF
21152           IF  var = 83  AND >  2
21153              CONTINUE
21154           END-IF
21155           IF  var = 83  AND > (1 + 1)
21156              CONTINUE
21157           END-IF
21158           IF (var NOT = 1) OR (var NOT = 2)
21159               CONTINUE
21160           END-IF
21161           .
21162_ATEOF
21163
21164
21165{ set +x
21166$as_echo "$at_srcdir/syn_misc.at:662: \$COMPILE_ONLY prog.cob"
21167at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:662"
21168( $at_check_trace; $COMPILE_ONLY prog.cob
21169) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21170at_status=$? at_failed=false
21171$at_check_filter
21172at_fn_diff_devnull "$at_stderr" || at_failed=:
21173at_fn_diff_devnull "$at_stdout" || at_failed=:
21174at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:662"
21175$at_failed && at_fn_log_failure
21176$at_traceon; }
21177
21178{ set +x
21179$as_echo "$at_srcdir/syn_misc.at:663: \$COMPILE_ONLY -fno-constant-folding prog.cob"
21180at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-constant-folding prog.cob" "syn_misc.at:663"
21181( $at_check_trace; $COMPILE_ONLY -fno-constant-folding prog.cob
21182) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21183at_status=$? at_failed=false
21184$at_check_filter
21185at_fn_diff_devnull "$at_stderr" || at_failed=:
21186at_fn_diff_devnull "$at_stdout" || at_failed=:
21187at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:663"
21188$at_failed && at_fn_log_failure
21189$at_traceon; }
21190
21191
21192  set +x
21193  $at_times_p && times >"$at_times_file"
21194) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21195read at_status <"$at_status_file"
21196#AT_STOP_227
21197#AT_START_228
21198at_fn_group_banner 228 'syn_misc.at:668' \
21199  "missing headers" "                                " 2
21200at_xfail=no
21201(
21202  $as_echo "228. $at_setup_line: testing $at_desc ..."
21203  $at_traceon
21204
21205
21206
21207cat >prog.cob <<'_ATEOF'
21208
21209       SOURCE-COMPUTER. GNU-LINUX.
21210       SPECIAL-NAMES.
21211            SYMBOLIC NL IS 101
21212                     NL2   102
21213            NUMERIC SIGN TRAILING SEPARATE
21214            DECIMAL-POINT IS COMMA
21215            .
21216
21217            SELECT PRINT-FILE ASSIGN "EXTRXW"
21218            ORGANIZATION LINE SEQUENTIAL
21219            .
21220       DATA DIVISION.
21221       FD  PRINT-FILE EXTERNAL.
21222       01  PRINT-REC          PIC X(64).
21223
21224           DISPLAY "X"
21225           END-DISPLAY
21226           ACCEPT OMITTED
21227           END-ACCEPT
21228           GOBACK
21229           .
21230_ATEOF
21231
21232
21233{ set +x
21234$as_echo "$at_srcdir/syn_misc.at:695: \$COMPILE_ONLY prog.cob"
21235at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:695"
21236( $at_check_trace; $COMPILE_ONLY prog.cob
21237) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21238at_status=$? at_failed=false
21239$at_check_filter
21240echo >>"$at_stderr"; $as_echo "prog.cob:2: error: PROGRAM-ID header missing
21241prog.cob:2: error: ENVIRONMENT DIVISION header missing
21242prog.cob:2: error: CONFIGURATION SECTION header missing
21243prog.cob:10: error: INPUT-OUTPUT SECTION header missing
21244prog.cob:10: error: FILE-CONTROL header missing
21245prog.cob:14: error: FILE SECTION header missing
21246prog.cob:17: error: PROCEDURE DIVISION header missing
21247" | \
21248  $at_diff - "$at_stderr" || at_failed=:
21249at_fn_diff_devnull "$at_stdout" || at_failed=:
21250at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:695"
21251$at_failed && at_fn_log_failure
21252$at_traceon; }
21253
21254
21255{ set +x
21256$as_echo "$at_srcdir/syn_misc.at:705: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
21257at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:705"
21258( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
21259) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21260at_status=$? at_failed=false
21261$at_check_filter
21262echo >>"$at_stderr"; $as_echo "prog.cob:2: warning: PROGRAM-ID header missing - assumed
21263prog.cob:2: warning: ENVIRONMENT DIVISION header missing - assumed
21264prog.cob:2: warning: CONFIGURATION SECTION header missing - assumed
21265prog.cob:10: warning: INPUT-OUTPUT SECTION header missing - assumed
21266prog.cob:10: warning: FILE-CONTROL header missing - assumed
21267prog.cob:14: warning: FILE SECTION header missing - assumed
21268prog.cob:17: warning: PROCEDURE DIVISION header missing - assumed
21269" | \
21270  $at_diff - "$at_stderr" || at_failed=:
21271at_fn_diff_devnull "$at_stdout" || at_failed=:
21272at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:705"
21273$at_failed && at_fn_log_failure
21274$at_traceon; }
21275
21276
21277  set +x
21278  $at_times_p && times >"$at_times_file"
21279) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21280read at_status <"$at_status_file"
21281#AT_STOP_228
21282#AT_START_229
21283at_fn_group_banner 229 'syn_misc.at:718' \
21284  "one line program" "                               " 2
21285at_xfail=no
21286(
21287  $as_echo "229. $at_setup_line: testing $at_desc ..."
21288  $at_traceon
21289
21290
21291
21292cat >prog.cob <<'_ATEOF'
21293           DISPLAY "minimal".
21294_ATEOF
21295
21296
21297{ set +x
21298$as_echo "$at_srcdir/syn_misc.at:724: \$COMPILE_ONLY prog.cob"
21299at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:724"
21300( $at_check_trace; $COMPILE_ONLY prog.cob
21301) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21302at_status=$? at_failed=false
21303$at_check_filter
21304echo >>"$at_stderr"; $as_echo "prog.cob:1: error: PROGRAM-ID header missing
21305prog.cob:1: error: PROCEDURE DIVISION header missing
21306" | \
21307  $at_diff - "$at_stderr" || at_failed=:
21308at_fn_diff_devnull "$at_stdout" || at_failed=:
21309at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:724"
21310$at_failed && at_fn_log_failure
21311$at_traceon; }
21312
21313
21314{ set +x
21315$as_echo "$at_srcdir/syn_misc.at:729: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
21316at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:729"
21317( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
21318) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21319at_status=$? at_failed=false
21320$at_check_filter
21321echo >>"$at_stderr"; $as_echo "prog.cob:1: warning: PROGRAM-ID header missing - assumed
21322prog.cob:1: warning: PROCEDURE DIVISION header missing - assumed
21323" | \
21324  $at_diff - "$at_stderr" || at_failed=:
21325at_fn_diff_devnull "$at_stdout" || at_failed=:
21326at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:729"
21327$at_failed && at_fn_log_failure
21328$at_traceon; }
21329
21330
21331  set +x
21332  $at_times_p && times >"$at_times_file"
21333) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21334read at_status <"$at_status_file"
21335#AT_STOP_229
21336#AT_START_230
21337at_fn_group_banner 230 'syn_misc.at:737' \
21338  "empty program" "                                  " 2
21339at_xfail=no
21340(
21341  $as_echo "230. $at_setup_line: testing $at_desc ..."
21342  $at_traceon
21343
21344
21345
21346cat >prog.cob <<'_ATEOF'
21347
21348       IDENTIFICATION DIVISION.
21349       PROGRAM-ID. prog.
21350
21351       DATA DIVISION.
21352       WORKING-STORAGE SECTION.
21353       01  x PIC 999 VALUE 124.
21354       END PROGRAM prog.
21355_ATEOF
21356
21357
21358# Note: we need to test for generating a valid C source (with normal/no flags)
21359#       here, not only for COBOL compilation
21360{ set +x
21361$as_echo "$at_srcdir/syn_misc.at:752: \$COMPILE prog.cob"
21362at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:752"
21363( $at_check_trace; $COMPILE prog.cob
21364) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21365at_status=$? at_failed=false
21366$at_check_filter
21367at_fn_diff_devnull "$at_stderr" || at_failed=:
21368at_fn_diff_devnull "$at_stdout" || at_failed=:
21369at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:752"
21370$at_failed && at_fn_log_failure
21371$at_traceon; }
21372
21373{ set +x
21374$as_echo "$at_srcdir/syn_misc.at:753: \$COBC prog.cob"
21375at_fn_check_prepare_dynamic "$COBC prog.cob" "syn_misc.at:753"
21376( $at_check_trace; $COBC prog.cob
21377) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21378at_status=$? at_failed=false
21379$at_check_filter
21380at_fn_diff_devnull "$at_stderr" || at_failed=:
21381at_fn_diff_devnull "$at_stdout" || at_failed=:
21382at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:753"
21383$at_failed && at_fn_log_failure
21384$at_traceon; }
21385
21386
21387cat >prog2.cob <<'_ATEOF'
21388
21389       IDENTIFICATION DIVISION.
21390       PROGRAM-ID. prog2.
21391
21392       DATA DIVISION.
21393       WORKING-STORAGE SECTION.
21394       01  x PIC 999 VALUE 124.
21395_ATEOF
21396
21397
21398{ set +x
21399$as_echo "$at_srcdir/syn_misc.at:764: \$COMPILE prog2.cob"
21400at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "syn_misc.at:764"
21401( $at_check_trace; $COMPILE prog2.cob
21402) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21403at_status=$? at_failed=false
21404$at_check_filter
21405at_fn_diff_devnull "$at_stderr" || at_failed=:
21406at_fn_diff_devnull "$at_stdout" || at_failed=:
21407at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:764"
21408$at_failed && at_fn_log_failure
21409$at_traceon; }
21410
21411{ set +x
21412$as_echo "$at_srcdir/syn_misc.at:765: \$COBC prog2.cob"
21413at_fn_check_prepare_dynamic "$COBC prog2.cob" "syn_misc.at:765"
21414( $at_check_trace; $COBC prog2.cob
21415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21416at_status=$? at_failed=false
21417$at_check_filter
21418at_fn_diff_devnull "$at_stderr" || at_failed=:
21419at_fn_diff_devnull "$at_stdout" || at_failed=:
21420at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:765"
21421$at_failed && at_fn_log_failure
21422$at_traceon; }
21423
21424
21425: >prog3.cob
21426
21427{ set +x
21428$as_echo "$at_srcdir/syn_misc.at:769: \$COMPILE_ONLY prog3.cob"
21429at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:769"
21430( $at_check_trace; $COMPILE_ONLY prog3.cob
21431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21432at_status=$? at_failed=false
21433$at_check_filter
21434echo >>"$at_stderr"; $as_echo "prog3.cob:1: error: PROGRAM-ID header missing
21435" | \
21436  $at_diff - "$at_stderr" || at_failed=:
21437at_fn_diff_devnull "$at_stdout" || at_failed=:
21438at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:769"
21439$at_failed && at_fn_log_failure
21440$at_traceon; }
21441
21442
21443{ set +x
21444$as_echo "$at_srcdir/syn_misc.at:773: \$COMPILE -frelax-syntax-checks prog3.cob"
21445at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog3.cob" "syn_misc.at:773"
21446( $at_check_trace; $COMPILE -frelax-syntax-checks prog3.cob
21447) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21448at_status=$? at_failed=false
21449$at_check_filter
21450echo >>"$at_stderr"; $as_echo "prog3.cob:1: warning: PROGRAM-ID header missing - assumed
21451" | \
21452  $at_diff - "$at_stderr" || at_failed=:
21453at_fn_diff_devnull "$at_stdout" || at_failed=:
21454at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:773"
21455$at_failed && at_fn_log_failure
21456$at_traceon; }
21457
21458{ set +x
21459$as_echo "$at_srcdir/syn_misc.at:776: \$COBC -frelax-syntax-checks prog3.cob"
21460at_fn_check_prepare_dynamic "$COBC -frelax-syntax-checks prog3.cob" "syn_misc.at:776"
21461( $at_check_trace; $COBC -frelax-syntax-checks prog3.cob
21462) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21463at_status=$? at_failed=false
21464$at_check_filter
21465echo >>"$at_stderr"; $as_echo "prog3.cob:1: warning: PROGRAM-ID header missing - assumed [-Wothers]
21466" | \
21467  $at_diff - "$at_stderr" || at_failed=:
21468at_fn_diff_devnull "$at_stdout" || at_failed=:
21469at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:776"
21470$at_failed && at_fn_log_failure
21471$at_traceon; }
21472
21473
21474  set +x
21475  $at_times_p && times >"$at_times_file"
21476) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21477read at_status <"$at_status_file"
21478#AT_STOP_230
21479#AT_START_231
21480at_fn_group_banner 231 'syn_misc.at:783' \
21481  "INITIALIZE constant" "                            " 2
21482at_xfail=no
21483(
21484  $as_echo "231. $at_setup_line: testing $at_desc ..."
21485  $at_traceon
21486
21487
21488
21489cat >prog.cob <<'_ATEOF'
21490
21491       IDENTIFICATION   DIVISION.
21492       PROGRAM-ID.      prog.
21493       DATA             DIVISION.
21494       WORKING-STORAGE  SECTION.
21495       01  CON          CONSTANT 10.
21496       01  V            PIC 9.
21497       78  C78          VALUE 'A'.
21498       PROCEDURE DIVISION.
21499           INITIALIZE CON.
21500           INITIALIZE V.
21501           INITIALIZE V, 9.
21502           INITIALIZE C78, V.
21503_ATEOF
21504
21505
21506{ set +x
21507$as_echo "$at_srcdir/syn_misc.at:801: \$COMPILE_ONLY prog.cob"
21508at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:801"
21509( $at_check_trace; $COMPILE_ONLY prog.cob
21510) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21511at_status=$? at_failed=false
21512$at_check_filter
21513echo >>"$at_stderr"; $as_echo "prog.cob:10: error: invalid INITIALIZE statement
21514prog.cob:12: error: invalid INITIALIZE statement
21515prog.cob:13: error: invalid INITIALIZE statement
21516" | \
21517  $at_diff - "$at_stderr" || at_failed=:
21518at_fn_diff_devnull "$at_stdout" || at_failed=:
21519at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:801"
21520$at_failed && at_fn_log_failure
21521$at_traceon; }
21522
21523
21524  set +x
21525  $at_times_p && times >"$at_times_file"
21526) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21527read at_status <"$at_status_file"
21528#AT_STOP_231
21529#AT_START_232
21530at_fn_group_banner 232 'syn_misc.at:810' \
21531  "CLASS duplicate values" "                         " 2
21532at_xfail=no
21533(
21534  $as_echo "232. $at_setup_line: testing $at_desc ..."
21535  $at_traceon
21536
21537
21538
21539cat >prog.cob <<'_ATEOF'
21540
21541       IDENTIFICATION   DIVISION.
21542       PROGRAM-ID.      prog.
21543       ENVIRONMENT      DIVISION.
21544       CONFIGURATION    SECTION.
21545       SPECIAL-NAMES.
21546            SYMBOLIC NL IS 101
21547                     NL2   102
21548            CLASS    CHECK-VALID    'a' THRU 'z'
21549                                    'A' THRU 'Z'
21550                                    'cdef'
21551            .
21552       DATA             DIVISION.
21553       WORKING-STORAGE  SECTION.
21554       01 X             PIC X(8).
21555       PROCEDURE        DIVISION.
21556           IF X         IS CHECK-VALID
21557              DISPLAY "OK"
21558              END-DISPLAY
21559           END-IF.
21560           STOP RUN.
21561_ATEOF
21562
21563
21564{ set +x
21565$as_echo "$at_srcdir/syn_misc.at:836: \$COMPILE_ONLY prog.cob"
21566at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:836"
21567( $at_check_trace; $COMPILE_ONLY prog.cob
21568) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21569at_status=$? at_failed=false
21570$at_check_filter
21571echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: duplicate character values in class 'CHECK-VALID'
21572" | \
21573  $at_diff - "$at_stderr" || at_failed=:
21574at_fn_diff_devnull "$at_stdout" || at_failed=:
21575at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:836"
21576$at_failed && at_fn_log_failure
21577$at_traceon; }
21578
21579
21580  set +x
21581  $at_times_p && times >"$at_times_file"
21582) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21583read at_status <"$at_status_file"
21584#AT_STOP_232
21585#AT_START_233
21586at_fn_group_banner 233 'syn_misc.at:843' \
21587  "INSPECT invalid size" "                           " 2
21588at_xfail=no
21589(
21590  $as_echo "233. $at_setup_line: testing $at_desc ..."
21591  $at_traceon
21592
21593
21594
21595cat >prog.cob <<'_ATEOF'
21596
21597       IDENTIFICATION   DIVISION.
21598       PROGRAM-ID.      prog.
21599       ENVIRONMENT DIVISION.
21600       CONFIGURATION SECTION.
21601       SPECIAL-NAMES.
21602       ALPHABET ALPHA IS ASCII.
21603       DATA             DIVISION.
21604       WORKING-STORAGE  SECTION.
21605       01.
21606         02 X-POS       PIC 9 VALUE 3.
21607         02 X           PIC X(8) OCCURS 2.
21608       PROCEDURE        DIVISION.
21609           INSPECT X(1) REPLACING ALL SPACES BY "AA".
21610           INSPECT X(1) REPLACING ALL "ABC"  BY "AA".
21611           INSPECT X(1) REPLACING ALL "DEF"  BY SPACES.
21612           INSPECT X(1) CONVERTING SPACES TO "AA".
21613           INSPECT X(1) CONVERTING "ABC"  TO "AA".
21614           INSPECT X(1) (X-POS:2) CONVERTING "DEF"  TO SPACES.
21615           INSPECT X(1) CONVERTING "GHI"  TO ALPHA.
21616      *>   the following is allowed, see NC221A and ref-mod definition
21617           INSPECT X(1) CONVERTING "DEF"  TO X(2) (X-POS:3).
21618           INSPECT X(1) CONVERTING "DEF"  TO X(2) (X-POS:4).
21619           STOP RUN.
21620_ATEOF
21621
21622
21623{ set +x
21624$as_echo "$at_srcdir/syn_misc.at:872: \$COMPILE_ONLY prog.cob"
21625at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:872"
21626( $at_check_trace; $COMPILE_ONLY prog.cob
21627) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21628at_status=$? at_failed=false
21629$at_check_filter
21630echo >>"$at_stderr"; $as_echo "prog.cob:14: error: REPLACING operands differ in size
21631prog.cob:15: error: REPLACING operands differ in size
21632prog.cob:17: error: CONVERTING operands differ in size
21633prog.cob:18: error: CONVERTING operands differ in size
21634prog.cob:20: error: CONVERTING operands differ in size
21635prog.cob:23: error: CONVERTING operands differ in size
21636" | \
21637  $at_diff - "$at_stderr" || at_failed=:
21638at_fn_diff_devnull "$at_stdout" || at_failed=:
21639at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:872"
21640$at_failed && at_fn_log_failure
21641$at_traceon; }
21642
21643
21644  set +x
21645  $at_times_p && times >"$at_times_file"
21646) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21647read at_status <"$at_status_file"
21648#AT_STOP_233
21649#AT_START_234
21650at_fn_group_banner 234 'syn_misc.at:884' \
21651  "INSPECT invalid target" "                         " 2
21652at_xfail=no
21653(
21654  $as_echo "234. $at_setup_line: testing $at_desc ..."
21655  $at_traceon
21656
21657
21658
21659cat >prog.cob <<'_ATEOF'
21660
21661       IDENTIFICATION   DIVISION.
21662       PROGRAM-ID.      prog.
21663       DATA             DIVISION.
21664       WORKING-STORAGE  SECTION.
21665       01 X             PIC X(8).
21666       PROCEDURE        DIVISION.
21667           INSPECT FUNCTION TRIM(X) REPLACING ALL "ABC" BY "DEF".
21668           INSPECT FUNCTION TRIM(X) CONVERTING "ABC" TO "AAA".
21669           STOP RUN.
21670_ATEOF
21671
21672
21673{ set +x
21674$as_echo "$at_srcdir/syn_misc.at:899: \$COMPILE_ONLY prog.cob"
21675at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:899"
21676( $at_check_trace; $COMPILE_ONLY prog.cob
21677) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21678at_status=$? at_failed=false
21679$at_check_filter
21680echo >>"$at_stderr"; $as_echo "prog.cob:8: error: invalid target for REPLACING
21681prog.cob:9: error: invalid target for CONVERTING
21682" | \
21683  $at_diff - "$at_stderr" || at_failed=:
21684at_fn_diff_devnull "$at_stdout" || at_failed=:
21685at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:899"
21686$at_failed && at_fn_log_failure
21687$at_traceon; }
21688
21689
21690  set +x
21691  $at_times_p && times >"$at_times_file"
21692) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21693read at_status <"$at_status_file"
21694#AT_STOP_234
21695#AT_START_235
21696at_fn_group_banner 235 'syn_misc.at:907' \
21697  "INSPECT missing keyword" "                        " 2
21698at_xfail=no
21699(
21700  $as_echo "235. $at_setup_line: testing $at_desc ..."
21701  $at_traceon
21702
21703
21704
21705cat >prog.cob <<'_ATEOF'
21706
21707       IDENTIFICATION   DIVISION.
21708       PROGRAM-ID.      prog.
21709       DATA             DIVISION.
21710       WORKING-STORAGE  SECTION.
21711       01 X             PIC X(8).
21712       PROCEDURE        DIVISION.
21713           INSPECT X REPLACING "AB" BY "CD".
21714           STOP RUN.
21715_ATEOF
21716
21717
21718{ set +x
21719$as_echo "$at_srcdir/syn_misc.at:921: \$COMPILE_ONLY prog.cob"
21720at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:921"
21721( $at_check_trace; $COMPILE_ONLY prog.cob
21722) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21723at_status=$? at_failed=false
21724$at_check_filter
21725echo >>"$at_stderr"; $as_echo "prog.cob:8: error: INSPECT missing ALL/FIRST/LEADING/TRAILING
21726" | \
21727  $at_diff - "$at_stderr" || at_failed=:
21728at_fn_diff_devnull "$at_stdout" || at_failed=:
21729at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:921"
21730$at_failed && at_fn_log_failure
21731$at_traceon; }
21732
21733
21734  set +x
21735  $at_times_p && times >"$at_times_file"
21736) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21737read at_status <"$at_status_file"
21738#AT_STOP_235
21739#AT_START_236
21740at_fn_group_banner 236 'syn_misc.at:928' \
21741  "INSPECT repeated keywords" "                      " 2
21742at_xfail=no
21743(
21744  $as_echo "236. $at_setup_line: testing $at_desc ..."
21745  $at_traceon
21746
21747
21748
21749cat >prog.cob <<'_ATEOF'
21750
21751       IDENTIFICATION DIVISION.
21752       PROGRAM-ID. prog.
21753
21754       DATA DIVISION.
21755       WORKING-STORAGE SECTION.
21756       01  x PIC 9(5).
21757
21758       PROCEDURE DIVISION.
21759           *> Ok
21760           INSPECT "abcde" TALLYING x FOR CHARACTERS CHARACTERS
21761
21762           *> Not ok
21763           INSPECT "abcde" TALLYING x FOR ALL LEADING
21764               TRAILING ALL ALL ALL TRAILING
21765           INSPECT "abcde" TALLYING x FOR x FOR LEADING "a"
21766           .
21767_ATEOF
21768
21769
21770{ set +x
21771$as_echo "$at_srcdir/syn_misc.at:950: \$COMPILE_ONLY prog.cob"
21772at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:950"
21773( $at_check_trace; $COMPILE_ONLY prog.cob
21774) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21775at_status=$? at_failed=false
21776$at_check_filter
21777echo >>"$at_stderr"; $as_echo "prog.cob:14: error: missing value between ALL/LEADING/TRAILING words
21778prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
21779prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
21780prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
21781prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
21782prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
21783prog.cob:16: error: TALLYING clause is incomplete
21784prog.cob:16: error: missing CHARACTERS/ALL/LEADING/TRAILING phrase after FOR phrase
21785" | \
21786  $at_diff - "$at_stderr" || at_failed=:
21787at_fn_diff_devnull "$at_stdout" || at_failed=:
21788at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:950"
21789$at_failed && at_fn_log_failure
21790$at_traceon; }
21791
21792
21793  set +x
21794  $at_times_p && times >"$at_times_file"
21795) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21796read at_status <"$at_status_file"
21797#AT_STOP_236
21798#AT_START_237
21799at_fn_group_banner 237 'syn_misc.at:964' \
21800  "INSPECT incomplete clause" "                      " 2
21801at_xfail=no
21802(
21803  $as_echo "237. $at_setup_line: testing $at_desc ..."
21804  $at_traceon
21805
21806
21807
21808cat >prog.cob <<'_ATEOF'
21809
21810       IDENTIFICATION DIVISION.
21811       PROGRAM-ID. prog.
21812
21813       DATA DIVISION.
21814       WORKING-STORAGE SECTION.
21815       01  x PIC 9(5).
21816
21817       PROCEDURE DIVISION.
21818           INSPECT "abcde" TALLYING x FOR
21819           .
21820_ATEOF
21821
21822
21823{ set +x
21824$as_echo "$at_srcdir/syn_misc.at:980: \$COMPILE_ONLY prog.cob"
21825at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:980"
21826( $at_check_trace; $COMPILE_ONLY prog.cob
21827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21828at_status=$? at_failed=false
21829$at_check_filter
21830echo >>"$at_stderr"; $as_echo "prog.cob:11: error: TALLYING clause is incomplete
21831" | \
21832  $at_diff - "$at_stderr" || at_failed=:
21833at_fn_diff_devnull "$at_stdout" || at_failed=:
21834at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:980"
21835$at_failed && at_fn_log_failure
21836$at_traceon; }
21837
21838  set +x
21839  $at_times_p && times >"$at_times_file"
21840) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21841read at_status <"$at_status_file"
21842#AT_STOP_237
21843#AT_START_238
21844at_fn_group_banner 238 'syn_misc.at:986' \
21845  "INSPECT multiple BEFORE/AFTER clauses" "          " 2
21846at_xfail=no
21847(
21848  $as_echo "238. $at_setup_line: testing $at_desc ..."
21849  $at_traceon
21850
21851
21852
21853cat >prog.cob <<'_ATEOF'
21854
21855       IDENTIFICATION DIVISION.
21856       PROGRAM-ID. prog.
21857
21858       DATA DIVISION.
21859       WORKING-STORAGE SECTION.
21860       01  x PIC X(10).
21861
21862       PROCEDURE DIVISION.
21863           INSPECT x REPLACING CHARACTERS BY "x"
21864               BEFORE "A" BEFORE "b" AFTER "c"
21865           .
21866_ATEOF
21867
21868
21869{ set +x
21870$as_echo "$at_srcdir/syn_misc.at:1003: \$COMPILE_ONLY prog.cob"
21871at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1003"
21872( $at_check_trace; $COMPILE_ONLY prog.cob
21873) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21874at_status=$? at_failed=false
21875$at_check_filter
21876echo >>"$at_stderr"; $as_echo "prog.cob:11: error: syntax error, unexpected BEFORE
21877" | \
21878  $at_diff - "$at_stderr" || at_failed=:
21879at_fn_diff_devnull "$at_stdout" || at_failed=:
21880at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1003"
21881$at_failed && at_fn_log_failure
21882$at_traceon; }
21883
21884  set +x
21885  $at_times_p && times >"$at_times_file"
21886) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21887read at_status <"$at_status_file"
21888#AT_STOP_238
21889#AT_START_239
21890at_fn_group_banner 239 'syn_misc.at:1009' \
21891  "maximum data size" "                              " 2
21892at_xfail=no
21893(
21894  $as_echo "239. $at_setup_line: testing $at_desc ..."
21895  $at_traceon
21896
21897
21898
21899cat >prog.cob <<'_ATEOF'
21900
21901       IDENTIFICATION   DIVISION.
21902       PROGRAM-ID.      prog.
21903       DATA             DIVISION.
21904       WORKING-STORAGE  SECTION.
21905       01 SINGLE-ITEM   PIC X(999999999).
21906       01 GROUP-ITEM1.
21907          05 FILLER     PIC X(999999999).
21908       01 GROUP-ITEM2.
21909          05 FILLER     PIC X(199999999).
21910          05 FILLER     PIC X(199999999).
21911       PROCEDURE        DIVISION.
21912           STOP RUN.
21913
21914_ATEOF
21915
21916
21917{ set +x
21918$as_echo "$at_srcdir/syn_misc.at:1028: \$COMPILE_ONLY prog.cob"
21919at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1028"
21920( $at_check_trace; $COMPILE_ONLY prog.cob
21921) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21922at_status=$? at_failed=false
21923$at_check_filter
21924echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'SINGLE-ITEM' cannot be larger than 268435456 bytes
21925prog.cob:8: error: 'FILLER 1' cannot be larger than 268435456 bytes
21926prog.cob:7: error: 'GROUP-ITEM1' cannot be larger than 268435456 bytes
21927prog.cob:9: error: 'GROUP-ITEM2' cannot be larger than 268435456 bytes
21928" | \
21929  $at_diff - "$at_stderr" || at_failed=:
21930at_fn_diff_devnull "$at_stdout" || at_failed=:
21931at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1028"
21932$at_failed && at_fn_log_failure
21933$at_traceon; }
21934
21935
21936  set +x
21937  $at_times_p && times >"$at_times_file"
21938) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21939read at_status <"$at_status_file"
21940#AT_STOP_239
21941#AT_START_240
21942at_fn_group_banner 240 'syn_misc.at:1038' \
21943  "unreachable statement" "                          " 2
21944at_xfail=no
21945(
21946  $as_echo "240. $at_setup_line: testing $at_desc ..."
21947  $at_traceon
21948
21949
21950
21951cat >prog.cob <<'_ATEOF'
21952
21953       IDENTIFICATION   DIVISION.
21954       PROGRAM-ID.      prog.
21955       ENVIRONMENT DIVISION.
21956       INPUT-OUTPUT SECTION.
21957       FILE-CONTROL.
21958           SELECT f ASSIGN TO 'f' LINE SEQUENTIAL.
21959       DATA DIVISION.
21960       FILE SECTION.
21961       FD  f.
21962       01  f-rec PIC X.
21963       WORKING-STORAGE  SECTION.
21964       PROCEDURE        DIVISION.
21965       DECLARATIVES.
21966       f-error SECTION.
21967           USE AFTER ERROR ON f.
21968           GOBACK
21969           .
21970       END DECLARATIVES.
21971
21972           DISPLAY "VALID"
21973           END-DISPLAY.
21974
21975       P01.
21976           GO TO P02.
21977           DISPLAY "INVALID"
21978           END-DISPLAY.
21979       P02.
21980           GO TO P03
21981           CONTINUE.  *> explicit no unreachable warning
21982       P03.
21983           GO TO P04
21984           CONTINUE AFTER 2 SECONDS.  *> that's one again
21985       P04.
21986           STOP RUN.
21987_ATEOF
21988
21989
21990{ set +x
21991$as_echo "$at_srcdir/syn_misc.at:1078: \$COMPILE_ONLY -Wunreachable prog.cob"
21992at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wunreachable prog.cob" "syn_misc.at:1078"
21993( $at_check_trace; $COMPILE_ONLY -Wunreachable prog.cob
21994) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21995at_status=$? at_failed=false
21996$at_check_filter
21997echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'P01':
21998prog.cob:26: warning: unreachable statement 'DISPLAY'
21999prog.cob: in paragraph 'P03':
22000prog.cob:33: warning: unreachable statement 'CONTINUE AFTER'
22001" | \
22002  $at_diff - "$at_stderr" || at_failed=:
22003at_fn_diff_devnull "$at_stdout" || at_failed=:
22004at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1078"
22005$at_failed && at_fn_log_failure
22006$at_traceon; }
22007
22008
22009  set +x
22010  $at_times_p && times >"$at_times_file"
22011) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22012read at_status <"$at_status_file"
22013#AT_STOP_240
22014#AT_START_241
22015at_fn_group_banner 241 'syn_misc.at:1088' \
22016  "CRT STATUS" "                                     " 2
22017at_xfail=no
22018(
22019  $as_echo "241. $at_setup_line: testing $at_desc ..."
22020  $at_traceon
22021
22022
22023
22024cat >prog.cob <<'_ATEOF'
22025
22026       IDENTIFICATION   DIVISION.
22027       PROGRAM-ID.      prog.
22028       ENVIRONMENT DIVISION.
22029       CONFIGURATION SECTION.
22030       SPECIAL-NAMES.
22031           CRT STATUS IS MY-CRT-STATUS.
22032       DATA             DIVISION.
22033       WORKING-STORAGE  SECTION.
22034       01 X             PIC X.
22035       PROCEDURE        DIVISION.
22036           ACCEPT X END-ACCEPT.
22037           STOP RUN.
22038_ATEOF
22039
22040
22041cat >prog2.cob <<'_ATEOF'
22042
22043       IDENTIFICATION   DIVISION.
22044       PROGRAM-ID.      prog2.
22045       ENVIRONMENT DIVISION.
22046       CONFIGURATION SECTION.
22047       SPECIAL-NAMES.
22048           CRT STATUS IS MY-CRT-STATUS.
22049       DATA             DIVISION.
22050       WORKING-STORAGE  SECTION.
22051       01 X             PIC X.
22052       77 MY-CRT-STATUS PIC 9(04).
22053       PROCEDURE        DIVISION.
22054           ACCEPT X END-ACCEPT.
22055           STOP RUN.
22056_ATEOF
22057
22058
22059{ set +x
22060$as_echo "$at_srcdir/syn_misc.at:1122: \$COMPILE_ONLY prog.cob"
22061at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1122"
22062( $at_check_trace; $COMPILE_ONLY prog.cob
22063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22064at_status=$? at_failed=false
22065$at_check_filter
22066echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'MY-CRT-STATUS' is not defined
22067" | \
22068  $at_diff - "$at_stderr" || at_failed=:
22069at_fn_diff_devnull "$at_stdout" || at_failed=:
22070at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1122"
22071$at_failed && at_fn_log_failure
22072$at_traceon; }
22073
22074{ set +x
22075$as_echo "$at_srcdir/syn_misc.at:1125: \$COMPILE_ONLY prog2.cob"
22076at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1125"
22077( $at_check_trace; $COMPILE_ONLY prog2.cob
22078) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22079at_status=$? at_failed=false
22080$at_check_filter
22081at_fn_diff_devnull "$at_stderr" || at_failed=:
22082at_fn_diff_devnull "$at_stdout" || at_failed=:
22083at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1125"
22084$at_failed && at_fn_log_failure
22085$at_traceon; }
22086
22087
22088  set +x
22089  $at_times_p && times >"$at_times_file"
22090) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22091read at_status <"$at_status_file"
22092#AT_STOP_241
22093#AT_START_242
22094at_fn_group_banner 242 'syn_misc.at:1130' \
22095  "SPECIAL-NAMES clause" "                           " 2
22096at_xfail=no
22097(
22098  $as_echo "242. $at_setup_line: testing $at_desc ..."
22099  $at_traceon
22100
22101
22102
22103# FIXME: actually this is the only place for some CRT STATUS checks...
22104
22105cat >prog.cob <<'_ATEOF'
22106
22107       IDENTIFICATION   DIVISION.
22108       PROGRAM-ID.      prog.
22109       ENVIRONMENT      DIVISION.
22110       CONFIGURATION    SECTION.
22111       SPECIAL-NAMES.
22112           CRT STATUS IS MY-CRT-STATUS.
22113       DATA             DIVISION.
22114       WORKING-STORAGE  SECTION.
22115       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
22116           03  CURSOR-ROW         PIC 999.
22117           03  CURSOR-COL         PIC 999.
22118       77  MY-CRT-STATUS PIC 9(04).
22119       77  CRT-STATUS IS SPECIAL-NAMES CRT STATUS PIC 9(5).
22120       PROCEDURE        DIVISION.
22121           ACCEPT OMITTED END-ACCEPT.
22122           STOP RUN.
22123_ATEOF
22124
22125
22126cat >prog2.cob <<'_ATEOF'
22127
22128       IDENTIFICATION   DIVISION.
22129       PROGRAM-ID.      prog.
22130       DATA             DIVISION.
22131       WORKING-STORAGE  SECTION.
22132       77  CRT-STATUS IS SPECIAL-NAMES CRT STATUS PIC X(5).
22133       PROCEDURE        DIVISION.
22134           ACCEPT OMITTED END-ACCEPT.
22135           STOP RUN.
22136_ATEOF
22137
22138
22139cat >prog3.cob <<'_ATEOF'
22140
22141       IDENTIFICATION   DIVISION.
22142       PROGRAM-ID.      prog.
22143       DATA             DIVISION.
22144       WORKING-STORAGE  SECTION.
22145       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
22146           03  CURSOR-ROW   PIC 999.
22147           03  CURSOR-COL   PIC 999.
22148       77  CRT-STATUS       PIC X(4) IS SPECIAL-NAMES CRT STATUS.
22149       PROCEDURE        DIVISION.
22150           ACCEPT OMITTED END-ACCEPT.
22151           STOP RUN.
22152_ATEOF
22153
22154
22155cat >prog4.cob <<'_ATEOF'
22156
22157       IDENTIFICATION   DIVISION.
22158       PROGRAM-ID.      prog.
22159       DATA             DIVISION.
22160       WORKING-STORAGE  SECTION.
22161       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
22162           03  CURSOR-ROW   PIC 999.
22163           03  CURSOR-COL   PIC 999.
22164       77  CRT-STATUS       PIC 9(5) IS SPECIAL-NAMES CRT STATUS.
22165       PROCEDURE        DIVISION.
22166           ACCEPT OMITTED END-ACCEPT.
22167           STOP RUN.
22168_ATEOF
22169
22170
22171cat >prog5.cob <<'_ATEOF'
22172
22173       IDENTIFICATION   DIVISION.
22174       PROGRAM-ID.      prog.
22175       DATA             DIVISION.
22176       WORKING-STORAGE  SECTION.
22177       77  CRT-STATUS   PIC 9(3) IS SPECIAL-NAMES CRT STATUS.
22178       PROCEDURE        DIVISION.
22179           ACCEPT OMITTED END-ACCEPT.
22180           STOP RUN.
22181_ATEOF
22182
22183
22184{ set +x
22185$as_echo "$at_srcdir/syn_misc.at:1204: \$COMPILE_ONLY prog.cob"
22186at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1204"
22187( $at_check_trace; $COMPILE_ONLY prog.cob
22188) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22189at_status=$? at_failed=false
22190$at_check_filter
22191echo >>"$at_stderr"; $as_echo "prog.cob:14: error: duplicate CRT STATUS clause
22192" | \
22193  $at_diff - "$at_stderr" || at_failed=:
22194at_fn_diff_devnull "$at_stdout" || at_failed=:
22195at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1204"
22196$at_failed && at_fn_log_failure
22197$at_traceon; }
22198
22199{ set +x
22200$as_echo "$at_srcdir/syn_misc.at:1207: \$COMPILE_ONLY prog2.cob"
22201at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1207"
22202( $at_check_trace; $COMPILE_ONLY prog2.cob
22203) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22204at_status=$? at_failed=false
22205$at_check_filter
22206echo >>"$at_stderr"; $as_echo "prog2.cob:6: error: 'CRT-STATUS' CRT STATUS must be 4 characters long
22207" | \
22208  $at_diff - "$at_stderr" || at_failed=:
22209at_fn_diff_devnull "$at_stdout" || at_failed=:
22210at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1207"
22211$at_failed && at_fn_log_failure
22212$at_traceon; }
22213
22214{ set +x
22215$as_echo "$at_srcdir/syn_misc.at:1210: \$COMPILE_ONLY prog3.cob"
22216at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:1210"
22217( $at_check_trace; $COMPILE_ONLY prog3.cob
22218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22219at_status=$? at_failed=false
22220$at_check_filter
22221at_fn_diff_devnull "$at_stderr" || at_failed=:
22222at_fn_diff_devnull "$at_stdout" || at_failed=:
22223at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1210"
22224$at_failed && at_fn_log_failure
22225$at_traceon; }
22226
22227{ set +x
22228$as_echo "$at_srcdir/syn_misc.at:1211: \$COMPILE_ONLY prog4.cob"
22229at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_misc.at:1211"
22230( $at_check_trace; $COMPILE_ONLY prog4.cob
22231) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22232at_status=$? at_failed=false
22233$at_check_filter
22234at_fn_diff_devnull "$at_stderr" || at_failed=:
22235at_fn_diff_devnull "$at_stdout" || at_failed=:
22236at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1211"
22237$at_failed && at_fn_log_failure
22238$at_traceon; }
22239
22240{ set +x
22241$as_echo "$at_srcdir/syn_misc.at:1212: \$COMPILE_ONLY prog5.cob"
22242at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_misc.at:1212"
22243( $at_check_trace; $COMPILE_ONLY prog5.cob
22244) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22245at_status=$? at_failed=false
22246$at_check_filter
22247echo >>"$at_stderr"; $as_echo "prog5.cob:6: error: 'CRT-STATUS' CRT STATUS must have at least 4 digits
22248" | \
22249  $at_diff - "$at_stderr" || at_failed=:
22250at_fn_diff_devnull "$at_stdout" || at_failed=:
22251at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1212"
22252$at_failed && at_fn_log_failure
22253$at_traceon; }
22254
22255
22256  set +x
22257  $at_times_p && times >"$at_times_file"
22258) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22259read at_status <"$at_status_file"
22260#AT_STOP_242
22261#AT_START_243
22262at_fn_group_banner 243 'syn_misc.at:1219' \
22263  "CURRENCY SIGN" "                                  " 2
22264at_xfail=no
22265(
22266  $as_echo "243. $at_setup_line: testing $at_desc ..."
22267  $at_traceon
22268
22269
22270
22271cat >prog.cob <<'_ATEOF'
22272
22273       IDENTIFICATION   DIVISION.
22274       PROGRAM-ID.      prog.
22275       ENVIRONMENT DIVISION.
22276       CONFIGURATION SECTION.
22277       SPECIAL-NAMES.
22278           CURRENCY SIGN IS '*'.
22279_ATEOF
22280
22281
22282cat >prog2.cob <<'_ATEOF'
22283
22284       IDENTIFICATION   DIVISION.
22285       PROGRAM-ID.      prog2.
22286       ENVIRONMENT DIVISION.
22287       CONFIGURATION SECTION.
22288       SPECIAL-NAMES.
22289           CURRENCY 'DOLLAR'.
22290_ATEOF
22291
22292
22293cat >prog3.cob <<'_ATEOF'
22294
22295       IDENTIFICATION   DIVISION.
22296       PROGRAM-ID.      prog3.
22297       ENVIRONMENT DIVISION.
22298       CONFIGURATION SECTION.
22299       SPECIAL-NAMES.
22300           CURRENCY 'DOLLAR'
22301           WITH PICTURE SYMBOL '$'.
22302       DATA             DIVISION.
22303       WORKING-STORAGE  SECTION.
22304       77 SOME-CASH     PIC 9(04).99$.
22305       PROCEDURE        DIVISION.
22306           MOVE 123.4 TO SOME-CASH
22307           DISPLAY SOME-CASH END-DISPLAY.
22308           STOP RUN.
22309_ATEOF
22310
22311
22312cat >prog4.cob <<'_ATEOF'
22313
22314       IDENTIFICATION   DIVISION.
22315       PROGRAM-ID.      prog4.
22316       ENVIRONMENT DIVISION.
22317       CONFIGURATION SECTION.
22318       SPECIAL-NAMES.
22319           CURRENCY '   '
22320           PICTURE SYMBOL '*'.
22321_ATEOF
22322
22323
22324cat >prog5.cob <<'_ATEOF'
22325
22326       IDENTIFICATION   DIVISION.
22327       PROGRAM-ID.      prog5.
22328       ENVIRONMENT DIVISION.
22329       CONFIGURATION SECTION.
22330       SPECIAL-NAMES.
22331           CURRENCY ' T '
22332           PICTURE SYMBOL ' '.
22333_ATEOF
22334
22335
22336cat >prog6.cob <<'_ATEOF'
22337
22338       IDENTIFICATION   DIVISION.
22339       PROGRAM-ID.      prog6.
22340       ENVIRONMENT DIVISION.
22341       CONFIGURATION SECTION.
22342       SPECIAL-NAMES.
22343           CURRENCY '+-'
22344           PICTURE SYMBOL 'TT'.
22345_ATEOF
22346
22347
22348cat >prog7.cob <<'_ATEOF'
22349
22350       IDENTIFICATION   DIVISION.
22351       PROGRAM-ID.      prog7.
22352       ENVIRONMENT DIVISION.
22353       CONFIGURATION SECTION.
22354       SPECIAL-NAMES.
22355           CURRENCY SIGN IS 'T'.
22356       DATA             DIVISION.
22357       WORKING-STORAGE  SECTION.
22358       77 SOME-CASH     PIC 9(04).99T.
22359       PROCEDURE        DIVISION.
22360           MOVE 123.4 TO SOME-CASH
22361           DISPLAY SOME-CASH END-DISPLAY.
22362           STOP RUN.
22363_ATEOF
22364
22365
22366{ set +x
22367$as_echo "$at_srcdir/syn_misc.at:1303: \$COMPILE_ONLY prog.cob"
22368at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1303"
22369( $at_check_trace; $COMPILE_ONLY prog.cob
22370) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22371at_status=$? at_failed=false
22372$at_check_filter
22373echo >>"$at_stderr"; $as_echo "prog.cob:7: error: invalid character '*' in currency symbol
22374" | \
22375  $at_diff - "$at_stderr" || at_failed=:
22376at_fn_diff_devnull "$at_stdout" || at_failed=:
22377at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1303"
22378$at_failed && at_fn_log_failure
22379$at_traceon; }
22380
22381{ set +x
22382$as_echo "$at_srcdir/syn_misc.at:1306: \$COMPILE_ONLY prog2.cob"
22383at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1306"
22384( $at_check_trace; $COMPILE_ONLY prog2.cob
22385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22386at_status=$? at_failed=false
22387$at_check_filter
22388echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: currency symbol must be one character long
22389" | \
22390  $at_diff - "$at_stderr" || at_failed=:
22391at_fn_diff_devnull "$at_stdout" || at_failed=:
22392at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1306"
22393$at_failed && at_fn_log_failure
22394$at_traceon; }
22395
22396{ set +x
22397$as_echo "$at_srcdir/syn_misc.at:1309: \$COMPILE_ONLY prog3.cob"
22398at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:1309"
22399( $at_check_trace; $COMPILE_ONLY prog3.cob
22400) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22401at_status=$? at_failed=false
22402$at_check_filter
22403echo >>"$at_stderr"; $as_echo "prog3.cob:7: warning: separate currency symbol and currency string is not implemented
22404" | \
22405  $at_diff - "$at_stderr" || at_failed=:
22406at_fn_diff_devnull "$at_stdout" || at_failed=:
22407at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1309"
22408$at_failed && at_fn_log_failure
22409$at_traceon; }
22410
22411{ set +x
22412$as_echo "$at_srcdir/syn_misc.at:1312: \$COMPILE_ONLY prog4.cob"
22413at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_misc.at:1312"
22414( $at_check_trace; $COMPILE_ONLY prog4.cob
22415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22416at_status=$? at_failed=false
22417$at_check_filter
22418echo >>"$at_stderr"; $as_echo "prog4.cob:7: warning: separate currency symbol and currency string is not implemented
22419prog4.cob:7: error: invalid CURRENCY SIGN '   '
22420prog4.cob:8: error: invalid character '*' in currency symbol
22421" | \
22422  $at_diff - "$at_stderr" || at_failed=:
22423at_fn_diff_devnull "$at_stdout" || at_failed=:
22424at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1312"
22425$at_failed && at_fn_log_failure
22426$at_traceon; }
22427
22428{ set +x
22429$as_echo "$at_srcdir/syn_misc.at:1317: \$COMPILE_ONLY prog5.cob"
22430at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_misc.at:1317"
22431( $at_check_trace; $COMPILE_ONLY prog5.cob
22432) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22433at_status=$? at_failed=false
22434$at_check_filter
22435echo >>"$at_stderr"; $as_echo "prog5.cob:7: warning: separate currency symbol and currency string is not implemented
22436prog5.cob:8: error: invalid character ' ' in currency symbol
22437" | \
22438  $at_diff - "$at_stderr" || at_failed=:
22439at_fn_diff_devnull "$at_stdout" || at_failed=:
22440at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1317"
22441$at_failed && at_fn_log_failure
22442$at_traceon; }
22443
22444{ set +x
22445$as_echo "$at_srcdir/syn_misc.at:1321: \$COMPILE_ONLY prog6.cob"
22446at_fn_check_prepare_dynamic "$COMPILE_ONLY prog6.cob" "syn_misc.at:1321"
22447( $at_check_trace; $COMPILE_ONLY prog6.cob
22448) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22449at_status=$? at_failed=false
22450$at_check_filter
22451echo >>"$at_stderr"; $as_echo "prog6.cob:7: warning: separate currency symbol and currency string is not implemented
22452prog6.cob:7: error: invalid CURRENCY SIGN '+-'
22453prog6.cob:8: error: currency symbol must be one character long
22454" | \
22455  $at_diff - "$at_stderr" || at_failed=:
22456at_fn_diff_devnull "$at_stdout" || at_failed=:
22457at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1321"
22458$at_failed && at_fn_log_failure
22459$at_traceon; }
22460
22461{ set +x
22462$as_echo "$at_srcdir/syn_misc.at:1326: \$COMPILE_ONLY prog7.cob"
22463at_fn_check_prepare_dynamic "$COMPILE_ONLY prog7.cob" "syn_misc.at:1326"
22464( $at_check_trace; $COMPILE_ONLY prog7.cob
22465) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22466at_status=$? at_failed=false
22467$at_check_filter
22468at_fn_diff_devnull "$at_stderr" || at_failed=:
22469at_fn_diff_devnull "$at_stdout" || at_failed=:
22470at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1326"
22471$at_failed && at_fn_log_failure
22472$at_traceon; }
22473
22474
22475  set +x
22476  $at_times_p && times >"$at_times_file"
22477) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22478read at_status <"$at_status_file"
22479#AT_STOP_243
22480#AT_START_244
22481at_fn_group_banner 244 'syn_misc.at:1331' \
22482  "SWITCHES" "                                       " 2
22483at_xfail=no
22484(
22485  $as_echo "244. $at_setup_line: testing $at_desc ..."
22486  $at_traceon
22487
22488
22489
22490cat >prog.cob <<'_ATEOF'
22491
22492       IDENTIFICATION   DIVISION.
22493       PROGRAM-ID.      prog.
22494       ENVIRONMENT DIVISION.
22495       CONFIGURATION SECTION.
22496       SPECIAL-NAMES.
22497           SW1
22498             ON  IS SWIT1-ON
22499             OFF IS SWIT1-OFF
22500           .
22501           SWITCH B IS SWITCH-B
22502             ON  IS SWIT2-ON
22503             OFF IS SWIT2-OFF
22504           .
22505           SWITCH-25
22506             ON  IS SWIT25-ON
22507             OFF IS SWIT25-OFF
22508           .
22509           SWITCH-25
22510             ON  IS SWIT25-IS-ON
22511             OFF IS SWIT25-IS-OFF
22512           .
22513           SWITCH 25
22514             ON  IS SWIT25-SP-ON
22515             OFF IS SWIT25-SP-OFF
22516           .
22517           SWITCH Y
22518             ON  IS SWIT25-Y-ON
22519             OFF IS SWIT25-Y-OFF
22520           .
22521           SWITCH Z
22522             ON  IS SWIT26-ON
22523             ON  IS SWIT26-OFF
22524           .
22525           SWITCH-32
22526             ON  IS SWIT32-ON
22527           .
22528       DATA             DIVISION.
22529       WORKING-STORAGE  SECTION.
22530       01  SWITCH       PIC 99 VALUE 12.
22531       PROCEDURE        DIVISION.
22532           ADD SWITCH 1 GIVING SWITCH
22533           END-ADD.
22534           IF SWITCH NOT = 13
22535              DISPLAY "SWITCH (variable) WRONG: "
22536                      SWITCH
22537              END-DISPLAY
22538           END-IF.
22539           IF SWIT1-ON
22540              DISPLAY "ON"
22541              END-DISPLAY
22542           ELSE
22543              DISPLAY "OFF"
22544              END-DISPLAY
22545           END-IF.
22546           IF SWIT2-ON
22547              DISPLAY " ON"
22548              END-DISPLAY
22549           ELSE
22550              DISPLAY " OFF"
22551              END-DISPLAY
22552           END-IF.
22553           SET SWITCH-B TO OFF
22554           IF SWIT2-ON
22555              CONTINUE
22556           END-IF.
22557           IF SWIT25-ON
22558              CONTINUE
22559           END-IF.
22560           IF SWIT26-ON
22561              CONTINUE
22562           END-IF.
22563           IF SWIT32-ON
22564              CONTINUE
22565           END-IF.
22566           IF SWIT32-OFF
22567              CONTINUE
22568           END-IF.
22569           STOP RUN.
22570_ATEOF
22571
22572
22573{ set +x
22574$as_echo "$at_srcdir/syn_misc.at:1415: \$COMPILE_ONLY prog.cob"
22575at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1415"
22576( $at_check_trace; $COMPILE_ONLY prog.cob
22577) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22578at_status=$? at_failed=false
22579$at_check_filter
22580echo >>"$at_stderr"; $as_echo "prog.cob:7: error: invalid system-name 'SW1'
22581prog.cob:8: error: ON/OFF usage requires a SWITCH name
22582prog.cob:9: error: ON/OFF usage requires a SWITCH name
22583prog.cob:11: error: invalid system-name 'SWITCH B'
22584prog.cob:12: error: ON/OFF usage requires a SWITCH name
22585prog.cob:13: error: ON/OFF usage requires a SWITCH name
22586prog.cob:23: error: invalid system-name 'SWITCH 25'
22587prog.cob:24: error: ON/OFF usage requires a SWITCH name
22588prog.cob:25: error: ON/OFF usage requires a SWITCH name
22589prog.cob:27: error: invalid system-name 'SWITCH Y'
22590prog.cob:28: error: ON/OFF usage requires a SWITCH name
22591prog.cob:29: error: ON/OFF usage requires a SWITCH name
22592prog.cob:31: error: invalid system-name 'SWITCH Z'
22593prog.cob:32: error: ON/OFF usage requires a SWITCH name
22594prog.cob:33: error: ON/OFF usage requires a SWITCH name
22595prog.cob:49: error: 'SWIT1-ON' is not defined
22596prog.cob:56: error: 'SWIT2-ON' is not defined
22597prog.cob:63: error: 'SWITCH-B' is not defined
22598prog.cob:63: error: syntax error, unexpected OFF
22599prog.cob:70: error: 'SWIT26-ON' is not defined
22600prog.cob:76: error: 'SWIT32-OFF' is not defined
22601" | \
22602  $at_diff - "$at_stderr" || at_failed=:
22603at_fn_diff_devnull "$at_stdout" || at_failed=:
22604at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1415"
22605$at_failed && at_fn_log_failure
22606$at_traceon; }
22607
22608# FIXME: There should be an additional
22609#prog.cob:19: error: duplicate definition of 'SWITCH-25'
22610#prog.cob:15: note: 'SWITCH-25' previously defined here
22611#
22612{ set +x
22613$as_echo "$at_srcdir/syn_misc.at:1442: \$COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob"
22614at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob" "syn_misc.at:1442"
22615( $at_check_trace; $COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob
22616) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22617at_status=$? at_failed=false
22618$at_check_filter
22619echo >>"$at_stderr"; $as_echo "prog.cob:33: error: duplicate ON clause
22620prog.cob:76: error: 'SWIT32-OFF' is not defined
22621" | \
22622  $at_diff - "$at_stderr" || at_failed=:
22623at_fn_diff_devnull "$at_stdout" || at_failed=:
22624at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1442"
22625$at_failed && at_fn_log_failure
22626$at_traceon; }
22627
22628# FIXME: There should be an additional
22629#prog.cob:19: error: duplicate definition of 'SWITCH-25'
22630#prog.cob:15: note: 'SWITCH-25' previously defined here
22631#prog.cob:23: error: duplicate definition of 'SWITCH 25'
22632#prog.cob:15: note: 'SWITCH-25' previously defined here
22633#prog.cob:27: error: duplicate definition of 'SWITCH Y'
22634#prog.cob:15: note: 'SWITCH-25' previously defined here
22635
22636  set +x
22637  $at_times_p && times >"$at_times_file"
22638) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22639read at_status <"$at_status_file"
22640#AT_STOP_244
22641#AT_START_245
22642at_fn_group_banner 245 'syn_misc.at:1457' \
22643  "unexpected mnemonic-name location" "              " 2
22644at_xfail=no
22645(
22646  $as_echo "245. $at_setup_line: testing $at_desc ..."
22647  $at_traceon
22648
22649
22650
22651cat >prog.cob <<'_ATEOF'
22652
22653       IDENTIFICATION DIVISION.
22654       PROGRAM-ID.    prog.
22655       ENVIRONMENT    DIVISION.
22656       CONFIGURATION  SECTION.
22657       SPECIAL-NAMES.
22658           stdin IS my-stdin
22659           .
22660       PROCEDURE      DIVISION.
22661           CALL "something" USING stdout
22662           CALL "something" USING stdin
22663           CALL "something" USING my-stdin
22664           .
22665_ATEOF
22666
22667
22668{ set +x
22669$as_echo "$at_srcdir/syn_misc.at:1475: \$COMPILE_ONLY prog.cob"
22670at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1475"
22671( $at_check_trace; $COMPILE_ONLY prog.cob
22672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22673at_status=$? at_failed=false
22674$at_check_filter
22675echo >>"$at_stderr"; $as_echo "prog.cob:10: error: invalid mnemonic identifier
22676prog.cob:11: error: invalid mnemonic identifier
22677prog.cob:12: error: invalid mnemonic identifier
22678" | \
22679  $at_diff - "$at_stderr" || at_failed=:
22680at_fn_diff_devnull "$at_stdout" || at_failed=:
22681at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1475"
22682$at_failed && at_fn_log_failure
22683$at_traceon; }
22684
22685
22686  set +x
22687  $at_times_p && times >"$at_times_file"
22688) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22689read at_status <"$at_status_file"
22690#AT_STOP_245
22691#AT_START_246
22692at_fn_group_banner 246 'syn_misc.at:1484' \
22693  "wrong device for mnemonic-name" "                 " 2
22694at_xfail=no
22695(
22696  $as_echo "246. $at_setup_line: testing $at_desc ..."
22697  $at_traceon
22698
22699
22700
22701cat >prog.cob <<'_ATEOF'
22702
22703       IDENTIFICATION  DIVISION.
22704       PROGRAM-ID.     prog.
22705       DATA            DIVISION.
22706       WORKING-STORAGE SECTION.
22707       77 var          PIC x.
22708       PROCEDURE       DIVISION.
22709           ACCEPT  var FROM SYSOUT
22710           DISPLAY var UPON SYSIN
22711           ACCEPT  var FROM SYSIN
22712           DISPLAY var UPON SYSOUT
22713           .
22714_ATEOF
22715
22716
22717{ set +x
22718$as_echo "$at_srcdir/syn_misc.at:1501: \$COMPILE_ONLY prog.cob"
22719at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1501"
22720( $at_check_trace; $COMPILE_ONLY prog.cob
22721) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22722at_status=$? at_failed=false
22723$at_check_filter
22724echo >>"$at_stderr"; $as_echo "prog.cob:8: error: 'SYSOUT' is not an input device
22725prog.cob:9: error: 'SYSIN' is not an output device
22726" | \
22727  $at_diff - "$at_stderr" || at_failed=:
22728at_fn_diff_devnull "$at_stdout" || at_failed=:
22729at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1501"
22730$at_failed && at_fn_log_failure
22731$at_traceon; }
22732
22733
22734  set +x
22735  $at_times_p && times >"$at_times_file"
22736) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22737read at_status <"$at_status_file"
22738#AT_STOP_246
22739#AT_START_247
22740at_fn_group_banner 247 'syn_misc.at:1509' \
22741  "missing mnemonic-name declaration" "              " 2
22742at_xfail=no
22743(
22744  $as_echo "247. $at_setup_line: testing $at_desc ..."
22745  $at_traceon
22746
22747
22748
22749cat >prog.cob <<'_ATEOF'
22750
22751       IDENTIFICATION  DIVISION.
22752       PROGRAM-ID.     prog.
22753       DATA            DIVISION.
22754       WORKING-STORAGE SECTION.
22755       77 var          PIC x.
22756       PROCEDURE       DIVISION.
22757           ACCEPT var FROM mnemonic-name
22758           .
22759_ATEOF
22760
22761
22762{ set +x
22763$as_echo "$at_srcdir/syn_misc.at:1523: \$COMPILE_ONLY prog.cob"
22764at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1523"
22765( $at_check_trace; $COMPILE_ONLY prog.cob
22766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22767at_status=$? at_failed=false
22768$at_check_filter
22769echo >>"$at_stderr"; $as_echo "prog.cob:8: error: unknown device 'mnemonic-name'; not defined in SPECIAL-NAMES
22770" | \
22771  $at_diff - "$at_stderr" || at_failed=:
22772at_fn_diff_devnull "$at_stdout" || at_failed=:
22773at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1523"
22774$at_failed && at_fn_log_failure
22775$at_traceon; }
22776
22777
22778  set +x
22779  $at_times_p && times >"$at_times_file"
22780) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22781read at_status <"$at_status_file"
22782#AT_STOP_247
22783#AT_START_248
22784at_fn_group_banner 248 'syn_misc.at:1530' \
22785  "unknown device in dialect" "                      " 2
22786at_xfail=no
22787(
22788  $as_echo "248. $at_setup_line: testing $at_desc ..."
22789  $at_traceon
22790
22791
22792
22793cat >prog.cob <<'_ATEOF'
22794
22795       IDENTIFICATION  DIVISION.
22796       PROGRAM-ID.     prog.
22797       DATA            DIVISION.
22798       WORKING-STORAGE SECTION.
22799       77 var          PIC x.
22800       PROCEDURE       DIVISION.
22801           ACCEPT var  FROM COMMAND-LINE
22802           DISPLAY var UPON COMMAND-LINE
22803           .
22804_ATEOF
22805
22806
22807{ set +x
22808$as_echo "$at_srcdir/syn_misc.at:1545: \$COMPILE_ONLY prog.cob"
22809at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1545"
22810( $at_check_trace; $COMPILE_ONLY prog.cob
22811) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22812at_status=$? at_failed=false
22813$at_check_filter
22814at_fn_diff_devnull "$at_stderr" || at_failed=:
22815at_fn_diff_devnull "$at_stdout" || at_failed=:
22816at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1545"
22817$at_failed && at_fn_log_failure
22818$at_traceon; }
22819
22820
22821# Checkme: Error currently doesn't occur for UPON_COMMAND_LINE as this is already tokenized
22822# in scanner.l. We just ignore this for now and maybe fix it later.
22823#AT_CHECK([$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob], [1], [],
22824#[prog.cob:8: error: unknown device 'COMMAND-LINE'; it may exist in another dialect
22825#prog.cob:9: error: unknown device 'COMMAND-LINE'; it may exist in another dialect
22826#])
22827{ set +x
22828$as_echo "$at_srcdir/syn_misc.at:1553: \$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob"
22829at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob" "syn_misc.at:1553"
22830( $at_check_trace; $COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob
22831) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22832at_status=$? at_failed=false
22833$at_check_filter
22834echo >>"$at_stderr"; $as_echo "prog.cob:8: error: unknown device 'COMMAND-LINE'; it may exist in another dialect
22835" | \
22836  $at_diff - "$at_stderr" || at_failed=:
22837at_fn_diff_devnull "$at_stdout" || at_failed=:
22838at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1553"
22839$at_failed && at_fn_log_failure
22840$at_traceon; }
22841
22842
22843  set +x
22844  $at_times_p && times >"$at_times_file"
22845) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22846read at_status <"$at_status_file"
22847#AT_STOP_248
22848#AT_START_249
22849at_fn_group_banner 249 'syn_misc.at:1560' \
22850  "ACCEPT WITH ( NO ) UPDATE / DEFAULT" "            " 2
22851at_xfail=no
22852(
22853  $as_echo "249. $at_setup_line: testing $at_desc ..."
22854  $at_traceon
22855
22856
22857
22858cat >prog.cob <<'_ATEOF'
22859
22860       IDENTIFICATION   DIVISION.
22861       PROGRAM-ID.      prog.
22862       ENVIRONMENT DIVISION.
22863       CONFIGURATION SECTION.
22864       DATA             DIVISION.
22865       WORKING-STORAGE  SECTION.
22866       01 X             PIC X.
22867       PROCEDURE        DIVISION.
22868           ACCEPT X                 END-ACCEPT.
22869           ACCEPT X WITH    UPDATE  END-ACCEPT.
22870           ACCEPT X WITH    DEFAULT END-ACCEPT.
22871           ACCEPT X WITH NO UPDATE  END-ACCEPT.
22872           ACCEPT X WITH NO DEFAULT END-ACCEPT.
22873           STOP RUN.
22874_ATEOF
22875
22876
22877{ set +x
22878$as_echo "$at_srcdir/syn_misc.at:1580: \$COMPILE_ONLY -faccept-update prog.cob"
22879at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-update prog.cob" "syn_misc.at:1580"
22880( $at_check_trace; $COMPILE_ONLY -faccept-update prog.cob
22881) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22882at_status=$? at_failed=false
22883$at_check_filter
22884at_fn_diff_devnull "$at_stderr" || at_failed=:
22885at_fn_diff_devnull "$at_stdout" || at_failed=:
22886at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1580"
22887$at_failed && at_fn_log_failure
22888$at_traceon; }
22889
22890
22891  set +x
22892  $at_times_p && times >"$at_times_file"
22893) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22894read at_status <"$at_status_file"
22895#AT_STOP_249
22896#AT_START_250
22897at_fn_group_banner 250 'syn_misc.at:1585' \
22898  "ACCEPT WITH AUTO / TAB" "                         " 2
22899at_xfail=no
22900(
22901  $as_echo "250. $at_setup_line: testing $at_desc ..."
22902  $at_traceon
22903
22904
22905
22906cat >prog.cob <<'_ATEOF'
22907
22908       IDENTIFICATION   DIVISION.
22909       PROGRAM-ID.      prog.
22910       ENVIRONMENT DIVISION.
22911       CONFIGURATION SECTION.
22912       DATA             DIVISION.
22913       WORKING-STORAGE  SECTION.
22914       01 X             PIC X.
22915       PROCEDURE        DIVISION.
22916           ACCEPT X                       END-ACCEPT.
22917           ACCEPT X WITH    AUTO          END-ACCEPT.
22918           ACCEPT X WITH    AUTO-SKIP     END-ACCEPT.
22919           ACCEPT X WITH    AUTOTERMINATE END-ACCEPT.
22920           ACCEPT X WITH    TAB           END-ACCEPT.
22921           STOP RUN.
22922_ATEOF
22923
22924
22925{ set +x
22926$as_echo "$at_srcdir/syn_misc.at:1605: \$COMPILE_ONLY -faccept-auto prog.cob"
22927at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-auto prog.cob" "syn_misc.at:1605"
22928( $at_check_trace; $COMPILE_ONLY -faccept-auto prog.cob
22929) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22930at_status=$? at_failed=false
22931$at_check_filter
22932at_fn_diff_devnull "$at_stderr" || at_failed=:
22933at_fn_diff_devnull "$at_stdout" || at_failed=:
22934at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1605"
22935$at_failed && at_fn_log_failure
22936$at_traceon; }
22937
22938
22939  set +x
22940  $at_times_p && times >"$at_times_file"
22941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22942read at_status <"$at_status_file"
22943#AT_STOP_250
22944#AT_START_251
22945at_fn_group_banner 251 'syn_misc.at:1610' \
22946  "ACCEPT WITH LOWER / UPPER" "                      " 2
22947at_xfail=no
22948(
22949  $as_echo "251. $at_setup_line: testing $at_desc ..."
22950  $at_traceon
22951
22952
22953
22954cat >prog.cob <<'_ATEOF'
22955
22956       IDENTIFICATION   DIVISION.
22957       PROGRAM-ID.      prog.
22958       DATA             DIVISION.
22959       WORKING-STORAGE  SECTION.
22960       01 X             PIC X(05).
22961       PROCEDURE        DIVISION.
22962           ACCEPT X WITH LOWER     END-ACCEPT.
22963           ACCEPT X WITH UPPER     END-ACCEPT.
22964           ACCEPT X      LOWER
22965           ACCEPT X      UPPER
22966           STOP RUN.
22967_ATEOF
22968
22969
22970{ set +x
22971$as_echo "$at_srcdir/syn_misc.at:1627: \$COMPILE_ONLY prog.cob"
22972at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1627"
22973( $at_check_trace; $COMPILE_ONLY prog.cob
22974) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22975at_status=$? at_failed=false
22976$at_check_filter
22977at_fn_diff_devnull "$at_stderr" || at_failed=:
22978at_fn_diff_devnull "$at_stdout" || at_failed=:
22979at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1627"
22980$at_failed && at_fn_log_failure
22981$at_traceon; }
22982
22983
22984  set +x
22985  $at_times_p && times >"$at_times_file"
22986) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22987read at_status <"$at_status_file"
22988#AT_STOP_251
22989#AT_START_252
22990at_fn_group_banner 252 'syn_misc.at:1632' \
22991  "ACCEPT WITH SIZE" "                               " 2
22992at_xfail=no
22993(
22994  $as_echo "252. $at_setup_line: testing $at_desc ..."
22995  $at_traceon
22996
22997
22998
22999cat >prog.cob <<'_ATEOF'
23000
23001       IDENTIFICATION   DIVISION.
23002       PROGRAM-ID.      prog.
23003       DATA             DIVISION.
23004       WORKING-STORAGE  SECTION.
23005       01 X             PIC X(05).
23006       01 Y             PIC 9(04) BINARY VALUE 4.
23007       PROCEDURE        DIVISION.
23008           ACCEPT X WITH           SIZE    0 END-ACCEPT.
23009           ACCEPT X WITH           SIZE IS 1 END-ACCEPT.
23010           ACCEPT X WITH PROTECTED SIZE    2 END-ACCEPT.
23011           ACCEPT X WITH PROTECTED SIZE IS 3 END-ACCEPT.
23012           ACCEPT X                SIZE    Y END-ACCEPT.
23013           ACCEPT X                SIZE    0
23014           ACCEPT X                SIZE IS 1
23015           ACCEPT X      PROTECTED SIZE    2
23016           ACCEPT X      PROTECTED SIZE IS 3
23017           ACCEPT X                SIZE    Y
23018           STOP RUN.
23019_ATEOF
23020
23021
23022{ set +x
23023$as_echo "$at_srcdir/syn_misc.at:1656: \$COMPILE_ONLY prog.cob"
23024at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1656"
23025( $at_check_trace; $COMPILE_ONLY prog.cob
23026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23027at_status=$? at_failed=false
23028$at_check_filter
23029at_fn_diff_devnull "$at_stderr" || at_failed=:
23030at_fn_diff_devnull "$at_stdout" || at_failed=:
23031at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1656"
23032$at_failed && at_fn_log_failure
23033$at_traceon; }
23034
23035
23036  set +x
23037  $at_times_p && times >"$at_times_file"
23038) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23039read at_status <"$at_status_file"
23040#AT_STOP_252
23041#AT_START_253
23042at_fn_group_banner 253 'syn_misc.at:1661' \
23043  "DISPLAY WITH SIZE" "                              " 2
23044at_xfail=no
23045(
23046  $as_echo "253. $at_setup_line: testing $at_desc ..."
23047  $at_traceon
23048
23049
23050
23051cat >prog.cob <<'_ATEOF'
23052
23053       IDENTIFICATION   DIVISION.
23054       PROGRAM-ID.      prog.
23055       DATA             DIVISION.
23056       WORKING-STORAGE  SECTION.
23057       01 X             PIC X(05).
23058       01 Y             PIC 9(04) BINARY VALUE 7.
23059       PROCEDURE        DIVISION.
23060           DISPLAY X AT 0101 WITH SIZE    5 END-DISPLAY.
23061           DISPLAY X AT 0101 WITH SIZE IS 6 END-DISPLAY.
23062           DISPLAY X AT 0101 WITH SIZE IS Y END-DISPLAY.
23063           DISPLAY X AT 0101      SIZE    5 END-DISPLAY.
23064           DISPLAY X AT 0101      SIZE IS 6 END-DISPLAY.
23065           DISPLAY X AT 0101      SIZE IS Y END-DISPLAY.
23066           STOP RUN.
23067_ATEOF
23068
23069
23070{ set +x
23071$as_echo "$at_srcdir/syn_misc.at:1681: \$COMPILE_ONLY prog.cob"
23072at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1681"
23073( $at_check_trace; $COMPILE_ONLY prog.cob
23074) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23075at_status=$? at_failed=false
23076$at_check_filter
23077at_fn_diff_devnull "$at_stderr" || at_failed=:
23078at_fn_diff_devnull "$at_stdout" || at_failed=:
23079at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1681"
23080$at_failed && at_fn_log_failure
23081$at_traceon; }
23082
23083
23084  set +x
23085  $at_times_p && times >"$at_times_file"
23086) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23087read at_status <"$at_status_file"
23088#AT_STOP_253
23089#AT_START_254
23090at_fn_group_banner 254 'syn_misc.at:1686' \
23091  "source text after program-text area" "            " 2
23092at_xfail=no
23093(
23094  $as_echo "254. $at_setup_line: testing $at_desc ..."
23095  $at_traceon
23096
23097
23098
23099cat >prog.cob <<'_ATEOF'
23100
23101       IDENTIFICATION   DIVISION.
23102       PROGRAM-ID.      prog.
23103       ENVIRONMENT DIVISION.
23104       CONFIGURATION SECTION.
23105       DATA             DIVISION.
23106       WORKING-STORAGE  SECTION.
23107       PROCEDURE        DIVISION.                                       COMMENT
23108           STOP RUN.
23109_ATEOF
23110
23111
23112{ set +x
23113$as_echo "$at_srcdir/syn_misc.at:1700: \$COMPILE_ONLY -Wextra prog.cob"
23114at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wextra prog.cob" "syn_misc.at:1700"
23115( $at_check_trace; $COMPILE_ONLY -Wextra prog.cob
23116) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23117at_status=$? at_failed=false
23118$at_check_filter
23119echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: source text after program-text area (column 72)
23120" | \
23121  $at_diff - "$at_stderr" || at_failed=:
23122at_fn_diff_devnull "$at_stdout" || at_failed=:
23123at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1700"
23124$at_failed && at_fn_log_failure
23125$at_traceon; }
23126
23127
23128  set +x
23129  $at_times_p && times >"$at_times_file"
23130) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23131read at_status <"$at_status_file"
23132#AT_STOP_254
23133#AT_START_255
23134at_fn_group_banner 255 'syn_misc.at:1707' \
23135  "line overflow in fixed-form / free-form" "        " 2
23136at_xfail=no
23137(
23138  $as_echo "255. $at_setup_line: testing $at_desc ..."
23139  $at_traceon
23140
23141
23142
23143# We're testing trailing tabs and whitespace (should not lead to warning)
23144# along with comments after boundaries (col 72 / col 512)
23145
23146# remark: some editors remove trailing spaces, the  workaround: add "_" and
23147# remove it later via sed; AT_DATA would not do that when using double [[  ]]
23148
23149cat >prog_tmpl.cob <<'_ATEOF'
23150
23151       IDENTIFICATION   DIVISION.
23152       PROGRAM-ID.      prog.
23153       ENVIRONMENT DIVISION.
23154       CONFIGURATION SECTION.                                           																																																																																																																																		_
23155       DATA             DIVISION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _
23156       WORKING-STORAGE  SECTION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   *> This is a real comment
23157       PROCEDURE        DIVISION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This is commentary only
23158           CONTINUE.                                              *> comment after column 72
23159      *    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
23160           CONTINUE.                                                    CONTINUE.
23161           CONTINUE.                                                                        _
23162           STOP RUN.
23163_ATEOF
23164
23165
23166# AT_DATA workaround via sed:
23167{ set +x
23168$as_echo "$at_srcdir/syn_misc.at:1732: \$SED -e 's/_\$//' prog_tmpl.cob > prog.cob"
23169at_fn_check_prepare_dynamic "$SED -e 's/_$//' prog_tmpl.cob > prog.cob" "syn_misc.at:1732"
23170( $at_check_trace; $SED -e 's/_$//' prog_tmpl.cob > prog.cob
23171) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23172at_status=$? at_failed=false
23173$at_check_filter
23174at_fn_diff_devnull "$at_stderr" || at_failed=:
23175at_fn_diff_devnull "$at_stdout" || at_failed=:
23176at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1732"
23177$at_failed && at_fn_log_failure
23178$at_traceon; }
23179
23180
23181{ set +x
23182$as_echo "$at_srcdir/syn_misc.at:1734: \$COBC -fsyntax-only -fixed -Wextra prog.cob"
23183at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fixed -Wextra prog.cob" "syn_misc.at:1734"
23184( $at_check_trace; $COBC -fsyntax-only -fixed -Wextra prog.cob
23185) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23186at_status=$? at_failed=false
23187$at_check_filter
23188echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23189prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23190prog.cob:11: warning: source text after program-text area (column 72) [-Wdangling-text]
23191" | \
23192  $at_diff - "$at_stderr" || at_failed=:
23193at_fn_diff_devnull "$at_stdout" || at_failed=:
23194at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1734"
23195$at_failed && at_fn_log_failure
23196$at_traceon; }
23197
23198
23199{ set +x
23200$as_echo "$at_srcdir/syn_misc.at:1740: \$COBC -fsyntax-only -free -Wextra prog.cob"
23201at_fn_check_prepare_dynamic "$COBC -fsyntax-only -free -Wextra prog.cob" "syn_misc.at:1740"
23202( $at_check_trace; $COBC -fsyntax-only -free -Wextra prog.cob
23203) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23204at_status=$? at_failed=false
23205$at_check_filter
23206echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23207prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23208prog.cob:8: error: unknown statement 'This'
23209" | \
23210  $at_diff - "$at_stderr" || at_failed=:
23211at_fn_diff_devnull "$at_stdout" || at_failed=:
23212at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1740"
23213$at_failed && at_fn_log_failure
23214$at_traceon; }
23215
23216
23217{ set +x
23218$as_echo "$at_srcdir/syn_misc.at:1746: \$COBC -fsyntax-only -F -Wextra prog.cob"
23219at_fn_check_prepare_dynamic "$COBC -fsyntax-only -F -Wextra prog.cob" "syn_misc.at:1746"
23220( $at_check_trace; $COBC -fsyntax-only -F -Wextra prog.cob
23221) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23222at_status=$? at_failed=false
23223$at_check_filter
23224echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23225prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
23226prog.cob:8: error: unknown statement 'This'
23227" | \
23228  $at_diff - "$at_stderr" || at_failed=:
23229at_fn_diff_devnull "$at_stdout" || at_failed=:
23230at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1746"
23231$at_failed && at_fn_log_failure
23232$at_traceon; }
23233
23234
23235  set +x
23236  $at_times_p && times >"$at_times_file"
23237) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23238read at_status <"$at_status_file"
23239#AT_STOP_255
23240#AT_START_256
23241at_fn_group_banner 256 'syn_misc.at:1755' \
23242  "missing newline in fixed-form / free-form" "      " 2
23243at_xfail=no
23244(
23245  $as_echo "256. $at_setup_line: testing $at_desc ..."
23246  $at_traceon
23247
23248
23249
23250cat >prog.cob <<'_ATEOF'
23251
23252       IDENTIFICATION   DIVISION.
23253       PROGRAM-ID.      prog.
23254       ENVIRONMENT DIVISION.
23255       CONFIGURATION SECTION.
23256       PROCEDURE        DIVISION.
23257           CONTINUE
23258_ATEOF
23259
23260
23261{ set +x
23262$as_echo "$at_srcdir/syn_misc.at:1767: \$COMPILE_ONLY prog.cob"
23263at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1767"
23264( $at_check_trace; $COMPILE_ONLY prog.cob
23265) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23266at_status=$? at_failed=false
23267$at_check_filter
23268echo >>"$at_stderr"; $as_echo "prog.cob:8: error: syntax error, unexpected end of file
23269" | \
23270  $at_diff - "$at_stderr" || at_failed=:
23271at_fn_diff_devnull "$at_stdout" || at_failed=:
23272at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1767"
23273$at_failed && at_fn_log_failure
23274$at_traceon; }
23275
23276
23277# fixing the initial setup but now producing a missing newline:
23278printf "           CONTINUE." >> prog.cob
23279
23280{ set +x
23281$as_echo "$at_srcdir/syn_misc.at:1774: \$COBC -fsyntax-only -Wextra -fixed prog.cob"
23282at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra -fixed prog.cob" "syn_misc.at:1774"
23283( $at_check_trace; $COBC -fsyntax-only -Wextra -fixed prog.cob
23284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23285at_status=$? at_failed=false
23286$at_check_filter
23287echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: line not terminated by a newline [-Wothers]
23288" | \
23289  $at_diff - "$at_stderr" || at_failed=:
23290at_fn_diff_devnull "$at_stdout" || at_failed=:
23291at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1774"
23292$at_failed && at_fn_log_failure
23293$at_traceon; }
23294
23295{ set +x
23296$as_echo "$at_srcdir/syn_misc.at:1777: \$COBC -fsyntax-only -Wextra -free prog.cob"
23297at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra -free prog.cob" "syn_misc.at:1777"
23298( $at_check_trace; $COBC -fsyntax-only -Wextra -free prog.cob
23299) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23300at_status=$? at_failed=false
23301$at_check_filter
23302echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: line not terminated by a newline [-Wothers]
23303" | \
23304  $at_diff - "$at_stderr" || at_failed=:
23305at_fn_diff_devnull "$at_stdout" || at_failed=:
23306at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1777"
23307$at_failed && at_fn_log_failure
23308$at_traceon; }
23309
23310# should not happen if the data only consists of space characters
23311printf "\n              \t " >> prog.cob
23312
23313{ set +x
23314$as_echo "$at_srcdir/syn_misc.at:1783: \$COMPILE_ONLY -Wextra prog.cob"
23315at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wextra prog.cob" "syn_misc.at:1783"
23316( $at_check_trace; $COMPILE_ONLY -Wextra prog.cob
23317) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23318at_status=$? at_failed=false
23319$at_check_filter
23320at_fn_diff_devnull "$at_stderr" || at_failed=:
23321at_fn_diff_devnull "$at_stdout" || at_failed=:
23322at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1783"
23323$at_failed && at_fn_log_failure
23324$at_traceon; }
23325
23326  set +x
23327  $at_times_p && times >"$at_times_file"
23328) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23329read at_status <"$at_status_file"
23330#AT_STOP_256
23331#AT_START_257
23332at_fn_group_banner 257 'syn_misc.at:1788' \
23333  "continuation Indicator - too many lines" "        " 2
23334at_xfail=no
23335(
23336  $as_echo "257. $at_setup_line: testing $at_desc ..."
23337  $at_traceon
23338
23339
23340
23341cat >prog.cob <<'_ATEOF'
23342
23343       IDENTIFICATION   DIVISION.
23344       PROGRAM-ID.      prog.
23345       ENVIRONMENT DIVISION.
23346       CONFIGURATION SECTION.
23347       DATA             DIVISION.
23348       WORKING-STORAGE  SECTION.
23349       PROCEDURE        DIVISION.
23350           DISPLAY '
23351      -    '
23352      -    '
23353      -    '
23354      -    '
23355      -    '
23356      -    '
23357      -    '
23358      -    '
23359      -    '
23360      -    '
23361      -    '
23362      -    '
23363      -    '
23364      -    '
23365      -    '
23366      -    '
23367      -    '
23368      -    '
23369      -    '
23370      -    '
23371      -    '
23372      -    '
23373      -    '
23374      -    '
23375      -    '
23376      -    '
23377      -    '
23378      -    '
23379      -    '
23380      -    '
23381      -    '
23382      -    '
23383      -    '
23384      -    '
23385      -    '
23386      -    '
23387      -    '
23388      -    '
23389      -    '
23390      -    '
23391      -    '
23392      -    '
23393      -    '
23394      -    '
23395      -    '
23396      -    '
23397      -    '
23398      -    '
23399      -    '
23400      -    '
23401      -    '
23402      -    '
23403      -    '
23404      -    '
23405      -    '
23406      -    '
23407      -    '
23408      -    '
23409      -    '
23410      -    '
23411      -    '
23412      -    '
23413      -    '
23414      -    '
23415      -    '
23416      -    '
23417      -    '
23418      -    '
23419      -    '
23420      -    '
23421      -    '
23422      -    '
23423      -    '
23424      -    '
23425      -    '
23426      -    '
23427      -    '
23428      -    '
23429      -    '
23430      -    '
23431      -    '
23432      -    '
23433      -    '
23434      -    '
23435      -    '
23436      -    '
23437      -    '
23438      -    '
23439      -    '
23440      -    '
23441      -    '
23442      -    '
23443      -    '
23444      -    '
23445      -    '
23446      -    '
23447      -    '
23448      -    '
23449      -    '
23450      -    '
23451      -    '
23452      -    '
23453      -    '
23454      -    '
23455      -    '
23456      -    '
23457      -    '
23458      -    '
23459      -    '
23460      -    '
23461      -    '
23462      -    '
23463      -    '
23464      -    '
23465      -    '
23466      -    '
23467      -    '
23468      -    '
23469      -    '
23470      -    '
23471      -    '
23472      -    '
23473      -    '
23474      -    '
23475      -    '
23476      -    '
23477      -    '
23478      -    '
23479      -    '
23480      -    '
23481      -    '
23482      -    '
23483      -    '
23484      -    '
23485      -    '
23486      -    '
23487      -    '
23488      -    '
23489      -    '
23490      -    '
23491      -    '
23492      -    '
23493      -    '
23494      -    '
23495      -    '
23496      -    '
23497      -    '
23498      -    '
23499      -    '
23500      -    '
23501      -    '
23502      -    '
23503      -    '
23504      -    '
23505      -    '
23506      -    '
23507      -    '
23508      -    '
23509      -    '
23510      -    '
23511      -    '
23512      -    '
23513      -    '
23514      -    '
23515      -    '
23516      -    '
23517      -    '
23518      -    '
23519      -    '
23520      -    '
23521      -    '
23522      -    '
23523      -    '
23524      -    '
23525      -    '
23526      -    '
23527      -    '
23528      -    '
23529      -    '
23530      -    '
23531      -    '
23532      -    '
23533      -    '
23534      -    '
23535      -    '
23536      -    '
23537      -    '
23538      -    '
23539      -    '
23540      -    '
23541      -    '
23542      -    '
23543      -    '
23544      -    '
23545      -    '
23546      -    '
23547      -    '
23548      -    '
23549      -    '
23550      -    '
23551      -    '
23552      -    '
23553      -    '
23554      -    '
23555      -    '
23556      -    '
23557      -    '
23558      -    '
23559      -    '
23560      -    '
23561      -    '
23562      -    '
23563      -    '
23564      -    '
23565      -    '
23566      -    '
23567      -    '
23568      -    '
23569      -    '
23570      -    '
23571      -    '
23572      -    '
23573      -    '
23574      -    '
23575      -    '
23576      -    '
23577      -    '
23578      -    '
23579      -    '
23580      -    '
23581      -    '
23582      -    '
23583      -    '
23584      -    '
23585      -    '
23586      -    '
23587      -    '
23588      -    '
23589      -    '
23590      -    '
23591      -    '
23592      -    '
23593      -    '
23594      -    '
23595      -    '
23596      -    '
23597      -    '
23598      -    '
23599      -    '
23600      -    '
23601      -    '
23602      -    '
23603      -    '
23604      -    '
23605      -    '
23606      -    '
23607      -    '
23608      -    '
23609      -    '
23610      -    '
23611      -    '
23612      -    '
23613      -    '
23614      -    '
23615      -    '
23616      -    '
23617      -    '
23618      -    '
23619      -    '
23620      -    '
23621      -    '
23622      -    '
23623      -    '
23624      -    '
23625      -    '
23626      -    '
23627      -    '
23628      -    '
23629      -    '
23630      -    '
23631      -    '
23632      -    '
23633      -    '
23634      -    '
23635      -    '
23636      -    '
23637      -    '
23638      -    '
23639      -    '
23640      -    '
23641      -    '
23642      -    '
23643      -    '
23644      -    '
23645      -    '
23646      -    '
23647      -    '
23648      -    '
23649      -    '
23650      -    '
23651      -    '
23652      -    '
23653      -    '
23654      -    '
23655      -    '
23656      -    '
23657      -    '
23658      -    '
23659      -    '
23660      -    '
23661      -    '
23662      -    '
23663      -    '
23664      -    '
23665      -    '
23666      -    '
23667      -    '
23668      -    '
23669      -    '
23670      -    '
23671      -    '
23672      -    '
23673      -    '
23674      -    '
23675      -    '
23676      -    '
23677      -    '
23678      -    '
23679      -    '
23680      -    '
23681      -    '
23682      -    '
23683      -    '
23684      -    '
23685      -    '
23686      -    '
23687      -    '
23688      -    '
23689      -    '
23690      -    '
23691      -    '
23692      -    '
23693      -    '
23694      -    '
23695      -    '
23696      -    '
23697      -    '
23698      -    '
23699      -    '
23700      -    '
23701      -    '
23702      -    '
23703      -    '
23704      -    '
23705      -    '
23706      -    '
23707      -    '
23708      -    '
23709      -    '
23710      -    '
23711      -    '
23712      -    '
23713      -    '
23714      -    '
23715      -    '
23716      -    '
23717      -    '
23718      -    '
23719      -    '
23720      -    '
23721      -    '
23722      -    '
23723      -    '
23724      -    '
23725      -    '
23726      -    '
23727      -    '
23728      -    '
23729      -    '
23730      -    '
23731      -    '
23732      -    '
23733      -    '
23734      -    '
23735      -    '
23736      -    '
23737      -    '
23738      -    '
23739      -    '
23740      -    '
23741      -    '
23742      -    '
23743      -    '
23744      -    '
23745      -    '
23746      -    '
23747      -    '
23748      -    '
23749      -    '
23750      -    '
23751      -    '
23752      -    '
23753      -    '
23754      -    '
23755      -    '
23756      -    '
23757      -    '
23758      -    '
23759      -    '
23760      -    '
23761      -    '
23762      -    '
23763      -    '
23764      -    '
23765      -    '
23766      -    '
23767      -    '
23768      -    '
23769      -    '
23770      -    '
23771      -    '
23772      -    '
23773      -    '
23774      -    '
23775      -    '
23776      -    '
23777      -    '
23778      -    '
23779      -    '
23780      -    '
23781      -    '
23782      -    '
23783      -    '
23784      -    '
23785      -    '
23786      -    '
23787      -    '
23788      -    '
23789      -    '
23790      -    '
23791      -    '
23792      -    '
23793      -    '
23794      -    '
23795      -    '
23796      -    '
23797      -    '
23798      -    '
23799      -    '
23800      -    '
23801      -    '
23802      -    '
23803      -    '
23804      -    '
23805      -    '
23806      -    '
23807      -    '
23808      -    '
23809      -    '
23810      -    '
23811      -    '
23812      -    '
23813      -    '
23814      -    '
23815      -    '
23816      -    '
23817      -    '
23818      -    '
23819      -    '
23820      -    '
23821      -    '
23822      -    '
23823      -    '
23824      -    '
23825      -    '
23826      -    '
23827      -    '
23828      -    '
23829      -    '
23830      -    '
23831      -    '
23832      -    '
23833      -    '
23834      -    '
23835      -    '
23836      -    '
23837      -    '
23838      -    '
23839      -    '
23840      -    '
23841      -    '
23842      -    '
23843      -    '
23844      -    '
23845      -    '
23846      -    '
23847      -    '
23848      -    '
23849      -    '
23850      -    '
23851      -    '
23852      -    '
23853      -    '
23854      -    '
23855      -    '
23856      -    '
23857      -    '
23858      -    '
23859      -    '
23860      -    '
23861      -    '
23862      -    '
23863      -    '
23864      -    '
23865      -    '
23866      -    '
23867      -    '
23868      -    '
23869      -    '
23870      -    '
23871      -    '
23872      -    '
23873      -    '
23874      -    '
23875      -    '
23876      -    '
23877      -    '
23878      -    '
23879      -    ' ' END-DISPLAY.
23880           STOP RUN.
23881_ATEOF
23882
23883
23884{ set +x
23885$as_echo "$at_srcdir/syn_misc.at:2332: \$COMPILE_ONLY prog.cob"
23886at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2332"
23887( $at_check_trace; $COMPILE_ONLY prog.cob
23888) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23889at_status=$? at_failed=false
23890$at_check_filter
23891echo >>"$at_stderr"; $as_echo "prog.cob:538: error: buffer overrun - too many continuation lines
23892" | \
23893  $at_diff - "$at_stderr" || at_failed=:
23894at_fn_diff_devnull "$at_stdout" || at_failed=:
23895at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2332"
23896$at_failed && at_fn_log_failure
23897$at_traceon; }
23898
23899
23900# extra test with listing as this is an edge case there
23901
23902{ set +x
23903$as_echo "$at_srcdir/syn_misc.at:2338: \$COMPILE_ONLY -t prog.lst prog.cob"
23904at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "syn_misc.at:2338"
23905( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob
23906) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23907at_status=$? at_failed=false
23908$at_check_filter
23909echo >>"$at_stderr"; $as_echo "prog.cob:538: error: buffer overrun - too many continuation lines
23910" | \
23911  $at_diff - "$at_stderr" || at_failed=:
23912at_fn_diff_devnull "$at_stdout" || at_failed=:
23913at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2338"
23914$at_failed && at_fn_log_failure  \
23915"prog.lst"
23916$at_traceon; }
23917
23918
23919  set +x
23920  $at_times_p && times >"$at_times_file"
23921) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23922read at_status <"$at_status_file"
23923#AT_STOP_257
23924#AT_START_258
23925at_fn_group_banner 258 'syn_misc.at:2345' \
23926  "continuation of COBOL words" "                    " 2
23927at_xfail=no
23928(
23929  $as_echo "258. $at_setup_line: testing $at_desc ..."
23930  $at_traceon
23931
23932
23933
23934cat >prog.cob <<'_ATEOF'
23935
23936       IDENTIFICATION   DIVISION.
23937       PROGRAM-ID.      prog.
23938       PROCEDURE        DIVISION.
23939           GO
23940      -    BACK.
23941_ATEOF
23942
23943
23944{ set +x
23945$as_echo "$at_srcdir/syn_misc.at:2356: \$COMPILE_ONLY -std=cobol2014 prog.cob"
23946at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:2356"
23947( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
23948) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23949at_status=$? at_failed=false
23950$at_check_filter
23951echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: continuation of COBOL words is archaic in COBOL 2014
23952" | \
23953  $at_diff - "$at_stderr" || at_failed=:
23954at_fn_diff_devnull "$at_stdout" || at_failed=:
23955at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2356"
23956$at_failed && at_fn_log_failure
23957$at_traceon; }
23958
23959{ set +x
23960$as_echo "$at_srcdir/syn_misc.at:2359: \$COMPILE_ONLY prog.cob"
23961at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2359"
23962( $at_check_trace; $COMPILE_ONLY prog.cob
23963) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23964at_status=$? at_failed=false
23965$at_check_filter
23966echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: continuation of COBOL words used
23967" | \
23968  $at_diff - "$at_stderr" || at_failed=:
23969at_fn_diff_devnull "$at_stdout" || at_failed=:
23970at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2359"
23971$at_failed && at_fn_log_failure
23972$at_traceon; }
23973
23974
23975  set +x
23976  $at_times_p && times >"$at_times_file"
23977) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23978read at_status <"$at_status_file"
23979#AT_STOP_258
23980#AT_START_259
23981at_fn_group_banner 259 'syn_misc.at:2366' \
23982  "literal too long" "                               " 2
23983at_xfail=no
23984(
23985  $as_echo "259. $at_setup_line: testing $at_desc ..."
23986  $at_traceon
23987
23988
23989
23990
23991cat >prog.cob <<'_ATEOF'
23992
23993       IDENTIFICATION   DIVISION.
23994       PROGRAM-ID.      prog.
23995       ENVIRONMENT DIVISION.
23996       CONFIGURATION SECTION.
23997       DATA             DIVISION.
23998       WORKING-STORAGE  SECTION.
23999       PROCEDURE        DIVISION.
24000           DISPLAY '
24001      -    '
24002      -    '
24003      -    '
24004      -    '
24005      -    '
24006      -    '
24007      -    '
24008      -    '
24009      -    '
24010      -    '
24011      -    '
24012      -    '
24013      -    '
24014      -    '
24015      -    '
24016      -    '
24017      -    '
24018      -    '
24019      -    '
24020      -    '
24021      -    '
24022      -    '
24023      -    '
24024      -    '
24025      -    '
24026      -    '
24027      -    '
24028      -    '
24029      -    '
24030      -    '
24031      -    '
24032      -    '
24033      -    '
24034      -    '
24035      -    '
24036      -    '
24037      -    '
24038      -    '
24039      -    '
24040      -    '
24041      -    '
24042      -    '
24043      -    '
24044      -    '
24045      -    '
24046      -    '
24047      -    '
24048      -    '
24049      -    '
24050      -    '
24051      -    '
24052      -    '
24053      -    '
24054      -    '
24055      -    '
24056      -    '
24057      -    '
24058      -    '
24059      -    '
24060      -    '
24061      -    '
24062      -    '
24063      -    '
24064      -    '
24065      -    '
24066      -    '
24067      -    '
24068      -    '
24069      -    '
24070      -    '
24071      -    '
24072      -    '
24073      -    '
24074      -    '
24075      -    '
24076      -    '
24077      -    '
24078      -    '
24079      -    '
24080      -    '
24081      -    '
24082      -    '
24083      -    '
24084      -    '
24085      -    '
24086      -    '
24087      -    '
24088      -    '
24089      -    '
24090      -    '
24091      -    '
24092      -    '
24093      -    '
24094      -    '
24095      -    '
24096      -    '
24097      -    '
24098      -    '
24099      -    '
24100      -    '
24101      -    '
24102      -    '
24103      -    '
24104      -    '
24105      -    '
24106      -    '
24107      -    '
24108      -    '
24109      -    '
24110      -    '
24111      -    '
24112      -    '
24113      -    '
24114      -    '
24115      -    '
24116      -    '
24117      -    '
24118      -    '
24119      -    '
24120      -    '
24121      -    '
24122      -    '
24123      -    '
24124      -    '
24125      -    '
24126      -    '
24127      -    '
24128      -    '
24129      -    '
24130      -    '
24131      -    '
24132      -    '
24133      -    '
24134      -    '
24135      -    '
24136      -    '
24137      -    '
24138      -    '
24139      -    ' '.
24140           STOP RUN.
24141_ATEOF
24142
24143
24144cat >prog2.cob <<'_ATEOF'
24145
24146       IDENTIFICATION   DIVISION.
24147       PROGRAM-ID.      prog2.
24148       ENVIRONMENT DIVISION.
24149       CONFIGURATION SECTION.
24150       DATA             DIVISION.
24151       WORKING-STORAGE  SECTION.
24152       PROCEDURE        DIVISION.
24153           DISPLAY '    '-
24154           '                                                                                                                                                                                                                                             '-
24155           '                                                                                                                                                                                                                                             '-
24156           '                                                                                                                                                                                                                                             '-
24157           '                                                                                                                                                                                                                                             '-
24158           '                                                                                                                                                                                                                                             '-
24159           '                                                                                                                                                                                                                                             '-
24160           '                                                                                                                                                                                                                                             '-
24161           '                                                                                                                                                                                                                                             '-
24162           '                                                                                                                                                                                                                                             '-
24163           '                                                                                                                                                                                                                                             '-
24164           '                                                                                                                                                                                                                                             '-
24165           '                                                                                                                                                                                                                                             '-
24166           '                                                                                                                                                                                                                                             '-
24167           '                                                                                                                                                                                                                                             '-
24168           '                                                                                                                                                                                                                                             '-
24169           '                                                                                                                                                                                                                                             '-
24170           '                                                                                                                                                                                                                                             '-
24171           '                                                                                                                                                                                                                                             '-
24172           '                                                                                                                                                                                                                                             '-
24173           '                                                                                                                                                                                                                                             '-
24174           '                                                                                                                                                                                                                                             '-
24175           '                                                                                                                                                                                                                                             '-
24176           '                                                                                                                                                                                                                                             '-
24177           '                                                                                                                                                                                                                                             '-
24178           '                                                                                                                                                                                                                                             '-
24179           '                                                                                                                                                                                                                                             '-
24180           '                                                                                                                                                                                                                                             '-
24181           '                                                                                                                                                                                                                                             '-
24182           '                                                                                                                                                                                                                                             '-
24183           '                                                                                                                                                                                                                                             '-
24184           '                                                                                                                                                                                                                                             '-
24185           '                                                                                                                                                                                                                                             '-
24186           '                                                                                                                                                                                                                                             '-
24187           '                                                                                                                                                                                                                                             '-
24188           '                                                                                                                                                                                                                                             '-
24189           '                                                                                                                                                                                                                                             '-
24190           ' ' END-DISPLAY.
24191           STOP RUN.
24192_ATEOF
24193
24194
24195{ set +x
24196$as_echo "$at_srcdir/syn_misc.at:2570: \$COMPILE_ONLY prog.cob"
24197at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2570"
24198( $at_check_trace; $COMPILE_ONLY prog.cob
24199) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24200at_status=$? at_failed=false
24201$at_check_filter
24202echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid literal: '                                   ...'
24203prog.cob:9: error: literal length exceeds 8191 characters
24204" | \
24205  $at_diff - "$at_stderr" || at_failed=:
24206at_fn_diff_devnull "$at_stdout" || at_failed=:
24207at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2570"
24208$at_failed && at_fn_log_failure
24209$at_traceon; }
24210
24211
24212{ set +x
24213$as_echo "$at_srcdir/syn_misc.at:2575: \$COMPILE_ONLY -fliteral-length=160 prog.cob"
24214at_fn_check_prepare_dynamic "$COMPILE_ONLY -fliteral-length=160 prog.cob" "syn_misc.at:2575"
24215( $at_check_trace; $COMPILE_ONLY -fliteral-length=160 prog.cob
24216) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24217at_status=$? at_failed=false
24218$at_check_filter
24219echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid literal: '                                   ...'
24220prog.cob:9: error: literal length exceeds 160 characters
24221" | \
24222  $at_diff - "$at_stderr" || at_failed=:
24223at_fn_diff_devnull "$at_stdout" || at_failed=:
24224at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2575"
24225$at_failed && at_fn_log_failure
24226$at_traceon; }
24227
24228
24229{ set +x
24230$as_echo "$at_srcdir/syn_misc.at:2580: \$COMPILE_ONLY -free prog2.cob"
24231at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog2.cob" "syn_misc.at:2580"
24232( $at_check_trace; $COMPILE_ONLY -free prog2.cob
24233) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24234at_status=$? at_failed=false
24235$at_check_filter
24236echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: invalid literal: '                                   ...'
24237prog2.cob:9: error: literal length 8299 exceeds 8191 characters
24238" | \
24239  $at_diff - "$at_stderr" || at_failed=:
24240at_fn_diff_devnull "$at_stdout" || at_failed=:
24241at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2580"
24242$at_failed && at_fn_log_failure
24243$at_traceon; }
24244
24245
24246# extra test with listing as this is an edge case there
24247
24248{ set +x
24249$as_echo "$at_srcdir/syn_misc.at:2587: \$COMPILE_ONLY -t prog.lst prog.cob"
24250at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "syn_misc.at:2587"
24251( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob
24252) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24253at_status=$? at_failed=false
24254$at_check_filter
24255echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid literal: '                                   ...'
24256prog.cob:9: error: literal length exceeds 8191 characters
24257" | \
24258  $at_diff - "$at_stderr" || at_failed=:
24259at_fn_diff_devnull "$at_stdout" || at_failed=:
24260at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2587"
24261$at_failed && at_fn_log_failure  \
24262"prog.lst"
24263$at_traceon; }
24264
24265
24266
24267{ set +x
24268$as_echo "$at_srcdir/syn_misc.at:2593: \$COMPILE_ONLY -free -t prog2.lst prog2.cob"
24269at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -t prog2.lst prog2.cob" "syn_misc.at:2593"
24270( $at_check_trace; $COMPILE_ONLY -free -t prog2.lst prog2.cob
24271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24272at_status=$? at_failed=false
24273$at_check_filter
24274echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: invalid literal: '                                   ...'
24275prog2.cob:9: error: literal length 8299 exceeds 8191 characters
24276" | \
24277  $at_diff - "$at_stderr" || at_failed=:
24278at_fn_diff_devnull "$at_stdout" || at_failed=:
24279at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2593"
24280$at_failed && at_fn_log_failure  \
24281"prog.lst" \
24282"prog2.lst"
24283$at_traceon; }
24284
24285
24286  set +x
24287  $at_times_p && times >"$at_times_file"
24288) 5>&1 2>&1 7>&- | eval $at_tee_pipe
24289read at_status <"$at_status_file"
24290#AT_STOP_259
24291#AT_START_260
24292at_fn_group_banner 260 'syn_misc.at:2601' \
24293  "line and floating comments" "                     " 2
24294at_xfail=no
24295(
24296  $as_echo "260. $at_setup_line: testing $at_desc ..."
24297  $at_traceon
24298
24299
24300
24301cat >prog.cob <<'_ATEOF'
24302
24303       IDENTIFICATION   DIVISION.
24304       PROGRAM-ID.      prog.
24305       ENVIRONMENT DIVISION.
24306       CONFIGURATION SECTION.
24307       DATA             DIVISION.
24308       WORKING-STORAGE  SECTION.
24309       PROCEDURE        DIVISION.
24310      *    DISPLAY 'COMMENT'             END-DISPLAY
24311      /    DISPLAY 'COMMENTSLASH'        END-DISPLAY
24312*          DISPLAY 'MFCOMMENTASTERISK'   END-DISPLAY
24313/          DISPLAY 'MFCOMMENTSLASH'      END-DISPLAY
24314 *         DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
24315 /         DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
24316        *> DISPLAY 'FLOATING'            END-DISPLAY
24317 *>        DISPLAY 'NOFLOATING'          END-DISPLAY
24318           STOP RUN.
24319_ATEOF
24320
24321
24322cat >prog2.cob <<'_ATEOF'
24323
24324       IDENTIFICATION   DIVISION.
24325       PROGRAM-ID.      prog2.
24326       ENVIRONMENT DIVISION.
24327       CONFIGURATION SECTION.
24328       DATA             DIVISION.
24329       WORKING-STORAGE  SECTION.
24330       PROCEDURE        DIVISION.
24331      *    DISPLAY 'COMMENT'             END-DISPLAY
24332      /    DISPLAY 'COMMENTSLASH'        END-DISPLAY
24333      $    DISPLAY 'COMMENTDOLLAR'       END-DISPLAY
24334*          DISPLAY 'MFCOMMENTASTERISK'   END-DISPLAY
24335/          DISPLAY 'MFCOMMENTSLASH'      END-DISPLAY
24336 *         DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
24337 /         DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
24338        *> DISPLAY 'FLOATING'            END-DISPLAY
24339        |  DISPLAY 'ACUFLOATING'         END-DISPLAY
24340 |         DISPLAY 'NOACUFLOATING'       END-DISPLAY
24341 *>        DISPLAY 'NOFLOATING'          END-DISPLAY
24342           STOP RUN.
24343_ATEOF
24344
24345
24346cat >prog3.cob <<'_ATEOF'
24347
24348IDENTIFICATION   DIVISION.
24349PROGRAM-ID.      prog3.
24350ENVIRONMENT DIVISION.
24351CONFIGURATION SECTION.
24352DATA             DIVISION.
24353WORKING-STORAGE  SECTION.
24354PROCEDURE        DIVISION.
24355      * DISPLAY 'NOCOMMENT'           END-DISPLAY
24356      / DISPLAY 'NOCOMMENTSLASH'      END-DISPLAY
24357      $ DISPLAY 'NOCOMMENTDOLLAR'     END-DISPLAY
24358*       DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
24359/       DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
24360 |      DISPLAY 'ACUFLOATING'         END-DISPLAY
24361 *>     DISPLAY 'FLOATING'            END-DISPLAY
24362      x DISPLAY 'WRONGINDICATOR'      END-DISPLAY
24363        STOP RUN.
24364_ATEOF
24365
24366
24367{ set +x
24368$as_echo "$at_srcdir/syn_misc.at:2664: \$COMPILE prog.cob"
24369at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:2664"
24370( $at_check_trace; $COMPILE prog.cob
24371) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24372at_status=$? at_failed=false
24373$at_check_filter
24374at_fn_diff_devnull "$at_stderr" || at_failed=:
24375at_fn_diff_devnull "$at_stdout" || at_failed=:
24376at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2664"
24377$at_failed && at_fn_log_failure
24378$at_traceon; }
24379
24380
24381{ set +x
24382$as_echo "$at_srcdir/syn_misc.at:2666: \$COBCRUN_DIRECT ./prog"
24383at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_misc.at:2666"
24384( $at_check_trace; $COBCRUN_DIRECT ./prog
24385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24386at_status=$? at_failed=false
24387$at_check_filter
24388at_fn_diff_devnull "$at_stderr" || at_failed=:
24389echo >>"$at_stdout"; $as_echo "MFCOMMENTASTERISK
24390MFCOMMENTSLASH
24391NOMFCOMMENTASTERISK
24392NOMFCOMMENTSLASH
24393NOFLOATING
24394" | \
24395  $at_diff - "$at_stdout" || at_failed=:
24396at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2666"
24397$at_failed && at_fn_log_failure
24398$at_traceon; }
24399
24400
24401{ set +x
24402$as_echo "$at_srcdir/syn_misc.at:2674: \$COMPILE_ONLY prog2.cob"
24403at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:2674"
24404( $at_check_trace; $COMPILE_ONLY prog2.cob
24405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24406at_status=$? at_failed=false
24407$at_check_filter
24408echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: invalid indicator '\$' at column 7
24409prog2.cob:17: error: invalid symbol '|' - skipping word
24410" | \
24411  $at_diff - "$at_stderr" || at_failed=:
24412at_fn_diff_devnull "$at_stdout" || at_failed=:
24413at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2674"
24414$at_failed && at_fn_log_failure
24415$at_traceon; }
24416
24417
24418# note: for checking the result we actually either need to run the program
24419#       or change it to string concatenation and raise a constant compile time warning
24420#       we do (historically) the first (for now)
24421#
24422{ set +x
24423$as_echo "$at_srcdir/syn_misc.at:2683: \$COMPILE -fmfcomment prog.cob"
24424at_fn_check_prepare_dynamic "$COMPILE -fmfcomment prog.cob" "syn_misc.at:2683"
24425( $at_check_trace; $COMPILE -fmfcomment prog.cob
24426) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24427at_status=$? at_failed=false
24428$at_check_filter
24429at_fn_diff_devnull "$at_stderr" || at_failed=:
24430at_fn_diff_devnull "$at_stdout" || at_failed=:
24431at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2683"
24432$at_failed && at_fn_log_failure
24433$at_traceon; }
24434
24435
24436{ set +x
24437$as_echo "$at_srcdir/syn_misc.at:2686: \$COBCRUN_DIRECT ./prog"
24438at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_misc.at:2686"
24439( $at_check_trace; $COBCRUN_DIRECT ./prog
24440) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24441at_status=$? at_failed=false
24442$at_check_filter
24443at_fn_diff_devnull "$at_stderr" || at_failed=:
24444echo >>"$at_stdout"; $as_echo "NOMFCOMMENTASTERISK
24445NOMFCOMMENTSLASH
24446NOFLOATING
24447" | \
24448  $at_diff - "$at_stdout" || at_failed=:
24449at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2686"
24450$at_failed && at_fn_log_failure
24451$at_traceon; }
24452
24453
24454{ set +x
24455$as_echo "$at_srcdir/syn_misc.at:2692: \$COMPILE_ONLY -fmfcomment prog2.cob"
24456at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmfcomment prog2.cob" "syn_misc.at:2692"
24457( $at_check_trace; $COMPILE_ONLY -fmfcomment prog2.cob
24458) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24459at_status=$? at_failed=false
24460$at_check_filter
24461echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: invalid indicator '\$' at column 7
24462prog2.cob:17: error: invalid symbol '|' - skipping word
24463" | \
24464  $at_diff - "$at_stderr" || at_failed=:
24465at_fn_diff_devnull "$at_stdout" || at_failed=:
24466at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2692"
24467$at_failed && at_fn_log_failure
24468$at_traceon; }
24469
24470
24471# COMPILE needed, see note above
24472{ set +x
24473$as_echo "$at_srcdir/syn_misc.at:2698: \$COMPILE -facucomment prog.cob -o prog1"
24474at_fn_check_prepare_dynamic "$COMPILE -facucomment prog.cob -o prog1" "syn_misc.at:2698"
24475( $at_check_trace; $COMPILE -facucomment prog.cob -o prog1
24476) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24477at_status=$? at_failed=false
24478$at_check_filter
24479at_fn_diff_devnull "$at_stderr" || at_failed=:
24480at_fn_diff_devnull "$at_stdout" || at_failed=:
24481at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2698"
24482$at_failed && at_fn_log_failure
24483$at_traceon; }
24484
24485
24486{ set +x
24487$as_echo "$at_srcdir/syn_misc.at:2700: \$COBCRUN_DIRECT ./prog1"
24488at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "syn_misc.at:2700"
24489( $at_check_trace; $COBCRUN_DIRECT ./prog1
24490) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24491at_status=$? at_failed=false
24492$at_check_filter
24493at_fn_diff_devnull "$at_stderr" || at_failed=:
24494echo >>"$at_stdout"; $as_echo "MFCOMMENTASTERISK
24495MFCOMMENTSLASH
24496NOMFCOMMENTASTERISK
24497NOMFCOMMENTSLASH
24498NOFLOATING
24499" | \
24500  $at_diff - "$at_stdout" || at_failed=:
24501at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2700"
24502$at_failed && at_fn_log_failure
24503$at_traceon; }
24504
24505
24506# COMPILE needed, see note above
24507{ set +x
24508$as_echo "$at_srcdir/syn_misc.at:2709: \$COMPILE -facucomment prog2.cob"
24509at_fn_check_prepare_dynamic "$COMPILE -facucomment prog2.cob" "syn_misc.at:2709"
24510( $at_check_trace; $COMPILE -facucomment prog2.cob
24511) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24512at_status=$? at_failed=false
24513$at_check_filter
24514at_fn_diff_devnull "$at_stderr" || at_failed=:
24515at_fn_diff_devnull "$at_stdout" || at_failed=:
24516at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2709"
24517$at_failed && at_fn_log_failure
24518$at_traceon; }
24519
24520
24521{ set +x
24522$as_echo "$at_srcdir/syn_misc.at:2711: \$COBCRUN_DIRECT ./prog2"
24523at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "syn_misc.at:2711"
24524( $at_check_trace; $COBCRUN_DIRECT ./prog2
24525) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24526at_status=$? at_failed=false
24527$at_check_filter
24528at_fn_diff_devnull "$at_stderr" || at_failed=:
24529echo >>"$at_stdout"; $as_echo "MFCOMMENTASTERISK
24530MFCOMMENTSLASH
24531NOMFCOMMENTASTERISK
24532NOMFCOMMENTSLASH
24533NOACUFLOATING
24534NOFLOATING
24535" | \
24536  $at_diff - "$at_stdout" || at_failed=:
24537at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2711"
24538$at_failed && at_fn_log_failure
24539$at_traceon; }
24540
24541
24542
24543{ set +x
24544$as_echo "$at_srcdir/syn_misc.at:2721: \$COMPILE_ONLY -free prog3.cob"
24545at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog3.cob" "syn_misc.at:2721"
24546( $at_check_trace; $COMPILE_ONLY -free prog3.cob
24547) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24548at_status=$? at_failed=false
24549$at_check_filter
24550echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
24551prog3.cob:9: error: syntax error, unexpected *
24552prog3.cob:10: error: syntax error, unexpected /
24553prog3.cob:12: error: syntax error, unexpected *
24554prog3.cob:13: error: syntax error, unexpected /
24555prog3.cob:14: error: invalid symbol '|' - skipping word
24556prog3.cob:16: error: syntax error, unexpected Identifier
24557" | \
24558  $at_diff - "$at_stderr" || at_failed=:
24559at_fn_diff_devnull "$at_stdout" || at_failed=:
24560at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2721"
24561$at_failed && at_fn_log_failure
24562$at_traceon; }
24563
24564{ set +x
24565$as_echo "$at_srcdir/syn_misc.at:2730: \$COMPILE_ONLY -free -fmfcomment prog3.cob"
24566at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fmfcomment prog3.cob" "syn_misc.at:2730"
24567( $at_check_trace; $COMPILE_ONLY -free -fmfcomment prog3.cob
24568) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24569at_status=$? at_failed=false
24570$at_check_filter
24571echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
24572prog3.cob:9: error: syntax error, unexpected *
24573prog3.cob:10: error: syntax error, unexpected /
24574prog3.cob:12: error: syntax error, unexpected *
24575prog3.cob:13: error: syntax error, unexpected /
24576prog3.cob:14: error: invalid symbol '|' - skipping word
24577prog3.cob:16: error: syntax error, unexpected Identifier
24578" | \
24579  $at_diff - "$at_stderr" || at_failed=:
24580at_fn_diff_devnull "$at_stdout" || at_failed=:
24581at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2730"
24582$at_failed && at_fn_log_failure
24583$at_traceon; }
24584
24585{ set +x
24586$as_echo "$at_srcdir/syn_misc.at:2739: \$COMPILE_ONLY -free -facucomment prog3.cob"
24587at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -facucomment prog3.cob" "syn_misc.at:2739"
24588( $at_check_trace; $COMPILE_ONLY -free -facucomment prog3.cob
24589) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24590at_status=$? at_failed=false
24591$at_check_filter
24592echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
24593prog3.cob:9: error: syntax error, unexpected *
24594prog3.cob:10: error: syntax error, unexpected /
24595prog3.cob:12: error: syntax error, unexpected *
24596prog3.cob:13: error: syntax error, unexpected /
24597prog3.cob:16: error: syntax error, unexpected Identifier
24598" | \
24599  $at_diff - "$at_stderr" || at_failed=:
24600at_fn_diff_devnull "$at_stdout" || at_failed=:
24601at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2739"
24602$at_failed && at_fn_log_failure
24603$at_traceon; }
24604
24605# Check that invalid indicator and doesn't abort preprocessing
24606# and that errors in preprocessing doesn't abort compilation
24607{ set +x
24608$as_echo "$at_srcdir/syn_misc.at:2749: \$COMPILE_ONLY prog3.cob"
24609at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:2749"
24610( $at_check_trace; $COMPILE_ONLY prog3.cob
24611) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24612at_status=$? at_failed=false
24613$at_check_filter
24614echo >>"$at_stderr"; $as_echo "prog3.cob:2: error: invalid indicator 'F' at column 7
24615prog3.cob:3: error: invalid indicator 'M' at column 7
24616prog3.cob:4: error: invalid indicator 'N' at column 7
24617prog3.cob:5: error: invalid indicator 'U' at column 7
24618prog3.cob:7: error: invalid indicator 'G' at column 7
24619prog3.cob:8: error: invalid indicator 'U' at column 7
24620prog3.cob:11: error: invalid indicator '\$' at column 7
24621prog3.cob:16: error: invalid indicator 'x' at column 7
24622prog3.cob:6: error: PROGRAM-ID header missing
24623prog3.cob:6: error: PROCEDURE DIVISION header missing
24624prog3.cob:6: error: syntax error, unexpected DIVISION
24625" | \
24626  $at_diff - "$at_stderr" || at_failed=:
24627at_fn_diff_devnull "$at_stdout" || at_failed=:
24628at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2749"
24629$at_failed && at_fn_log_failure
24630$at_traceon; }
24631
24632
24633  set +x
24634  $at_times_p && times >"$at_times_file"
24635) 5>&1 2>&1 7>&- | eval $at_tee_pipe
24636read at_status <"$at_status_file"
24637#AT_STOP_260
24638#AT_START_261
24639at_fn_group_banner 261 'syn_misc.at:2766' \
24640  "word length" "                                    " 2
24641at_xfail=no
24642(
24643  $as_echo "261. $at_setup_line: testing $at_desc ..."
24644  $at_traceon
24645
24646
24647
24648cat >prog.cob <<'_ATEOF'
24649
24650       IDENTIFICATION   DIVISION.
24651       PROGRAM-ID.      prog.
24652       ENVIRONMENT DIVISION.
24653       CONFIGURATION SECTION.
24654       DATA             DIVISION.
24655       WORKING-STORAGE  SECTION.
24656       01  FILLER        PIC 9(01) VALUE 0.
24657           88 SOME-SPECIAL-VAL-WITH-LENGTH30    VALUE 0.
24658           88 SOME-SPECIAL-VAL-WITH-LENGTH-31   VALUE 1.
24659           88 SOME-SPECIAL-VAL-WITH-LENGTH-32C  VALUE 1.
24660           88 SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES      VALUE 3.
24661           88 SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE VALUE 4.
24662       PROCEDURE        DIVISION.
24663       SOME-SPECIAL-PAR-WITH-LENGTH30.
24664           SET  SOME-SPECIAL-VAL-WITH-LENGTH30   TO TRUE.
24665       SOME-SPECIAL-PAR-WITH-LENGTH-31.
24666           SET  SOME-SPECIAL-VAL-WITH-LENGTH-31  TO TRUE.
24667       SOME-SPECIAL-PAR-WITH-LENGTH-32C.
24668           SET  SOME-SPECIAL-VAL-WITH-LENGTH-32C TO TRUE.
24669       SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES.
24670           SET  SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES TO TRUE.
24671       SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE.
24672           SET  SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE TO TRUE.
24673           STOP RUN.
24674_ATEOF
24675
24676
24677cat >prog2.cob <<'_ATEOF'
24678
24679       IDENTIFICATION   DIVISION.
24680       PROGRAM-ID.      prog2.
24681       ENVIRONMENT DIVISION.
24682       CONFIGURATION SECTION.
24683       DATA             DIVISION.
24684       WORKING-STORAGE  SECTION.
24685       01  FILLER        PIC 9(01) VALUE 0.
24686           88 SOME-SPECIAL-VAL-WITH-LENGTH30    VALUE 0.
24687           88 SOME-SPECIAL-VAL-WITH-LENGTH-31   VALUE 1.
24688           88 SOME-SPECIAL-VAL-WITH-LENGTH-32C  VALUE 1.
24689           88 SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES      VALUE 3.
24690       PROCEDURE        DIVISION.
24691       SOME-SPECIAL-PAR-WITH-LENGTH30.
24692           SET  SOME-SPECIAL-VAL-WITH-LENGTH30   TO TRUE.
24693       SOME-SPECIAL-PAR-WITH-LENGTH-31.
24694           SET  SOME-SPECIAL-VAL-WITH-LENGTH-31  TO TRUE.
24695       SOME-SPECIAL-PAR-WITH-LENGTH-32C.
24696           SET  SOME-SPECIAL-VAL-WITH-LENGTH-32C TO TRUE.
24697       SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES.
24698           SET  SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES TO TRUE.
24699           STOP RUN.
24700_ATEOF
24701
24702
24703cat >prog3.cob <<'_ATEOF'
24704
24705       IDENTIFICATION   DIVISION.
24706       PROGRAM-ID.      prog3.
24707       DATA             DIVISION.
24708       WORKING-STORAGE  SECTION.
24709       77 COUNTER       PIC 9 VALUE 0.
24710       PROCEDURE        DIVISION.
24711
24712       00000000000000000000000000000000000000000000000000000000000
24713       SECTION.
24714       000000000000000000000000000000000000000000000000000000000000.
24715           ADD 1 TO COUNTER END-ADD
24716           EVALUATE COUNTER
24717           WHEN 1
24718           PERFORM
24719           00000000000000000000000000000000000000000000000000000000000
24720           WHEN 2
24721           PERFORM
24722           000000000000000000000000000000000000000000000000000000000000
24723           WHEN 3
24724           MOVE 0 TO COUNTER
24725           END-EVALUATE.
24726
24727       100000000000000000000000000000000000000000000000000000000001
24728       SECTION.
24729       20000000000000000000000000000000000000000000000000000000002.
24730           ADD 1 TO COUNTER END-ADD
24731           EVALUATE COUNTER
24732           WHEN 1
24733           PERFORM
24734           100000000000000000000000000000000000000000000000000000000001
24735           WHEN 2
24736           PERFORM
24737           20000000000000000000000000000000000000000000000000000000002
24738           WHEN 3
24739           MOVE 0 TO COUNTER
24740           END-EVALUATE.
24741
24742           STOP RUN.
24743_ATEOF
24744
24745
24746{ set +x
24747$as_echo "$at_srcdir/syn_misc.at:2861: \$COMPILE_ONLY -free -fword-length=31 prog.cob"
24748at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=31 prog.cob" "syn_misc.at:2861"
24749( $at_check_trace; $COMPILE_ONLY -free -fword-length=31 prog.cob
24750) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24751at_status=$? at_failed=false
24752$at_check_filter
24753echo >>"$at_stderr"; $as_echo "prog.cob:11: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
24754prog.cob:12: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24755prog.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'
24756prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-31':
24757prog.cob:19: error: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-32C'
24758prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
24759prog.cob:20: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
24760prog.cob:21: error: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24761prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
24762prog.cob:22: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24763prog.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'
24764prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
24765prog.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'
24766" | \
24767  $at_diff - "$at_stderr" || at_failed=:
24768at_fn_diff_devnull "$at_stdout" || at_failed=:
24769at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2861"
24770$at_failed && at_fn_log_failure
24771$at_traceon; }
24772
24773
24774{ set +x
24775$as_echo "$at_srcdir/syn_misc.at:2877: \$COMPILE_ONLY -free -fword-length=45 prog.cob"
24776at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=45 prog.cob" "syn_misc.at:2877"
24777( $at_check_trace; $COMPILE_ONLY -free -fword-length=45 prog.cob
24778) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24779at_status=$? at_failed=false
24780$at_check_filter
24781echo >>"$at_stderr"; $as_echo "prog.cob:12: error: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24782prog.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'
24783prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
24784prog.cob:21: error: word length exceeds 45 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24785prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
24786prog.cob:22: error: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24787prog.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'
24788prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
24789prog.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'
24790" | \
24791  $at_diff - "$at_stderr" || at_failed=:
24792at_fn_diff_devnull "$at_stdout" || at_failed=:
24793at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2877"
24794$at_failed && at_fn_log_failure
24795$at_traceon; }
24796
24797
24798{ set +x
24799$as_echo "$at_srcdir/syn_misc.at:2889: \$COMPILE_ONLY -free -fword-length=60 prog.cob"
24800at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=60 prog.cob" "syn_misc.at:2889"
24801( $at_check_trace; $COMPILE_ONLY -free -fword-length=60 prog.cob
24802) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24803at_status=$? at_failed=false
24804$at_check_filter
24805echo >>"$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'
24806prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
24807prog.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'
24808prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
24809prog.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'
24810" | \
24811  $at_diff - "$at_stderr" || at_failed=:
24812at_fn_diff_devnull "$at_stdout" || at_failed=:
24813at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2889"
24814$at_failed && at_fn_log_failure
24815$at_traceon; }
24816
24817
24818{ set +x
24819$as_echo "$at_srcdir/syn_misc.at:2897: \$COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob"
24820at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob" "syn_misc.at:2897"
24821( $at_check_trace; $COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob
24822) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24823at_status=$? at_failed=false
24824$at_check_filter
24825echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24826prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
24827prog2.cob:20: warning: word length exceeds 45 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24828prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
24829prog2.cob:21: warning: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24830" | \
24831  $at_diff - "$at_stderr" || at_failed=:
24832at_fn_diff_devnull "$at_stdout" || at_failed=:
24833at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2897"
24834$at_failed && at_fn_log_failure
24835$at_traceon; }
24836
24837
24838{ set +x
24839$as_echo "$at_srcdir/syn_misc.at:2905: \$COMPILE_ONLY -free -fword-length=60 prog2.cob"
24840at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=60 prog2.cob" "syn_misc.at:2905"
24841( $at_check_trace; $COMPILE_ONLY -free -fword-length=60 prog2.cob
24842) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24843at_status=$? at_failed=false
24844$at_check_filter
24845at_fn_diff_devnull "$at_stderr" || at_failed=:
24846at_fn_diff_devnull "$at_stdout" || at_failed=:
24847at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2905"
24848$at_failed && at_fn_log_failure
24849$at_traceon; }
24850
24851
24852{ set +x
24853$as_echo "$at_srcdir/syn_misc.at:2907: \$COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob"
24854at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob" "syn_misc.at:2907"
24855( $at_check_trace; $COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob
24856) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24857at_status=$? at_failed=false
24858$at_check_filter
24859echo >>"$at_stderr"; $as_echo "prog2.cob:11: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
24860prog2.cob:12: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24861prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-31':
24862prog2.cob:18: warning: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-32C'
24863prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
24864prog2.cob:19: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
24865prog2.cob:20: warning: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24866prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
24867prog2.cob:21: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
24868" | \
24869  $at_diff - "$at_stderr" || at_failed=:
24870at_fn_diff_devnull "$at_stdout" || at_failed=:
24871at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2907"
24872$at_failed && at_fn_log_failure
24873$at_traceon; }
24874
24875
24876{ set +x
24877$as_echo "$at_srcdir/syn_misc.at:2919: \$COMPILE_ONLY -fword-length=59 prog3.cob"
24878at_fn_check_prepare_dynamic "$COMPILE_ONLY -fword-length=59 prog3.cob" "syn_misc.at:2919"
24879( $at_check_trace; $COMPILE_ONLY -fword-length=59 prog3.cob
24880) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24881at_status=$? at_failed=false
24882$at_check_filter
24883echo >>"$at_stderr"; $as_echo "prog3.cob: in section '00000000000000000000000000000000000000000000000000000000000':
24884prog3.cob:11: error: word length exceeds 59 characters: '000000000000000000000000000000000000000000000000000000000000'
24885prog3.cob: in paragraph '000000000000000000000000000000000000000000000000000000000000':
24886prog3.cob:25: error: word length exceeds 59 characters: '100000000000000000000000000000000000000000000000000000000001'
24887" | \
24888  $at_diff - "$at_stderr" || at_failed=:
24889at_fn_diff_devnull "$at_stdout" || at_failed=:
24890at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2919"
24891$at_failed && at_fn_log_failure
24892$at_traceon; }
24893
24894
24895  set +x
24896  $at_times_p && times >"$at_times_file"
24897) 5>&1 2>&1 7>&- | eval $at_tee_pipe
24898read at_status <"$at_status_file"
24899#AT_STOP_261
24900#AT_START_262
24901at_fn_group_banner 262 'syn_misc.at:2929' \
24902  "Segmentation Module" "                            " 2
24903at_xfail=no
24904(
24905  $as_echo "262. $at_setup_line: testing $at_desc ..."
24906  $at_traceon
24907
24908
24909
24910cat >prog.cob <<'_ATEOF'
24911
24912       IDENTIFICATION   DIVISION.
24913       PROGRAM-ID.      prog.
24914       DATA             DIVISION.
24915       PROCEDURE        DIVISION.
24916
24917       DECLARATIVES.
24918
24919       DEC-1 SECTION 49.
24920           CONTINUE.
24921
24922       DEC-2 SECTION 50.
24923           CONTINUE.
24924
24925       END DECLARATIVES.
24926
24927       SEC-1 SECTION 00.
24928           CONTINUE.
24929
24930       SEC-2 SECTION 01.
24931           CONTINUE.
24932
24933       SEC-3 SECTION -00.
24934           CONTINUE.
24935
24936       SEC-4 SECTION 100.
24937           CONTINUE.
24938
24939       SEC-5 SECTION 49.
24940           CONTINUE.
24941
24942       SEC-6 SECTION 50.
24943           PERFORM SEC-1.
24944
24945       SEC-7 SECTION 99.
24946           PERFORM SEC-1.
24947
24948           STOP RUN.
24949_ATEOF
24950
24951
24952{ set +x
24953$as_echo "$at_srcdir/syn_misc.at:2972: \$COMPILE_ONLY prog.cob"
24954at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2972"
24955( $at_check_trace; $COMPILE_ONLY prog.cob
24956) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24957at_status=$? at_failed=false
24958$at_check_filter
24959echo >>"$at_stderr"; $as_echo "prog.cob: in section 'DEC-1':
24960prog.cob:9: warning: section segments ignored
24961prog.cob: in section 'DEC-2':
24962prog.cob:12: warning: section segments ignored
24963prog.cob: in section 'SEC-1':
24964prog.cob:17: warning: section segments ignored
24965prog.cob: in section 'SEC-2':
24966prog.cob:20: warning: section segments ignored
24967prog.cob: in section 'SEC-3':
24968prog.cob:23: error: unsigned integer value expected
24969prog.cob:23: warning: section segments ignored
24970prog.cob: in section 'SEC-4':
24971prog.cob:26: warning: section segments ignored
24972prog.cob: in section 'SEC-5':
24973prog.cob:29: warning: section segments ignored
24974prog.cob: in section 'SEC-6':
24975prog.cob:32: warning: section segments ignored
24976prog.cob: in section 'SEC-7':
24977prog.cob:35: warning: section segments ignored
24978" | \
24979  $at_diff - "$at_stderr" || at_failed=:
24980at_fn_diff_devnull "$at_stdout" || at_failed=:
24981at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2972"
24982$at_failed && at_fn_log_failure
24983$at_traceon; }
24984
24985{ set +x
24986$as_echo "$at_srcdir/syn_misc.at:2993: \$COMPILE_ONLY -std=cobol85 prog.cob"
24987at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:2993"
24988( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
24989) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24990at_status=$? at_failed=false
24991$at_check_filter
24992echo >>"$at_stderr"; $as_echo "prog.cob: in section 'DEC-1':
24993prog.cob:9: warning: section segments is obsolete in COBOL 85
24994prog.cob:9: warning: SECTION segment within DECLARATIVES is not implemented
24995prog.cob: in section 'DEC-2':
24996prog.cob:12: warning: section segments is obsolete in COBOL 85
24997prog.cob:12: error: SECTION segment-number in DECLARATIVES must be less than 50
24998prog.cob:12: warning: SECTION segment within DECLARATIVES is not implemented
24999prog.cob: in section 'SEC-1':
25000prog.cob:17: warning: section segments is obsolete in COBOL 85
25001prog.cob: in section 'SEC-2':
25002prog.cob:20: warning: section segments is obsolete in COBOL 85
25003prog.cob: in section 'SEC-3':
25004prog.cob:23: error: unsigned integer value expected
25005prog.cob:23: warning: section segments is obsolete in COBOL 85
25006prog.cob: in section 'SEC-4':
25007prog.cob:26: warning: section segments is obsolete in COBOL 85
25008prog.cob:26: error: SECTION segment-number must be less than or equal to 99
25009prog.cob: in section 'SEC-5':
25010prog.cob:29: warning: section segments is obsolete in COBOL 85
25011prog.cob: in section 'SEC-6':
25012prog.cob:32: warning: section segments is obsolete in COBOL 85
25013prog.cob: in section 'SEC-7':
25014prog.cob:35: warning: section segments is obsolete in COBOL 85
25015" | \
25016  $at_diff - "$at_stderr" || at_failed=:
25017at_fn_diff_devnull "$at_stdout" || at_failed=:
25018at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2993"
25019$at_failed && at_fn_log_failure
25020$at_traceon; }
25021
25022  set +x
25023  $at_times_p && times >"$at_times_file"
25024) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25025read at_status <"$at_status_file"
25026#AT_STOP_262
25027#AT_START_263
25028at_fn_group_banner 263 'syn_misc.at:3021' \
25029  "ACCEPT FROM ESCAPE KEY" "                         " 2
25030at_xfail=no
25031(
25032  $as_echo "263. $at_setup_line: testing $at_desc ..."
25033  $at_traceon
25034
25035
25036
25037# TODO: add function test to run_manual_screen.at
25038
25039cat >prog.cob <<'_ATEOF'
25040
25041       IDENTIFICATION   DIVISION.
25042       PROGRAM-ID.      prog.
25043       DATA             DIVISION.
25044       WORKING-STORAGE  SECTION.
25045       77 KEYNUM        PIC 9(04).
25046       PROCEDURE        DIVISION.
25047
25048           ACCEPT KEYNUM FROM ESCAPE KEY
25049           DISPLAY "Key pressed: " KEYNUM
25050           ACCEPT KEYNUM FROM ESCAPE
25051           DISPLAY "Key pressed: " KEYNUM
25052           ACCEPT OMITTED
25053
25054           STOP RUN.
25055_ATEOF
25056
25057{ set +x
25058$as_echo "$at_srcdir/syn_misc.at:3042: \$COMPILE_ONLY prog.cob"
25059at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3042"
25060( $at_check_trace; $COMPILE_ONLY prog.cob
25061) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25062at_status=$? at_failed=false
25063$at_check_filter
25064at_fn_diff_devnull "$at_stderr" || at_failed=:
25065at_fn_diff_devnull "$at_stdout" || at_failed=:
25066at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3042"
25067$at_failed && at_fn_log_failure
25068$at_traceon; }
25069
25070  set +x
25071  $at_times_p && times >"$at_times_file"
25072) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25073read at_status <"$at_status_file"
25074#AT_STOP_263
25075#AT_START_264
25076at_fn_group_banner 264 'syn_misc.at:3046' \
25077  "Numeric literals" "                               " 2
25078at_xfail=no
25079(
25080  $as_echo "264. $at_setup_line: testing $at_desc ..."
25081  $at_traceon
25082
25083
25084
25085cat >prog.cob <<'_ATEOF'
25086
25087       IDENTIFICATION   DIVISION.
25088       PROGRAM-ID.      prog.
25089       DATA             DIVISION.
25090       WORKING-STORAGE  SECTION.
25091       77 COUNTER       PIC 9 VALUE 0.
25092       PROCEDURE        DIVISION.
25093
25094      *> No literals at all
25095       00000000000000000000000000000000000000000000000000000000000
25096       SECTION.
25097       000000000000000000000000000000000000000000000000000000000000.
25098           ADD 1 TO COUNTER END-ADD
25099           EVALUATE COUNTER
25100           WHEN 1
25101           PERFORM
25102           00000000000000000000000000000000000000000000000000000000000
25103           WHEN 2
25104           PERFORM
25105           000000000000000000000000000000000000000000000000000000000000
25106           WHEN 3
25107           MOVE 0 TO COUNTER
25108           END-EVALUATE.
25109
25110       100000000000000000000000000000000000000000000000000000000001
25111       SECTION.
25112       20000000000000000000000000000000000000000000000000000000002.
25113           ADD 1 TO COUNTER END-ADD
25114           EVALUATE COUNTER
25115           WHEN 1
25116           PERFORM
25117           100000000000000000000000000000000000000000000000000000000001
25118           WHEN 2
25119           PERFORM
25120           20000000000000000000000000000000000000000000000000000000002
25121           WHEN 3
25122           MOVE 0 TO COUNTER
25123           END-EVALUATE.
25124
25125           STOP RUN.
25126_ATEOF
25127
25128
25129cat >prog2.cob <<'_ATEOF'
25130
25131       IDENTIFICATION   DIVISION.
25132       PROGRAM-ID.      prog2.
25133       ENVIRONMENT      DIVISION.
25134       CONFIGURATION    SECTION.
25135       SPECIAL-NAMES.
25136       PROCEDURE        DIVISION.
25137
25138           *> Valid literals, depending on numeric literal size
25139           DISPLAY 1.0076, +100000.03, +1.0, -0078,
25140               +.1234567890123456789012345678901234
25141               .123456789012345678901234567890123450
25142           END-DISPLAY
25143
25144           *> Invalid literals
25145           DISPLAY 1.03.0     END-DISPLAY
25146           DISPLAY --123      END-DISPLAY
25147           DISPLAY -123-      END-DISPLAY
25148           DISPLAY -123-456   END-DISPLAY
25149           DISPLAY -123-4.56  END-DISPLAY
25150           DISPLAY -12.3-456  END-DISPLAY
25151           DISPLAY -12.3-4.56 END-DISPLAY
25152           DISPLAY 1000003+   END-DISPLAY
25153           DISPLAY 1.000003+  END-DISPLAY
25154           DISPLAY .3+        END-DISPLAY
25155           DISPLAY 3.+        END-DISPLAY
25156
25157           STOP RUN.
25158_ATEOF
25159
25160
25161cat >prog3.cob <<'_ATEOF'
25162
25163       IDENTIFICATION   DIVISION.
25164       PROGRAM-ID.      prog3.
25165       ENVIRONMENT      DIVISION.
25166       CONFIGURATION    SECTION.
25167       SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
25168       PROCEDURE        DIVISION.
25169
25170           *> Valid literals, depending on numeric literal size
25171           DISPLAY 1,0076, +100000,03, +1,0, -0078,
25172               +,1234567890123456789012345678901234
25173               ,123456789012345678901234567890123450
25174           END-DISPLAY
25175
25176           *> Invalid literals
25177           DISPLAY 1,03,0     END-DISPLAY
25178           DISPLAY --123      END-DISPLAY
25179           DISPLAY -123-      END-DISPLAY
25180           DISPLAY -123-456   END-DISPLAY
25181           DISPLAY -123-4,56  END-DISPLAY
25182           DISPLAY -12,3-456  END-DISPLAY
25183           DISPLAY -12,3-4,56 END-DISPLAY
25184           DISPLAY 1000003+   END-DISPLAY
25185           DISPLAY 1,000003+  END-DISPLAY
25186           DISPLAY ,3+        END-DISPLAY
25187           DISPLAY 3,+        END-DISPLAY
25188
25189           STOP RUN.
25190_ATEOF
25191
25192
25193{ set +x
25194$as_echo "$at_srcdir/syn_misc.at:3151: \$COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 prog.cob"
25195at_fn_check_prepare_dynamic "$COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 prog.cob" "syn_misc.at:3151"
25196( $at_check_trace; $COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 prog.cob
25197) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25198at_status=$? at_failed=false
25199$at_check_filter
25200at_fn_diff_devnull "$at_stderr" || at_failed=:
25201at_fn_diff_devnull "$at_stdout" || at_failed=:
25202at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3151"
25203$at_failed && at_fn_log_failure
25204$at_traceon; }
25205
25206
25207# result with extended scanner for wrong numeric literals:
25208#AT_CHECK([$COMPILE_ONLY prog2.cob], [1], [],
25209#[prog2.cob:16: error: invalid numeric literal: '1.03.0'
25210#prog2.cob:16: error: literal with more than one decimal point
25211#prog2.cob:17: error: invalid numeric literal: '--123'
25212#prog2.cob:17: error: literal with more than one sign character
25213#prog2.cob:18: error: invalid numeric literal: '-123-'
25214#prog2.cob:18: error: literal with more than one sign character
25215#prog2.cob:19: error: invalid numeric literal: '-123-456'
25216#prog2.cob:19: error: literal with more than one sign character
25217#prog2.cob:20: error: invalid numeric literal: '-123-4.56'
25218#prog2.cob:20: error: literal with more than one sign character
25219#prog2.cob:21: error: invalid numeric literal: '-12.3-456'
25220#prog2.cob:21: error: literal with more than one sign character
25221#prog2.cob:22: error: invalid numeric literal: '-12.3-4.56'
25222#prog2.cob:22: error: literal with more than one sign character
25223#prog2.cob:22: error: literal with more than one decimal point
25224#prog2.cob:23: error: invalid numeric literal: '1000003+'
25225#prog2.cob:23: error: sign must appear as leftmost character
25226#prog2.cob:24: error: invalid numeric literal: '1.000003+'
25227#prog2.cob:24: error: sign must appear as leftmost character
25228#prog2.cob:25: error: invalid numeric literal: '.3+'
25229#prog2.cob:25: error: sign must appear as leftmost character
25230#prog2.cob:26: error: invalid numeric literal: '3.+'
25231#prog2.cob:26: error: sign must appear as leftmost character
25232#])
25233#AT_CHECK([$COMPILE_ONLY prog3.cob], [1], [],
25234#[prog3.cob:16: error: invalid numeric literal: '1,03,0'
25235#prog3.cob:16: error: literal with more than one decimal point
25236#prog3.cob:17: error: invalid numeric literal: '--123'
25237#prog3.cob:17: error: literal with more than one sign character
25238#prog3.cob:18: error: invalid numeric literal: '-123-'
25239#prog3.cob:18: error: literal with more than one sign character
25240#prog3.cob:19: error: invalid numeric literal: '-123-456'
25241#prog3.cob:19: error: literal with more than one sign character
25242#prog3.cob:20: error: invalid numeric literal: '-123-4,56'
25243#prog3.cob:20: error: literal with more than one sign character
25244#prog3.cob:21: error: invalid numeric literal: '-12,3-456'
25245#prog3.cob:21: error: literal with more than one sign character
25246#prog3.cob:22: error: invalid numeric literal: '-12,3-4,56'
25247#prog3.cob:22: error: literal with more than one sign character
25248#prog3.cob:22: error: literal with more than one decimal point
25249#prog3.cob:23: error: invalid numeric literal: '1000003+'
25250#prog3.cob:23: error: sign must appear as leftmost character
25251#prog3.cob:24: error: invalid numeric literal: '1,000003+'
25252#prog3.cob:24: error: sign must appear as leftmost character
25253#prog3.cob:25: error: invalid numeric literal: ',3+'
25254#prog3.cob:25: error: sign must appear as leftmost character
25255#prog3.cob:26: error: invalid numeric literal: '3,+'
25256#prog3.cob:26: error: sign must appear as leftmost character
25257#])
25258
25259{ set +x
25260$as_echo "$at_srcdir/syn_misc.at:3205: \$COMPILE_ONLY prog2.cob"
25261at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:3205"
25262( $at_check_trace; $COMPILE_ONLY prog2.cob
25263) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25264at_status=$? at_failed=false
25265$at_check_filter
25266echo >>"$at_stderr"; $as_echo "prog2.cob:17: error: syntax error, unexpected -, expecting (
25267prog2.cob:18: error: syntax error, unexpected -
25268prog2.cob:23: error: syntax error, unexpected +
25269prog2.cob:24: error: syntax error, unexpected +
25270prog2.cob:25: error: syntax error, unexpected +
25271prog2.cob:26: error: syntax error, unexpected +
25272" | \
25273  $at_diff - "$at_stderr" || at_failed=:
25274at_fn_diff_devnull "$at_stdout" || at_failed=:
25275at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3205"
25276$at_failed && at_fn_log_failure
25277$at_traceon; }
25278
25279{ set +x
25280$as_echo "$at_srcdir/syn_misc.at:3213: \$COMPILE_ONLY prog3.cob"
25281at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:3213"
25282( $at_check_trace; $COMPILE_ONLY prog3.cob
25283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25284at_status=$? at_failed=false
25285$at_check_filter
25286echo >>"$at_stderr"; $as_echo "prog3.cob:17: error: syntax error, unexpected -, expecting (
25287prog3.cob:18: error: syntax error, unexpected -
25288prog3.cob:23: error: syntax error, unexpected +
25289prog3.cob:24: error: syntax error, unexpected +
25290prog3.cob:25: error: syntax error, unexpected +
25291prog3.cob:26: error: syntax error, unexpected +
25292" | \
25293  $at_diff - "$at_stderr" || at_failed=:
25294at_fn_diff_devnull "$at_stdout" || at_failed=:
25295at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3213"
25296$at_failed && at_fn_log_failure
25297$at_traceon; }
25298
25299
25300  set +x
25301  $at_times_p && times >"$at_times_file"
25302) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25303read at_status <"$at_status_file"
25304#AT_STOP_264
25305#AT_START_265
25306at_fn_group_banner 265 'syn_misc.at:3225' \
25307  "floating-point literals" "                        " 2
25308at_xfail=no
25309(
25310  $as_echo "265. $at_setup_line: testing $at_desc ..."
25311  $at_traceon
25312
25313# Refer to Section 8.3.1.2.2.2 of COBOL 2014.
25314
25315
25316cat >prog.cob <<'_ATEOF'
25317
25318       IDENTIFICATION   DIVISION.
25319       PROGRAM-ID.      prog.
25320       PROCEDURE        DIVISION.
25321           *> Valid literals
25322           DISPLAY 1.0E6144, +1.0E+3, +1.0E-6143, 123.E1,
25323               +.123456789012345678901234567890123456E+0000
25324           END-DISPLAY
25325
25326           *> invalid literals
25327           DISPLAY 1.0D3 END-DISPLAY
25328           DISPLAY 1E3 END-DISPLAY
25329           DISPLAY '1.0E3'BLAH END-DISPLAY
25330           DISPLAY 1.0E3.0 END-DISPLAY
25331           DISPLAY -0.0E-0 END-DISPLAY
25332           DISPLAY 1.0E00003 END-DISPLAY
25333           DISPLAY .123456789012345678901234567890123456789E0
25334           END-DISPLAY
25335           DISPLAY 0.0E3 END-DISPLAY
25336
25337           *> Implementor-defined invalid literals
25338           DISPLAY 1.0E6145 END-DISPLAY
25339           DISPLAY 1.0E-6144 END-DISPLAY
25340
25341           STOP RUN.
25342_ATEOF
25343
25344
25345cat >prog2.cob <<'_ATEOF'
25346
25347       IDENTIFICATION   DIVISION.
25348       PROGRAM-ID.      prog2.
25349       ENVIRONMENT      DIVISION.
25350       CONFIGURATION    SECTION.
25351       SPECIAL-NAMES.
25352            DECIMAL-POINT IS COMMA.
25353       PROCEDURE        DIVISION.
25354           *> Valid literals
25355           DISPLAY 1,0E6144; +1,0E+3; +1,0E-6143; 123,E1;
25356               +,123456789012345678901234567890123456E+0000
25357           END-DISPLAY
25358
25359           *> invalid literals
25360           DISPLAY 1,0D3 END-DISPLAY
25361           DISPLAY 1E3 END-DISPLAY
25362           DISPLAY 1,0E3BLAH END-DISPLAY
25363           DISPLAY 1,0E3,0 END-DISPLAY
25364           DISPLAY -0,0E-0 END-DISPLAY
25365           DISPLAY 1,0E00003 END-DISPLAY
25366           DISPLAY ,123456789012345678901234567890123456789E0
25367           END-DISPLAY
25368           DISPLAY 0,0E3 END-DISPLAY
25369
25370           *> Implementor-defined invalid literals
25371           DISPLAY 1,0E6145 END-DISPLAY
25372           DISPLAY 1,0E-6144 END-DISPLAY
25373
25374           STOP RUN.
25375_ATEOF
25376
25377
25378{ set +x
25379$as_echo "$at_srcdir/syn_misc.at:3287: \$COMPILE_ONLY prog.cob"
25380at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3287"
25381( $at_check_trace; $COMPILE_ONLY prog.cob
25382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25383at_status=$? at_failed=false
25384$at_check_filter
25385echo >>"$at_stderr"; $as_echo "prog.cob:11: error: 'D3' is not defined
25386prog.cob:12: error: '1E3' is not defined
25387prog.cob:13: error: 'BLAH' is not defined
25388prog.cob:14: error: invalid floating-point literal: '1.0E3.0'
25389prog.cob:14: error: exponent has decimal point
25390prog.cob:15: error: invalid floating-point literal: '-0.0E-0'
25391prog.cob:15: error: significand of 0 must be positive
25392prog.cob:15: error: exponent of 0 must be positive
25393prog.cob:16: error: invalid floating-point literal: '1.0E00003'
25394prog.cob:16: error: exponent has more than 4 digits
25395prog.cob:17: error: invalid floating-point literal: '.123456789012345678901234567890123 ...'
25396prog.cob:17: error: significand has more than 36 digits
25397prog.cob:19: error: invalid floating-point literal: '0.0E3'
25398prog.cob:19: error: exponent of 0 must be 0
25399prog.cob:22: error: invalid floating-point literal: '1.0E6145'
25400prog.cob:22: error: exponent not between -6143 and 6144
25401prog.cob:23: error: invalid floating-point literal: '1.0E-6144'
25402prog.cob:23: error: exponent not between -6143 and 6144
25403" | \
25404  $at_diff - "$at_stderr" || at_failed=:
25405at_fn_diff_devnull "$at_stdout" || at_failed=:
25406at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3287"
25407$at_failed && at_fn_log_failure
25408$at_traceon; }
25409
25410
25411{ set +x
25412$as_echo "$at_srcdir/syn_misc.at:3308: \$COMPILE_ONLY prog2.cob"
25413at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:3308"
25414( $at_check_trace; $COMPILE_ONLY prog2.cob
25415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25416at_status=$? at_failed=false
25417$at_check_filter
25418echo >>"$at_stderr"; $as_echo "prog2.cob:15: error: 'D3' is not defined
25419prog2.cob:16: error: '1E3' is not defined
25420prog2.cob:17: error: 'BLAH' is not defined
25421prog2.cob:18: error: invalid floating-point literal: '1,0E3,0'
25422prog2.cob:18: error: exponent has decimal point
25423prog2.cob:19: error: invalid floating-point literal: '-0,0E-0'
25424prog2.cob:19: error: significand of 0 must be positive
25425prog2.cob:19: error: exponent of 0 must be positive
25426prog2.cob:20: error: invalid floating-point literal: '1,0E00003'
25427prog2.cob:20: error: exponent has more than 4 digits
25428prog2.cob:21: error: invalid floating-point literal: ',123456789012345678901234567890123 ...'
25429prog2.cob:21: error: significand has more than 36 digits
25430prog2.cob:23: error: invalid floating-point literal: '0,0E3'
25431prog2.cob:23: error: exponent of 0 must be 0
25432prog2.cob:26: error: invalid floating-point literal: '1,0E6145'
25433prog2.cob:26: error: exponent not between -6143 and 6144
25434prog2.cob:27: error: invalid floating-point literal: '1,0E-6144'
25435prog2.cob:27: error: exponent not between -6143 and 6144
25436" | \
25437  $at_diff - "$at_stderr" || at_failed=:
25438at_fn_diff_devnull "$at_stdout" || at_failed=:
25439at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3308"
25440$at_failed && at_fn_log_failure
25441$at_traceon; }
25442
25443
25444  set +x
25445  $at_times_p && times >"$at_times_file"
25446) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25447read at_status <"$at_status_file"
25448#AT_STOP_265
25449#AT_START_266
25450at_fn_group_banner 266 'syn_misc.at:3332' \
25451  "X literals" "                                     " 2
25452at_xfail=no
25453(
25454  $as_echo "266. $at_setup_line: testing $at_desc ..."
25455  $at_traceon
25456
25457
25458
25459cat >prog.cob <<'_ATEOF'
25460
25461       IDENTIFICATION DIVISION.
25462       PROGRAM-ID.    prog.
25463       PROCEDURE      DIVISION.
25464           *> Valid form
25465           DISPLAY X"0123456789ABCDEF"
25466
25467           *> invalid form
25468           DISPLAY X"GH"
25469                   X"1"
25470           END-DISPLAY.
25471_ATEOF
25472
25473
25474{ set +x
25475$as_echo "$at_srcdir/syn_misc.at:3348: \$COMPILE_ONLY prog.cob"
25476at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3348"
25477( $at_check_trace; $COMPILE_ONLY prog.cob
25478) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25479at_status=$? at_failed=false
25480$at_check_filter
25481echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid X literal: 'GH'
25482prog.cob:9: error: literal contains invalid character 'G'
25483prog.cob:9: error: literal contains invalid character 'H'
25484prog.cob:10: error: invalid X literal: '1'
25485prog.cob:10: error: literal does not have an even number of digits
25486" | \
25487  $at_diff - "$at_stderr" || at_failed=:
25488at_fn_diff_devnull "$at_stdout" || at_failed=:
25489at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3348"
25490$at_failed && at_fn_log_failure
25491$at_traceon; }
25492
25493
25494  set +x
25495  $at_times_p && times >"$at_times_file"
25496) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25497read at_status <"$at_status_file"
25498#AT_STOP_266
25499#AT_START_267
25500at_fn_group_banner 267 'syn_misc.at:3359' \
25501  "national literals" "                              " 2
25502at_xfail=no
25503(
25504  $as_echo "267. $at_setup_line: testing $at_desc ..."
25505  $at_traceon
25506
25507
25508
25509cat >prog.cob <<'_ATEOF'
25510
25511       IDENTIFICATION DIVISION.
25512       PROGRAM-ID.    prog.
25513       PROCEDURE      DIVISION.
25514           DISPLAY N"UTF-16 string".
25515           DISPLAY N'0123456789ABCDEF'.
25516           DISPLAY N"0123456789ABCDEF"-
25517                   N"0123456789ABCDEF".
25518           DISPLAY NC"0123456789ABCDEF"-
25519                   NC'0123456789ABCDEF'.
25520_ATEOF
25521
25522
25523{ set +x
25524$as_echo "$at_srcdir/syn_misc.at:3374: \$COMPILE_ONLY prog.cob"
25525at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3374"
25526( $at_check_trace; $COMPILE_ONLY prog.cob
25527) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25528at_status=$? at_failed=false
25529$at_check_filter
25530echo >>"$at_stderr"; $as_echo "prog.cob:5: warning: handling of national literal is unfinished; implementation is likely to be changed
25531prog.cob:6: warning: handling of national literal is unfinished; implementation is likely to be changed
25532prog.cob:7: warning: handling of national literal is unfinished; implementation is likely to be changed
25533prog.cob:8: warning: handling of national literal is unfinished; implementation is likely to be changed
25534prog.cob:9: warning: national-character literal used
25535prog.cob:9: warning: handling of national literal is unfinished; implementation is likely to be changed
25536prog.cob:10: warning: national-character literal used
25537prog.cob:10: warning: handling of national literal is unfinished; implementation is likely to be changed
25538" | \
25539  $at_diff - "$at_stderr" || at_failed=:
25540at_fn_diff_devnull "$at_stdout" || at_failed=:
25541at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3374"
25542$at_failed && at_fn_log_failure
25543$at_traceon; }
25544
25545
25546{ set +x
25547$as_echo "$at_srcdir/syn_misc.at:3385: \$COMPILE_ONLY -std=cobol85 prog.cob"
25548at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3385"
25549( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
25550) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25551at_status=$? at_failed=false
25552$at_check_filter
25553echo >>"$at_stderr"; $as_echo "prog.cob:5: error: national literal does not conform to COBOL 85
25554prog.cob:6: error: national literal does not conform to COBOL 85
25555prog.cob:7: error: national literal does not conform to COBOL 85
25556prog.cob:8: error: national literal does not conform to COBOL 85
25557prog.cob:9: error: national-character literal does not conform to COBOL 85
25558prog.cob:10: error: national-character literal does not conform to COBOL 85
25559" | \
25560  $at_diff - "$at_stderr" || at_failed=:
25561at_fn_diff_devnull "$at_stdout" || at_failed=:
25562at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3385"
25563$at_failed && at_fn_log_failure
25564$at_traceon; }
25565
25566
25567  set +x
25568  $at_times_p && times >"$at_times_file"
25569) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25570read at_status <"$at_status_file"
25571#AT_STOP_267
25572#AT_START_268
25573at_fn_group_banner 268 'syn_misc.at:3397' \
25574  "NX literals" "                                    " 2
25575at_xfail=no
25576(
25577  $as_echo "268. $at_setup_line: testing $at_desc ..."
25578  $at_traceon
25579
25580
25581
25582cat >prog.cob <<'_ATEOF'
25583
25584       IDENTIFICATION DIVISION.
25585       PROGRAM-ID.    prog.
25586       PROCEDURE      DIVISION.
25587           *> Valid form
25588           DISPLAY NX"265E"
25589           DISPLAY NX"0123456789ABCDEF"
25590
25591           *> invalid form
25592           DISPLAY NX"GH"
25593                   NX"1".
25594_ATEOF
25595
25596
25597{ set +x
25598$as_echo "$at_srcdir/syn_misc.at:3413: \$COMPILE_ONLY prog.cob"
25599at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3413"
25600( $at_check_trace; $COMPILE_ONLY prog.cob
25601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25602at_status=$? at_failed=false
25603$at_check_filter
25604echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: handling of national literal is unfinished; implementation is likely to be changed
25605prog.cob:7: warning: handling of national literal is unfinished; implementation is likely to be changed
25606prog.cob:10: warning: handling of national literal is unfinished; implementation is likely to be changed
25607prog.cob:10: error: invalid NX literal: 'GH'
25608prog.cob:10: error: literal contains invalid character 'G'
25609prog.cob:10: error: literal contains invalid character 'H'
25610prog.cob:11: warning: handling of national literal is unfinished; implementation is likely to be changed
25611prog.cob:11: error: invalid NX literal: '1'
25612prog.cob:11: error: literal does not have an even number of digits
25613" | \
25614  $at_diff - "$at_stderr" || at_failed=:
25615at_fn_diff_devnull "$at_stdout" || at_failed=:
25616at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3413"
25617$at_failed && at_fn_log_failure
25618$at_traceon; }
25619
25620
25621{ set +x
25622$as_echo "$at_srcdir/syn_misc.at:3425: \$COMPILE_ONLY -std=cobol85 prog.cob"
25623at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3425"
25624( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
25625) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25626at_status=$? at_failed=false
25627$at_check_filter
25628echo >>"$at_stderr"; $as_echo "prog.cob:6: error: hexadecimal-national literal does not conform to COBOL 85
25629prog.cob:7: error: hexadecimal-national literal does not conform to COBOL 85
25630prog.cob:10: error: hexadecimal-national literal does not conform to COBOL 85
25631prog.cob:11: error: hexadecimal-national literal does not conform to COBOL 85
25632" | \
25633  $at_diff - "$at_stderr" || at_failed=:
25634at_fn_diff_devnull "$at_stdout" || at_failed=:
25635at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3425"
25636$at_failed && at_fn_log_failure
25637$at_traceon; }
25638
25639
25640  set +x
25641  $at_times_p && times >"$at_times_file"
25642) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25643read at_status <"$at_status_file"
25644#AT_STOP_268
25645#AT_START_269
25646at_fn_group_banner 269 'syn_misc.at:3435' \
25647  "binary literals" "                                " 2
25648at_xfail=no
25649(
25650  $as_echo "269. $at_setup_line: testing $at_desc ..."
25651  $at_traceon
25652
25653
25654
25655cat >prog.cob <<'_ATEOF'
25656
25657       IDENTIFICATION   DIVISION.
25658       PROGRAM-ID.      prog.
25659       PROCEDURE        DIVISION.
25660           DISPLAY B"101010"
25661           DISPLAY B"111111111111111111111111111111111111111111111111111
25662      -             "1111111111111" *> " Syntax highlighting hack
25663
25664           DISPLAY B"23"
25665           DISPLAY B"111111111111111111111111111111111111111111111111111
25666      -             "111111111111111111111111111111111111111111111111111
25667      -             "11111111111111111111111111111111111111111111111111"
25668           STOP RUN.
25669_ATEOF
25670
25671
25672{ set +x
25673$as_echo "$at_srcdir/syn_misc.at:3453: \$COMPILE_ONLY -std=mf prog.cob"
25674at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_misc.at:3453"
25675( $at_check_trace; $COMPILE_ONLY -std=mf prog.cob
25676) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25677at_status=$? at_failed=false
25678$at_check_filter
25679echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid B literal: '23'
25680prog.cob:9: error: literal contains invalid character '2'
25681prog.cob:9: error: literal contains invalid character '3'
25682prog.cob:10: error: invalid B literal: '1111111111111111111111111111111111 ...'
25683prog.cob:10: error: literal length 152 exceeds 64 characters
25684" | \
25685  $at_diff - "$at_stderr" || at_failed=:
25686at_fn_diff_devnull "$at_stdout" || at_failed=:
25687at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3453"
25688$at_failed && at_fn_log_failure
25689$at_traceon; }
25690
25691
25692{ set +x
25693$as_echo "$at_srcdir/syn_misc.at:3461: \$COMPILE_ONLY -std=cobol85 prog.cob"
25694at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3461"
25695( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
25696) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25697at_status=$? at_failed=false
25698$at_check_filter
25699echo >>"$at_stderr"; $as_echo "prog.cob:5: error: numeric boolean literal does not conform to COBOL 85
25700prog.cob:6: error: numeric boolean literal does not conform to COBOL 85
25701prog.cob:9: error: numeric boolean literal does not conform to COBOL 85
25702prog.cob:10: error: numeric boolean literal does not conform to COBOL 85
25703" | \
25704  $at_diff - "$at_stderr" || at_failed=:
25705at_fn_diff_devnull "$at_stdout" || at_failed=:
25706at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3461"
25707$at_failed && at_fn_log_failure
25708$at_traceon; }
25709
25710
25711  set +x
25712  $at_times_p && times >"$at_times_file"
25713) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25714read at_status <"$at_status_file"
25715#AT_STOP_269
25716#AT_START_270
25717at_fn_group_banner 270 'syn_misc.at:3471' \
25718  "binary-hexadecimal literals" "                    " 2
25719at_xfail=no
25720(
25721  $as_echo "270. $at_setup_line: testing $at_desc ..."
25722  $at_traceon
25723
25724
25725
25726cat >prog.cob <<'_ATEOF'
25727
25728       IDENTIFICATION   DIVISION.
25729       PROGRAM-ID.      prog.
25730       PROCEDURE        DIVISION.
25731           DISPLAY BX"AB05CD0F"
25732           DISPLAY        BX"0123456789ABCDEF0123456789ABCDEF0123456789A
25733      -              "BCDEF" *> " Syntax highlighting hack
25734
25735           DISPLAY BX"A"
25736           STOP RUN.
25737_ATEOF
25738
25739
25740{ set +x
25741$as_echo "$at_srcdir/syn_misc.at:3486: \$COMPILE_ONLY prog.cob"
25742at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3486"
25743( $at_check_trace; $COMPILE_ONLY prog.cob
25744) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25745at_status=$? at_failed=false
25746$at_check_filter
25747echo >>"$at_stderr"; $as_echo "prog.cob:6: error: invalid BX literal: '0123456789ABCDEF0123456789ABCDEF01 ...'
25748prog.cob:6: error: literal length 192 exceeds 64 characters
25749" | \
25750  $at_diff - "$at_stderr" || at_failed=:
25751at_fn_diff_devnull "$at_stdout" || at_failed=:
25752at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3486"
25753$at_failed && at_fn_log_failure
25754$at_traceon; }
25755
25756
25757{ set +x
25758$as_echo "$at_srcdir/syn_misc.at:3491: \$COMPILE_ONLY -std=cobol85 prog.cob"
25759at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3491"
25760( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
25761) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25762at_status=$? at_failed=false
25763$at_check_filter
25764echo >>"$at_stderr"; $as_echo "prog.cob:5: error: hexadecimal-boolean literal does not conform to COBOL 85
25765prog.cob:6: error: hexadecimal-boolean literal does not conform to COBOL 85
25766prog.cob:9: error: hexadecimal-boolean literal does not conform to COBOL 85
25767" | \
25768  $at_diff - "$at_stderr" || at_failed=:
25769at_fn_diff_devnull "$at_stdout" || at_failed=:
25770at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3491"
25771$at_failed && at_fn_log_failure
25772$at_traceon; }
25773
25774
25775  set +x
25776  $at_times_p && times >"$at_times_file"
25777) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25778read at_status <"$at_status_file"
25779#AT_STOP_270
25780#AT_START_271
25781at_fn_group_banner 271 'syn_misc.at:3500' \
25782  "HP COBOL octal literals" "                        " 2
25783at_xfail=no
25784(
25785  $as_echo "271. $at_setup_line: testing $at_desc ..."
25786  $at_traceon
25787
25788
25789
25790cat >prog.cob <<'_ATEOF'
25791
25792       IDENTIFICATION   DIVISION.
25793       PROGRAM-ID.      prog.
25794       PROCEDURE        DIVISION.
25795           *> Valid forms
25796           DISPLAY %17 %37777777777 %456
25797
25798           *> invalid forms
25799           DISPLAY %11111111111111111111111
25800           DISPLAY %89
25801
25802           STOP RUN.
25803_ATEOF
25804
25805
25806{ set +x
25807$as_echo "$at_srcdir/syn_misc.at:3517: \$COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok prog.cob"
25808at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok prog.cob" "syn_misc.at:3517"
25809( $at_check_trace; $COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok prog.cob
25810) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25811at_status=$? at_failed=false
25812$at_check_filter
25813echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid % literal: '11111111111111111111111'
25814prog.cob:9: error: literal length 23 exceeds 22 characters
25815prog.cob:10: error: invalid % literal: '89'
25816prog.cob:10: error: literal contains invalid character '8'
25817prog.cob:10: error: literal contains invalid character '9'
25818" | \
25819  $at_diff - "$at_stderr" || at_failed=:
25820at_fn_diff_devnull "$at_stdout" || at_failed=:
25821at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3517"
25822$at_failed && at_fn_log_failure
25823$at_traceon; }
25824
25825
25826{ set +x
25827$as_echo "$at_srcdir/syn_misc.at:3525: \$COMPILE_ONLY -std=cobol2014 prog.cob"
25828at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:3525"
25829( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
25830) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25831at_status=$? at_failed=false
25832$at_check_filter
25833echo >>"$at_stderr"; $as_echo "prog.cob:6: error: HP COBOL octal literal does not conform to COBOL 2014
25834prog.cob:6: error: HP COBOL octal literal does not conform to COBOL 2014
25835prog.cob:6: error: HP COBOL octal literal does not conform to COBOL 2014
25836prog.cob:9: error: HP COBOL octal literal does not conform to COBOL 2014
25837prog.cob:10: error: HP COBOL octal literal does not conform to COBOL 2014
25838" | \
25839  $at_diff - "$at_stderr" || at_failed=:
25840at_fn_diff_devnull "$at_stdout" || at_failed=:
25841at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3525"
25842$at_failed && at_fn_log_failure
25843$at_traceon; }
25844
25845
25846  set +x
25847  $at_times_p && times >"$at_times_file"
25848) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25849read at_status <"$at_status_file"
25850#AT_STOP_271
25851#AT_START_272
25852at_fn_group_banner 272 'syn_misc.at:3536' \
25853  "ACUCOBOL literals" "                              " 2
25854at_xfail=no
25855(
25856  $as_echo "272. $at_setup_line: testing $at_desc ..."
25857  $at_traceon
25858
25859
25860
25861cat >prog.cob <<'_ATEOF'
25862
25863       IDENTIFICATION   DIVISION.
25864       PROGRAM-ID.      prog.
25865       PROCEDURE        DIVISION.
25866           *> Valid forms
25867           DISPLAY B#10 O#12345670123 X#12345678 H#90aBcDeF
25868           END-DISPLAY
25869
25870           *> invalid forms
25871       >>SOURCE FREE
25872           DISPLAY B#11111111111111111111111111111111111111111111111111111111111111111
25873               O#11111111111111111111111 X#11111111111111111 H#22222222222222222
25874       >>SOURCE FIXED
25875           DISPLAY B#23 O#89 X#GG H#HH
25876
25877           STOP RUN.
25878_ATEOF
25879
25880
25881{ set +x
25882$as_echo "$at_srcdir/syn_misc.at:3557: \$COMPILE_ONLY -std=acu prog.cob"
25883at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:3557"
25884( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
25885) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25886at_status=$? at_failed=false
25887$at_check_filter
25888echo >>"$at_stderr"; $as_echo "prog.cob:11: error: invalid B# literal: '1111111111111111111111111111111111 ...'
25889prog.cob:11: error: literal length 65 exceeds 64 characters
25890prog.cob:12: error: invalid O# literal: '11111111111111111111111'
25891prog.cob:12: error: literal length 23 exceeds 22 characters
25892prog.cob:12: error: invalid hexadecimal literal: '11111111111111111'
25893prog.cob:12: error: literal length 17 exceeds 16 characters
25894prog.cob:12: error: invalid hexadecimal literal: '22222222222222222'
25895prog.cob:12: error: literal length 17 exceeds 16 characters
25896prog.cob:14: error: invalid B# literal: '23'
25897prog.cob:14: error: literal contains invalid character '2'
25898prog.cob:14: error: literal contains invalid character '3'
25899prog.cob:14: error: invalid O# literal: '89'
25900prog.cob:14: error: literal contains invalid character '8'
25901prog.cob:14: error: literal contains invalid character '9'
25902prog.cob:14: error: invalid X# literal: 'GG'
25903prog.cob:14: error: literal contains invalid character 'G'
25904prog.cob:14: error: literal contains invalid character 'G'
25905prog.cob:14: error: invalid H# literal: 'HH'
25906prog.cob:14: error: literal contains invalid character 'H'
25907prog.cob:14: error: literal contains invalid character 'H'
25908" | \
25909  $at_diff - "$at_stderr" || at_failed=:
25910at_fn_diff_devnull "$at_stdout" || at_failed=:
25911at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3557"
25912$at_failed && at_fn_log_failure
25913$at_traceon; }
25914
25915
25916{ set +x
25917$as_echo "$at_srcdir/syn_misc.at:3580: \$COMPILE_ONLY -std=cobol2014 prog.cob"
25918at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:3580"
25919( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
25920) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25921at_status=$? at_failed=false
25922$at_check_filter
25923echo >>"$at_stderr"; $as_echo "prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25924prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25925prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25926prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25927prog.cob:11: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25928prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25929prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25930prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25931prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25932prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25933prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25934prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
25935" | \
25936  $at_diff - "$at_stderr" || at_failed=:
25937at_fn_diff_devnull "$at_stdout" || at_failed=:
25938at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3580"
25939$at_failed && at_fn_log_failure
25940$at_traceon; }
25941
25942
25943  set +x
25944  $at_times_p && times >"$at_times_file"
25945) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25946read at_status <"$at_status_file"
25947#AT_STOP_272
25948#AT_START_273
25949at_fn_group_banner 273 'syn_misc.at:3598' \
25950  "ACUCOBOL 32bit literal size" "                    " 2
25951at_xfail=no
25952(
25953  $as_echo "273. $at_setup_line: testing $at_desc ..."
25954  $at_traceon
25955
25956# ACUCOBOL literal max - the result is system dependent on size of unsigned long int
25957$as_echo "syn_misc.at:3600" >"$at_check_line_file"
25958at_fn_check_skip 77 "$at_srcdir/syn_misc.at:3600"
25959
25960
25961
25962cat >prog.cob <<'_ATEOF'
25963
25964       IDENTIFICATION   DIVISION.
25965       PROGRAM-ID.      prog.
25966       PROCEDURE        DIVISION.
25967
25968       >>SOURCE FREE
25969           DISPLAY B#1111111111111111111111111111111111111111111111111111111111111111
25970               O#1111111111111111111111 X#1111111111111111
25971
25972           STOP RUN.
25973_ATEOF
25974
25975
25976#AT_CHECK([$COMPILE_ONLY -std=acu prog.cob], [0], [], [])
25977# TODO check the result according to COB_32_BIT_LONG --> 1 should result in the following
25978{ set +x
25979$as_echo "$at_srcdir/syn_misc.at:3618: \$COMPILE_ONLY -std=acu prog.cob"
25980at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:3618"
25981( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
25982) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25983at_status=$? at_failed=false
25984$at_check_filter
25985echo >>"$at_stderr"; $as_echo "prog.cob:7: error: invalid B# literal: '11111111111111111111111111111111111...'
25986prog.cob:7: error: literal exceeds limit 4294967295
25987prog.cob:8: error: invalid O# literal: '1111111111111111111111'
25988prog.cob:8: error: literal exceeds limit 4294967295
25989prog.cob:8: error: invalid X# literal: '1111111111111111'
25990prog.cob:8: error: literal exceeds limit 4294967295
25991" | \
25992  $at_diff - "$at_stderr" || at_failed=:
25993at_fn_diff_devnull "$at_stdout" || at_failed=:
25994at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3618"
25995$at_failed && at_fn_log_failure
25996$at_traceon; }
25997
25998  set +x
25999  $at_times_p && times >"$at_times_file"
26000) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26001read at_status <"$at_status_file"
26002#AT_STOP_273
26003#AT_START_274
26004at_fn_group_banner 274 'syn_misc.at:3629' \
26005  "ACUCOBOL USAGE FLOAT / DOUBLE" "                  " 2
26006at_xfail=no
26007(
26008  $as_echo "274. $at_setup_line: testing $at_desc ..."
26009  $at_traceon
26010
26011
26012
26013cat >prog.cob <<'_ATEOF'
26014
26015       IDENTIFICATION   DIVISION.
26016       PROGRAM-ID.      prog.
26017       DATA             DIVISION.
26018       WORKING-STORAGE SECTION.
26019       77  myfloat       usage float
26020                         value is 3.97E+24.
26021       77  mydouble      usage double
26022                         value is 3.97E+44.
26023       PROCEDURE DIVISION.
26024       MAIN.
26025      *
26026           STOP RUN.
26027_ATEOF
26028
26029
26030{ set +x
26031$as_echo "$at_srcdir/syn_misc.at:3647: \$COMPILE_ONLY -std=acu-strict prog.cob"
26032at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3647"
26033( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26034) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26035at_status=$? at_failed=false
26036$at_check_filter
26037at_fn_diff_devnull "$at_stderr" || at_failed=:
26038at_fn_diff_devnull "$at_stdout" || at_failed=:
26039at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3647"
26040$at_failed && at_fn_log_failure
26041$at_traceon; }
26042
26043{ set +x
26044$as_echo "$at_srcdir/syn_misc.at:3648: \$COMPILE_ONLY prog.cob"
26045at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3648"
26046( $at_check_trace; $COMPILE_ONLY prog.cob
26047) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26048at_status=$? at_failed=false
26049$at_check_filter
26050at_fn_diff_devnull "$at_stderr" || at_failed=:
26051at_fn_diff_devnull "$at_stdout" || at_failed=:
26052at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3648"
26053$at_failed && at_fn_log_failure
26054$at_traceon; }
26055
26056
26057{ set +x
26058$as_echo "$at_srcdir/syn_misc.at:3650: \$COMPILE_ONLY -std=mf-strict prog.cob"
26059at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:3650"
26060( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
26061) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26062at_status=$? at_failed=false
26063$at_check_filter
26064echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'float' is not defined, but is a reserved word in another dialect
26065prog.cob:8: error: 'double' is not defined, but is a reserved word in another dialect
26066" | \
26067  $at_diff - "$at_stderr" || at_failed=:
26068at_fn_diff_devnull "$at_stdout" || at_failed=:
26069at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3650"
26070$at_failed && at_fn_log_failure
26071$at_traceon; }
26072
26073
26074  set +x
26075  $at_times_p && times >"$at_times_file"
26076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26077read at_status <"$at_status_file"
26078#AT_STOP_274
26079#AT_START_275
26080at_fn_group_banner 275 'syn_misc.at:3658' \
26081  "ACUCOBOL USAGE HANDLE" "                          " 2
26082at_xfail=no
26083(
26084  $as_echo "275. $at_setup_line: testing $at_desc ..."
26085  $at_traceon
26086
26087
26088
26089# TODO: need a better test here
26090# TODO: maybe add a compiler support configuration to provide better messages
26091
26092cat >prog.cob <<'_ATEOF'
26093
26094       IDENTIFICATION   DIVISION.
26095       PROGRAM-ID.      prog.
26096       DATA             DIVISION.
26097       WORKING-STORAGE SECTION.
26098       78  listdir-open                value 1.
26099       78  listdir-next                value 2.
26100       78  listdir-close               value 3.
26101       77  pattern           pic x(5) value "*.cob".
26102       77  directory         pic x(5) value ".".
26103       77  filename          pic x(256).
26104       77  mydir             usage handle.
26105
26106       77  mythread          usage handle of thread.
26107       77  unused-thread           handle    thread.
26108
26109       77  mywindow          usage handle of window.
26110
26111       77  nor-a-handle      usage handle bananas.
26112       77  neither-a-handle  usage handle of apes.
26113       77  control-handle    usage handle of label.
26114
26115       PROCEDURE DIVISION.
26116       MAIN.
26117      * Call LISTDIR-OPEN to get a directory handle.
26118           call "C$LIST-DIRECTORY"
26119              using listdir-open, directory, pattern.
26120           move return-code to mydir.
26121      * Call LISTDIR-NEXT to get the names of the files.
26122      * Repeat this operation until a filename containing only
26123      * spaces is returned.  The filenames are not necessarily
26124      * returned in any particular order.  Filenames may be
26125      * sorted on some machines and not on others.
26126           perform thread with test after until filename = spaces
26127             handle in mywindow
26128              call "C$LIST-DIRECTORY"
26129                 using listdir-next, mydir, filename
26130           end-perform.
26131           stop thread mywindow
26132      * Call LISTDIR-CLOSE to close the directory and deallocate
26133      * memory. Omitting this call will result in memory leaks.
26134           call "C$LIST-DIRECTORY" using listdir-close, mydir.
26135      *
26136           CALL IN THREAD 'NOTHERE'
26137                HANDLE IN mywindow
26138                USING  'STUFF'
26139              NOT ON EXCEPTION  DISPLAY 'called in THREAD'
26140           END-CALL
26141      *
26142      *    Just to check that the handles are still recognized and usable:
26143           destroy neither-a-handle, control-handle
26144      *
26145      *    check for invalid use
26146           add  neither-a-handle to control-handle
26147           compute mywindow = 0
26148           string mydir delimited by size into filename
26149      *
26150           STOP RUN.
26151_ATEOF
26152
26153
26154{ set +x
26155$as_echo "$at_srcdir/syn_misc.at:3724: \$COMPILE_ONLY -std=acu-strict prog.cob"
26156at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3724"
26157( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26159at_status=$? at_failed=false
26160$at_check_filter
26161echo >>"$at_stderr"; $as_echo "prog.cob:19: error: unknown HANDLE type: bananas
26162prog.cob:20: error: unknown HANDLE type: apes
26163prog.cob:21: warning: HANDLE OF control-type is not implemented
26164prog.cob: in paragraph 'MAIN':
26165prog.cob:34: warning: THREAD is not implemented
26166prog.cob:36: warning: THREAD is not implemented
26167prog.cob:35: error: HANDLE must be either a generic or a THREAD HANDLE
26168prog.cob:39: error: HANDLE must be either a generic or a THREAD HANDLE
26169prog.cob:39: warning: STOP THREAD is replaced by STOP RUN
26170prog.cob:44: warning: THREAD is not implemented
26171prog.cob:46: warning: THREAD is not implemented
26172prog.cob:45: error: HANDLE must be either a generic or a THREAD HANDLE
26173prog.cob:51: warning: GRAPHICAL CONTROL is not implemented
26174prog.cob:54: error: HANDLE item not allowed here: 'neither-a-handle'
26175prog.cob:55: error: HANDLE item not allowed here: 'mywindow'
26176prog.cob:56: error: HANDLE item not allowed here: 'mydir'
26177" | \
26178  $at_diff - "$at_stderr" || at_failed=:
26179at_fn_diff_devnull "$at_stdout" || at_failed=:
26180at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3724"
26181$at_failed && at_fn_log_failure
26182$at_traceon; }
26183
26184
26185{ set +x
26186$as_echo "$at_srcdir/syn_misc.at:3743: \$COMPILE_ONLY -std=rm-strict prog.cob"
26187at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm-strict prog.cob" "syn_misc.at:3743"
26188( $at_check_trace; $COMPILE_ONLY -std=rm-strict prog.cob
26189) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26190at_status=$? at_failed=false
26191$at_check_filter
26192echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'handle' is not defined, but is a reserved word in another dialect
26193prog.cob:14: error: 'handle' is not defined, but is a reserved word in another dialect
26194prog.cob:15: error: syntax error, unexpected Identifier
26195prog.cob:17: error: 'handle' is not defined, but is a reserved word in another dialect
26196prog.cob:19: error: 'handle' is not defined, but is a reserved word in another dialect
26197prog.cob:20: error: 'handle' is not defined, but is a reserved word in another dialect
26198prog.cob:21: error: 'handle' is not defined, but is a reserved word in another dialect
26199prog.cob:15: error: PICTURE clause required for 'unused-thread'
26200prog.cob: in paragraph 'MAIN':
26201prog.cob:35: error: 'handle IN mywindow' is not defined
26202prog.cob:34: error: invalid expression
26203prog.cob:38: error: syntax error, unexpected END-PERFORM
26204prog.cob:39: error: 'thread' is not defined, but is a reserved word in another dialect
26205prog.cob:39: error: syntax error, unexpected Identifier
26206prog.cob:44: error: syntax error, unexpected Identifier, expecting THREAD
26207prog.cob:48: error: syntax error, unexpected END-CALL
26208prog.cob:51: error: syntax error, unexpected Identifier
26209" | \
26210  $at_diff - "$at_stderr" || at_failed=:
26211at_fn_diff_devnull "$at_stdout" || at_failed=:
26212at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3743"
26213$at_failed && at_fn_log_failure
26214$at_traceon; }
26215
26216
26217  set +x
26218  $at_times_p && times >"$at_times_file"
26219) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26220read at_status <"$at_status_file"
26221#AT_STOP_275
26222#AT_START_276
26223at_fn_group_banner 276 'syn_misc.at:3766' \
26224  "ACUCOBOL WINDOW statements" "                     " 2
26225at_xfail=no
26226(
26227  $as_echo "276. $at_setup_line: testing $at_desc ..."
26228  $at_traceon
26229
26230
26231
26232# TODO: need a better tests when we implement this,
26233#       likely split into multiple ones
26234
26235cat >prog.cob <<'_ATEOF'
26236
26237       IDENTIFICATION   DIVISION.
26238       PROGRAM-ID.      prog.
26239       DATA             DIVISION.
26240       WORKING-STORAGE SECTION.
26241       77  myhandle      usage handle.
26242       77  mythread      usage handle of thread.
26243       77  WINDOW-HANDLE usage handle of window.
26244       PROCEDURE DIVISION.
26245       MAIN.
26246           DISPLAY WINDOW, LINE 1, COLUMN 29, SIZE 51, LINES 12,
26247               ERASE SCREEN BOXED SHADOW, POP-UP AREA IS WINDOW-HANDLE
26248           END-DISPLAY
26249           DISPLAY "THIS IS TEXT IN A WINDOW"
26250           DISPLAY FLOATING WINDOW UPON WINDOW-HANDLE,
26251               LINE 5, COLUMN 10, SIZE 20, LINES 2,
26252               ERASE SCREEN, POP-UP AREA IS myhandle
26253           END-DISPLAY
26254           DISPLAY "Some text for the floating window"
26255           ACCEPT OMITTED
26256           CLOSE WINDOW myhandle
26257           DISPLAY FLOATING WINDOW,
26258               LINE 5, COLUMN 10, SIZE 20, LINES 2,
26259               ERASE SCREEN, POP-UP AREA mythread
26260           END-DISPLAY
26261           ACCEPT OMITTED
26262           DESTROY WINDOW-HANDLE
26263           DISPLAY WINDOW AT 1020 SIZE 36 LINES 15 BOXED
26264              FOREGROUND-COLOR IS 7
26265              BACKGROUND-COLOR IS 0
26266              TOP CENTERED TITLE IS 'SOME TITLE'
26267              pop-up area = WINDOW-HANDLE.
26268           DISPLAY SUBWINDOW UPON WINDOW-HANDLE SHADOW
26269              AT 0505 SIZE 25 LINES 10
26270              BOTTOM LEFT TITLE = 'buttom left'
26271              BACKGROUND-COLOR IS 10
26272              FOREGROUND-COLOR IS 5.
26273           DISPLAY WINDOW UPON WINDOW-HANDLE SHADOW
26274              AT 0808 SIZE 18 LINES 5
26275              RIGHT TITLE 'top right'
26276              BACKGROUND-COLOR 1
26277              FOREGROUND-COLOR 14.
26278           ACCEPT OMITTED
26279           DESTROY WINDOW-HANDLE
26280      *
26281           STOP RUN.
26282_ATEOF
26283
26284
26285{ set +x
26286$as_echo "$at_srcdir/syn_misc.at:3820: \$COMPILE_ONLY -std=acu-strict prog.cob"
26287at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3820"
26288( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26289) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26290at_status=$? at_failed=false
26291$at_check_filter
26292echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
26293prog.cob:11: warning: GRAPHICAL WINDOW is not implemented
26294prog.cob:15: warning: GRAPHICAL WINDOW is not implemented
26295prog.cob:21: warning: GRAPHICAL WINDOW is not implemented
26296prog.cob:22: warning: GRAPHICAL WINDOW is not implemented
26297prog.cob:24: error: HANDLE must be either a generic or a WINDOW HANDLE or X(10)
26298prog.cob:27: warning: GRAPHICAL CONTROL is not implemented
26299prog.cob:28: warning: GRAPHICAL WINDOW is not implemented
26300prog.cob:33: warning: GRAPHICAL WINDOW is not implemented
26301prog.cob:38: warning: GRAPHICAL WINDOW is not implemented
26302prog.cob:44: warning: GRAPHICAL CONTROL is not implemented
26303" | \
26304  $at_diff - "$at_stderr" || at_failed=:
26305at_fn_diff_devnull "$at_stdout" || at_failed=:
26306at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3820"
26307$at_failed && at_fn_log_failure
26308$at_traceon; }
26309
26310
26311{ set +x
26312$as_echo "$at_srcdir/syn_misc.at:3834: \$COMPILE_ONLY prog.cob"
26313at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3834"
26314( $at_check_trace; $COMPILE_ONLY prog.cob
26315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26316at_status=$? at_failed=false
26317$at_check_filter
26318echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
26319prog.cob:11: warning: GRAPHICAL WINDOW is not implemented
26320prog.cob:15: warning: GRAPHICAL WINDOW is not implemented
26321prog.cob:21: warning: GRAPHICAL WINDOW is not implemented
26322prog.cob:22: warning: GRAPHICAL WINDOW is not implemented
26323prog.cob:24: error: HANDLE must be either a generic or a WINDOW HANDLE or X(10)
26324prog.cob:27: warning: GRAPHICAL CONTROL is not implemented
26325prog.cob:28: warning: GRAPHICAL WINDOW is not implemented
26326prog.cob:33: warning: GRAPHICAL WINDOW is not implemented
26327prog.cob:38: warning: GRAPHICAL WINDOW is not implemented
26328prog.cob:44: warning: GRAPHICAL CONTROL is not implemented
26329" | \
26330  $at_diff - "$at_stderr" || at_failed=:
26331at_fn_diff_devnull "$at_stdout" || at_failed=:
26332at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3834"
26333$at_failed && at_fn_log_failure
26334$at_traceon; }
26335
26336
26337  set +x
26338  $at_times_p && times >"$at_times_file"
26339) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26340read at_status <"$at_status_file"
26341#AT_STOP_276
26342#AT_START_277
26343at_fn_group_banner 277 'syn_misc.at:3851' \
26344  "ACUCOBOL GRAPHICAL controls" "                    " 2
26345at_xfail=no
26346(
26347  $as_echo "277. $at_setup_line: testing $at_desc ..."
26348  $at_traceon
26349
26350
26351
26352# TODO: need a better tests when we implement this,
26353#       likely split into multiple ones
26354
26355cat >prog.cob <<'_ATEOF'
26356
26357       IDENTIFICATION   DIVISION.
26358       PROGRAM-ID.      prog.
26359       DATA             DIVISION.
26360       WORKING-STORAGE SECTION.
26361       77  window-handle USAGE HANDLE OF WINDOW.
26362       77  lb-row        PIC X(10).
26363       77  lb-color      PIC 9(05) VALUE 8192.
26364       77  lb-num-lines  PIC 9(02) VALUE 20.
26365       77  lb-num-rows   PIC 9(02) VALUE 11.
26366       77  window-lines  PIC 9(02) VALUE 22.
26367       77  window-rows   PIC 9(02) VALUE 13.
26368       77  selection-idx PIC S9(02).
26369       SCREEN SECTION.
26370       01 lb-screen.
26371           03 lb-frm LIST-BOX 3-D
26372      *             FIXME: the following should be possible in any order
26373                    UNSORTED
26374                    EXCEPTION-VALUE = 13
26375                    COLOR lb-color
26376                    CLINE 1 CCOL 1
26377                    LINES = lb-num-lines
26378                    SIZE  IS lb-num-rows
26379      *             VALUE lb-row  raises error as no identifer according
26380      *                           to cobol2002, but here it is fine
26381                    .
26382       PROCEDURE DIVISION.
26383       MAIN.
26384           MODIFY lb-frm ITEM-TO-ADD = 'Row 1'
26385           MODIFY lb-frm ITEM-TO-ADD = 'Row 2'
26386           MODIFY lb-frm ITEM-TO-ADD = 'Row 3'
26387           MODIFY lb-frm ITEM-TO-ADD = 'Row 4'
26388           MODIFY lb-frm ITEM-TO-ADD = 'Row 5'
26389           MODIFY lb-frm ITEM-TO-ADD = 'Row 6'
26390           MODIFY lb-frm ITEM-TO-ADD = 'Row 7'
26391           DISPLAY FLOATING WINDOW
26392               LINE 5 COL 5
26393               LINES window-lines
26394               SIZE  window-rows
26395               BOXED
26396               COLOR lb-color
26397               HANDLE IS window-handle
26398           END-DISPLAY
26399           DISPLAY lb-screen
26400           ACCEPT  lb-screen
26401           IF lb-row = SPACES
26402              INQUIRE lb-frm SELECTION-INDEX IN selection-idx
26403              IF selection-idx > ZERO
26404                 MODIFY  lb-frm QUERY-INDEX = selection-idx
26405                 INQUIRE lb-frm ITEM-VALUE IN lb-row
26406              END-IF
26407           END-IF
26408           CLOSE WINDOW window-handle
26409           DISPLAY "chosen row value was '" lb-row "'"
26410           ACCEPT OMITTED
26411      *
26412           STOP RUN.
26413_ATEOF
26414
26415
26416{ set +x
26417$as_echo "$at_srcdir/syn_misc.at:3916: \$COMPILE_ONLY -std=acu-strict prog.cob"
26418at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3916"
26419( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26420) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26421at_status=$? at_failed=false
26422$at_check_filter
26423echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: GRAPHICAL CONTROL is not implemented
26424prog.cob:21: warning: COLOR clause is not implemented
26425prog.cob:23: warning: LINES clause is not implemented
26426prog.cob:26: warning: screen positions from data-item is not implemented
26427prog.cob: in paragraph 'MAIN':
26428prog.cob:36: warning: GRAPHICAL WINDOW is not implemented
26429prog.cob:42: warning: COLOR is not implemented
26430prog.cob:53: warning: GRAPHICAL WINDOW is not implemented
26431" | \
26432  $at_diff - "$at_stderr" || at_failed=:
26433at_fn_diff_devnull "$at_stdout" || at_failed=:
26434at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3916"
26435$at_failed && at_fn_log_failure
26436$at_traceon; }
26437
26438
26439  set +x
26440  $at_times_p && times >"$at_times_file"
26441) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26442read at_status <"$at_status_file"
26443#AT_STOP_277
26444#AT_START_278
26445at_fn_group_banner 278 'syn_misc.at:3930' \
26446  "DISPLAY MESSAGE BOX" "                            " 2
26447at_xfail=no
26448(
26449  $as_echo "278. $at_setup_line: testing $at_desc ..."
26450  $at_traceon
26451
26452
26453
26454cat >prog.cob <<'_ATEOF'
26455
26456       IDENTIFICATION   DIVISION.
26457       PROGRAM-ID.      prog.
26458       DATA             DIVISION.
26459       WORKING-STORAGE SECTION.
26460       77  my-text             pic x(10) value "TEXT".
26461       78  MB-OK               VALUE 1.
26462       78  MB-YES-NO           VALUE 2.
26463       78  MB-OK-CANCEL        VALUE 3.
26464       78  MB-YES-NO-CANCEL    VALUE 4.
26465       78  MB-YES              VALUE 1.
26466       78  MB-NO               VALUE 2.
26467       78  MB-CANCEL           VALUE 3.
26468       78  MB-DEFAULT-ICON     VALUE 1.
26469       78  MB-WARNING-ICON     VALUE 2.
26470       78  MB-ERROR-ICON       VALUE 3.
26471       PROCEDURE DIVISION.
26472           DISPLAY MESSAGE "Important"
26473                   TITLE "Very important"
26474                   TYPE = MB-OK
26475                   ICON IS MB-WARNING-ICON
26476           DISPLAY MESSAGE "This is" space "my" space my-text
26477           DISPLAY MESSAGE BOX "More messages?"
26478                   TYPE  MB-YES-NO
26479                   TITLE = "box title"
26480                   DEFAULT IS MB-YES
26481                   RETURNING RETURN-CODE
26482      *
26483           STOP RUN.
26484_ATEOF
26485
26486
26487{ set +x
26488$as_echo "$at_srcdir/syn_misc.at:3964: \$COMPILE_ONLY -std=acu-strict prog.cob"
26489at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3964"
26490( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26491) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26492at_status=$? at_failed=false
26493$at_check_filter
26494echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
26495prog.cob:22: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
26496prog.cob:23: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
26497" | \
26498  $at_diff - "$at_stderr" || at_failed=:
26499at_fn_diff_devnull "$at_stdout" || at_failed=:
26500at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3964"
26501$at_failed && at_fn_log_failure
26502$at_traceon; }
26503
26504
26505  set +x
26506  $at_times_p && times >"$at_times_file"
26507) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26508read at_status <"$at_status_file"
26509#AT_STOP_278
26510#AT_START_279
26511at_fn_group_banner 279 'syn_misc.at:3973' \
26512  "DISPLAY OMITTED" "                                " 2
26513at_xfail=no
26514(
26515  $as_echo "279. $at_setup_line: testing $at_desc ..."
26516  $at_traceon
26517
26518
26519
26520cat >prog.cob <<'_ATEOF'
26521
26522       IDENTIFICATION   DIVISION.
26523       PROGRAM-ID.      prog.
26524       PROCEDURE DIVISION.
26525           DISPLAY OMITTED WITH BELL
26526           DISPLAY OMITTED LINE 10 COL 15 ERASE EOL
26527      *
26528           STOP RUN.
26529_ATEOF
26530
26531
26532{ set +x
26533$as_echo "$at_srcdir/syn_misc.at:3986: \$COMPILE_ONLY prog.cob"
26534at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3986"
26535( $at_check_trace; $COMPILE_ONLY prog.cob
26536) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26537at_status=$? at_failed=false
26538$at_check_filter
26539echo >>"$at_stderr"; $as_echo "prog.cob:5: warning: handling of DISPLAY OMITTED is unfinished; implementation is likely to be changed
26540prog.cob:6: warning: handling of DISPLAY OMITTED is unfinished; implementation is likely to be changed
26541" | \
26542  $at_diff - "$at_stderr" || at_failed=:
26543at_fn_diff_devnull "$at_stdout" || at_failed=:
26544at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3986"
26545$at_failed && at_fn_log_failure
26546$at_traceon; }
26547
26548
26549  set +x
26550  $at_times_p && times >"$at_times_file"
26551) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26552read at_status <"$at_status_file"
26553#AT_STOP_279
26554#AT_START_280
26555at_fn_group_banner 280 'syn_misc.at:3994' \
26556  "CGI: EXTERNAL-FORM" "                             " 2
26557at_xfail=no
26558(
26559  $as_echo "280. $at_setup_line: testing $at_desc ..."
26560  $at_traceon
26561
26562
26563
26564# TODO: need a better tests when we implement this,
26565#       likely split into multiple ones
26566
26567cat >prog.cob <<'_ATEOF'
26568
26569       IDENTIFICATION   DIVISION.
26570       PROGRAM-ID.      prog.
26571       DATA             DIVISION.
26572       WORKING-STORAGE SECTION.
26573       01  GNUCOBOL-URL IS EXTERNAL-FORM
26574                IDENTIFIED BY "http://www.gnu.org/software/gnucobol/".
26575       01  WEB-PAGE-1 EXTERNAL-FORM,
26576                IDENTIFIED "cgipage1".
26577       01  SIMPLE-FORM IS EXTERNAL-FORM.
26578           03  SIMPLE-FORM-VAR1  PIC X(10).
26579           03  SIMPLE-FORM-VAR2  PIC 9(5).
26580       01  MY-FORM EXTERNAL-FORM.
26581           03  CGI-VAR1 PIC X(20) IDENTIFIED "Name".
26582           03  CGI-VAR2 PIC X(50) IDENTIFIED BY CGI-VAR1.
26583
26584       PROCEDURE DIVISION.
26585       MAIN.
26586      *>   CGI display of static content (full URL)
26587           DISPLAY GNUCOBOL-URL
26588      *>   CGI display of static content (current URL + "cgipage1" + ".html")
26589           DISPLAY WEB-PAGE-1
26590      *>   CGI display of output form
26591           DISPLAY MY-FORM
26592      *>   CGI display of input  form (docs say: used for debugging purposes)
26593           DISPLAY SIMPLE-FORM
26594      *>   CGI accept
26595           ACCEPT SIMPLE-FORM
26596      *>   normal accept
26597           ACCEPT SIMPLE-FORM-VAR1
26598      *>   CGI accept with first var (with cgi identifier Name)
26599      *>   setting the cgi identifier of the second
26600           ACCEPT MY-FORM
26601      *
26602           STOP RUN.
26603_ATEOF
26604
26605
26606{ set +x
26607$as_echo "$at_srcdir/syn_misc.at:4037: \$COMPILE_ONLY -std=acu-strict prog.cob"
26608at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:4037"
26609( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
26610) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26611at_status=$? at_failed=false
26612$at_check_filter
26613echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: EXTERNAL-FORM is not implemented
26614prog.cob:8: warning: EXTERNAL-FORM is not implemented
26615prog.cob:10: warning: EXTERNAL-FORM is not implemented
26616prog.cob:13: warning: EXTERNAL-FORM is not implemented
26617prog.cob:14: warning: EXTERNAL-FORM (IDENTIFIED BY) is not implemented
26618prog.cob:15: warning: EXTERNAL-FORM (IDENTIFIED BY) is not implemented
26619" | \
26620  $at_diff - "$at_stderr" || at_failed=:
26621at_fn_diff_devnull "$at_stdout" || at_failed=:
26622at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4037"
26623$at_failed && at_fn_log_failure
26624$at_traceon; }
26625
26626
26627  set +x
26628  $at_times_p && times >"$at_times_file"
26629) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26630read at_status <"$at_status_file"
26631#AT_STOP_280
26632#AT_START_281
26633at_fn_group_banner 281 'syn_misc.at:4049' \
26634  "adding/removing reserved words" "                 " 2
26635at_xfail=no
26636(
26637  $as_echo "281. $at_setup_line: testing $at_desc ..."
26638  $at_traceon
26639
26640
26641
26642cat >prog.cob <<'_ATEOF'
26643
26644       IDENTIFICATION  DIVISION.
26645       PROGRAM-ID.     prog.
26646
26647       DATA            DIVISION.
26648       WORKING-STORAGE SECTION.
26649       01  hello       PIC X.
26650       01  foo         PIC X.
26651       01  bars        PIC X.
26652       01  file        PIC X.
26653       01  background-color PIC X.
26654
26655       PROCEDURE       DIVISION.
26656           CONTINUE
26657           .
26658_ATEOF
26659
26660
26661{ set +x
26662$as_echo "$at_srcdir/syn_misc.at:4069: \$COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file prog.cob"
26663at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file prog.cob" "syn_misc.at:4069"
26664( $at_check_trace; $COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file prog.cob
26665) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26666at_status=$? at_failed=false
26667$at_check_filter
26668echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'hello' is a reserved word, but isn't supported
26669prog.cob:8: error: 'foo' is a reserved word, but isn't supported
26670prog.cob:9: error: 'bars' is a reserved word, but isn't supported
26671prog.cob:11: error: syntax error, unexpected BACKGROUND-COLOR
26672" | \
26673  $at_diff - "$at_stderr" || at_failed=:
26674at_fn_diff_devnull "$at_stdout" || at_failed=:
26675at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4069"
26676$at_failed && at_fn_log_failure
26677$at_traceon; }
26678
26679{ set +x
26680$as_echo "$at_srcdir/syn_misc.at:4075: \$COMPILE_ONLY -fnot-reserved=file prog.cob"
26681at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=file prog.cob" "syn_misc.at:4075"
26682( $at_check_trace; $COMPILE_ONLY -fnot-reserved=file prog.cob
26683) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26684at_status=$? at_failed=false
26685$at_check_filter
26686at_fn_diff_devnull "$at_stderr" || at_failed=:
26687at_fn_diff_devnull "$at_stdout" || at_failed=:
26688at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4075"
26689$at_failed && at_fn_log_failure
26690$at_traceon; }
26691
26692  set +x
26693  $at_times_p && times >"$at_times_file"
26694) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26695read at_status <"$at_status_file"
26696#AT_STOP_281
26697#AT_START_282
26698at_fn_group_banner 282 'syn_misc.at:4079' \
26699  "adding aliases" "                                 " 2
26700at_xfail=no
26701(
26702  $as_echo "282. $at_setup_line: testing $at_desc ..."
26703  $at_traceon
26704
26705
26706
26707cat >prog.cob <<'_ATEOF'
26708
26709       IDENTIFICATION DIVISION.
26710       PROGRAM-ID.  prog.
26711
26712       PROCEDURE DIVISION.
26713           FOO "Hello, world!"
26714           .
26715_ATEOF
26716
26717
26718# FIXME: user defined words need to store a reference to the name originally defining the word
26719#        otherwise we can't help the user to know where the error came from
26720#        (command line is only a special case, but even then it may be wrapped and not visible
26721#        to the user)
26722#AT_CHECK([$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob], [1], [],
26723#[configuration warning: -freserved=FOO=DISPLAY*: ignored asterisk at end of alias target
26724#configuration error:
26725#-freserved=BARS:FOO: alias target 'FOO' is not a default reserved word
26726#])
26727
26728{ set +x
26729$as_echo "$at_srcdir/syn_misc.at:4101: \$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob"
26730at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob" "syn_misc.at:4101"
26731( $at_check_trace; $COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob
26732) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26733at_status=$? at_failed=false
26734$at_check_filter
26735echo >>"$at_stderr"; $as_echo "configuration warning: -freserved=FOO=DISPLAY*: ignored asterisk at end of alias target
26736configuration error:
26737alias target 'FOO' is not a default reserved word
26738" | \
26739  $at_diff - "$at_stderr" || at_failed=:
26740at_fn_diff_devnull "$at_stdout" || at_failed=:
26741at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4101"
26742$at_failed && at_fn_log_failure
26743$at_traceon; }
26744
26745
26746{ set +x
26747$as_echo "$at_srcdir/syn_misc.at:4107: \$COMPILE_ONLY -freserved=FOO=DISPLAY prog.cob"
26748at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO=DISPLAY prog.cob" "syn_misc.at:4107"
26749( $at_check_trace; $COMPILE_ONLY -freserved=FOO=DISPLAY prog.cob
26750) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26751at_status=$? at_failed=false
26752$at_check_filter
26753at_fn_diff_devnull "$at_stderr" || at_failed=:
26754at_fn_diff_devnull "$at_stdout" || at_failed=:
26755at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4107"
26756$at_failed && at_fn_log_failure
26757$at_traceon; }
26758
26759{ set +x
26760$as_echo "$at_srcdir/syn_misc.at:4108: \$COMPILE_ONLY -freserved=FOO:DISPLAY prog.cob"
26761at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO:DISPLAY prog.cob" "syn_misc.at:4108"
26762( $at_check_trace; $COMPILE_ONLY -freserved=FOO:DISPLAY prog.cob
26763) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26764at_status=$? at_failed=false
26765$at_check_filter
26766at_fn_diff_devnull "$at_stderr" || at_failed=:
26767at_fn_diff_devnull "$at_stdout" || at_failed=:
26768at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4108"
26769$at_failed && at_fn_log_failure
26770$at_traceon; }
26771
26772{ set +x
26773$as_echo "$at_srcdir/syn_misc.at:4109: \$COMPILE_ONLY -freserved=\" FOO = DISPLAY  \" prog.cob"
26774at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=\" FOO = DISPLAY  \" prog.cob" "syn_misc.at:4109"
26775( $at_check_trace; $COMPILE_ONLY -freserved=" FOO = DISPLAY  " prog.cob
26776) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26777at_status=$? at_failed=false
26778$at_check_filter
26779at_fn_diff_devnull "$at_stderr" || at_failed=:
26780at_fn_diff_devnull "$at_stdout" || at_failed=:
26781at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4109"
26782$at_failed && at_fn_log_failure
26783$at_traceon; }
26784
26785  set +x
26786  $at_times_p && times >"$at_times_file"
26787) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26788read at_status <"$at_status_file"
26789#AT_STOP_282
26790#AT_START_283
26791at_fn_group_banner 283 'syn_misc.at:4113' \
26792  "overriding default words" "                       " 2
26793at_xfail=no
26794(
26795  $as_echo "283. $at_setup_line: testing $at_desc ..."
26796  $at_traceon
26797
26798
26799
26800cat >prog.cob <<'_ATEOF'
26801
26802       IDENTIFICATION DIVISION.
26803       PROGRAM-ID.  prog.
26804
26805       PROCEDURE DIVISION.
26806           COMP-1 "Hello, world!"
26807           DISPLAY "Hello, world!".
26808_ATEOF
26809
26810
26811{ set +x
26812$as_echo "$at_srcdir/syn_misc.at:4125: \$COMPILE_ONLY -freserved=COMP-1=DISPLAY prog.cob"
26813at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=COMP-1=DISPLAY prog.cob" "syn_misc.at:4125"
26814( $at_check_trace; $COMPILE_ONLY -freserved=COMP-1=DISPLAY prog.cob
26815) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26816at_status=$? at_failed=false
26817$at_check_filter
26818at_fn_diff_devnull "$at_stderr" || at_failed=:
26819at_fn_diff_devnull "$at_stdout" || at_failed=:
26820at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4125"
26821$at_failed && at_fn_log_failure
26822$at_traceon; }
26823
26824
26825cat >prog2.cob <<'_ATEOF'
26826
26827       IDENTIFICATION DIVISION.
26828       PROGRAM-ID.  prog2.
26829
26830       PROCEDURE DIVISION.
26831           COMP-1 "Hello, world!".
26832           DISPLAY "Hello, world!".
26833_ATEOF
26834
26835
26836{ set +x
26837$as_echo "$at_srcdir/syn_misc.at:4136: \$COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob"
26838at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob" "syn_misc.at:4136"
26839( $at_check_trace; $COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob
26840) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26841at_status=$? at_failed=false
26842$at_check_filter
26843echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: unknown statement 'DISPLAY'; it may exist in another dialect
26844" | \
26845  $at_diff - "$at_stderr" || at_failed=:
26846at_fn_diff_devnull "$at_stdout" || at_failed=:
26847at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4136"
26848$at_failed && at_fn_log_failure
26849$at_traceon; }
26850
26851
26852  set +x
26853  $at_times_p && times >"$at_times_file"
26854) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26855read at_status <"$at_status_file"
26856#AT_STOP_283
26857#AT_START_284
26858at_fn_group_banner 284 'syn_misc.at:4143' \
26859  "complete specified word list" "                   " 2
26860at_xfail=no
26861(
26862  $as_echo "284. $at_setup_line: testing $at_desc ..."
26863  $at_traceon
26864
26865
26866
26867cat >prog.cob <<'_ATEOF'
26868
26869       IDENTIFICATION   DIVISION.
26870       PROGRAM-ID.  prog.
26871       DATA             DIVISION.
26872       WORKING-STORAGE  SECTION.
26873       01  SQLCA.
26874           03  SQLCABC         USAGE BINARY-LONG VALUE 136.
26875_ATEOF
26876
26877
26878{ set +x
26879$as_echo "$at_srcdir/syn_misc.at:4155: \$COMPILE_ONLY -std=ibm-strict prog.cob"
26880at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "syn_misc.at:4155"
26881( $at_check_trace; $COMPILE_ONLY -std=ibm-strict prog.cob
26882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26883at_status=$? at_failed=false
26884$at_check_filter
26885echo >>"$at_stderr"; $as_echo "prog.cob:7: error: 'BINARY-LONG' is not defined, but is a reserved word in another dialect
26886" | \
26887  $at_diff - "$at_stderr" || at_failed=:
26888at_fn_diff_devnull "$at_stdout" || at_failed=:
26889at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4155"
26890$at_failed && at_fn_log_failure
26891$at_traceon; }
26892
26893{ set +x
26894$as_echo "$at_srcdir/syn_misc.at:4158: \$COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG prog.cob"
26895at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG prog.cob" "syn_misc.at:4158"
26896( $at_check_trace; $COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG prog.cob
26897) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26898at_status=$? at_failed=false
26899$at_check_filter
26900at_fn_diff_devnull "$at_stderr" || at_failed=:
26901at_fn_diff_devnull "$at_stdout" || at_failed=:
26902at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4158"
26903$at_failed && at_fn_log_failure
26904$at_traceon; }
26905
26906{ set +x
26907$as_echo "$at_srcdir/syn_misc.at:4159: \$COMPILE_ONLY -std=ibm prog.cob"
26908at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:4159"
26909( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
26910) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26911at_status=$? at_failed=false
26912$at_check_filter
26913at_fn_diff_devnull "$at_stderr" || at_failed=:
26914at_fn_diff_devnull "$at_stdout" || at_failed=:
26915at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4159"
26916$at_failed && at_fn_log_failure
26917$at_traceon; }
26918
26919  set +x
26920  $at_times_p && times >"$at_times_file"
26921) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26922read at_status <"$at_status_file"
26923#AT_STOP_284
26924#AT_START_285
26925at_fn_group_banner 285 'syn_misc.at:4163' \
26926  "ANY LENGTH item as formal parameter" "            " 2
26927at_xfail=no
26928(
26929  $as_echo "285. $at_setup_line: testing $at_desc ..."
26930  $at_traceon
26931
26932
26933
26934cat >prog.cob <<'_ATEOF'
26935
26936       IDENTIFICATION DIVISION.
26937       PROGRAM-ID.    prog.
26938
26939       DATA           DIVISION.
26940       LINKAGE        SECTION.
26941       01  str        ANY LENGTH PIC X.
26942
26943       PROCEDURE DIVISION USING str.
26944           GOBACK
26945           .
26946_ATEOF
26947
26948
26949cat >prog2.cob <<'_ATEOF'
26950
26951       IDENTIFICATION DIVISION.
26952       PROGRAM-ID.    prog2.
26953
26954       DATA           DIVISION.
26955       LINKAGE        SECTION.
26956       01  str        ANY LENGTH PIC X.
26957
26958       PROCEDURE DIVISION.
26959           GOBACK
26960           .
26961_ATEOF
26962
26963{ set +x
26964$as_echo "$at_srcdir/syn_misc.at:4191: \$COMPILE_ONLY prog.cob"
26965at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4191"
26966( $at_check_trace; $COMPILE_ONLY prog.cob
26967) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26968at_status=$? at_failed=false
26969$at_check_filter
26970at_fn_diff_devnull "$at_stderr" || at_failed=:
26971at_fn_diff_devnull "$at_stdout" || at_failed=:
26972at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4191"
26973$at_failed && at_fn_log_failure
26974$at_traceon; }
26975
26976{ set +x
26977$as_echo "$at_srcdir/syn_misc.at:4192: \$COMPILE_ONLY prog2.cob"
26978at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4192"
26979( $at_check_trace; $COMPILE_ONLY prog2.cob
26980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26981at_status=$? at_failed=false
26982$at_check_filter
26983echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: 'str' ANY LENGTH item must be a formal parameter
26984" | \
26985  $at_diff - "$at_stderr" || at_failed=:
26986at_fn_diff_devnull "$at_stdout" || at_failed=:
26987at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4192"
26988$at_failed && at_fn_log_failure
26989$at_traceon; }
26990
26991  set +x
26992  $at_times_p && times >"$at_times_file"
26993) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26994read at_status <"$at_status_file"
26995#AT_STOP_285
26996#AT_START_286
26997at_fn_group_banner 286 'syn_misc.at:4198' \
26998  "ANY LENGTH item as BY VALUE formal parameter" "   " 2
26999at_xfail=no
27000(
27001  $as_echo "286. $at_setup_line: testing $at_desc ..."
27002  $at_traceon
27003
27004
27005
27006cat >prog.cob <<'_ATEOF'
27007
27008       IDENTIFICATION DIVISION.
27009       PROGRAM-ID.    prog.
27010
27011       DATA           DIVISION.
27012       LINKAGE        SECTION.
27013       01  str        ANY LENGTH PIC X.
27014
27015       PROCEDURE DIVISION USING VALUE str.
27016           GOBACK
27017           .
27018_ATEOF
27019
27020
27021{ set +x
27022$as_echo "$at_srcdir/syn_misc.at:4214: \$COMPILE_ONLY prog.cob"
27023at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4214"
27024( $at_check_trace; $COMPILE_ONLY prog.cob
27025) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27026at_status=$? at_failed=false
27027$at_check_filter
27028echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
27029prog.cob:9: error: ANY LENGTH items may only be BY REFERENCE formal parameters
27030" | \
27031  $at_diff - "$at_stderr" || at_failed=:
27032at_fn_diff_devnull "$at_stdout" || at_failed=:
27033at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4214"
27034$at_failed && at_fn_log_failure
27035$at_traceon; }
27036
27037  set +x
27038  $at_times_p && times >"$at_times_file"
27039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27040read at_status <"$at_status_file"
27041#AT_STOP_286
27042#AT_START_287
27043at_fn_group_banner 287 'syn_misc.at:4221' \
27044  "swapped SOURCE- and OBJECT-COMPUTER" "            " 2
27045at_xfail=no
27046(
27047  $as_echo "287. $at_setup_line: testing $at_desc ..."
27048  $at_traceon
27049
27050
27051
27052cat >prog.cob <<'_ATEOF'
27053
27054       IDENTIFICATION DIVISION.
27055       PROGRAM-ID.    prog.
27056
27057       ENVIRONMENT    DIVISION.
27058       CONFIGURATION  SECTION.
27059       OBJECT-COMPUTER. a.
27060       SOURCE-COMPUTER. b.
27061_ATEOF
27062
27063
27064# MF extension, supported by GnuCOBOL
27065{ set +x
27066$as_echo "$at_srcdir/syn_misc.at:4235: \$COMPILE_ONLY prog.cob"
27067at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4235"
27068( $at_check_trace; $COMPILE_ONLY prog.cob
27069) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27070at_status=$? at_failed=false
27071$at_check_filter
27072at_fn_diff_devnull "$at_stderr" || at_failed=:
27073at_fn_diff_devnull "$at_stdout" || at_failed=:
27074at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4235"
27075$at_failed && at_fn_log_failure
27076$at_traceon; }
27077
27078# note: testing with lax configuration, otherwise there would be an error
27079{ set +x
27080$as_echo "$at_srcdir/syn_misc.at:4237: \$COMPILE_ONLY -std=acu prog.cob"
27081at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:4237"
27082( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
27083) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27084at_status=$? at_failed=false
27085$at_check_filter
27086echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: SOURCE-COMPUTER incorrectly after OBJECT-COMPUTER used
27087" | \
27088  $at_diff - "$at_stderr" || at_failed=:
27089at_fn_diff_devnull "$at_stdout" || at_failed=:
27090at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4237"
27091$at_failed && at_fn_log_failure
27092$at_traceon; }
27093
27094  set +x
27095  $at_times_p && times >"$at_times_file"
27096) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27097read at_status <"$at_status_file"
27098#AT_STOP_287
27099#AT_START_288
27100at_fn_group_banner 288 'syn_misc.at:4243' \
27101  "CONF. SECTION paragraphs in wrong order" "        " 2
27102at_xfail=no
27103(
27104  $as_echo "288. $at_setup_line: testing $at_desc ..."
27105  $at_traceon
27106
27107
27108
27109cat >prog.cob <<'_ATEOF'
27110
27111       IDENTIFICATION DIVISION.
27112       PROGRAM-ID.    prog.
27113
27114       ENVIRONMENT    DIVISION.
27115       CONFIGURATION  SECTION.
27116       REPOSITORY.
27117       SOURCE-COMPUTER. b.
27118       OBJECT-COMPUTER. a.
27119       SPECIAL-NAMES.
27120
27121       END PROGRAM prog.
27122
27123       IDENTIFICATION DIVISION.
27124       PROGRAM-ID.    prog2.
27125
27126       ENVIRONMENT    DIVISION.
27127       CONFIGURATION  SECTION.
27128       SOURCE-COMPUTER. b.
27129       OBJECT-COMPUTER. a.
27130       REPOSITORY.
27131       SPECIAL-NAMES.
27132
27133       END PROGRAM prog2.
27134
27135       IDENTIFICATION DIVISION.
27136       PROGRAM-ID.    prog3.
27137
27138       ENVIRONMENT    DIVISION.
27139       CONFIGURATION  SECTION.
27140       REPOSITORY.
27141       SOURCE-COMPUTER. b.
27142       OBJECT-COMPUTER. a.
27143
27144       END PROGRAM prog3.
27145
27146       IDENTIFICATION DIVISION.
27147       PROGRAM-ID.    prog4.
27148
27149       ENVIRONMENT    DIVISION.
27150       CONFIGURATION  SECTION.
27151       REPOSITORY.
27152       SPECIAL-NAMES.
27153       SOURCE-COMPUTER. b.
27154       OBJECT-COMPUTER. a.
27155
27156       END PROGRAM prog4.
27157_ATEOF
27158
27159
27160# MF extension, supported by GnuCOBOL
27161{ set +x
27162$as_echo "$at_srcdir/syn_misc.at:4296: \$COMPILE_ONLY prog.cob"
27163at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4296"
27164( $at_check_trace; $COMPILE_ONLY prog.cob
27165) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27166at_status=$? at_failed=false
27167$at_check_filter
27168at_fn_diff_devnull "$at_stderr" || at_failed=:
27169at_fn_diff_devnull "$at_stdout" || at_failed=:
27170at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4296"
27171$at_failed && at_fn_log_failure
27172$at_traceon; }
27173
27174# note: testing with lax configuration, otherwise there would be an error
27175{ set +x
27176$as_echo "$at_srcdir/syn_misc.at:4298: \$COMPILE_ONLY -std=acu prog.cob"
27177at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:4298"
27178( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
27179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27180at_status=$? at_failed=false
27181$at_check_filter
27182echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: SOURCE-COMPUTER incorrectly after REPOSITORY used
27183prog.cob:22: warning: SPECIAL-NAMES incorrectly after REPOSITORY used
27184prog.cob:32: warning: SOURCE-COMPUTER incorrectly after REPOSITORY used
27185prog.cob:43: warning: SPECIAL-NAMES incorrectly after REPOSITORY used
27186prog.cob:44: warning: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
27187" | \
27188  $at_diff - "$at_stderr" || at_failed=:
27189at_fn_diff_devnull "$at_stdout" || at_failed=:
27190at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4298"
27191$at_failed && at_fn_log_failure
27192$at_traceon; }
27193
27194{ set +x
27195$as_echo "$at_srcdir/syn_misc.at:4305: \$COMPILE_ONLY -std=cobol2014 prog.cob"
27196at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:4305"
27197( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
27198) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27199at_status=$? at_failed=false
27200$at_check_filter
27201echo >>"$at_stderr"; $as_echo "prog.cob:8: error: SOURCE-COMPUTER incorrectly after REPOSITORY used
27202prog.cob:22: error: SPECIAL-NAMES incorrectly after REPOSITORY used
27203prog.cob:32: error: SOURCE-COMPUTER incorrectly after REPOSITORY used
27204prog.cob:43: error: SPECIAL-NAMES incorrectly after REPOSITORY used
27205prog.cob:44: error: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
27206" | \
27207  $at_diff - "$at_stderr" || at_failed=:
27208at_fn_diff_devnull "$at_stdout" || at_failed=:
27209at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4305"
27210$at_failed && at_fn_log_failure
27211$at_traceon; }
27212
27213  set +x
27214  $at_times_p && times >"$at_times_file"
27215) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27216read at_status <"$at_status_file"
27217#AT_STOP_288
27218#AT_START_289
27219at_fn_group_banner 289 'syn_misc.at:4315' \
27220  "NOT ON EXCEPTION with STATIC CALL convention" "   " 2
27221at_xfail=no
27222(
27223  $as_echo "289. $at_setup_line: testing $at_desc ..."
27224  $at_traceon
27225
27226
27227
27228cat >prog.cob <<'_ATEOF'
27229
27230       IDENTIFICATION DIVISION.
27231       PROGRAM-ID.    prog.
27232       PROCEDURE      DIVISION.
27233           CALL STATIC "stuff"
27234              ON EXCEPTION
27235                 CONTINUE
27236           END-CALL
27237           GOBACK.
27238_ATEOF
27239
27240
27241cat >prog2.cob <<'_ATEOF'
27242
27243       IDENTIFICATION DIVISION.
27244       PROGRAM-ID.    prog2.
27245       PROCEDURE      DIVISION.
27246           CALL "stuff"
27247              ON EXCEPTION
27248                 CONTINUE
27249           END-CALL
27250           GOBACK.
27251_ATEOF
27252
27253
27254cat >prog3.cob <<'_ATEOF'
27255
27256       >> CALL-CONVENTION STATIC
27257       IDENTIFICATION DIVISION.
27258       PROGRAM-ID.    prog3.
27259       PROCEDURE      DIVISION.
27260           CALL "stuff"
27261              ON EXCEPTION
27262                 CONTINUE
27263           END-CALL
27264           GOBACK.
27265_ATEOF
27266
27267
27268{ set +x
27269$as_echo "$at_srcdir/syn_misc.at:4352: \$COMPILE_ONLY prog.cob"
27270at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4352"
27271( $at_check_trace; $COMPILE_ONLY prog.cob
27272) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27273at_status=$? at_failed=false
27274$at_check_filter
27275echo >>"$at_stderr"; $as_echo "prog.cob:5: warning: ON EXCEPTION ignored because of STATIC CALL
27276" | \
27277  $at_diff - "$at_stderr" || at_failed=:
27278at_fn_diff_devnull "$at_stdout" || at_failed=:
27279at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4352"
27280$at_failed && at_fn_log_failure
27281$at_traceon; }
27282
27283{ set +x
27284$as_echo "$at_srcdir/syn_misc.at:4355: \$COMPILE_ONLY prog2.cob"
27285at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4355"
27286( $at_check_trace; $COMPILE_ONLY prog2.cob
27287) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27288at_status=$? at_failed=false
27289$at_check_filter
27290at_fn_diff_devnull "$at_stderr" || at_failed=:
27291at_fn_diff_devnull "$at_stdout" || at_failed=:
27292at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4355"
27293$at_failed && at_fn_log_failure
27294$at_traceon; }
27295
27296{ set +x
27297$as_echo "$at_srcdir/syn_misc.at:4356: \$COMPILE_ONLY -static prog2.cob"
27298at_fn_check_prepare_dynamic "$COMPILE_ONLY -static prog2.cob" "syn_misc.at:4356"
27299( $at_check_trace; $COMPILE_ONLY -static prog2.cob
27300) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27301at_status=$? at_failed=false
27302$at_check_filter
27303at_fn_diff_devnull "$at_stderr" || at_failed=:
27304at_fn_diff_devnull "$at_stdout" || at_failed=:
27305at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4356"
27306$at_failed && at_fn_log_failure
27307$at_traceon; }
27308
27309{ set +x
27310$as_echo "$at_srcdir/syn_misc.at:4357: \$COMPILE_ONLY prog3.cob"
27311at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:4357"
27312( $at_check_trace; $COMPILE_ONLY prog3.cob
27313) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27314at_status=$? at_failed=false
27315$at_check_filter
27316echo >>"$at_stderr"; $as_echo "prog3.cob:6: warning: STATIC CALL convention ignored because of ON EXCEPTION
27317" | \
27318  $at_diff - "$at_stderr" || at_failed=:
27319at_fn_diff_devnull "$at_stdout" || at_failed=:
27320at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4357"
27321$at_failed && at_fn_log_failure
27322$at_traceon; }
27323
27324  set +x
27325  $at_times_p && times >"$at_times_file"
27326) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27327read at_status <"$at_status_file"
27328#AT_STOP_289
27329#AT_START_290
27330at_fn_group_banner 290 'syn_misc.at:4363' \
27331  "NOT ON EXCEPTION phrases before ON EXCEPTION" "   " 2
27332at_xfail=no
27333(
27334  $as_echo "290. $at_setup_line: testing $at_desc ..."
27335  $at_traceon
27336
27337
27338
27339cat >prog.cob <<'_ATEOF'
27340
27341       IDENTIFICATION DIVISION.
27342       PROGRAM-ID.    prog.
27343
27344       ENVIRONMENT    DIVISION.
27345       INPUT-OUTPUT   SECTION.
27346       FILE-CONTROL.
27347           SELECT f ASSIGN "f.txt"
27348               ORGANIZATION LINE SEQUENTIAL.
27349
27350       DATA           DIVISION.
27351       FILE           SECTION.
27352       FD  f LINAGE 10.
27353       01  f-rec PIC X.
27354
27355       PROCEDURE      DIVISION.
27356           WRITE f-rec FROM "x"
27357               NOT END-OF-PAGE
27358                   CONTINUE
27359               END-OF-PAGE
27360                   CONTINUE
27361           END-WRITE
27362           WRITE f-rec FROM "x"
27363               END-OF-PAGE
27364                   CONTINUE
27365               NOT END-OF-PAGE
27366                   CONTINUE
27367           END-WRITE
27368           WRITE f-rec FROM "x"
27369               NOT END-OF-PAGE
27370                   CONTINUE
27371           END-WRITE
27372           WRITE f-rec FROM "x"
27373               END-OF-PAGE
27374                   CONTINUE
27375           END-WRITE
27376
27377           DISPLAY "blah"
27378               ON EXCEPTION
27379                   CALL "err"
27380                       NOT ON EXCEPTION
27381                           CONTINUE
27382                       ON EXCEPTION
27383                           CONTINUE.
27384           DISPLAY "blah"
27385               NOT ON EXCEPTION
27386                   CALL "err"
27387                       ON EXCEPTION
27388                           CONTINUE
27389                       NOT ON EXCEPTION
27390                           CONTINUE.
27391_ATEOF
27392
27393
27394{ set +x
27395$as_echo "$at_srcdir/syn_misc.at:4419: \$COMPILE_ONLY -std=cobol85 prog.cob"
27396at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:4419"
27397( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
27398) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27399at_status=$? at_failed=false
27400$at_check_filter
27401echo >>"$at_stderr"; $as_echo "prog.cob:22: error: NOT AT END-OF-PAGE before AT END-OF-PAGE does not conform to COBOL 85
27402prog.cob:44: error: NOT EXCEPTION before EXCEPTION does not conform to COBOL 85
27403" | \
27404  $at_diff - "$at_stderr" || at_failed=:
27405at_fn_diff_devnull "$at_stdout" || at_failed=:
27406at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4419"
27407$at_failed && at_fn_log_failure
27408$at_traceon; }
27409
27410{ set +x
27411$as_echo "$at_srcdir/syn_misc.at:4423: \$COMPILE_ONLY prog.cob"
27412at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4423"
27413( $at_check_trace; $COMPILE_ONLY prog.cob
27414) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27415at_status=$? at_failed=false
27416$at_check_filter
27417at_fn_diff_devnull "$at_stderr" || at_failed=:
27418at_fn_diff_devnull "$at_stdout" || at_failed=:
27419at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4423"
27420$at_failed && at_fn_log_failure
27421$at_traceon; }
27422
27423  set +x
27424  $at_times_p && times >"$at_times_file"
27425) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27426read at_status <"$at_status_file"
27427#AT_STOP_290
27428#AT_START_291
27429at_fn_group_banner 291 'syn_misc.at:4427' \
27430  "wrong dialect hints" "                            " 2
27431at_xfail=no
27432(
27433  $as_echo "291. $at_setup_line: testing $at_desc ..."
27434  $at_traceon
27435
27436
27437
27438cat >prog.cob <<'_ATEOF'
27439
27440       IDENTIFICATION DIVISION.
27441       PROGRAM-ID. prog.
27442
27443       DATA DIVISION.
27444       WORKING-STORAGE SECTION.
27445       01  x PIC X.
27446
27447       PROCEDURE DIVISION.
27448           DISPLAY x CONVERSION.
27449           TRANSFORM x
27450           .
27451_ATEOF
27452
27453
27454{ set +x
27455$as_echo "$at_srcdir/syn_misc.at:4444: \$COMPILE_ONLY -std=cobol85 prog.cob"
27456at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:4444"
27457( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
27458) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27459at_status=$? at_failed=false
27460$at_check_filter
27461echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'CONVERSION' is not defined, but is a reserved word in another dialect
27462prog.cob:11: error: unknown statement 'TRANSFORM'; it may exist in another dialect
27463" | \
27464  $at_diff - "$at_stderr" || at_failed=:
27465at_fn_diff_devnull "$at_stdout" || at_failed=:
27466at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4444"
27467$at_failed && at_fn_log_failure
27468$at_traceon; }
27469
27470  set +x
27471  $at_times_p && times >"$at_times_file"
27472) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27473read at_status <"$at_status_file"
27474#AT_STOP_291
27475#AT_START_292
27476at_fn_group_banner 292 'syn_misc.at:4451' \
27477  "redundant periods" "                              " 2
27478at_xfail=no
27479(
27480  $as_echo "292. $at_setup_line: testing $at_desc ..."
27481  $at_traceon
27482
27483
27484
27485cat >a.cpy <<'_ATEOF'
27486
27487       01  var PIC X
27488_ATEOF
27489
27490
27491cat >prog.cob <<'_ATEOF'
27492
27493       IDENTIFICATION   DIVISION.
27494       PROGRAM-ID.      prog.
27495
27496       DATA DIVISION.
27497       WORKING-STORAGE SECTION.
27498       REPLACE ==a== BY ==b==.. *> blah blah
27499       .
27500
27501       COPY a..
27502
27503       78  var VALUE "hello".
27504      * blah blah
27505          .
27506_ATEOF
27507
27508
27509{ set +x
27510$as_echo "$at_srcdir/syn_misc.at:4474: \$COMPILE_ONLY prog.cob"
27511at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4474"
27512( $at_check_trace; $COMPILE_ONLY prog.cob
27513) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27514at_status=$? at_failed=false
27515$at_check_filter
27516echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: ignoring redundant .
27517prog.cob:12: warning: ignoring redundant .
27518" | \
27519  $at_diff - "$at_stderr" || at_failed=:
27520at_fn_diff_devnull "$at_stdout" || at_failed=:
27521at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4474"
27522$at_failed && at_fn_log_failure
27523$at_traceon; }
27524
27525  set +x
27526  $at_times_p && times >"$at_times_file"
27527) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27528read at_status <"$at_status_file"
27529#AT_STOP_292
27530#AT_START_293
27531at_fn_group_banner 293 'syn_misc.at:4481' \
27532  "IF-ELSE statement list with invalid syntax" "     " 2
27533at_xfail=no
27534(
27535  $as_echo "293. $at_setup_line: testing $at_desc ..."
27536  $at_traceon
27537
27538
27539
27540cat >prog.cob <<'_ATEOF'
27541
27542       IDENTIFICATION DIVISION.
27543       PROGRAM-ID. prog.
27544
27545       DATA DIVISION.
27546       WORKING-STORAGE SECTION.
27547       01  a-variable PIC 9.
27548
27549       PROCEDURE DIVISION.
27550           IF a-variable = 1
27551               ACCEPT a-variable, not-a-variable
27552                   ON EXCEPTION
27553                       CONTINUE
27554               END-ACCEPT
27555           ELSE
27556               CONTINUE
27557           END-IF
27558           .
27559_ATEOF
27560
27561
27562{ set +x
27563$as_echo "$at_srcdir/syn_misc.at:4504: \$COMPILE_ONLY prog.cob"
27564at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4504"
27565( $at_check_trace; $COMPILE_ONLY prog.cob
27566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27567at_status=$? at_failed=false
27568$at_check_filter
27569echo >>"$at_stderr"; $as_echo "prog.cob:11: error: syntax error, unexpected Identifier
27570prog.cob:14: error: syntax error, unexpected END-ACCEPT
27571prog.cob:15: error: syntax error, unexpected ELSE
27572prog.cob:17: error: syntax error, unexpected END-IF
27573" | \
27574  $at_diff - "$at_stderr" || at_failed=:
27575at_fn_diff_devnull "$at_stdout" || at_failed=:
27576at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4504"
27577$at_failed && at_fn_log_failure
27578$at_traceon; }
27579
27580
27581  set +x
27582  $at_times_p && times >"$at_times_file"
27583) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27584read at_status <"$at_status_file"
27585#AT_STOP_293
27586#AT_START_294
27587at_fn_group_banner 294 'syn_misc.at:4514' \
27588  "EVALUATE statement with invalid syntax" "         " 2
27589at_xfail=no
27590(
27591  $as_echo "294. $at_setup_line: testing $at_desc ..."
27592  $at_traceon
27593
27594
27595
27596cat >prog.cob <<'_ATEOF'
27597
27598       IDENTIFICATION DIVISION.
27599       PROGRAM-ID. prog.
27600
27601       DATA DIVISION.
27602       WORKING-STORAGE SECTION.
27603       01  a-variable PIC 9.
27604
27605       PROCEDURE DIVISION.
27606           EVALUATE a-variable
27607
27608              ALSO true
27609
27610              WHEN 1
27611
27612              ALSO a-variable
27613                 CONTINUE
27614
27615              WHEN 1 OR 2
27616                 CONTINUE
27617
27618           END-EVALUATE
27619           .
27620           EVALUATE a-variable
27621
27622              ALSO true
27623
27624              WHEN 3
27625                 CONTINUE
27626
27627              WHEN 5
27628                 CONTINUE
27629
27630           END-EVALUATE
27631           .
27632_ATEOF
27633
27634
27635{ set +x
27636$as_echo "$at_srcdir/syn_misc.at:4554: \$COMPILE_ONLY prog.cob"
27637at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4554"
27638( $at_check_trace; $COMPILE_ONLY prog.cob
27639) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27640at_status=$? at_failed=false
27641$at_check_filter
27642echo >>"$at_stderr"; $as_echo "prog.cob:19: error: invalid conditional expression
27643prog.cob:16: error: invalid expression
27644prog.cob:28: error: wrong number of WHEN parameters
27645prog.cob:31: error: wrong number of WHEN parameters
27646" | \
27647  $at_diff - "$at_stderr" || at_failed=:
27648at_fn_diff_devnull "$at_stdout" || at_failed=:
27649at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4554"
27650$at_failed && at_fn_log_failure
27651$at_traceon; }
27652
27653
27654  set +x
27655  $at_times_p && times >"$at_times_file"
27656) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27657read at_status <"$at_status_file"
27658#AT_STOP_294
27659#AT_START_295
27660at_fn_group_banner 295 'syn_misc.at:4564' \
27661  "MF reserved word directives" "                    " 2
27662at_xfail=no
27663(
27664  $as_echo "295. $at_setup_line: testing $at_desc ..."
27665  $at_traceon
27666
27667
27668
27669cat >prog.cob <<'_ATEOF'
27670
27671       IDENTIFICATION DIVISION.
27672       PROGRAM-ID. prog.
27673
27674           *> Valid
27675           $SET ADDRSV"DOG""CAT"
27676
27677           *> Valid
27678           $SET ADD-SYN "VALUE" = "VA"
27679           *> Bread is not reserved.
27680           $SET ADDSYN "BREAD" = "BARA"
27681           *> ID is already reserved
27682           $SET ADDSYN "IDENTIFICATION" = "ID"
27683
27684           *> Valid
27685           $SET MAKESYN(PROGRAM) = (FUNCTION)
27686           *> BREAD is not reserved.
27687           $SET MAKESYN "BREAD" = "PROGRAM"
27688           $SET MAKESYN "PROGRAM" = "BREAD"
27689
27690           *> Valid
27691           $SET OVERRIDE "DIVISION" = "DIV" "JUST" = "JS"
27692           *> Bread is not reserved
27693           $SET OVERRIDE "BREAD"="BARA"
27694           *> ID is already reserved
27695           $SET OVERRIDE "IDENTIFICATION"="ID"
27696
27697           *> Valid
27698           $SET REMOVE "BREAD" (BARA)REMOVE(DOG)
27699
27700       DATA DIV.
27701       WORKING-STORAGE SECTION.
27702       *> Check ADDSYN and OVERRIDE work correctly
27703       01  just PIC XX VA "1" JS.
27704       *> Check ADDRSV
27705       01  cat PIC 9 VA 1.
27706       *> Check REMOVE
27707       01  dog PIC 9 VA 1.
27708_ATEOF
27709
27710
27711{ set +x
27712$as_echo "$at_srcdir/syn_misc.at:4607: \$COMPILE_ONLY prog.cob"
27713at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4607"
27714( $at_check_trace; $COMPILE_ONLY prog.cob
27715) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27716at_status=$? at_failed=false
27717$at_check_filter
27718echo >>"$at_stderr"; $as_echo "prog.cob:11: error: 'BREAD' is not a default reserved word, so cannot be aliased
27719prog.cob:13: error: 'ID' is already reserved; you may want MAKESYN instead
27720prog.cob:18: error: 'BREAD' is not a default reserved word, so cannot be aliased
27721prog.cob:19: error: 'BREAD' is not a reserved word; you may want ADDSYN or OVERRIDE instead
27722prog.cob:24: error: 'BREAD' is not a default reserved word, so cannot be aliased
27723prog.cob:26: error: 'ID' is already reserved; you may want MAKESYN instead
27724prog.cob:36: error: 'cat' is a reserved word, but isn't supported
27725" | \
27726  $at_diff - "$at_stderr" || at_failed=:
27727at_fn_diff_devnull "$at_stdout" || at_failed=:
27728at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4607"
27729$at_failed && at_fn_log_failure
27730$at_traceon; }
27731
27732
27733  set +x
27734  $at_times_p && times >"$at_times_file"
27735) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27736read at_status <"$at_status_file"
27737#AT_STOP_295
27738#AT_START_296
27739at_fn_group_banner 296 'syn_misc.at:4620' \
27740  "TURN directive" "                                 " 2
27741at_xfail=no
27742(
27743  $as_echo "296. $at_setup_line: testing $at_desc ..."
27744  $at_traceon
27745
27746
27747
27748cat >prog.cob <<'_ATEOF'
27749
27750       IDENTIFICATION   DIVISION.
27751       *> Valid
27752       >> TURN ec-i-o f CHECKING ON
27753       *> Invalid
27754       >> TURN dd CHECKING ON
27755       >> TURN ec-all f CHECKING ON
27756       >> TURN EC-I-O-invalid-KEY not-exist CHECKING OFF
27757       PROGRAM-ID.      prog.
27758       ENVIRONMENT      DIVISION.
27759       INPUT-OUTPUT     SECTION.
27760       FILE-CONTROL.
27761           SELECT F ASSIGN "f.txt", SEQUENTIAL.
27762       DATA             DIVISION.
27763       FILE             SECTION.
27764       FD  f.
27765       01  f-rec        PIC X.
27766       PROCEDURE        DIVISION.
27767           STOP RUN.
27768_ATEOF
27769
27770
27771{ set +x
27772$as_echo "$at_srcdir/syn_misc.at:4644: \$COMPILE_ONLY prog.cob"
27773at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4644"
27774( $at_check_trace; $COMPILE_ONLY prog.cob
27775) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27776at_status=$? at_failed=false
27777$at_check_filter
27778echo >>"$at_stderr"; $as_echo "prog.cob:6: error: invalid exception-name: DD
27779prog.cob:7: error: invalid exception-name: F
27780prog.cob:8: error: file 'not-exist' does not exist
27781" | \
27782  $at_diff - "$at_stderr" || at_failed=:
27783at_fn_diff_devnull "$at_stdout" || at_failed=:
27784at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4644"
27785$at_failed && at_fn_log_failure
27786$at_traceon; }
27787
27788
27789  set +x
27790  $at_times_p && times >"$at_times_file"
27791) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27792read at_status <"$at_status_file"
27793#AT_STOP_296
27794#AT_START_297
27795at_fn_group_banner 297 'syn_misc.at:4653' \
27796  "STRING / UNSTRING with invalid syntax" "          " 2
27797at_xfail=no
27798(
27799  $as_echo "297. $at_setup_line: testing $at_desc ..."
27800  $at_traceon
27801
27802
27803
27804cat >prog.cob <<'_ATEOF'
27805
27806       IDENTIFICATION   DIVISION.
27807       PROGRAM-ID.      prog.
27808
27809       DATA DIVISION.
27810       WORKING-STORAGE SECTION.
27811       77  a   PIC X.
27812       77  b   PIC X.
27813       77  c   PIC XXX.
27814
27815       PROCEDURE DIVISION.
27816           STRING   DELIMITED BY SPACE INTO
27817           END-STRING
27818           STRING a DELIMITED BY SPACE c
27819           END-STRING
27820           STRING a DELIMITED BY SPACE INTO
27821           END-STRING
27822           STRING
27823                  DELIMITED BY SPACE
27824                  INTO c
27825           END-STRING
27826           STRING a DELIMITED BY SPACE
27827
27828                  DELIMITED BY SIZE
27829                  INTO c
27830           END-STRING
27831           STRING a DELIMITED BY SPACE
27832                  b DELIMITED BY SIZE
27833                  INTO c
27834           END-STRING
27835      *
27836           UNSTRING   DELIMITED BY SPACE INTO a
27837           END-UNSTRING
27838           UNSTRING c DELIMITED BY SPACE a
27839           END-UNSTRING
27840           UNSTRING c DELIMITED BY SPACE INTO
27841           END-UNSTRING
27842           UNSTRING   DELIMITED BY SPACE INTO a
27843           END-UNSTRING
27844           UNSTRING c DELIMITED BY SPACE INTO a
27845           END-UNSTRING
27846           UNSTRING c DELIMITED BY SPACE
27847                      DELIMITED BY SIZE  INTO a
27848           END-UNSTRING
27849           .
27850_ATEOF
27851
27852
27853{ set +x
27854$as_echo "$at_srcdir/syn_misc.at:4703: \$COMPILE_ONLY prog.cob"
27855at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4703"
27856( $at_check_trace; $COMPILE_ONLY prog.cob
27857) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27858at_status=$? at_failed=false
27859$at_check_filter
27860echo >>"$at_stderr"; $as_echo "prog.cob:12: error: syntax error, unexpected DELIMITED
27861prog.cob:15: error: syntax error, unexpected END-STRING, expecting INTO
27862prog.cob:17: error: syntax error, unexpected END-STRING, expecting Identifier
27863prog.cob:19: error: syntax error, unexpected DELIMITED
27864prog.cob:24: error: syntax error, unexpected DELIMITED, expecting INTO
27865prog.cob:32: error: syntax error, unexpected DELIMITED
27866prog.cob:34: error: syntax error, unexpected Identifier, expecting INTO
27867prog.cob:37: error: syntax error, unexpected END-UNSTRING, expecting Identifier
27868prog.cob:38: error: syntax error, unexpected DELIMITED
27869prog.cob:43: error: syntax error, unexpected DELIMITED, expecting INTO
27870" | \
27871  $at_diff - "$at_stderr" || at_failed=:
27872at_fn_diff_devnull "$at_stdout" || at_failed=:
27873at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4703"
27874$at_failed && at_fn_log_failure
27875$at_traceon; }
27876
27877  set +x
27878  $at_times_p && times >"$at_times_file"
27879) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27880read at_status <"$at_status_file"
27881#AT_STOP_297
27882#AT_START_298
27883at_fn_group_banner 298 'syn_misc.at:4718' \
27884  "UNSTRING COUNT clause" "                          " 2
27885at_xfail=no
27886(
27887  $as_echo "298. $at_setup_line: testing $at_desc ..."
27888  $at_traceon
27889
27890
27891
27892cat >prog.cob <<'_ATEOF'
27893
27894       IDENTIFICATION  DIVISION.
27895       PROGRAM-ID.     prog.
27896
27897       DATA            DIVISION.
27898       WORKING-STORAGE SECTION.
27899       01  valid-1       PIC 9.
27900       01  valid-2       BINARY-LONG.
27901       01  valid-3       PIC 99 COMP-3.
27902
27903       01  invalid-1     PIC 99V99.
27904       01  invalid-2     FLOAT-LONG.
27905       01  invalid-3     PIC 99PP.
27906       01  invalid-4     PIC VPP99.
27907       01  invalid-5     PIC X(30).
27908           88  invalid-6 VALUE "abc".
27909
27910       01  x             PIC X(9).
27911       01  y             PIC X(9).
27912
27913       PROCEDURE       DIVISION.
27914           UNSTRING x INTO y COUNT valid-1
27915           UNSTRING x INTO y COUNT valid-2
27916           UNSTRING x INTO y COUNT valid-3
27917
27918           UNSTRING x INTO y COUNT invalid-1
27919           UNSTRING x INTO y COUNT invalid-2
27920           UNSTRING x INTO y COUNT invalid-3
27921           UNSTRING x INTO y COUNT invalid-4
27922           UNSTRING x INTO y COUNT invalid-5
27923           UNSTRING x INTO y COUNT invalid-6
27924           .
27925_ATEOF
27926
27927
27928{ set +x
27929$as_echo "$at_srcdir/syn_misc.at:4755: \$COMPILE_ONLY prog.cob"
27930at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4755"
27931( $at_check_trace; $COMPILE_ONLY prog.cob
27932) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27933at_status=$? at_failed=false
27934$at_check_filter
27935echo >>"$at_stderr"; $as_echo "prog.cob:26: error: COUNT item 'invalid-1' must be an integer
27936prog.cob:27: error: COUNT item 'invalid-2' must be numeric and an integer
27937prog.cob:28: error: COUNT item 'invalid-3' may not have PICTURE with P in it
27938prog.cob:29: error: COUNT item 'invalid-4' must be an integer
27939prog.cob:30: error: COUNT item 'invalid-5' must be numeric and an integer
27940prog.cob:31: error: condition-name not allowed here: 'invalid-6'
27941" | \
27942  $at_diff - "$at_stderr" || at_failed=:
27943at_fn_diff_devnull "$at_stdout" || at_failed=:
27944at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4755"
27945$at_failed && at_fn_log_failure
27946$at_traceon; }
27947
27948  set +x
27949  $at_times_p && times >"$at_times_file"
27950) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27951read at_status <"$at_status_file"
27952#AT_STOP_298
27953#AT_START_299
27954at_fn_group_banner 299 'syn_misc.at:4766' \
27955  "use of program-prototypes" "                      " 2
27956at_xfail=no
27957(
27958  $as_echo "299. $at_setup_line: testing $at_desc ..."
27959  $at_traceon
27960
27961
27962
27963cat >prog.cob <<'_ATEOF'
27964
27965       IDENTIFICATION  DIVISION.
27966       PROGRAM-ID.     prog.
27967
27968       ENVIRONMENT     DIVISION.
27969       CONFIGURATION   SECTION.
27970       REPOSITORY.
27971           PROGRAM test-prog
27972           .
27973       PROCEDURE       DIVISION.
27974           CALL test-prog
27975           CANCEL test-prog
27976           .
27977_ATEOF
27978
27979
27980{ set +x
27981$as_echo "$at_srcdir/syn_misc.at:4784: \$COMPILE_ONLY -fprogram-prototypes=warning prog.cob"
27982at_fn_check_prepare_dynamic "$COMPILE_ONLY -fprogram-prototypes=warning prog.cob" "syn_misc.at:4784"
27983( $at_check_trace; $COMPILE_ONLY -fprogram-prototypes=warning prog.cob
27984) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27985at_status=$? at_failed=false
27986$at_check_filter
27987echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: PROGRAM phrase used
27988prog.cob:8: warning: no definition/prototype seen for PROGRAM 'test-prog'
27989prog.cob:11: warning: CALL/CANCEL with program-prototype-name used
27990prog.cob:12: warning: CALL/CANCEL with program-prototype-name used
27991" | \
27992  $at_diff - "$at_stderr" || at_failed=:
27993at_fn_diff_devnull "$at_stdout" || at_failed=:
27994at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4784"
27995$at_failed && at_fn_log_failure
27996$at_traceon; }
27997
27998  set +x
27999  $at_times_p && times >"$at_times_file"
28000) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28001read at_status <"$at_status_file"
28002#AT_STOP_299
28003#AT_START_300
28004at_fn_group_banner 300 'syn_misc.at:4793' \
28005  "invalid INSPECT/TRANSFORM operands" "             " 2
28006at_xfail=no
28007(
28008  $as_echo "300. $at_setup_line: testing $at_desc ..."
28009  $at_traceon
28010
28011
28012
28013cat >prog.cob <<'_ATEOF'
28014
28015       IDENTIFICATION  DIVISION.
28016       PROGRAM-ID.     prog.
28017
28018       ENVIRONMENT DIVISION.
28019       INPUT-OUTPUT SECTION.
28020       FILE-CONTROL.
28021           SELECT f ASSIGN "A".
28022
28023       DATA            DIVISION.
28024       FILE            SECTION.
28025       FD  f.
28026       01  f-rec PIC X.
28027
28028       WORKING-STORAGE SECTION.
28029       01  not-display PIC 9(5) COMP.
28030       01  not-a-num   PIC X(5).
28031
28032       PROCEDURE       DIVISION.
28033           INSPECT f TALLYING not-a-num FOR ALL 3
28034               REPLACING FIRST "abcde" BY not-display
28035           TRANSFORM f FROM 3 TO 2
28036           .
28037_ATEOF
28038
28039
28040{ set +x
28041$as_echo "$at_srcdir/syn_misc.at:4821: \$COMPILE_ONLY prog.cob"
28042at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4821"
28043( $at_check_trace; $COMPILE_ONLY prog.cob
28044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28045at_status=$? at_failed=false
28046$at_check_filter
28047echo >>"$at_stderr"; $as_echo "prog.cob:20: error: 'f' is not a field
28048prog.cob:20: error: 'not-a-num' is not numeric
28049prog.cob:20: error: 3 is not an alphanumeric literal
28050prog.cob:20: error: invalid target for TALLYING
28051prog.cob:21: error: 'not-display' is not USAGE DISPLAY
28052prog.cob:20: error: REPLACING operands differ in size
28053prog.cob:20: error: invalid target for REPLACING
28054prog.cob:22: error: 'f' is not a field
28055prog.cob:22: error: 3 is not an alphanumeric literal
28056prog.cob:22: error: 2 is not an alphanumeric literal
28057prog.cob:22: error: invalid target for TRANSFORM
28058" | \
28059  $at_diff - "$at_stderr" || at_failed=:
28060at_fn_diff_devnull "$at_stdout" || at_failed=:
28061at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4821"
28062$at_failed && at_fn_log_failure
28063$at_traceon; }
28064
28065  set +x
28066  $at_times_p && times >"$at_times_file"
28067) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28068read at_status <"$at_status_file"
28069#AT_STOP_300
28070#AT_START_301
28071at_fn_group_banner 301 'syn_misc.at:4837' \
28072  "SIGN clause checks" "                             " 2
28073at_xfail=no
28074(
28075  $as_echo "301. $at_setup_line: testing $at_desc ..."
28076  $at_traceon
28077
28078
28079
28080cat >prog.cob <<'_ATEOF'
28081
28082       IDENTIFICATION  DIVISION.
28083       PROGRAM-ID.     prog.
28084
28085       DATA            DIVISION.
28086       WORKING-STORAGE SECTION.
28087       01  valid-1     SIGN TRAILING.
28088           03  x       PIC S999.
28089           03  y       PIC S999.
28090       01  valid-2     PIC S99.
28091
28092       01  invalid-1   PIC 99 SIGN LEADING.
28093       01  invalid-2   PIC S99 SIGN TRAILING, USAGE BINARY.
28094_ATEOF
28095
28096
28097{ set +x
28098$as_echo "$at_srcdir/syn_misc.at:4855: \$COMPILE_ONLY prog.cob"
28099at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4855"
28100( $at_check_trace; $COMPILE_ONLY prog.cob
28101) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28102at_status=$? at_failed=false
28103$at_check_filter
28104echo >>"$at_stderr"; $as_echo "prog.cob:12: error: elementary items with SIGN clause must have S in PICTURE
28105prog.cob:13: error: elementary items with SIGN clause must be USAGE DISPLAY or NATIONAL
28106" | \
28107  $at_diff - "$at_stderr" || at_failed=:
28108at_fn_diff_devnull "$at_stdout" || at_failed=:
28109at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4855"
28110$at_failed && at_fn_log_failure
28111$at_traceon; }
28112
28113  set +x
28114  $at_times_p && times >"$at_times_file"
28115) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28116read at_status <"$at_status_file"
28117#AT_STOP_301
28118#AT_START_302
28119at_fn_group_banner 302 'syn_misc.at:4862' \
28120  "conflicting entry conventions" "                  " 2
28121at_xfail=no
28122(
28123  $as_echo "302. $at_setup_line: testing $at_desc ..."
28124  $at_traceon
28125
28126
28127
28128cat >prog.cob <<'_ATEOF'
28129
28130       IDENTIFICATION  DIVISION.
28131       PROGRAM-ID.     prog.
28132       OPTIONS.
28133           ENTRY-CONVENTION COBOL.
28134       ENVIRONMENT DIVISION.
28135       CONFIGURATION SECTION.
28136       SPECIAL-NAMES.
28137           CALL-CONVENTION 0 IS EXTERN.
28138
28139       PROCEDURE     DIVISION EXTERN.
28140           CONTINUE
28141           .
28142_ATEOF
28143
28144{ set +x
28145$as_echo "$at_srcdir/syn_misc.at:4879: \$COMPILE_ONLY prog.cob"
28146at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4879"
28147( $at_check_trace; $COMPILE_ONLY prog.cob
28148) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28149at_status=$? at_failed=false
28150$at_check_filter
28151echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: overriding convention specified in ENTRY-CONVENTION
28152" | \
28153  $at_diff - "$at_stderr" || at_failed=:
28154at_fn_diff_devnull "$at_stdout" || at_failed=:
28155at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4879"
28156$at_failed && at_fn_log_failure
28157$at_traceon; }
28158
28159
28160cat >prog2.cob <<'_ATEOF'
28161
28162       IDENTIFICATION  DIVISION.
28163       PROGRAM-ID.     prog2.
28164       OPTIONS.
28165           ENTRY-CONVENTION COBOL.
28166       ENVIRONMENT DIVISION.
28167       CONFIGURATION SECTION.
28168
28169       PROCEDURE     DIVISION WITH C LINKAGE.
28170           CONTINUE
28171           .
28172_ATEOF
28173
28174{ set +x
28175$as_echo "$at_srcdir/syn_misc.at:4895: \$COMPILE_ONLY prog2.cob"
28176at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4895"
28177( $at_check_trace; $COMPILE_ONLY prog2.cob
28178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28179at_status=$? at_failed=false
28180$at_check_filter
28181echo >>"$at_stderr"; $as_echo "prog2.cob:9: warning: overriding convention specified in ENTRY-CONVENTION
28182" | \
28183  $at_diff - "$at_stderr" || at_failed=:
28184at_fn_diff_devnull "$at_stdout" || at_failed=:
28185at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4895"
28186$at_failed && at_fn_log_failure
28187$at_traceon; }
28188
28189
28190cat >prog3.cob <<'_ATEOF'
28191
28192       IDENTIFICATION  DIVISION.
28193       PROGRAM-ID.     prog3.
28194       ENVIRONMENT DIVISION.
28195       CONFIGURATION SECTION.
28196       SPECIAL-NAMES.
28197           CALL-CONVENTION 0 IS EXTERN.
28198
28199       PROCEDURE     DIVISION
28200           EXTERN
28201           WITH C LINKAGE.
28202           CONTINUE
28203       ENTRY 'ANOTHERSTATEMENT'.
28204           CONTINUE
28205       ENTRY EXTERN 'ANOTHERSTATEMENT2'.
28206           CONTINUE
28207       ENTRY 'ANOTHERSTATEMENT3' WITH C LINKAGE.
28208           CONTINUE
28209       ENTRY
28210           EXTERN
28211           'ANOTHERSTATEMENT4'
28212           WITH C LINKAGE.
28213           CONTINUE
28214           .
28215_ATEOF
28216
28217{ set +x
28218$as_echo "$at_srcdir/syn_misc.at:4924: \$COMPILE_ONLY prog3.cob"
28219at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:4924"
28220( $at_check_trace; $COMPILE_ONLY prog3.cob
28221) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28222at_status=$? at_failed=false
28223$at_check_filter
28224echo >>"$at_stderr"; $as_echo "prog3.cob:11: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
28225prog3.cob:22: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
28226" | \
28227  $at_diff - "$at_stderr" || at_failed=:
28228at_fn_diff_devnull "$at_stdout" || at_failed=:
28229at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4924"
28230$at_failed && at_fn_log_failure
28231$at_traceon; }
28232
28233  set +x
28234  $at_times_p && times >"$at_times_file"
28235) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28236read at_status <"$at_status_file"
28237#AT_STOP_302
28238#AT_START_303
28239at_fn_group_banner 303 'syn_misc.at:4931' \
28240  "conflicting call conventions" "                   " 2
28241at_xfail=no
28242(
28243  $as_echo "303. $at_setup_line: testing $at_desc ..."
28244  $at_traceon
28245
28246
28247
28248cat >prog.cob <<'_ATEOF'
28249
28250       IDENTIFICATION  DIVISION.
28251       PROGRAM-ID.     prog.
28252       PROCEDURE     DIVISION.
28253           CALL EXTERN 'callee'.
28254           CALL 'callee' WITH C LINKAGE.
28255           CALL
28256              EXTERN
28257              'callee'
28258              WITH C LINKAGE
28259              .
28260           GOBACK.
28261_ATEOF
28262
28263{ set +x
28264$as_echo "$at_srcdir/syn_misc.at:4947: \$COMPILE_ONLY prog.cob"
28265at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4947"
28266( $at_check_trace; $COMPILE_ONLY prog.cob
28267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28268at_status=$? at_failed=false
28269$at_check_filter
28270echo >>"$at_stderr"; $as_echo "prog.cob:10: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
28271" | \
28272  $at_diff - "$at_stderr" || at_failed=:
28273at_fn_diff_devnull "$at_stdout" || at_failed=:
28274at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4947"
28275$at_failed && at_fn_log_failure
28276$at_traceon; }
28277
28278{ set +x
28279$as_echo "$at_srcdir/syn_misc.at:4950: \$COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C prog.cob"
28280at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C prog.cob" "syn_misc.at:4950"
28281( $at_check_trace; $COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C prog.cob
28282) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28283at_status=$? at_failed=false
28284$at_check_filter
28285echo >>"$at_stderr"; $as_echo "prog.cob:5: error: CALL-/ENTRY-CONVENTION does not conform to COBOL 85
28286prog.cob:6: error: WITH ... LINKAGE does not conform to COBOL 85
28287prog.cob:8: error: CALL-/ENTRY-CONVENTION does not conform to COBOL 85
28288prog.cob:10: error: WITH ... LINKAGE does not conform to COBOL 85
28289prog.cob:10: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
28290" | \
28291  $at_diff - "$at_stderr" || at_failed=:
28292at_fn_diff_devnull "$at_stdout" || at_failed=:
28293at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4950"
28294$at_failed && at_fn_log_failure
28295$at_traceon; }
28296
28297  set +x
28298  $at_times_p && times >"$at_times_file"
28299) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28300read at_status <"$at_status_file"
28301#AT_STOP_303
28302#AT_START_304
28303at_fn_group_banner 304 'syn_misc.at:4960' \
28304  "dangling LINKAGE items" "                         " 2
28305at_xfail=no
28306(
28307  $as_echo "304. $at_setup_line: testing $at_desc ..."
28308  $at_traceon
28309
28310
28311
28312cat >prog.cob <<'_ATEOF'
28313
28314       IDENTIFICATION  DIVISION.
28315       PROGRAM-ID.     prog.
28316       DATA DIVISION.
28317       LINKAGE SECTION.
28318      * constants may occur anywhere but don't belong to LINKAGE
28319       78 NSIZE VALUE 1.
28320      *
28321      * two variables in USING
28322       77 A PIC X.
28323       01 B.
28324          03 B1 PIC X.
28325          03 B2 PIC 9(NSIZE).
28326      * variable not referenced anywhere - no warning
28327       77 C PIC X.
28328      * variable referenced by its REDEFINE
28329       01 D PIC XX.
28330       01 filler redefines D.
28331          03 D1 PIC X.
28332          03 D2 PIC 9(NSIZE).
28333      * variable referenced by its second REDEFINE
28334       01 E PIC XX.
28335       01 filler redefines E.
28336          03 Ea1 PIC X.
28337          03 Ea2 PIC 9(NSIZE).
28338       01 filler redefines E.
28339          03 Eb1 PIC X.
28340          03 Eb2 PIC 9(NSIZE).
28341      * variable referenced by its child
28342       01 F.
28343          03 F1 PIC X.
28344          03 F2 PIC 9(NSIZE).
28345      * variable referenced by level 88 (a validation entry)
28346       01 G.
28347          03 filler  PIC X.
28348             88 g-val-a value 'a'.
28349             88 g-val-b value 'b'.
28350       PROCEDURE       DIVISION USING A B.
28351
28352           IF D2 OMITTED OR Eb2 OMITTED or F2 OMITTED
28353             set g-val-b to true
28354           END-IF
28355           .
28356_ATEOF
28357
28358{ set +x
28359$as_echo "$at_srcdir/syn_misc.at:5007: \$COMPILE_ONLY -Wlinkage prog.cob"
28360at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wlinkage prog.cob" "syn_misc.at:5007"
28361( $at_check_trace; $COMPILE_ONLY -Wlinkage prog.cob
28362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28363at_status=$? at_failed=false
28364$at_check_filter
28365echo >>"$at_stderr"; $as_echo "prog.cob:17: warning: LINKAGE item 'D' is not a PROCEDURE USING parameter
28366prog.cob:22: warning: LINKAGE item 'E' is not a PROCEDURE USING parameter
28367prog.cob:30: warning: LINKAGE item 'F' is not a PROCEDURE USING parameter
28368prog.cob:34: warning: LINKAGE item 'G' is not a PROCEDURE USING parameter
28369" | \
28370  $at_diff - "$at_stderr" || at_failed=:
28371at_fn_diff_devnull "$at_stdout" || at_failed=:
28372at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5007"
28373$at_failed && at_fn_log_failure
28374$at_traceon; }
28375
28376  set +x
28377  $at_times_p && times >"$at_times_file"
28378) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28379read at_status <"$at_status_file"
28380#AT_STOP_304
28381#AT_START_305
28382at_fn_group_banner 305 'syn_misc.at:5016' \
28383  "duplicate PROCEDURE DIVISION/ENTRY USING items" " " 2
28384at_xfail=no
28385(
28386  $as_echo "305. $at_setup_line: testing $at_desc ..."
28387  $at_traceon
28388
28389
28390# see bug #635
28391
28392cat >prog.cob <<'_ATEOF'
28393
28394       IDENTIFICATION  DIVISION.
28395       PROGRAM-ID.     prog.
28396       DATA DIVISION.
28397       LINKAGE SECTION.
28398       01  p                    PIC 9.
28399       01  o                    PIC X(5).
28400       PROCEDURE DIVISION USING p p o.
28401       ENTRY "sub" USING o p o.
28402_ATEOF
28403
28404{ set +x
28405$as_echo "$at_srcdir/syn_misc.at:5030: \$COMPILE_ONLY prog.cob"
28406at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5030"
28407( $at_check_trace; $COMPILE_ONLY prog.cob
28408) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28409at_status=$? at_failed=false
28410$at_check_filter
28411echo >>"$at_stderr"; $as_echo "prog.cob:8: error: duplicate USING BY REFERENCE item 'p'
28412prog.cob:9: error: duplicate USING BY REFERENCE item 'o'
28413" | \
28414  $at_diff - "$at_stderr" || at_failed=:
28415at_fn_diff_devnull "$at_stdout" || at_failed=:
28416at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5030"
28417$at_failed && at_fn_log_failure
28418$at_traceon; }
28419
28420  set +x
28421  $at_times_p && times >"$at_times_file"
28422) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28423read at_status <"$at_status_file"
28424#AT_STOP_305
28425#AT_START_306
28426at_fn_group_banner 306 'syn_misc.at:5037' \
28427  "duplicate CALL USING BY REFERENCE items" "        " 2
28428at_xfail=no
28429(
28430  $as_echo "306. $at_setup_line: testing $at_desc ..."
28431  $at_traceon
28432
28433
28434# see bug #635
28435
28436cat >prog.cob <<'_ATEOF'
28437
28438       IDENTIFICATION  DIVISION.
28439       PROGRAM-ID.     prog.
28440       DATA DIVISION.
28441       WORKING-STORAGE SECTION.
28442       01  p                    PIC 99.
28443       01  o                    PIC X(5).
28444       PROCEDURE DIVISION.
28445          CALL "prog2"  USING p p o
28446                              p.
28447          CALL "prog3"  USING BY REFERENCE p
28448                              BY CONTENT   p o
28449                              BY REFERENCE p o(2:).
28450_ATEOF
28451
28452{ set +x
28453$as_echo "$at_srcdir/syn_misc.at:5055: \$COMPILE_ONLY prog.cob"
28454at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5055"
28455( $at_check_trace; $COMPILE_ONLY prog.cob
28456) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28457at_status=$? at_failed=false
28458$at_check_filter
28459echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: duplicate USING BY REFERENCE item 'p'
28460prog.cob:10: warning: duplicate USING BY REFERENCE item 'p'
28461prog.cob:13: warning: duplicate USING BY REFERENCE item 'p'
28462" | \
28463  $at_diff - "$at_stderr" || at_failed=:
28464at_fn_diff_devnull "$at_stdout" || at_failed=:
28465at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5055"
28466$at_failed && at_fn_log_failure
28467$at_traceon; }
28468
28469  set +x
28470  $at_times_p && times >"$at_times_file"
28471) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28472read at_status <"$at_status_file"
28473#AT_STOP_306
28474#AT_START_307
28475at_fn_group_banner 307 'syn_misc.at:5063' \
28476  "ADD / SUBTRACT TABLE" "                           " 2
28477at_xfail=no
28478(
28479  $as_echo "307. $at_setup_line: testing $at_desc ..."
28480  $at_traceon
28481
28482
28483
28484cat >prog.cob <<'_ATEOF'
28485
28486       IDENTIFICATION  DIVISION.
28487       PROGRAM-ID.     prog.
28488
28489       DATA            DIVISION.
28490       WORKING-STORAGE SECTION.
28491       01  tab1.
28492           03  tab1-entry    OCCURS 5 PIC S999.
28493       01  tab2.
28494           03  tab2-entry    OCCURS 7 PIC S99.
28495           03  tab2b-entry   OCCURS 7.
28496               05  x         PIC S99.
28497       01  tab3.
28498           03  sub-tab-3  OCCURS 2.
28499               05 tab3-entry OCCURS 5 PIC S999.
28500
28501       PROCEDURE       DIVISION.
28502           ADD      TABLE tab1-entry TO   tab2-entry.
28503           SUBTRACT TABLE tab2-entry FROM tab1-entry.
28504           ADD      TABLE tab1-entry TO   tab3-entry (1).
28505           SUBTRACT TABLE tab2-entry FROM tab3-entry (2).
28506           ADD      TABLE tab1-entry TO   x.
28507           SUBTRACT TABLE x          FROM tab1-entry.
28508           ADD      TABLE tab1-entry TO   tab2b-entry.
28509           GOBACK.
28510_ATEOF
28511
28512
28513{ set +x
28514$as_echo "$at_srcdir/syn_misc.at:5093: \$COMPILE_ONLY prog.cob"
28515at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5093"
28516( $at_check_trace; $COMPILE_ONLY prog.cob
28517) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28518at_status=$? at_failed=false
28519$at_check_filter
28520echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: ADD TABLE is not implemented
28521prog.cob:19: warning: SUBTRACT TABLE is not implemented
28522prog.cob:20: warning: ADD TABLE is not implemented
28523prog.cob:21: warning: SUBTRACT TABLE is not implemented
28524prog.cob:22: warning: ADD TABLE is not implemented
28525prog.cob:23: warning: SUBTRACT TABLE is not implemented
28526prog.cob:24: warning: ADD TABLE is not implemented
28527prog.cob:24: error: 'tab2b-entry' is not numeric
28528" | \
28529  $at_diff - "$at_stderr" || at_failed=:
28530at_fn_diff_devnull "$at_stdout" || at_failed=:
28531at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5093"
28532$at_failed && at_fn_log_failure
28533$at_traceon; }
28534
28535  set +x
28536  $at_times_p && times >"$at_times_file"
28537) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28538read at_status <"$at_status_file"
28539#AT_STOP_307
28540#AT_START_308
28541at_fn_group_banner 308 'syn_misc.at:5106' \
28542  "USE FOR DEBUGGING invalid ref-mod / subscripts" " " 2
28543at_xfail=no
28544(
28545  $as_echo "308. $at_setup_line: testing $at_desc ..."
28546  $at_traceon
28547
28548
28549
28550# COBOL85 3.2.3 Syntax Rules 10+12 - "no subscripts. not reference-modified"
28551cat >prog.cob <<'_ATEOF'
28552
28553       IDENTIFICATION  DIVISION.
28554       PROGRAM-ID.     prog.
28555
28556       ENVIRONMENT     DIVISION.
28557       CONFIGURATION   SECTION.
28558       SOURCE-COMPUTER.
28559            whatever   WITH DEBUGGING MODE.
28560
28561       DATA            DIVISION.
28562       WORKING-STORAGE SECTION.
28563       01  i           PIC 9.
28564       01  FILLER.
28565           03 x OCCURS 2 PIC 9.
28566
28567       PROCEDURE DIVISION.
28568       DECLARATIVES.
28569       test-DEBUG SECTION.
28570           USE FOR DEBUGGING ON ALL OF I (1:1).
28571           DISPLAY DEBUG-LINE.
28572       test-DEBUGo SECTION.
28573           USE FOR DEBUGGING ON ALL OF X (1).
28574           DISPLAY DEBUG-LINE.
28575       END DECLARATIVES.
28576
28577       MAIN SECTION.
28578           MOVE 1 TO i, x(2)
28579           STOP RUN.
28580_ATEOF
28581
28582
28583
28584{ set +x
28585$as_echo "$at_srcdir/syn_misc.at:5141: \$COMPILE_ONLY prog.cob"
28586at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5141"
28587( $at_check_trace; $COMPILE_ONLY prog.cob
28588) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28589at_status=$? at_failed=false
28590$at_check_filter
28591echo >>"$at_stderr"; $as_echo "prog.cob: in section 'test-DEBUG':
28592prog.cob:19: error: DEBUGGING target may not be reference modified
28593prog.cob: in section 'test-DEBUGo':
28594prog.cob:22: error: DEBUGGING target may not be subscripted
28595" | \
28596  $at_diff - "$at_stderr" || at_failed=:
28597at_fn_diff_devnull "$at_stdout" || at_failed=:
28598at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5141"
28599$at_failed && at_fn_log_failure
28600$at_traceon; }
28601
28602
28603  set +x
28604  $at_times_p && times >"$at_times_file"
28605) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28606read at_status <"$at_status_file"
28607#AT_STOP_308
28608#AT_START_309
28609at_fn_group_banner 309 'syn_misc.at:5151' \
28610  "USE FOR DEBUGGING duplicate targets" "            " 2
28611at_xfail=no
28612(
28613  $as_echo "309. $at_setup_line: testing $at_desc ..."
28614  $at_traceon
28615
28616
28617
28618# TODO: add cd-names and file-names here
28619
28620cat >prog.cob <<'_ATEOF'
28621
28622       IDENTIFICATION  DIVISION.
28623       PROGRAM-ID.     prog.
28624
28625       ENVIRONMENT     DIVISION.
28626       CONFIGURATION   SECTION.
28627       SOURCE-COMPUTER.
28628            whatever   WITH DEBUGGING MODE.
28629
28630       DATA            DIVISION.
28631       WORKING-STORAGE SECTION.
28632       01  i           PIC 9.
28633       01  j           PIC 9.
28634
28635       PROCEDURE DIVISION.
28636       DECLARATIVES.
28637       test-DEBUG SECTION.
28638           USE FOR DEBUGGING ON MAIN MAIN.
28639           DISPLAY DEBUG-LINE.
28640       test-DEBUG2 SECTION.
28641           USE FOR DEBUGGING ON ALL I
28642                                ALL REFERENCES OF J
28643                                ALL PROCEDURES.
28644           DISPLAY DEBUG-LINE.
28645       test-DEBUG3 SECTION.
28646           USE FOR DEBUGGING ON ALL PROCEDURES
28647                                J
28648                                ALL OF I.
28649           DISPLAY DEBUG-LINE.
28650       END DECLARATIVES.
28651
28652       MAIN SECTION.
28653           MOVE 1 TO i
28654           STOP RUN.
28655_ATEOF
28656
28657
28658{ set +x
28659$as_echo "$at_srcdir/syn_misc.at:5192: \$COMPILE_ONLY prog.cob"
28660at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5192"
28661( $at_check_trace; $COMPILE_ONLY prog.cob
28662) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28663at_status=$? at_failed=false
28664$at_check_filter
28665echo >>"$at_stderr"; $as_echo "prog.cob: in section 'test-DEBUG3':
28666prog.cob:26: error: duplicate USE DEBUGGING ON ALL PROCEDURES
28667prog.cob:27: error: duplicate DEBUGGING target: 'j'
28668prog.cob:28: error: duplicate DEBUGGING target: 'i'
28669prog.cob: in section 'test-DEBUG':
28670prog.cob:18: error: DEBUGGING target already specified with ALL PROCEDURES: 'MAIN'
28671prog.cob:18: error: duplicate DEBUGGING target: 'MAIN'
28672" | \
28673  $at_diff - "$at_stderr" || at_failed=:
28674at_fn_diff_devnull "$at_stdout" || at_failed=:
28675at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5192"
28676$at_failed && at_fn_log_failure
28677$at_traceon; }
28678
28679  set +x
28680  $at_times_p && times >"$at_times_file"
28681) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28682read at_status <"$at_status_file"
28683#AT_STOP_309
28684#AT_START_310
28685at_fn_group_banner 310 'syn_misc.at:5204' \
28686  "USE FOR DEBUGGING implicit statements" "          " 2
28687at_xfail=no
28688(
28689  $as_echo "310. $at_setup_line: testing $at_desc ..."
28690  $at_traceon
28691
28692
28693
28694# see bug #693, WHEN created an implicit statement before
28695
28696cat >prog.cob <<'_ATEOF'
28697
28698       IDENTIFICATION DIVISION.
28699       PROGRAM-ID.    TESTING.
28700       ENVIRONMENT DIVISION.
28701       INPUT-OUTPUT SECTION.
28702       FILE-CONTROL.
28703           SELECT TSTFIL1 ASSIGN TO "TSTFIL1"
28704               ORGANIZATION LINE SEQUENTIAL.
28705           SELECT TSTFIL2 ASSIGN TO "TSTFIL2"
28706               ORGANIZATION LINE SEQUENTIAL.
28707
28708       DATA DIVISION.
28709       FILE SECTION.
28710       FD TSTFIL1.
28711       01 TSTREC1              PIC X(256).
28712       FD TSTFIL2.
28713       01 TSTREC2              PIC X(256).
28714       WORKING-STORAGE SECTION.
28715       01 OODB-RESULT                   PIC X(07).
28716
28717       PROCEDURE DIVISION.
28718       DECLARATIVES.
28719       MY-TEST SECTION.
28720           USE FOR DEBUGGING ON ALL REFERENCES OF OODB-RESULT.
28721       I-O-TEST-OODB-RESULT.
28722           EVALUATE OODB-RESULT
28723           WHEN SPACES
28724               DISPLAY "LINE 1"
28725           WHEN OTHER
28726               DISPLAY "LINE 2" END-DISPLAY
28727           END-EVALUATE.
28728           CLOSE TSTFIL1, TSTFIL2.
28729       END DECLARATIVES.
28730
28731       MAIN SECTION.
28732       000-BEGIN.
28733           STOP RUN.
28734_ATEOF
28735
28736
28737{ set +x
28738$as_echo "$at_srcdir/syn_misc.at:5248: \$COMPILE_ONLY prog.cob"
28739at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5248"
28740( $at_check_trace; $COMPILE_ONLY prog.cob
28741) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28742at_status=$? at_failed=false
28743$at_check_filter
28744at_fn_diff_devnull "$at_stderr" || at_failed=:
28745at_fn_diff_devnull "$at_stdout" || at_failed=:
28746at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5248"
28747$at_failed && at_fn_log_failure
28748$at_traceon; }
28749
28750  set +x
28751  $at_times_p && times >"$at_times_file"
28752) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28753read at_status <"$at_status_file"
28754#AT_STOP_310
28755#AT_START_311
28756at_fn_group_banner 311 'syn_misc.at:5252' \
28757  "USE FOR DEBUGGING syntax-checks" "                " 2
28758at_xfail=yes
28759(
28760  $as_echo "311. $at_setup_line: testing $at_desc ..."
28761  $at_traceon
28762
28763
28764
28765# TODO: still need tests/checks (3.2.3 Syntax Rules 9+11):
28766# 09 Identifier must not reference any data item defined in the Report
28767# Section except sum counters.
28768# 11 References to the special register DEBUG-ITEM are restricted to
28769# references from within a debugging section.
28770
28771
28772# we currently fail to detect references into DECLARATIVES and
28773# references to debugging-procedures other than PERFORM --> both in prog2
28774
28775cat >prog.cob <<'_ATEOF'
28776
28777       IDENTIFICATION  DIVISION.
28778       PROGRAM-ID.     prog.
28779
28780       ENVIRONMENT     DIVISION.
28781       CONFIGURATION   SECTION.
28782       SOURCE-COMPUTER.
28783            whatever   WITH DEBUGGING MODE.
28784
28785       DATA            DIVISION.
28786       WORKING-STORAGE SECTION.
28787       01  i           PIC 9.
28788       01  j           PIC 9.
28789
28790       PROCEDURE DIVISION.
28791       DECLARATIVES.
28792       test-DEBUG SECTION.
28793           USE FOR DEBUGGING ON ALL REFERENCES OF I
28794                                TEST-debug
28795                                MAIN.
28796           DISPLAY DEBUG-LINE.
28797           PERFORM MAIN. PERFORM TEST-DEBUG2. GO TO TEST-DEBUG2.
28798       test-DEBUG2 SECTION.
28799           USE FOR DEBUGGING ON ALL OF I
28800                                TEST-debug.
28801           DISPLAY DEBUG-LINE.
28802       END DECLARATIVES.
28803
28804       MAIN SECTION.
28805           MOVE 1 TO i, j
28806           PERFORM TesT-DebuG
28807           STOP RUN.
28808_ATEOF
28809
28810
28811{ set +x
28812$as_echo "$at_srcdir/syn_misc.at:5299: \$COMPILE_ONLY prog.cob"
28813at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5299"
28814( $at_check_trace; $COMPILE_ONLY prog.cob
28815) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28816at_status=$? at_failed=false
28817$at_check_filter
28818echo >>"$at_stderr"; $as_echo "prog.cob: in section 'test-DEBUG':
28819prog.cob:22: warning: 'MAIN' is not in DECLARATIVES
28820prog.cob:22: error: 'TEST-DEBUG2' may only be referenced with PERFORM
28821prog.cob:19: error: DEBUGGING target invalid: 'test-DEBUG'
28822prog.cob: in section 'TEST-DEBUG2':
28823prog.cob:25: error: DEBUGGING target invalid: 'test-DEBUG'
28824prog.cob: in section 'MAIN':
28825prog.cob:31: warning: 'test-DEBUG' is in DECLARATIVES
28826" | \
28827  $at_diff - "$at_stderr" || at_failed=:
28828at_fn_diff_devnull "$at_stdout" || at_failed=:
28829at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5299"
28830$at_failed && at_fn_log_failure
28831$at_traceon; }
28832
28833{ set +x
28834$as_echo "$at_srcdir/syn_misc.at:5309: \$COMPILE_ONLY -std=cobol85 prog.cob"
28835at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:5309"
28836( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
28837) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28838at_status=$? at_failed=false
28839$at_check_filter
28840echo >>"$at_stderr"; $as_echo "prog.cob: in section 'test-DEBUG':
28841prog.cob:20: warning: USE FOR DEBUGGING is obsolete in COBOL 85
28842prog.cob:22: error: 'MAIN' is not in DECLARATIVES
28843prog.cob:22: error: 'TEST-DEBUG2' may only be referenced with PERFORM
28844prog.cob:19: error: DEBUGGING target invalid: 'test-DEBUG'
28845prog.cob: in section 'TEST-DEBUG2':
28846prog.cob:25: error: DEBUGGING target invalid: 'test-DEBUG'
28847prog.cob: in section 'MAIN':
28848prog.cob:31: error: 'test-DEBUG' is in DECLARATIVES
28849" | \
28850  $at_diff - "$at_stderr" || at_failed=:
28851at_fn_diff_devnull "$at_stdout" || at_failed=:
28852at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5309"
28853$at_failed && at_fn_log_failure
28854$at_traceon; }
28855
28856  set +x
28857  $at_times_p && times >"$at_times_file"
28858) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28859read at_status <"$at_status_file"
28860#AT_STOP_311
28861#AT_START_312
28862at_fn_group_banner 312 'syn_misc.at:5323' \
28863  "Empty PERFORM with DEBUGGING MODE" "              " 2
28864at_xfail=no
28865(
28866  $as_echo "312. $at_setup_line: testing $at_desc ..."
28867  $at_traceon
28868
28869
28870
28871cat >prog.cob <<'_ATEOF'
28872
28873       IDENTIFICATION  DIVISION.
28874       PROGRAM-ID.     prog.
28875
28876       ENVIRONMENT     DIVISION.
28877       CONFIGURATION   SECTION.
28878       SOURCE-COMPUTER.
28879            whatever   WITH DEBUGGING MODE.
28880
28881       DATA            DIVISION.
28882       WORKING-STORAGE SECTION.
28883       01  i           PIC 9.
28884
28885       PROCEDURE DIVISION.
28886           PERFORM VARYING i FROM 1 BY 1
28887                   UNTIL i = 5
28888           END-PERFORM
28889           .
28890_ATEOF
28891
28892
28893{ set +x
28894$as_echo "$at_srcdir/syn_misc.at:5346: \$COMPILE_ONLY -fmissing-statement=ok prog.cob"
28895at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmissing-statement=ok prog.cob" "syn_misc.at:5346"
28896( $at_check_trace; $COMPILE_ONLY -fmissing-statement=ok prog.cob
28897) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28898at_status=$? at_failed=false
28899$at_check_filter
28900at_fn_diff_devnull "$at_stderr" || at_failed=:
28901at_fn_diff_devnull "$at_stdout" || at_failed=:
28902at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5346"
28903$at_failed && at_fn_log_failure
28904$at_traceon; }
28905
28906  set +x
28907  $at_times_p && times >"$at_times_file"
28908) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28909read at_status <"$at_status_file"
28910#AT_STOP_312
28911#AT_START_313
28912at_fn_group_banner 313 'syn_misc.at:5351' \
28913  "whitespace handling" "                            " 2
28914at_xfail=no
28915(
28916  $as_echo "313. $at_setup_line: testing $at_desc ..."
28917  $at_traceon
28918
28919
28920
28921cat >prog1.cob <<'_ATEOF'
28922
28923       IDENTIFICATION
28924           DIVISION
28925           .
28926           author.
28927           tester.
28928       PROGRAM-ID
28929           .
28930           prog1
28931           .
28932           REMARKS;. Should work.,,
28933
28934       ENVIRONMENT
28935           DIVISION
28936           .
28937       CONFIGURATION
28938           SECTION
28939           .
28940       SOURCE-COMPUTER
28941           .
28942             whatever
28943           WITH
28944           DEBUGGING
28945           MODE
28946           .
28947
28948      DDATA
28949      D   DIVISION
28950      D   .
28951       WORKING-STORAGE
28952          SECTION
28953          .
28954       01
28955           i
28956           PIC
28957           9
28958           .
28959
28960       PROCEDURE
28961           DIVISION
28962           .
28963       >> SOURCE FORMAT IS FREE
28964IF
28965i
28966GREATER
28967THAN
28968OR
28969EQUAL
28970
28971TO
28972
289735
28974
28975THEN
28976
28977GOBACK.
28978           STOP
28979           RUN
28980           .
28981_ATEOF
28982
28983
28984cat >prog2.cob <<'_ATEOF'
28985
28986       ID,;DIVISION;,.,;
28987           author,.;tester.
28988       PROGRAM-ID,;.;,prog2;,.;,
28989           REMARKS;. Should work.,,
28990       ENVIRONMENT,;DIVISION;,.,;
28991       CONFIGURATION;;,,SECTION;;,,.
28992       SOURCE-COMPUTER;;.,,whatever;;DEBUGGING,,MODE;,.
28993
28994      DDATA;DIVISION,.
28995      DWORKING-STORAGE,SECTION;.
28996       01;i,PIC;9;.
28997
28998       PROCEDURE;DIVISION,.;
28999           IF;,i;,GREATER,;THAN;,OR,;EQUAL ,;TO;;5;
29000           ,,,THEN;;;GOBACK.
29001           STOP,RUN;.,
29002_ATEOF
29003
29004
29005{ set +x
29006$as_echo "$at_srcdir/syn_misc.at:5434: \$COMPILE_ONLY -Wno-obsolete prog1.cob"
29007at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-obsolete prog1.cob" "syn_misc.at:5434"
29008( $at_check_trace; $COMPILE_ONLY -Wno-obsolete prog1.cob
29009) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29010at_status=$? at_failed=false
29011$at_check_filter
29012at_fn_diff_devnull "$at_stderr" || at_failed=:
29013at_fn_diff_devnull "$at_stdout" || at_failed=:
29014at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5434"
29015$at_failed && at_fn_log_failure
29016$at_traceon; }
29017
29018{ set +x
29019$as_echo "$at_srcdir/syn_misc.at:5435: \$COMPILE_ONLY -Wno-obsolete prog2.cob"
29020at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-obsolete prog2.cob" "syn_misc.at:5435"
29021( $at_check_trace; $COMPILE_ONLY -Wno-obsolete prog2.cob
29022) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29023at_status=$? at_failed=false
29024$at_check_filter
29025at_fn_diff_devnull "$at_stderr" || at_failed=:
29026at_fn_diff_devnull "$at_stdout" || at_failed=:
29027at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5435"
29028$at_failed && at_fn_log_failure
29029$at_traceon; }
29030
29031  set +x
29032  $at_times_p && times >"$at_times_file"
29033) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29034read at_status <"$at_status_file"
29035#AT_STOP_313
29036#AT_START_314
29037at_fn_group_banner 314 'syn_misc.at:5439' \
29038  "STOP identifier" "                                " 2
29039at_xfail=no
29040(
29041  $as_echo "314. $at_setup_line: testing $at_desc ..."
29042  $at_traceon
29043
29044
29045
29046cat >prog.cob <<'_ATEOF'
29047
29048       IDENTIFICATION  DIVISION.
29049       PROGRAM-ID.     prog.
29050
29051       DATA            DIVISION.
29052       WORKING-STORAGE SECTION.
29053       01  x           PIC 9(5) VALUE 1.
29054       01  y           CONSTANT "ab".
29055
29056       PROCEDURE       DIVISION.
29057           STOP x
29058           STOP y
29059           .
29060_ATEOF
29061
29062
29063{ set +x
29064$as_echo "$at_srcdir/syn_misc.at:5457: \$COMPILE_ONLY prog.cob"
29065at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5457"
29066( $at_check_trace; $COMPILE_ONLY prog.cob
29067) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29068at_status=$? at_failed=false
29069$at_check_filter
29070echo >>"$at_stderr"; $as_echo "prog.cob:12: warning: STOP identifier is obsolete in GnuCOBOL
29071prog.cob:12: warning: STOP literal is obsolete in GnuCOBOL
29072" | \
29073  $at_diff - "$at_stderr" || at_failed=:
29074at_fn_diff_devnull "$at_stdout" || at_failed=:
29075at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5457"
29076$at_failed && at_fn_log_failure
29077$at_traceon; }
29078
29079{ set +x
29080$as_echo "$at_srcdir/syn_misc.at:5461: \$COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok prog.cob"
29081at_fn_check_prepare_dynamic "$COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok prog.cob" "syn_misc.at:5461"
29082( $at_check_trace; $COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok prog.cob
29083) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29084at_status=$? at_failed=false
29085$at_check_filter
29086at_fn_diff_devnull "$at_stderr" || at_failed=:
29087at_fn_diff_devnull "$at_stdout" || at_failed=:
29088at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5461"
29089$at_failed && at_fn_log_failure
29090$at_traceon; }
29091
29092  set +x
29093  $at_times_p && times >"$at_times_file"
29094) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29095read at_status <"$at_status_file"
29096#AT_STOP_314
29097#AT_START_315
29098at_fn_group_banner 315 'syn_misc.at:5465' \
29099  "01 CONSTANT" "                                    " 2
29100at_xfail=no
29101(
29102  $as_echo "315. $at_setup_line: testing $at_desc ..."
29103  $at_traceon
29104
29105
29106
29107cat >prog.cob <<'_ATEOF'
29108
29109       IDENTIFICATION DIVISION.
29110       PROGRAM-ID. prog.
29111       DATA DIVISION.
29112       WORKING-STORAGE SECTION.
29113       01  NUM2      CONSTANT 3.
29114       01  CON3      CONSTANT ((1 + 2) * NUM2 - 4.
29115       01  CON4      CONSTANT (1 + 2) * NUM2 - 4).
29116       01  CON5      CONSTANT (1 + 2) // NUM2.
29117       01  CON6      CONSTANT (1 + 2 + 3 + (4)) / (NUM2).
29118      *
29119       PROCEDURE DIVISION.
29120       MAIN.
29121           STOP RUN.
29122_ATEOF
29123
29124
29125{ set +x
29126$as_echo "$at_srcdir/syn_misc.at:5484: \$COMPILE_ONLY prog.cob"
29127at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5484"
29128( $at_check_trace; $COMPILE_ONLY prog.cob
29129) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29130at_status=$? at_failed=false
29131$at_check_filter
29132echo >>"$at_stderr"; $as_echo "prog.cob:7: error: missing right parenthesis
29133prog.cob:8: error: missing left parenthesis
29134prog.cob:9: error: '/' operator misplaced
29135" | \
29136  $at_diff - "$at_stderr" || at_failed=:
29137at_fn_diff_devnull "$at_stdout" || at_failed=:
29138at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5484"
29139$at_failed && at_fn_log_failure
29140$at_traceon; }
29141
29142
29143{ set +x
29144$as_echo "$at_srcdir/syn_misc.at:5490: \$COMPILE_ONLY -std=mf-strict prog.cob"
29145at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:5490"
29146( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
29147) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29148at_status=$? at_failed=false
29149$at_check_filter
29150echo >>"$at_stderr"; $as_echo "prog.cob:6: error: syntax error, unexpected Identifier
29151prog.cob:7: error: syntax error, unexpected Identifier
29152prog.cob:8: error: syntax error, unexpected Identifier
29153prog.cob:9: error: syntax error, unexpected Identifier
29154prog.cob:10: error: syntax error, unexpected Identifier
29155" | \
29156  $at_diff - "$at_stderr" || at_failed=:
29157at_fn_diff_devnull "$at_stdout" || at_failed=:
29158at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5490"
29159$at_failed && at_fn_log_failure
29160$at_traceon; }
29161
29162
29163{ set +x
29164$as_echo "$at_srcdir/syn_misc.at:5498: \$COMPILE_ONLY -std=mf-strict -freserved=CONSTANT prog.cob"
29165at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict -freserved=CONSTANT prog.cob" "syn_misc.at:5498"
29166( $at_check_trace; $COMPILE_ONLY -std=mf-strict -freserved=CONSTANT prog.cob
29167) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29168at_status=$? at_failed=false
29169$at_check_filter
29170echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 01 CONSTANT does not conform to Micro Focus COBOL
29171prog.cob:7: error: 01 CONSTANT does not conform to Micro Focus COBOL
29172prog.cob:7: error: syntax error, unexpected Identifier, expecting .
29173" | \
29174  $at_diff - "$at_stderr" || at_failed=:
29175at_fn_diff_devnull "$at_stdout" || at_failed=:
29176at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5498"
29177$at_failed && at_fn_log_failure
29178$at_traceon; }
29179
29180
29181{ set +x
29182$as_echo "$at_srcdir/syn_misc.at:5504: \$COMPILE_ONLY -std=mf prog.cob"
29183at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_misc.at:5504"
29184( $at_check_trace; $COMPILE_ONLY -std=mf prog.cob
29185) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29186at_status=$? at_failed=false
29187$at_check_filter
29188echo >>"$at_stderr"; $as_echo "prog.cob:7: error: missing right parenthesis
29189prog.cob:8: error: missing left parenthesis
29190prog.cob:9: error: '/' operator misplaced
29191" | \
29192  $at_diff - "$at_stderr" || at_failed=:
29193at_fn_diff_devnull "$at_stdout" || at_failed=:
29194at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5504"
29195$at_failed && at_fn_log_failure
29196$at_traceon; }
29197
29198
29199  set +x
29200  $at_times_p && times >"$at_times_file"
29201) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29202read at_status <"$at_status_file"
29203#AT_STOP_315
29204#AT_START_316
29205at_fn_group_banner 316 'syn_misc.at:5513' \
29206  "78 VALUE" "                                       " 2
29207at_xfail=no
29208(
29209  $as_echo "316. $at_setup_line: testing $at_desc ..."
29210  $at_traceon
29211
29212
29213
29214cat >prog.cob <<'_ATEOF'
29215
29216       IDENTIFICATION DIVISION.
29217       PROGRAM-ID. prog.
29218       DATA DIVISION.
29219       WORKING-STORAGE SECTION.
29220       78  NUM2      VALUE   3.
29221       78  NEG1      VALUE   -1.
29222       78  CON3      VALUE   ((1 + 2) * NUM2 - 4.
29223       78  CON4      VALUE   (1 + 2) * NUM2 - 4).
29224       78  CON5      VALUE   (1 + 2) // NUM2.
29225       78  CON6      VALUE   (1 + 2 + 3 + (4)) / (NUM2).
29226      *
29227       PROCEDURE DIVISION.
29228       MAIN.
29229           STOP RUN.
29230_ATEOF
29231
29232
29233{ set +x
29234$as_echo "$at_srcdir/syn_misc.at:5533: \$COMPILE_ONLY prog.cob"
29235at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5533"
29236( $at_check_trace; $COMPILE_ONLY prog.cob
29237) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29238at_status=$? at_failed=false
29239$at_check_filter
29240echo >>"$at_stderr"; $as_echo "prog.cob:8: error: missing right parenthesis
29241prog.cob:9: error: missing left parenthesis
29242prog.cob:10: error: '/' operator misplaced
29243" | \
29244  $at_diff - "$at_stderr" || at_failed=:
29245at_fn_diff_devnull "$at_stdout" || at_failed=:
29246at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5533"
29247$at_failed && at_fn_log_failure
29248$at_traceon; }
29249
29250
29251{ set +x
29252$as_echo "$at_srcdir/syn_misc.at:5539: \$COMPILE_ONLY -std=ibm-strict prog.cob "
29253at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob " "syn_misc.at:5539"
29254( $at_check_trace; $COMPILE_ONLY -std=ibm-strict prog.cob
29255) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29256at_status=$? at_failed=false
29257$at_check_filter
29258echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 78 VALUE does not conform to IBM COBOL
29259prog.cob:7: error: 78 VALUE does not conform to IBM COBOL
29260prog.cob:8: error: 78 VALUE does not conform to IBM COBOL
29261prog.cob:8: error: missing right parenthesis
29262prog.cob:9: error: 78 VALUE does not conform to IBM COBOL
29263prog.cob:9: error: missing left parenthesis
29264prog.cob:10: error: 78 VALUE does not conform to IBM COBOL
29265prog.cob:10: error: '/' operator misplaced
29266prog.cob:11: error: 78 VALUE does not conform to IBM COBOL
29267" | \
29268  $at_diff - "$at_stderr" || at_failed=:
29269at_fn_diff_devnull "$at_stdout" || at_failed=:
29270at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5539"
29271$at_failed && at_fn_log_failure
29272$at_traceon; }
29273
29274
29275{ set +x
29276$as_echo "$at_srcdir/syn_misc.at:5551: \$COMPILE_ONLY -std=ibm prog.cob"
29277at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:5551"
29278( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
29279) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29280at_status=$? at_failed=false
29281$at_check_filter
29282echo >>"$at_stderr"; $as_echo "prog.cob:8: error: missing right parenthesis
29283prog.cob:9: error: missing left parenthesis
29284prog.cob:10: error: '/' operator misplaced
29285" | \
29286  $at_diff - "$at_stderr" || at_failed=:
29287at_fn_diff_devnull "$at_stdout" || at_failed=:
29288at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5551"
29289$at_failed && at_fn_log_failure
29290$at_traceon; }
29291
29292
29293  set +x
29294  $at_times_p && times >"$at_times_file"
29295) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29296read at_status <"$at_status_file"
29297#AT_STOP_316
29298#AT_START_317
29299at_fn_group_banner 317 'syn_misc.at:5560' \
29300  "level 78 NEXT / START OF" "                       " 2
29301at_xfail=no
29302(
29303  $as_echo "317. $at_setup_line: testing $at_desc ..."
29304  $at_traceon
29305
29306
29307
29308cat >prog.cob <<'_ATEOF'
29309
29310       IDENTIFICATION DIVISION.
29311       PROGRAM-ID. prog.
29312       DATA DIVISION.
29313       WORKING-STORAGE SECTION.
29314       78  POS0      VALUE NEXT.
29315       01  MYREC.
29316          05  FLD1   PIC 9(2).
29317          05  FLD2   PIC X(7).
29318             78  POS3    VALUE NEXT.
29319          05  FLD3   PIC X(2) OCCURS 5 TIMES.
29320             78  POS4    VALUE NEXT.
29321          05  FLD4   PIC X(4).
29322             78  POS-NEXT   VALUE NEXT.
29323       77  MYREC2 PIC X.
29324       01  MYREC3 EXTERNAL.
29325          05  FLD5   PIC X(4).
29326             78  POS5    VALUE NEXT.
29327          05  FLD6   PIC X(4).
29328       01  PICX      PIC XXX VALUE 'Abc'.
29329       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
29330       78  HUN2      VALUE HUN * (10 + LENGTH
29331                                       OF PICX) -4.
29332       78  DIV1      VALUE 100 / 3.
29333       78  STRT4     VALUE START OF FLD4.
29334       LINKAGE SECTION.
29335       01  XMYREC.
29336          05  XFLD1   PIC 9(2).
29337          05  XFLD2   PIC X(7).
29338             78  XPOS3    VALUE NEXT.
29339          05  XFLD3   PIC X(2) OCCURS 5 TIMES.
29340             78  XPOS4    VALUE NEXT.
29341          05  XFLD4   PIC X(4).
29342          05  XFLD5   PIC X(4).
29343       78  XSTRT4     VALUE START OF XFLD4.
29344      *
29345       PROCEDURE DIVISION.
29346           STOP RUN.
29347_ATEOF
29348
29349
29350{ set +x
29351$as_echo "$at_srcdir/syn_misc.at:5603: \$COMPILE_ONLY prog.cob"
29352at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5603"
29353( $at_check_trace; $COMPILE_ONLY prog.cob
29354) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29355at_status=$? at_failed=false
29356$at_check_filter
29357echo >>"$at_stderr"; $as_echo "prog.cob:6: error: VALUE of 'POS0': NEXT target is invalid
29358prog.cob:6: error: no previous data-item found
29359prog.cob:10: error: VALUE of 'POS3': NEXT target is invalid
29360prog.cob:10: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
29361prog.cob:12: error: VALUE of 'POS4': NEXT target is invalid
29362prog.cob:12: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
29363prog.cob:14: error: VALUE of 'POS-NEXT': NEXT target is invalid
29364prog.cob:14: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
29365prog.cob:25: error: VALUE of 'STRT4': START OF target 'FLD4' is invalid
29366prog.cob:25: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
29367" | \
29368  $at_diff - "$at_stderr" || at_failed=:
29369at_fn_diff_devnull "$at_stdout" || at_failed=:
29370at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5603"
29371$at_failed && at_fn_log_failure
29372$at_traceon; }
29373
29374
29375  set +x
29376  $at_times_p && times >"$at_times_file"
29377) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29378read at_status <"$at_status_file"
29379#AT_STOP_317
29380#AT_START_318
29381at_fn_group_banner 318 'syn_misc.at:5619' \
29382  "SYMBOLIC CONSTANT" "                              " 2
29383at_xfail=no
29384(
29385  $as_echo "318. $at_setup_line: testing $at_desc ..."
29386  $at_traceon
29387
29388
29389
29390cat >prog.cob <<'_ATEOF'
29391
29392       IDENTIFICATION DIVISION.
29393       PROGRAM-ID. prog.
29394       ENVIRONMENT DIVISION.
29395       CONFIGURATION SECTION.
29396       SPECIAL-NAMES.
29397       SYMBOLIC CONSTANT
29398         con-1  IS 1
29399         25156c   "25156c".
29400       DATA DIVISION.
29401       WORKING-STORAGE SECTION.
29402       01  NUM2      PIC 9.
29403       01  SHORT-X   PIC X(5).
29404      *
29405       PROCEDURE DIVISION.
29406       MAIN.
29407           MOVE CON-1  TO NUM2.
29408           MOVE 25156C TO SHORT-X
29409           STOP RUN.
29410_ATEOF
29411
29412
29413{ set +x
29414$as_echo "$at_srcdir/syn_misc.at:5643: \$COMPILE_ONLY prog.cob"
29415at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5643"
29416( $at_check_trace; $COMPILE_ONLY prog.cob
29417) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29418at_status=$? at_failed=false
29419$at_check_filter
29420echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
29421prog.cob:18: warning: value size exceeds data size
29422prog.cob:18: note: value size is 6
29423prog.cob:13: note: 'SHORT-X' defined here as PIC X(5)
29424" | \
29425  $at_diff - "$at_stderr" || at_failed=:
29426at_fn_diff_devnull "$at_stdout" || at_failed=:
29427at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5643"
29428$at_failed && at_fn_log_failure
29429$at_traceon; }
29430
29431
29432{ set +x
29433$as_echo "$at_srcdir/syn_misc.at:5650: \$COMPILE_ONLY -std=mf-strict prog.cob"
29434at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:5650"
29435( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
29436) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29437at_status=$? at_failed=false
29438$at_check_filter
29439echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid SYMBOLIC clause
29440prog.cob:9: error: integer value expected
29441prog.cob: in paragraph 'MAIN':
29442prog.cob:17: error: 'con-1' is not defined
29443" | \
29444  $at_diff - "$at_stderr" || at_failed=:
29445at_fn_diff_devnull "$at_stdout" || at_failed=:
29446at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5650"
29447$at_failed && at_fn_log_failure
29448$at_traceon; }
29449
29450
29451{ set +x
29452$as_echo "$at_srcdir/syn_misc.at:5657: \$COMPILE_ONLY -std=cobol2014 prog.cob"
29453at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:5657"
29454( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
29455) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29456at_status=$? at_failed=false
29457$at_check_filter
29458echo >>"$at_stderr"; $as_echo "prog.cob:9: error: SYMBOLIC CONSTANT does not conform to COBOL 2014
29459prog.cob: in paragraph 'MAIN':
29460prog.cob:18: warning: value size exceeds data size
29461prog.cob:18: note: value size is 6
29462prog.cob:13: note: 'SHORT-X' defined here as PIC X(5)
29463" | \
29464  $at_diff - "$at_stderr" || at_failed=:
29465at_fn_diff_devnull "$at_stdout" || at_failed=:
29466at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5657"
29467$at_failed && at_fn_log_failure
29468$at_traceon; }
29469
29470
29471  set +x
29472  $at_times_p && times >"$at_times_file"
29473) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29474read at_status <"$at_status_file"
29475#AT_STOP_318
29476#AT_START_319
29477at_fn_group_banner 319 'syn_misc.at:5668' \
29478  "Constant Expressions (1)" "                       " 2
29479at_xfail=no
29480(
29481  $as_echo "319. $at_setup_line: testing $at_desc ..."
29482  $at_traceon
29483
29484
29485
29486cat >prog.cob <<'_ATEOF'
29487
29488       IDENTIFICATION DIVISION.
29489       PROGRAM-ID. prog.
29490       DATA  DIVISION.
29491       WORKING-STORAGE SECTION.
29492       01  var       PIC X(200).
29493       01  othervar  PIC X(115).
29494       01  A         PIC 9 VALUE 1.
29495       01  B         PIC 9 VALUE 2.
29496       01  C         PIC 9 VALUE 3.
29497       78  var-len   value 115.
29498
29499       PROCEDURE DIVISION.
29500
29501           IF var-len < 16
29502               move othervar (1:var-len - 8)
29503                 to var (17 - var-len:var-len - 8)
29504           ELSE
29505               move othervar to var
29506           END-IF
29507
29508           IF (2 = 3)
29509               move othervar to var
29510           ELSE
29511              IF 1 = 1
29512                 move var to othervar
29513              ELSE
29514                 move othervar (1:var-len - 8)
29515                   to var (17 - var-len:var-len - 8)
29516                 IF 1 = 1
29517                    move var to othervar
29518                 END-IF
29519              END-IF
29520              move A to B
29521              IF 1 = 1
29522                IF 2 = 1
29523                 move othervar (1:var-len - 8)
29524                   to var (17 - var-len:var-len - 8)
29525           .
29526
29527           PERFORM WITH TEST BEFORE UNTIL 1 = 3
29528               move othervar to var
29529           END-PERFORM
29530
29531           PERFORM WITH TEST BEFORE UNTIL 1 = 1
29532               move othervar (1:var-len - 8)
29533                 to var (17 - var-len:var-len - 8)
29534           END-PERFORM
29535
29536           PERFORM WITH TEST AFTER UNTIL 1 = 3
29537               move othervar to var
29538           END-PERFORM
29539
29540           PERFORM WITH TEST AFTER UNTIL 1 = 1
29541               move othervar to var
29542           END-PERFORM
29543
29544           EVALUATE TRUE
29545           WHEN  var-len < 16
29546               move othervar (1:var-len - 8)
29547                 to var (17 - var-len:var-len - 8)
29548           WHEN  var-len > 16
29549               move othervar to var
29550           WHEN  A = B
29551               move var      to othervar
29552           WHEN OTHER
29553               CONTINUE
29554           END-EVALUATE
29555
29556           EVALUATE FALSE
29557           WHEN  var-len < 16
29558               move othervar (1:var-len - 9)
29559                 to var (16 - var-len:var-len - 9)
29560           WHEN  var-len > 16
29561               move othervar to var
29562           WHEN  A = B
29563               move var      to othervar
29564           WHEN OTHER
29565               CONTINUE
29566           END-EVALUATE.
29567
29568           IF 15 = var-len
29569               move othervar to var.
29570
29571           IF var-len = 15
29572               move var      to othervar.
29573
29574           STOP RUN.
29575_ATEOF
29576
29577
29578{ set +x
29579$as_echo "$at_srcdir/syn_misc.at:5761: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
29580at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5761"
29581( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option prog.cob
29582) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29583at_status=$? at_failed=false
29584$at_check_filter
29585echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29586prog.cob:17: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29587prog.cob:22: warning: expression '2' EQUALS '3' is always FALSE [-Wconstant-expression]
29588prog.cob:25: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
29589prog.cob:29: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29590prog.cob:30: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
29591prog.cob:35: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
29592prog.cob:36: warning: expression '2' EQUALS '1' is always FALSE [-Wconstant-expression]
29593prog.cob:38: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29594prog.cob:41: warning: expression '1' EQUALS '3' is always FALSE [-Wconstant-expression]
29595prog.cob:41: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
29596prog.cob:45: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
29597prog.cob:45: warning: PERFORM NEVER since UNTIL is always TRUE [-Wadditional]
29598prog.cob:47: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29599prog.cob:50: warning: expression '1' EQUALS '3' is always FALSE [-Wconstant-expression]
29600prog.cob:50: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
29601prog.cob:54: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
29602prog.cob:54: warning: PERFORM ONCE since UNTIL is always TRUE [-Wadditional]
29603prog.cob:59: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29604prog.cob:61: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29605prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
29606prog.cob:71: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29607prog.cob:73: error: offset of 'var' out of bounds: -99
29608prog.cob:74: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
29609prog.cob:82: warning: expression '15' EQUALS '115' is always FALSE [-Wconstant-expression]
29610prog.cob:85: warning: expression '115' EQUALS '15' is always FALSE [-Wconstant-expression]
29611" | \
29612  $at_diff - "$at_stderr" || at_failed=:
29613at_fn_diff_devnull "$at_stdout" || at_failed=:
29614at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5761"
29615$at_failed && at_fn_log_failure
29616$at_traceon; }
29617
29618
29619  set +x
29620  $at_times_p && times >"$at_times_file"
29621) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29622read at_status <"$at_status_file"
29623#AT_STOP_319
29624#AT_START_320
29625at_fn_group_banner 320 'syn_misc.at:5793' \
29626  "Constant Expressions (2)" "                       " 2
29627at_xfail=no
29628(
29629  $as_echo "320. $at_setup_line: testing $at_desc ..."
29630  $at_traceon
29631
29632
29633
29634cat >prog.cob <<'_ATEOF'
29635
29636       IDENTIFICATION DIVISION.
29637       PROGRAM-ID. prog.
29638       DATA  DIVISION.
29639       WORKING-STORAGE SECTION.
29640       78  const1    value 115.
29641       01  const2    CONSTANT 200.
29642       78  const3    value const2.
29643       78  const4    value const2 + const1.
29644       77  othervar  PIC X(const1).
29645       01  var       PIC X(const2).
29646
29647       PROCEDURE DIVISION.
29648
29649           IF const1 = const2
29650           OR const2 = const1
29651           OR const3 = const4
29652           OR const4 = const3
29653              DISPLAY 'no way' END-DISPLAY
29654           END-IF
29655
29656           EVALUATE const1
29657           WHEN  15
29658           WHEN 115
29659               display '1'
29660           WHEN  < 16
29661               move othervar (1:8)
29662                 to var (17:8)
29663           WHEN  > 16
29664               display othervar
29665      *> actually WHEN OTHER is also FALSE in this case (115 = 16),
29666      *> but this is too complex to check
29667           WHEN OTHER
29668               display othervar
29669           END-EVALUATE
29670
29671           STOP RUN.
29672_ATEOF
29673
29674
29675{ set +x
29676$as_echo "$at_srcdir/syn_misc.at:5835: \$COMPILE_ONLY prog.cob "
29677at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob " "syn_misc.at:5835"
29678( $at_check_trace; $COMPILE_ONLY prog.cob
29679) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29680at_status=$? at_failed=false
29681$at_check_filter
29682echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: expression '115' EQUALS '200' is always FALSE
29683prog.cob:16: warning: expression '200' EQUALS '115' is always FALSE
29684prog.cob:17: warning: expression '200' EQUALS '315' is always FALSE
29685prog.cob:18: warning: expression '315' EQUALS '200' is always FALSE
29686prog.cob:26: warning: expression '115' LESS THAN '16' is always FALSE
29687prog.cob:29: warning: expression '115' GREATER THAN '16' is always TRUE
29688prog.cob:23: warning: expression '115' EQUALS '15' is always FALSE
29689prog.cob:24: warning: expression '115' EQUALS '115' is always TRUE
29690" | \
29691  $at_diff - "$at_stderr" || at_failed=:
29692at_fn_diff_devnull "$at_stdout" || at_failed=:
29693at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5835"
29694$at_failed && at_fn_log_failure
29695$at_traceon; }
29696
29697
29698  set +x
29699  $at_times_p && times >"$at_times_file"
29700) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29701read at_status <"$at_status_file"
29702#AT_STOP_320
29703#AT_START_321
29704at_fn_group_banner 321 'syn_misc.at:5849' \
29705  "Constant Expressions (3)" "                       " 2
29706at_xfail=no
29707(
29708  $as_echo "321. $at_setup_line: testing $at_desc ..."
29709  $at_traceon
29710
29711
29712
29713# verify that we do ignore undefined errors where possible
29714cat >prog.cob <<'_ATEOF'
29715
29716       IDENTIFICATION DIVISION.
29717       PROGRAM-ID. prog.
29718       DATA  DIVISION.
29719       WORKING-STORAGE SECTION.
29720       01  var       PIC X(200).
29721       78  var-len   value 115.
29722
29723       PROCEDURE DIVISION.
29724
29725           IF var-len < 16
29726               move spaces
29727                 to var (17 - var-len:var-len - 8)
29728           END-IF
29729
29730           IF var-len < 16
29731              move notdefined to var
29732           END-IF
29733
29734           IF var-len < 16
29735              perform notdefined
29736           END-IF
29737
29738           IF var-len < 16
29739              if notdefined continue.
29740
29741           STOP RUN.
29742_ATEOF
29743
29744
29745# note: the last error message comes from program validation
29746#       and therefore cannot be raised earlier
29747{ set +x
29748$as_echo "$at_srcdir/syn_misc.at:5884: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
29749at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5884"
29750( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option prog.cob
29751) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29752at_status=$? at_failed=false
29753$at_check_filter
29754echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29755prog.cob:13: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29756prog.cob:16: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29757prog.cob:17: warning: 'notdefined' is not defined [-Wignored-error]
29758prog.cob:20: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29759prog.cob:24: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29760" | \
29761  $at_diff - "$at_stderr" || at_failed=:
29762at_fn_diff_devnull "$at_stdout" || at_failed=:
29763at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5884"
29764$at_failed && at_fn_log_failure
29765$at_traceon; }
29766
29767
29768# verify that we do only skip an undefined error when it actually was reported
29769cat >prog2.cob <<'_ATEOF'
29770
29771       IDENTIFICATION DIVISION.
29772       PROGRAM-ID. prog.
29773       DATA  DIVISION.
29774       WORKING-STORAGE SECTION.
29775       01  var       PIC X(200).
29776       78  var-len   value 115.
29777
29778       PROCEDURE DIVISION.
29779
29780           IF var-len < 16
29781              move notdefined to var *> won't be seen with -Wno-ignore-error
29782           END-IF
29783
29784       >> IF SKIP-FIRST-ERROR NOT DEFINED
29785      *> always reported here (if active) as that's the first error
29786           move notdefined to var
29787       >> END-IF
29788
29789           IF var-len < 16
29790              move notdefined to var      *> never here, because of the warning/error above
29791           END-IF
29792
29793           move var        to notdefined   *> only here if not the skip was active
29794
29795           STOP RUN.
29796_ATEOF
29797
29798
29799{ set +x
29800$as_echo "$at_srcdir/syn_misc.at:5922: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob"
29801at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob" "syn_misc.at:5922"
29802( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob
29803) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29804at_status=$? at_failed=false
29805$at_check_filter
29806echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: 'notdefined' is not defined [-Wignored-error]
29807prog2.cob:17: error: 'notdefined' is not defined
29808" | \
29809  $at_diff - "$at_stderr" || at_failed=:
29810at_fn_diff_devnull "$at_stdout" || at_failed=:
29811at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5922"
29812$at_failed && at_fn_log_failure
29813$at_traceon; }
29814
29815{ set +x
29816$as_echo "$at_srcdir/syn_misc.at:5926: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob"
29817at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob" "syn_misc.at:5926"
29818( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob
29819) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29820at_status=$? at_failed=false
29821$at_check_filter
29822echo >>"$at_stderr"; $as_echo "prog2.cob:17: error: 'notdefined' is not defined
29823" | \
29824  $at_diff - "$at_stderr" || at_failed=:
29825at_fn_diff_devnull "$at_stdout" || at_failed=:
29826at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5926"
29827$at_failed && at_fn_log_failure
29828$at_traceon; }
29829
29830{ set +x
29831$as_echo "$at_srcdir/syn_misc.at:5929: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob"
29832at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob" "syn_misc.at:5929"
29833( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob
29834) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29835at_status=$? at_failed=false
29836$at_check_filter
29837echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: 'notdefined' is not defined [-Wignored-error]
29838prog2.cob:24: error: 'notdefined' is not defined
29839" | \
29840  $at_diff - "$at_stderr" || at_failed=:
29841at_fn_diff_devnull "$at_stdout" || at_failed=:
29842at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5929"
29843$at_failed && at_fn_log_failure
29844$at_traceon; }
29845
29846{ set +x
29847$as_echo "$at_srcdir/syn_misc.at:5933: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob"
29848at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob" "syn_misc.at:5933"
29849( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob
29850) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29851at_status=$? at_failed=false
29852$at_check_filter
29853echo >>"$at_stderr"; $as_echo "prog2.cob:12: error: 'notdefined' is not defined [-Werror=ignored-error]
29854" | \
29855  $at_diff - "$at_stderr" || at_failed=:
29856at_fn_diff_devnull "$at_stdout" || at_failed=:
29857at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5933"
29858$at_failed && at_fn_log_failure
29859$at_traceon; }
29860
29861
29862  set +x
29863  $at_times_p && times >"$at_times_file"
29864) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29865read at_status <"$at_status_file"
29866#AT_STOP_321
29867#AT_START_322
29868at_fn_group_banner 322 'syn_misc.at:5940' \
29869  "Constant Expressions (4)" "                       " 2
29870at_xfail=no
29871(
29872  $as_echo "322. $at_setup_line: testing $at_desc ..."
29873  $at_traceon
29874
29875
29876
29877# verify that we do not ignore parsing errors as
29878# these are likely to raise issues in codegen
29879
29880cat >prog.cob <<'_ATEOF'
29881
29882       IDENTIFICATION DIVISION.
29883       PROGRAM-ID. prog.
29884       DATA  DIVISION.
29885       WORKING-STORAGE SECTION.
29886       01  var       PIC X(200).
29887       78  var-len   value 115.
29888
29889       PROCEDURE DIVISION.
29890
29891           IF var-len < 16
29892               move spaces
29893                 to var (17 - var-len:var-len - 8)
29894               IF IF.
29895
29896           STOP RUN.
29897_ATEOF
29898
29899
29900{ set +x
29901$as_echo "$at_srcdir/syn_misc.at:5964: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
29902at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5964"
29903( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option prog.cob
29904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
29905at_status=$? at_failed=false
29906$at_check_filter
29907echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
29908prog.cob:13: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
29909prog.cob:14: error: syntax error, unexpected IF
29910" | \
29911  $at_diff - "$at_stderr" || at_failed=:
29912at_fn_diff_devnull "$at_stdout" || at_failed=:
29913at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5964"
29914$at_failed && at_fn_log_failure
29915$at_traceon; }
29916
29917
29918  set +x
29919  $at_times_p && times >"$at_times_file"
29920) 5>&1 2>&1 7>&- | eval $at_tee_pipe
29921read at_status <"$at_status_file"
29922#AT_STOP_322
29923#AT_START_323
29924at_fn_group_banner 323 'syn_misc.at:5973' \
29925  "Constant Expressions (5)" "                       " 2
29926at_xfail=no
29927(
29928  $as_echo "323. $at_setup_line: testing $at_desc ..."
29929  $at_traceon
29930
29931
29932
29933cat >prog.cob <<'_ATEOF'
29934
29935       IDENTIFICATION DIVISION.
29936       PROGRAM-ID. prog.
29937       DATA  DIVISION.
29938       WORKING-STORAGE SECTION.
29939       01  VAR       PIC X(200).
29940       01  OTHERVAR  PIC X(115).
29941       78  VAR-LEN   VALUE 115.
29942
29943       PROCEDURE DIVISION.
29944       MAIN-10.
29945           MOVE "Peek a boo" TO VAR.
29946           EVALUATE TRUE
29947               ALSO FALSE
29948               ALSO TRUE
29949            WHEN    TRUE
29950               ALSO VAR-LEN > 16 AND VAR-LEN < 200
29951               ALSO TRUE
29952                  MOVE OTHERVAR (1 : VAR-LEN - 9)
29953                    TO VAR (16 - VAR-LEN : VAR-LEN - 9)
29954                  DISPLAY "A: Should NOT be executed"
29955            WHEN  TRUE
29956               ALSO VAR-LEN < 16
29957               ALSO TRUE
29958                  MOVE OTHERVAR TO VAR
29959                  DISPLAY "A: OK VAR-LEN > 16 AND VAR-LEN < 200"
29960            WHEN  TRUE
29961               ALSO VAR = SPACES
29962               ALSO TRUE
29963                  MOVE OTHERVAR TO VAR
29964                  DISPLAY "A: OK VAR IS SPACES"
29965           END-EVALUATE.
29966
29967           MOVE "Peek a boo" TO VAR.
29968           EVALUATE 3 EQUALS 7
29969           WHEN  VAR = SPACES
29970               DISPLAY "B: OK VAR IS NOT SPACES"
29971           WHEN  VAR NOT = SPACES
29972               DISPLAY "B: FALSE VAR IS SPACES"
29973           END-EVALUATE.
29974
29975           MOVE SPACES       TO VAR.
29976           EVALUATE FALSE
29977           WHEN  VAR = SPACES
29978               DISPLAY "C: FALSE VAR IS SPACES"
29979           WHEN  VAR NOT = SPACES
29980               DISPLAY "C: OK VAR IS SPACES"
29981           END-EVALUATE.
29982
29983           MOVE "Peek a boo" TO VAR.
29984           EVALUATE TRUE
29985           WHEN  VAR = SPACES
29986               DISPLAY "D: BAD VAR IS SPACES"
29987           WHEN  VAR NOT = SPACES
29988               DISPLAY "D: OK VAR IS NOT SPACES"
29989           END-EVALUATE.
29990
29991           MOVE SPACES       TO VAR.
29992           EVALUATE VAR-LEN ALSO VAR
29993           WHEN  < 32 ALSO SPACES
29994               DISPLAY "E: OK VAR IS SPACES"
29995           WHEN  > 16 ALSO NOT SPACES
29996               DISPLAY "E: BAD VAR IS NOT SPACES"
29997           WHEN OTHER
29998               DISPLAY "E: OK OTHER option taken"
29999           END-EVALUATE.
30000
30001           STOP RUN.
30002_ATEOF
30003
30004
30005# Note: ideally this should not result in a difference compared to the next one
30006
30007{ set +x
30008$as_echo "$at_srcdir/syn_misc.at:6048: \$COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable prog.cob"
30009at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable prog.cob" "syn_misc.at:6048"
30010( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable prog.cob
30011) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30012at_status=$? at_failed=false
30013$at_check_filter
30014echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-10':
30015prog.cob:17: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
30016prog.cob:17: warning: expression '115' LESS THAN '200' is always TRUE [-Wconstant-expression]
30017prog.cob:20: error: offset of 'VAR' out of bounds: -99
30018prog.cob:23: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
30019prog.cob:35: warning: expression '3' EQUALS '7' is always FALSE [-Wconstant-expression]
30020prog.cob:60: warning: expression '115' LESS THAN '32' is always FALSE [-Wconstant-expression]
30021prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
30022" | \
30023  $at_diff - "$at_stderr" || at_failed=:
30024at_fn_diff_devnull "$at_stdout" || at_failed=:
30025at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6048"
30026$at_failed && at_fn_log_failure
30027$at_traceon; }
30028
30029
30030{ set +x
30031$as_echo "$at_srcdir/syn_misc.at:6059: \$COMPILE_ONLY -fdiagnostics-show-option -C prog.cob"
30032at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -C prog.cob" "syn_misc.at:6059"
30033( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -C prog.cob
30034) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30035at_status=$? at_failed=false
30036$at_check_filter
30037echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-10':
30038prog.cob:17: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
30039prog.cob:17: warning: expression '115' LESS THAN '200' is always TRUE [-Wconstant-expression]
30040prog.cob:20: warning: offset of 'VAR' out of bounds: -99 [-Wignored-error]
30041prog.cob:23: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
30042prog.cob:35: warning: expression '3' EQUALS '7' is always FALSE [-Wconstant-expression]
30043prog.cob:60: warning: expression '115' LESS THAN '32' is always FALSE [-Wconstant-expression]
30044prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
30045" | \
30046  $at_diff - "$at_stderr" || at_failed=:
30047at_fn_diff_devnull "$at_stdout" || at_failed=:
30048at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6059"
30049$at_failed && at_fn_log_failure
30050$at_traceon; }
30051
30052
30053  set +x
30054  $at_times_p && times >"$at_times_file"
30055) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30056read at_status <"$at_status_file"
30057#AT_STOP_323
30058#AT_START_324
30059at_fn_group_banner 324 'syn_misc.at:6073' \
30060  "Missing imperative statements" "                  " 2
30061at_xfail=no
30062(
30063  $as_echo "324. $at_setup_line: testing $at_desc ..."
30064  $at_traceon
30065
30066
30067
30068cat >prog.cob <<'_ATEOF'
30069
30070       IDENTIFICATION DIVISION.
30071       PROGRAM-ID. prog.
30072       DATA  DIVISION.
30073       WORKING-STORAGE SECTION.
30074       01  var       PIC X(200).
30075       01  othervar  PIC X(115).
30076       01  A         PIC 9 VALUE 1.
30077       01  B         PIC 9 VALUE 2.
30078       01  C         PIC 9 VALUE 3.
30079       78  var-len   value 115.
30080
30081       PROCEDURE DIVISION.
30082
30083           IF var-len < 16
30084           ELSE
30085               move othervar to var
30086           END-IF
30087
30088           IF var-len > 16
30089           ELSE
30090               move othervar to var
30091           END-IF
30092
30093           IF (2 = 3)
30094           ELSE
30095              IF 1 = 1
30096              ELSE
30097                 IF 1 = 1
30098                    move var to othervar
30099                 END-IF
30100              END-IF
30101           .
30102
30103           EVALUATE TRUE
30104           WHEN  A = B
30105               move var      to othervar
30106           WHEN OTHER
30107           END-EVALUATE
30108
30109           PERFORM WITH TEST BEFORE UNTIL 1 <> 3
30110           END-PERFORM
30111
30112           EVALUATE FALSE
30113           WHEN  A = B
30114           WHEN  B = A
30115           END-EVALUATE.
30116
30117           EVALUATE TRUE
30118           WHEN  A = B
30119               move var      to othervar
30120           WHEN OTHER
30121           .
30122
30123           EVALUATE TRUE
30124           WHEN  A = B
30125           WHEN  B = A
30126           .
30127
30128           STOP RUN.
30129_ATEOF
30130
30131
30132{ set +x
30133$as_echo "$at_srcdir/syn_misc.at:6138: \$COMPILE_ONLY -w -fmissing-statement=error prog.cob"
30134at_fn_check_prepare_dynamic "$COMPILE_ONLY -w -fmissing-statement=error prog.cob" "syn_misc.at:6138"
30135( $at_check_trace; $COMPILE_ONLY -w -fmissing-statement=error prog.cob
30136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30137at_status=$? at_failed=false
30138$at_check_filter
30139echo >>"$at_stderr"; $as_echo "prog.cob:18: error: IF without imperative statement used
30140prog.cob:23: error: IF without imperative statement used
30141prog.cob:32: error: IF without imperative statement used
30142prog.cob:33: error: IF without imperative statement used
30143prog.cob:39: error: WHEN OTHER without imperative statement used
30144prog.cob:42: error: inline PERFORM without imperative statement used
30145prog.cob:47: error: WHEN without imperative statement used
30146prog.cob:53: error: WHEN OTHER without imperative statement used
30147prog.cob:58: error: WHEN without imperative statement used
30148" | \
30149  $at_diff - "$at_stderr" || at_failed=:
30150at_fn_diff_devnull "$at_stdout" || at_failed=:
30151at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6138"
30152$at_failed && at_fn_log_failure
30153$at_traceon; }
30154
30155
30156{ set +x
30157$as_echo "$at_srcdir/syn_misc.at:6150: \$COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob"
30158at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob" "syn_misc.at:6150"
30159( $at_check_trace; $COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob
30160) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30161at_status=$? at_failed=false
30162$at_check_filter
30163echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: IF without imperative statement used
30164prog.cob:23: warning: IF without imperative statement used
30165prog.cob:32: warning: IF without imperative statement used
30166prog.cob:33: warning: IF without imperative statement used
30167prog.cob:39: warning: WHEN OTHER without imperative statement used
30168prog.cob:42: warning: inline PERFORM without imperative statement used
30169prog.cob:47: warning: WHEN without imperative statement used
30170prog.cob:53: warning: WHEN OTHER without imperative statement used
30171prog.cob:58: warning: WHEN without imperative statement used
30172" | \
30173  $at_diff - "$at_stderr" || at_failed=:
30174at_fn_diff_devnull "$at_stdout" || at_failed=:
30175at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6150"
30176$at_failed && at_fn_log_failure
30177$at_traceon; }
30178
30179
30180  set +x
30181  $at_times_p && times >"$at_times_file"
30182) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30183read at_status <"$at_status_file"
30184#AT_STOP_324
30185#AT_START_325
30186at_fn_group_banner 325 'syn_misc.at:6165' \
30187  "Fall-Through to WHEN OTHER" "                     " 2
30188at_xfail=yes
30189(
30190  $as_echo "325. $at_setup_line: testing $at_desc ..."
30191  $at_traceon
30192
30193
30194
30195# we currently don't do the necessary parsing steps for
30196# this test to pass - and likely need a different option
30197# than frelax-syntax-checks..
30198
30199
30200
30201cat >prog.cob <<'_ATEOF'
30202
30203       IDENTIFICATION DIVISION.
30204       PROGRAM-ID. prog.
30205       DATA  DIVISION.
30206       WORKING-STORAGE SECTION.
30207       01  A         PIC 9 VALUE 1.
30208       01  B         PIC 9 VALUE 2.
30209
30210       PROCEDURE DIVISION.
30211
30212           EVALUATE TRUE
30213           WHEN A = B
30214           WHEN OTHER
30215               DISPLAY 'other' END-DISPLAY
30216           END-EVALUATE
30217
30218           STOP RUN.
30219_ATEOF
30220
30221
30222{ set +x
30223$as_echo "$at_srcdir/syn_misc.at:6193: \$COMPILE_ONLY prog.cob"
30224at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6193"
30225( $at_check_trace; $COMPILE_ONLY prog.cob
30226) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30227at_status=$? at_failed=false
30228$at_check_filter
30229echo >>"$at_stderr"; $as_echo "prog.cob:12: error: fall-through to WHEN OTHER is not allowed
30230" | \
30231  $at_diff - "$at_stderr" || at_failed=:
30232at_fn_diff_devnull "$at_stdout" || at_failed=:
30233at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6193"
30234$at_failed && at_fn_log_failure
30235$at_traceon; }
30236
30237
30238{ set +x
30239$as_echo "$at_srcdir/syn_misc.at:6197: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
30240at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:6197"
30241( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
30242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30243at_status=$? at_failed=false
30244$at_check_filter
30245echo >>"$at_stderr"; $as_echo "prog.cob:12: warning: fall-through to WHEN OTHER
30246" | \
30247  $at_diff - "$at_stderr" || at_failed=:
30248at_fn_diff_devnull "$at_stdout" || at_failed=:
30249at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6197"
30250$at_failed && at_fn_log_failure
30251$at_traceon; }
30252
30253
30254  set +x
30255  $at_times_p && times >"$at_times_file"
30256) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30257read at_status <"$at_status_file"
30258#AT_STOP_325
30259#AT_START_326
30260at_fn_group_banner 326 'syn_misc.at:6203' \
30261  "CONSTANT LENGTH / BYTE-LENGTH" "                  " 2
30262at_xfail=no
30263(
30264  $as_echo "326. $at_setup_line: testing $at_desc ..."
30265  $at_traceon
30266
30267
30268
30269cat >prog.cob <<'_ATEOF'
30270
30271       identification division.
30272       program-id. prog.
30273       environment division.
30274       data division.
30275       working-storage section.
30276       01  item-01.
30277           05  item-05-a       pointer.
30278           05  item-05-b       pic x(01).
30279       01 myk-01 constant global as length of item-01.
30280       01 myk-02 constant is global as length item-05-a.
30281       01 myk-03 constant global as length of pointer. *> extension
30282       01 myk-04 constant global as byte-length of item-01.
30283       01 myk-05 constant is global as byte-length item-05-a.
30284       01 myk-06 constant global as byte-length of pointer. *> extension
30285_ATEOF
30286
30287
30288{ set +x
30289$as_echo "$at_srcdir/syn_misc.at:6223: \$COMPILE_ONLY prog.cob"
30290at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6223"
30291( $at_check_trace; $COMPILE_ONLY prog.cob
30292) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30293at_status=$? at_failed=false
30294$at_check_filter
30295at_fn_diff_devnull "$at_stderr" || at_failed=:
30296at_fn_diff_devnull "$at_stdout" || at_failed=:
30297at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6223"
30298$at_failed && at_fn_log_failure
30299$at_traceon; }
30300
30301  set +x
30302  $at_times_p && times >"$at_times_file"
30303) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30304read at_status <"$at_status_file"
30305#AT_STOP_326
30306#AT_START_327
30307at_fn_group_banner 327 'syn_misc.at:6227' \
30308  "ANY LENGTH/NUMERIC with incorrect PIC" "          " 2
30309at_xfail=no
30310(
30311  $as_echo "327. $at_setup_line: testing $at_desc ..."
30312  $at_traceon
30313
30314
30315
30316cat >prog.cob <<'_ATEOF'
30317
30318       IDENTIFICATION DIVISION.
30319       PROGRAM-ID.    prog.
30320
30321       DATA           DIVISION.
30322       LINKAGE        SECTION.
30323       *> Valid
30324       01  valid-1    PIC X ANY LENGTH.
30325       01  valid-2    PIC N ANY LENGTH.
30326       01  valid-3    PIC 9 ANY NUMERIC.
30327
30328       *> Invalid
30329       01  invalid-1  PIC A ANY LENGTH.
30330       01  invalid-2  PIC Z ANY LENGTH.
30331       01  invalid-3  PIC 9 ANY LENGTH.
30332       01  invalid-4  PIC X ANY NUMERIC.
30333       01  invalid-5  PIC XX ANY LENGTH.
30334       01  invalid-6  PIC NN ANY LENGTH.
30335_ATEOF
30336
30337
30338{ set +x
30339$as_echo "$at_srcdir/syn_misc.at:6250: \$COMPILE_ONLY prog.cob"
30340at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6250"
30341( $at_check_trace; $COMPILE_ONLY prog.cob
30342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30343at_status=$? at_failed=false
30344$at_check_filter
30345echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
30346prog.cob:18: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
30347prog.cob:13: error: 'invalid-1' ANY LENGTH must be PIC X, PIC N or PIC 1
30348prog.cob:14: error: 'invalid-2' ANY LENGTH must be PIC X, PIC N or PIC 1
30349prog.cob:15: error: 'invalid-3' ANY LENGTH must be PIC X, PIC N or PIC 1
30350prog.cob:16: error: 'invalid-4' ANY NUMERIC must be PIC 9
30351prog.cob:17: error: 'invalid-5' ANY LENGTH has invalid definition
30352prog.cob:18: error: 'invalid-6' ANY LENGTH has invalid definition
30353prog.cob:8: error: 'valid-1' ANY LENGTH item must be a formal parameter
30354prog.cob:9: error: 'valid-2' ANY LENGTH item must be a formal parameter
30355prog.cob:10: error: 'valid-3' ANY LENGTH item must be a formal parameter
30356prog.cob:13: error: 'invalid-1' ANY LENGTH item must be a formal parameter
30357prog.cob:14: error: 'invalid-2' ANY LENGTH item must be a formal parameter
30358prog.cob:15: error: 'invalid-3' ANY LENGTH item must be a formal parameter
30359prog.cob:16: error: 'invalid-4' ANY LENGTH item must be a formal parameter
30360prog.cob:17: error: 'invalid-5' ANY LENGTH item must be a formal parameter
30361prog.cob:18: error: 'invalid-6' ANY LENGTH item must be a formal parameter
30362" | \
30363  $at_diff - "$at_stderr" || at_failed=:
30364at_fn_diff_devnull "$at_stdout" || at_failed=:
30365at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6250"
30366$at_failed && at_fn_log_failure
30367$at_traceon; }
30368
30369
30370  set +x
30371  $at_times_p && times >"$at_times_file"
30372) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30373read at_status <"$at_status_file"
30374#AT_STOP_327
30375#AT_START_328
30376at_fn_group_banner 328 'syn_misc.at:6273' \
30377  "VOLATILE clause" "                                " 2
30378at_xfail=no
30379(
30380  $as_echo "328. $at_setup_line: testing $at_desc ..."
30381  $at_traceon
30382
30383
30384
30385cat >prog.cob <<'_ATEOF'
30386
30387       IDENTIFICATION DIVISION.
30388       PROGRAM-ID. prog.
30389       DATA DIVISION.
30390       WORKING-STORAGE SECTION.
30391       01 DATA-COLLECTION.
30392          03 DATA-ITEMS-A VOLATILE.
30393             05 DATA-A1 PIC S9(9) BINARY.
30394             05 DATA-A2 PIC S9(9) BINARY.
30395          03 VOLATILE.
30396             05 DATA-FILLER PIC S9(9) BINARY.
30397          03 DATA-ITEMS-B.
30398             05 DATA-B1 PIC S9(9).
30399             05 DATA-B2 PIC S9(9) VOLATILE.
30400          03 DATA-ITEMS-C.
30401             05 DATA-C1 PIC S9(9).
30402             05 DATA-C2 PIC S9(9).
30403       01 STEP    PIC 9(8)  BINARY VALUE 0 EXTERNAL VOLATILE.
30404      *01 WRONGY    PIC X.
30405      *   88 TESTVAL-A VALUE 'A' VOLATILE.
30406      *   88 TESTVAL-B VOLATILE VALUE 'B'.
30407       LINKAGE SECTION.
30408       01  XMYREC.
30409          05  XFLD1   PIC 9(2) VOLATILE.
30410       SCREEN SECTION.
30411      *01  WRONG-SCREEN.
30412      *   05  WRONG-FIELD   PIC X VOLATILE.
30413      *
30414       PROCEDURE DIVISION.
30415           MOVE DATA-ITEMS-B TO DATA-ITEMS-C.
30416           STOP RUN.
30417_ATEOF
30418
30419
30420{ set +x
30421$as_echo "$at_srcdir/syn_misc.at:6309: \$COMPILE_ONLY -Wno-unfinished prog.cob"
30422at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished prog.cob" "syn_misc.at:6309"
30423( $at_check_trace; $COMPILE_ONLY -Wno-unfinished prog.cob
30424) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30425at_status=$? at_failed=false
30426$at_check_filter
30427echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: initial VALUE clause ignored for EXTERNAL item 'STEP'
30428" | \
30429  $at_diff - "$at_stderr" || at_failed=:
30430at_fn_diff_devnull "$at_stdout" || at_failed=:
30431at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6309"
30432$at_failed && at_fn_log_failure
30433$at_traceon; }
30434
30435
30436  set +x
30437  $at_times_p && times >"$at_times_file"
30438) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30439read at_status <"$at_status_file"
30440#AT_STOP_328
30441#AT_START_329
30442at_fn_group_banner 329 'syn_misc.at:6316' \
30443  "SET SOURCEFORMAT syntax checks" "                 " 2
30444at_xfail=no
30445(
30446  $as_echo "329. $at_setup_line: testing $at_desc ..."
30447  $at_traceon
30448
30449
30450
30451cat >prog.cob <<'_ATEOF'
30452
30453       *> Valid
30454       $set sourceformat(free)
30455       $SET SOURCEFORMAT"FIXED"
30456       *> Invalid
30457       $SET SOURCEFORMAT"hi!"
30458       $SET SOURCEFORMAT()
30459       $SET sourceformat'mis-matched"
30460_ATEOF
30461
30462
30463# FIXME: something is broken with the '"#OPTION here,
30464#        that should be generated as #OPTION 'mis-matched"
30465#        and in a second step not be generated at all
30466
30467{ set +x
30468$as_echo "$at_srcdir/syn_misc.at:6333: \$COMPILE_ONLY prog.cob"
30469at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6333"
30470( $at_check_trace; $COMPILE_ONLY prog.cob
30471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30472at_status=$? at_failed=false
30473$at_check_filter
30474echo >>"$at_stderr"; $as_echo "prog.cob:6: error: invalid SOURCEFORMAT directive option 'hi!'
30475prog.cob:7: error: invalid SOURCEFORMAT directive option ''
30476prog.cob:8: error: syntax error, unexpected Variable, expecting Literal
30477prog.cob:8: error: invalid SOURCEFORMAT directive option
30478prog.cob:8: error: invalid literal: '\"#OPTION mis-matched ...'
30479prog.cob:8: error: missing terminating ' character
30480prog.cob:8: error: PROGRAM-ID header missing
30481prog.cob:8: error: PROCEDURE DIVISION header missing
30482prog.cob:8: error: syntax error, unexpected Literal
30483" | \
30484  $at_diff - "$at_stderr" || at_failed=:
30485at_fn_diff_devnull "$at_stdout" || at_failed=:
30486at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6333"
30487$at_failed && at_fn_log_failure
30488$at_traceon; }
30489
30490  set +x
30491  $at_times_p && times >"$at_times_file"
30492) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30493read at_status <"$at_status_file"
30494#AT_STOP_329
30495#AT_START_330
30496at_fn_group_banner 330 'syn_misc.at:6349' \
30497  "WHEN-COMPILED register in dialect" "              " 2
30498at_xfail=no
30499(
30500  $as_echo "330. $at_setup_line: testing $at_desc ..."
30501  $at_traceon
30502
30503
30504
30505cat >prog.cob <<'_ATEOF'
30506
30507       IDENTIFICATION DIVISION.
30508       PROGRAM-ID. prog.
30509
30510       PROCEDURE DIVISION.
30511           DISPLAY WHEN-COMPILED
30512           .
30513_ATEOF
30514
30515
30516{ set +x
30517$as_echo "$at_srcdir/syn_misc.at:6361: \$COMPILE_ONLY -std=cobol2014 prog.cob"
30518at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6361"
30519( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
30520) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30521at_status=$? at_failed=false
30522$at_check_filter
30523echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'WHEN-COMPILED' is not defined
30524" | \
30525  $at_diff - "$at_stderr" || at_failed=:
30526at_fn_diff_devnull "$at_stdout" || at_failed=:
30527at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6361"
30528$at_failed && at_fn_log_failure
30529$at_traceon; }
30530
30531{ set +x
30532$as_echo "$at_srcdir/syn_misc.at:6364: \$COMPILE_ONLY -std=ibm prog.cob"
30533at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:6364"
30534( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
30535) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30536at_status=$? at_failed=false
30537$at_check_filter
30538at_fn_diff_devnull "$at_stderr" || at_failed=:
30539at_fn_diff_devnull "$at_stdout" || at_failed=:
30540at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6364"
30541$at_failed && at_fn_log_failure
30542$at_traceon; }
30543
30544{ set +x
30545$as_echo "$at_srcdir/syn_misc.at:6365: \$COMPILE_ONLY -std=mvs prog.cob"
30546at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "syn_misc.at:6365"
30547( $at_check_trace; $COMPILE_ONLY -std=mvs prog.cob
30548) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30549at_status=$? at_failed=false
30550$at_check_filter
30551at_fn_diff_devnull "$at_stderr" || at_failed=:
30552at_fn_diff_devnull "$at_stdout" || at_failed=:
30553at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6365"
30554$at_failed && at_fn_log_failure
30555$at_traceon; }
30556
30557{ set +x
30558$as_echo "$at_srcdir/syn_misc.at:6366: \$COMPILE_ONLY -std=rm prog.cob"
30559at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm prog.cob" "syn_misc.at:6366"
30560( $at_check_trace; $COMPILE_ONLY -std=rm prog.cob
30561) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30562at_status=$? at_failed=false
30563$at_check_filter
30564at_fn_diff_devnull "$at_stderr" || at_failed=:
30565at_fn_diff_devnull "$at_stdout" || at_failed=:
30566at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6366"
30567$at_failed && at_fn_log_failure
30568$at_traceon; }
30569
30570{ set +x
30571$as_echo "$at_srcdir/syn_misc.at:6367: \$COMPILE_ONLY -fregister=WHEN-COMPILED prog.cob"
30572at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=WHEN-COMPILED prog.cob" "syn_misc.at:6367"
30573( $at_check_trace; $COMPILE_ONLY -fregister=WHEN-COMPILED prog.cob
30574) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30575at_status=$? at_failed=false
30576$at_check_filter
30577at_fn_diff_devnull "$at_stderr" || at_failed=:
30578at_fn_diff_devnull "$at_stdout" || at_failed=:
30579at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6367"
30580$at_failed && at_fn_log_failure
30581$at_traceon; }
30582
30583{ set +x
30584$as_echo "$at_srcdir/syn_misc.at:6368: \$COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED prog.cob"
30585at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED prog.cob" "syn_misc.at:6368"
30586( $at_check_trace; $COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED prog.cob
30587) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30588at_status=$? at_failed=false
30589$at_check_filter
30590at_fn_diff_devnull "$at_stderr" || at_failed=:
30591at_fn_diff_devnull "$at_stdout" || at_failed=:
30592at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6368"
30593$at_failed && at_fn_log_failure
30594$at_traceon; }
30595
30596  set +x
30597  $at_times_p && times >"$at_times_file"
30598) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30599read at_status <"$at_status_file"
30600#AT_STOP_330
30601#AT_START_331
30602at_fn_group_banner 331 'syn_misc.at:6375' \
30603  "LIN / COL register" "                             " 2
30604at_xfail=no
30605(
30606  $as_echo "331. $at_setup_line: testing $at_desc ..."
30607  $at_traceon
30608
30609
30610
30611cat >prog.cob <<'_ATEOF'
30612
30613       IDENTIFICATION DIVISION.
30614       PROGRAM-ID. prog.
30615
30616       PROCEDURE DIVISION.
30617           MOVE 1 TO LIN, COL
30618           .
30619_ATEOF
30620
30621
30622# "strict" configuration:
30623{ set +x
30624$as_echo "$at_srcdir/syn_misc.at:6388: \$COMPILE_ONLY -std=cobol2014 prog.cob"
30625at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6388"
30626( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
30627) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30628at_status=$? at_failed=false
30629$at_check_filter
30630echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'LIN' is not defined
30631prog.cob:6: error: syntax error, unexpected COL
30632" | \
30633  $at_diff - "$at_stderr" || at_failed=:
30634at_fn_diff_devnull "$at_stdout" || at_failed=:
30635at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6388"
30636$at_failed && at_fn_log_failure
30637$at_traceon; }
30638
30639# "lax" configuration:
30640{ set +x
30641$as_echo "$at_srcdir/syn_misc.at:6393: \$COMPILE_ONLY -std=acu prog.cob"
30642at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:6393"
30643( $at_check_trace; $COMPILE_ONLY -std=acu prog.cob
30644) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30645at_status=$? at_failed=false
30646$at_check_filter
30647echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'LIN' is not defined
30648prog.cob:6: error: syntax error, unexpected COL
30649" | \
30650  $at_diff - "$at_stderr" || at_failed=:
30651at_fn_diff_devnull "$at_stdout" || at_failed=:
30652at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6393"
30653$at_failed && at_fn_log_failure
30654$at_traceon; }
30655
30656# standard configuration:
30657{ set +x
30658$as_echo "$at_srcdir/syn_misc.at:6398: \$COMPILE_ONLY prog.cob"
30659at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6398"
30660( $at_check_trace; $COMPILE_ONLY prog.cob
30661) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30662at_status=$? at_failed=false
30663$at_check_filter
30664echo >>"$at_stderr"; $as_echo "prog.cob:6: error: 'LIN' is not defined
30665prog.cob:6: error: syntax error, unexpected COL
30666" | \
30667  $at_diff - "$at_stderr" || at_failed=:
30668at_fn_diff_devnull "$at_stdout" || at_failed=:
30669at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6398"
30670$at_failed && at_fn_log_failure
30671$at_traceon; }
30672
30673# explicit enabled
30674{ set +x
30675$as_echo "$at_srcdir/syn_misc.at:6403: \$COMPILE_ONLY -fregister=LIN,COL prog.cob"
30676at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=LIN,COL prog.cob" "syn_misc.at:6403"
30677( $at_check_trace; $COMPILE_ONLY -fregister=LIN,COL prog.cob
30678) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30679at_status=$? at_failed=false
30680$at_check_filter
30681at_fn_diff_devnull "$at_stderr" || at_failed=:
30682at_fn_diff_devnull "$at_stdout" || at_failed=:
30683at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6403"
30684$at_failed && at_fn_log_failure
30685$at_traceon; }
30686
30687  set +x
30688  $at_times_p && times >"$at_times_file"
30689) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30690read at_status <"$at_status_file"
30691#AT_STOP_331
30692#AT_START_332
30693at_fn_group_banner 332 'syn_misc.at:6407' \
30694  "tokens consisting of multiple words" "            " 2
30695at_xfail=no
30696(
30697  $as_echo "332. $at_setup_line: testing $at_desc ..."
30698  $at_traceon
30699
30700# note: we actually do not check for all possible cases, but two are better than none...
30701
30702
30703cat >prog.cob <<'_ATEOF'
30704
30705       IDENTIFICATION DIVISION.
30706       PROGRAM-ID. prog.
30707       DATA DIVISION.
30708       WORKING-STORAGE SECTION.
30709       01  test-var   pic xx.
30710           88  endOfFile value '10'.
30711       01  todo       pic xx.
30712
30713       PROCEDURE DIVISION.
30714           if not endOfFile
30715              display 'all fine'
30716           end-if
30717           if test-var greater or equal todo
30718              display 'still fine'
30719           end-if
30720           .
30721_ATEOF
30722
30723
30724{ set +x
30725$as_echo "$at_srcdir/syn_misc.at:6430: \$COMPILE_ONLY prog.cob"
30726at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6430"
30727( $at_check_trace; $COMPILE_ONLY prog.cob
30728) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30729at_status=$? at_failed=false
30730$at_check_filter
30731at_fn_diff_devnull "$at_stderr" || at_failed=:
30732at_fn_diff_devnull "$at_stdout" || at_failed=:
30733at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6430"
30734$at_failed && at_fn_log_failure
30735$at_traceon; }
30736
30737  set +x
30738  $at_times_p && times >"$at_times_file"
30739) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30740read at_status <"$at_status_file"
30741#AT_STOP_332
30742#AT_START_333
30743at_fn_group_banner 333 'syn_misc.at:6434' \
30744  "zero-length literals" "                           " 2
30745at_xfail=no
30746(
30747  $as_echo "333. $at_setup_line: testing $at_desc ..."
30748  $at_traceon
30749
30750
30751
30752cat >prog.cob <<'_ATEOF'
30753
30754       IDENTIFICATION  DIVISION.
30755       PROGRAM-ID.     prog.
30756
30757       DATA            DIVISION.
30758       WORKING-STORAGE SECTION.
30759       01  x           PIC X.
30760       01  nat         PIC N.
30761       01  n           PIC 9.
30762
30763       PROCEDURE       DIVISION.
30764           MOVE X'' TO x
30765           MOVE H'' TO x
30766           MOVE Z'' TO x
30767           MOVE L'' TO x
30768           MOVE N"" TO nat
30769           MOVE NX'' TO nat
30770           MOVE B"" TO n
30771           MOVE BX"" TO n
30772           .
30773_ATEOF
30774
30775
30776{ set +x
30777$as_echo "$at_srcdir/syn_misc.at:6459: \$COMPILE_ONLY prog.cob"
30778at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6459"
30779( $at_check_trace; $COMPILE_ONLY prog.cob
30780) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30781at_status=$? at_failed=false
30782$at_check_filter
30783echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
30784prog.cob:12: warning: hexadecimal literal has zero length; X'00' will be assumed
30785prog.cob:13: error: H literals must contain at least one character
30786prog.cob:14: error: invalid Z literal: ''
30787prog.cob:14: error: Z literals must contain at least one character
30788prog.cob:15: error: invalid L literal: ''
30789prog.cob:15: error: L literals must contain at least one character
30790prog.cob:16: warning: national literal has zero length; a SPACE will be assumed
30791prog.cob:16: warning: handling of national literal is unfinished; implementation is likely to be changed
30792prog.cob:17: warning: hexadecimal literal has zero length; X'00' will be assumed
30793prog.cob:18: warning: Boolean literal has zero length; B'0' will be assumed
30794prog.cob:19: warning: hexadecimal literal has zero length; X'00' will be assumed
30795" | \
30796  $at_diff - "$at_stderr" || at_failed=:
30797at_fn_diff_devnull "$at_stdout" || at_failed=:
30798at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6459"
30799$at_failed && at_fn_log_failure
30800$at_traceon; }
30801
30802{ set +x
30803$as_echo "$at_srcdir/syn_misc.at:6473: \$COMPILE_ONLY -fzero-length-literals=error prog.cob"
30804at_fn_check_prepare_dynamic "$COMPILE_ONLY -fzero-length-literals=error prog.cob" "syn_misc.at:6473"
30805( $at_check_trace; $COMPILE_ONLY -fzero-length-literals=error prog.cob
30806) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30807at_status=$? at_failed=false
30808$at_check_filter
30809echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
30810prog.cob:12: error: zero-length literal used
30811prog.cob:12: warning: hexadecimal literal has zero length; X'00' will be assumed
30812prog.cob:13: error: H literals must contain at least one character
30813prog.cob:14: error: invalid Z literal: ''
30814prog.cob:14: error: Z literals must contain at least one character
30815prog.cob:15: error: invalid L literal: ''
30816prog.cob:15: error: L literals must contain at least one character
30817prog.cob:16: error: zero-length literal used
30818prog.cob:16: warning: national literal has zero length; a SPACE will be assumed
30819prog.cob:16: warning: handling of national literal is unfinished; implementation is likely to be changed
30820prog.cob:17: error: zero-length literal used
30821prog.cob:17: warning: hexadecimal literal has zero length; X'00' will be assumed
30822prog.cob:18: error: zero-length literal used
30823prog.cob:18: warning: Boolean literal has zero length; B'0' will be assumed
30824prog.cob:19: error: zero-length literal used
30825prog.cob:19: warning: hexadecimal literal has zero length; X'00' will be assumed
30826" | \
30827  $at_diff - "$at_stderr" || at_failed=:
30828at_fn_diff_devnull "$at_stdout" || at_failed=:
30829at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6473"
30830$at_failed && at_fn_log_failure
30831$at_traceon; }
30832
30833  set +x
30834  $at_times_p && times >"$at_times_file"
30835) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30836read at_status <"$at_status_file"
30837#AT_STOP_333
30838#AT_START_334
30839at_fn_group_banner 334 'syn_misc.at:6495' \
30840  "@OPTIONS parsing" "                               " 2
30841at_xfail=no
30842(
30843  $as_echo "334. $at_setup_line: testing $at_desc ..."
30844  $at_traceon
30845
30846
30847
30848# GnuCOBOL currently only skips these, see FR 305
30849
30850cat >valid.cob <<'_ATEOF'
30851
30852000100 @OPTIONS NOMAIN,APOST
30853000200 IDENTIFICATION  DIVISION.
30854000300 PROGRAM-ID. VALID.
30855_ATEOF
30856
30857
30858{ set +x
30859$as_echo "$at_srcdir/syn_misc.at:6506: \$COMPILE_ONLY valid.cob"
30860at_fn_check_prepare_dynamic "$COMPILE_ONLY valid.cob" "syn_misc.at:6506"
30861( $at_check_trace; $COMPILE_ONLY valid.cob
30862) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30863at_status=$? at_failed=false
30864$at_check_filter
30865echo >>"$at_stderr"; $as_echo "valid.cob:3: warning: ignoring unknown directive: '@OPTIONS'
30866" | \
30867  $at_diff - "$at_stderr" || at_failed=:
30868at_fn_diff_devnull "$at_stdout" || at_failed=:
30869at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6506"
30870$at_failed && at_fn_log_failure
30871$at_traceon; }
30872
30873
30874#AT_DATA([invalid.cob], [
30875#       @OPTIONS ALPHAL(WORD)
30876#       @OPTIONS INITVALUE(100)
30877#       @OPTIONS INITVALUE(F)
30878#       @OPTIONS INITVALUE(AG)
30879#       @OPTIONS BINARY(WORD,MLBON) INITVALUE(00) NOTRUNC
30880#       @OPTIONS INITVALUE(00)
30881#       @OPTIONS NOTRUNC
30882#       @OPTIONS APOST,MAIN
30883#       @OPTIONS THREAD(SINGLE)
30884#       IDENTIFICATION DIVISION.
30885#       PROGRAM-ID. INVALID.
30886#])
30887
30888#AT_CHECK([$COMPILE_ONLY valid.cob], [0], [], [])
30889#AT_CHECK([$COMPILE_ONLY invalid.cob], [1], [],
30890#[invalid.cob:2: warning: unknown @OPTIONS directive 'ALPHAL'
30891#invalid.cob:3: error: invalid @OPTIONS INITVALUE value '100'
30892#invalid.cob:4: error: invalid @OPTIONS INITVALUE value 'F'
30893#invalid.cob:5: error: invalid @OPTIONS INITVALUE value 'AG'
30894#invalid.cob:6: warning: skipping line after first space
30895#invalid.cob:7: error: @OPTIONS MAIN conflicts with command line option '-m'
30896#])
30897
30898  set +x
30899  $at_times_p && times >"$at_times_file"
30900) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30901read at_status <"$at_status_file"
30902#AT_STOP_334
30903#AT_START_335
30904at_fn_group_banner 335 'syn_misc.at:6537' \
30905  "system routines with wrong number of parameters" "" 2
30906at_xfail=no
30907(
30908  $as_echo "335. $at_setup_line: testing $at_desc ..."
30909  $at_traceon
30910
30911
30912
30913cat >prog.cob <<'_ATEOF'
30914
30915       IDENTIFICATION  DIVISION.
30916       PROGRAM-ID. prog.
30917       DATA DIVISION.
30918       WORKING-STORAGE SECTION.
30919       01 VAR1  PIC 9.
30920       01 VAR2  PIC 9.
30921       01 VAR3  PIC 9.
30922       01 VAR4  PIC 9.
30923       PROCEDURE DIVISION.
30924        CALL X"91" USING VAR1 VAR2 VAR3 VAR4.
30925        CALL X"91" USING VAR1.
30926        CALL "C$TOUPPER" USING VAR1 VAR2 VAR3.
30927        CALL "CBL_GC_FORK" USING VAR1.
30928_ATEOF
30929
30930
30931{ set +x
30932$as_echo "$at_srcdir/syn_misc.at:6556: \$COMPILE_ONLY prog.cob"
30933at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6556"
30934( $at_check_trace; $COMPILE_ONLY prog.cob
30935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
30936at_status=$? at_failed=false
30937$at_check_filter
30938echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: wrong number of CALL parameters for 'X\"91\"', 4 given, 3 expected
30939prog.cob:12: error: wrong number of CALL parameters for 'X\"91\"', 1 given, 3 expected
30940prog.cob:13: warning: wrong number of CALL parameters for 'C\$TOUPPER', 3 given, 2 expected
30941prog.cob:14: warning: wrong number of CALL parameters for 'CBL_GC_FORK', 1 given, 0 expected
30942" | \
30943  $at_diff - "$at_stderr" || at_failed=:
30944at_fn_diff_devnull "$at_stdout" || at_failed=:
30945at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6556"
30946$at_failed && at_fn_log_failure
30947$at_traceon; }
30948
30949
30950  set +x
30951  $at_times_p && times >"$at_times_file"
30952) 5>&1 2>&1 7>&- | eval $at_tee_pipe
30953read at_status <"$at_status_file"
30954#AT_STOP_335
30955#AT_START_336
30956at_fn_group_banner 336 'syn_misc.at:6566' \
30957  "invalid use of condition-name" "                  " 2
30958at_xfail=no
30959(
30960  $as_echo "336. $at_setup_line: testing $at_desc ..."
30961  $at_traceon
30962
30963
30964# see Bug #543 "level 88 item not checked in all places for STRING"
30965# and FR #339
30966# Note: we actually check much more here, for example special data types
30967#       like HANDLE, see "ACUCOBOL USAGE HANDLE";
30968#       condition-name is also checked in syn_file.at "WRITE / REWRITE FROM clause"
30969
30970cat >prog.cob <<'_ATEOF'
30971
30972       identification   division.
30973       program-id.      prog.
30974       data             division.
30975       working-storage  section.
30976       77 p        usage pointer.
30977       01 val      pic x(10).
30978          88 val-i1 value 'some'.
30979          88 val-i2 value 'val'.
30980       77 val2     pic x(50).
30981       77 target   pic x(50).
30982       01 vnum     pic 9.
30983          88 vnum-1 value  1.
30984          88 vnum-2 values 2 thru 5.
30985          88 vnum-9 value  9.
30986       01 filler.
30987          02 tentry pic x occurs 0 to 6 depending on vnum-1.
30988       procedure        division.
30989           string   val-i1 delimited by size  into target
30990           string   val2   delimited by val-i2 into target
30991           string   val2   delimited by size   into val-i1
30992                           with pointer val-i2
30993           unstring val-i1                     into target
30994           unstring val2   delimited by val-i1 into target
30995           unstring val2                       into val-i1
30996                           with pointer val-i2
30997           move val-i1
30998             to val-i2, tentry (vnum-9)
30999           compute vnum-1 = vnum
31000           compute vnum    = vnum-1 /
31001                             vnum-2
31002           go to val-i1
31003           set p to val-i1
31004           set p to address of val-i2.
31005_ATEOF
31006
31007
31008{ set +x
31009$as_echo "$at_srcdir/syn_misc.at:6610: \$COMPILE_ONLY prog.cob"
31010at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6610"
31011( $at_check_trace; $COMPILE_ONLY prog.cob
31012) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31013at_status=$? at_failed=false
31014$at_check_filter
31015echo >>"$at_stderr"; $as_echo "prog.cob:17: error: condition-name not allowed here: 'vnum-1'
31016prog.cob:19: error: condition-name not allowed here: 'val-i1'
31017prog.cob:20: error: condition-name not allowed here: 'val-i2'
31018prog.cob:21: error: condition-name not allowed here: 'val-i1'
31019prog.cob:23: error: condition-name not allowed here: 'val-i1'
31020prog.cob:24: error: condition-name not allowed here: 'val-i1'
31021prog.cob:25: error: condition-name not allowed here: 'val-i1'
31022prog.cob:28: error: condition-name not allowed here: 'vnum-9'
31023prog.cob:27: error: condition-name not allowed here: 'val-i1'
31024prog.cob:29: error: condition-name not allowed here: 'vnum-1'
31025prog.cob:30: error: condition-name not allowed here: 'vnum-1'
31026prog.cob:31: error: condition-name not allowed here: 'vnum-2'
31027prog.cob:33: error: condition-name not allowed here: 'val-i1'
31028prog.cob:34: error: condition-name not allowed here: 'val-i2'
31029prog.cob:32: error: 'val-i1 (MAIN SECTION:)' is not a procedure name
31030" | \
31031  $at_diff - "$at_stderr" || at_failed=:
31032at_fn_diff_devnull "$at_stdout" || at_failed=:
31033at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6610"
31034$at_failed && at_fn_log_failure
31035$at_traceon; }
31036
31037  set +x
31038  $at_times_p && times >"$at_times_file"
31039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31040read at_status <"$at_status_file"
31041#AT_STOP_336
31042#AT_START_337
31043at_fn_group_banner 337 'syn_misc.at:6630' \
31044  "XML GENERATE syntax checks" "                     " 2
31045at_xfail=no
31046(
31047  $as_echo "337. $at_setup_line: testing $at_desc ..."
31048  $at_traceon
31049
31050
31051
31052cat >prog.cob <<'_ATEOF'
31053
31054       IDENTIFICATION DIVISION.
31055       PROGRAM-ID. prog.
31056
31057       DATA DIVISION.
31058       WORKING-STORAGE SECTION.
31059       01  str.
31060           03  str-1 PIC XX.
31061           03  str-2 PIC X.
31062       66  renames-item RENAMES str-1 THRU str-2.
31063       01  bool-area.
31064           03  bool-item PIC 1(30) USAGE BIT.
31065           03  zoned-decimal PIC 99V99 PACKED-DECIMAL.
31066       01  just-item PIC X(30) JUST.
31067       01  table-area.
31068           03  table-entry PIC X(30) OCCURS 2 TIMES.
31069       01  long-str PIC X(200).
31070
31071       01  float-item FLOAT-SHORT.
31072       01  pic-p-item PIC 99P(3).
31073
31074       01  rec.
31075           03  child-1 PIC X(30).
31076           03  child-1a REDEFINES child-1 PIC 9(30).
31077           03  child-2 PIC X(30).
31078           03  child-3.
31079               05  child-3-1 PIC X OCCURS 5 TIMES.
31080
31081       01  all-filler-rec.
31082           03  FILLER PIC XXXX.
31083           03  FILLER PIC 9999.
31084
31085       01  invalid-sub-elt-rec.
31086           03  non-unique-name PIC X.
31087           03  valid-sub-rec.
31088               05  non-unique-name PIC X.
31089           03  bit-item PIC 1 USAGE BIT.
31090           03  ptr-item USAGE POINTER.
31091
31092       01  with-attrs-does-nothing.
31093           03  FILLER PIC X.
31094           03  table-elt PIC X OCCURS 2 TIMES.
31095           03  with-attrs-group.
31096               05  with-attrs-group-child PIC X.
31097           03  with-attrs-child PIC X.
31098
31099       PROCEDURE DIVISION.
31100           *> Receiving area is not alphanumeric or national.
31101           XML GENERATE bool-item FROM str
31102           *> Receiving area is JUSTIFIED RIGHT.
31103           XML GENERATE just-item FROM str
31104           *> Receiving area is subscripted or ref-mod'd.
31105           XML GENERATE table-entry (1) FROM str
31106           XML GENERATE long-str (1:100) FROM str
31107
31108           *> Input record cannot be function identifier.
31109           XML GENERATE long-str FROM FUNCTION CHAR(4)
31110           *> Input record cannot be ref-mod'd.
31111           XML GENERATE long-str FROM str (2:1)
31112           *>  "       "   is not RENAMES (children may be RENAMES).
31113           XML GENERATE long-str FROM renames-item
31114           *> Non-ignored items of the input record must:
31115           *>  * alphabetic, alphanumeric, national, numeric or index.
31116           *>  * there must be at least one item.
31117           *>  * each non-FILLER name must be unique within the input record.
31118           XML GENERATE long-str FROM invalid-sub-elt-rec *> XXXXXXXXX ptr element is invalid
31119           XML GENERATE long-str FROM all-filler-rec
31120
31121           *> COUNT IN field must be an integer.
31122           XML GENERATE long-str FROM str COUNT float-item
31123           *> COUNT IN field must not have P in PIC.
31124           XML GENERATE long-str FROM str COUNT pic-p-item
31125
31126           *> ENCODING codepage must be unsigned integer.
31127           *> If receiving area is national, codepage must be 1200.
31128           *> "        "       "   alphanumeric, codepage must be 1208 or EBCDIC
31129           *>   page supported with XML.
31130
31131           *> WITH ATTRIBUTES, generated immediate children must be
31132           *>  * elementary
31133           *>  * be non-FILLER
31134           *>  * not be OCCURS
31135           *>  * not be subject of a TYPE phrase.
31136           XML GENERATE long-str FROM with-attrs-does-nothing
31137               WITH ATTRIBUTES
31138               TYPE OF with-attrs-child IS ELEMENT
31139
31140           *> NAMESPACE must be a valid URI.
31141           XML GENERATE long-str FROM str NAMESPACE "<>"
31142           *> NAMESPACE and -PREFIX must be alphanumeric or national.
31143           XML GENERATE long-str FROM str
31144              NAMESPACE bool-item NAMESPACE-PREFIX bool-item
31145           *>   "        "     "    may not be figurative constants.
31146           XML GENERATE long-str FROM str
31147               NAMESPACE SPACES NAMESPACE-PREFIX QUOTES
31148           *> NAMESPACE-PREFIX must be a valid XML name.
31149           XML GENERATE long-str FROM str
31150               NAMESPACE "http://www.w3.org/xml" NAMESPACE-PREFIX X"00"
31151
31152           *> NAME items must reference input record or its children.
31153           XML GENERATE long-str FROM rec
31154               NAME OF child-1 IS "c1", long-str IS "c2", rec IS "r"
31155           *> NAME items cannot be reference modified or subscripted.
31156           XML GENERATE long-str FROM rec
31157               NAME OF child-1 (1:2) IS "c1"
31158           *> NAME items may not be ignored by the statement.
31159           XML GENERATE long-str FROM rec
31160               NAME OF child-1a IS "c1a"
31161           *> NAME literals must be valid XML names.
31162           XML GENERATE long-str FROM rec
31163               NAME OF child-1 IS X"00"
31164
31165           *> TYPE items must be elementary and children of input record.
31166           XML GENERATE long-str FROM rec
31167               TYPE OF child-3 IS ELEMENT, long-str IS CONTENT,
31168                   rec IS CONTENT
31169           *> TYPE items cannot be ref-mod'd or subscripted.
31170           XML GENERATE long-str FROM rec
31171               TYPE OF child-1 (1:3) IS ATTRIBUTE,
31172                   child-3-1 (1) IS CONTENT
31173           *> TYPE items may not be ignored by the statement
31174           XML GENERATE long-str FROM rec
31175               TYPE OF child-1a IS ELEMENT
31176           *> TYPE ATTRIBUTE items must satisfy the conditions for WITH
31177           *>  ATTRIBUTES. (Covered by the above.)
31178
31179           *> SUPPRESS WHEN items must be:
31180           *>  * elementary
31181           *>  * not ignored
31182           *>  * child of input record.
31183           XML GENERATE long-str FROM rec
31184               SUPPRESS child-3 WHEN SPACES, child-1a WHEN SPACES,
31185                   rec WHEN SPACES
31186          *> All SUPPRESS items must not be functions
31187           XML GENERATE long-str FROM rec
31188               SUPPRESS FUNCTION CHAR(5) WHEN SPACE
31189           *> All SUPPRESS items must not be ref-mod'd or subscripted.
31190           XML GENERATE long-str FROM rec
31191               SUPPRESS child-1 (1:3) WHEN ZERO,
31192                   child-3-1 (1) WHEN SPACES
31193           *> If non-WHEN SUPPRESS items may be groups. (No error message here.)
31194           XML GENERATE long-str FROM rec SUPPRESS child-3
31195           *> If SUPPRESS WHEN ZEROES, item is not DISPLAY-1.
31196           *> If SUPPRESS WHEN SPACES, item must be USAGE DISPLAY, DISPLAY-1 or
31197           *>   NATIONAL
31198           XML GENERATE long-str FROM bool-area
31199               SUPPRESS bool-item WHEN SPACES
31200           *> If SUPPRESS WHEN LOW-/HIGH-VALUES, item must be USAGE DISPLAY or
31201           *>   NATIONAL. If item is a zoned/national decimal item, it must be
31202           *>   an integer.
31203           XML GENERATE long-str FROM bool-area
31204               SUPPRESS bool-item WHEN LOW-VALUES,
31205                   zoned-decimal WHEN HIGH-VALUE
31206           *> (For generic WHEN phrases, invalid items above are ignored.)
31207           GOBACK.
31208_ATEOF
31209
31210
31211{ set +x
31212$as_echo "$at_srcdir/syn_misc.at:6790: \$COMPILE_ONLY prog.cob"
31213at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6790"
31214( $at_check_trace; $COMPILE_ONLY prog.cob
31215) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31216at_status=$? at_failed=false
31217$at_check_filter
31218echo >>"$at_stderr"; $as_echo "prog.cob:12: warning: USAGE BIT is not implemented
31219prog.cob:37: warning: USAGE BIT is not implemented
31220prog.cob:49: error: JSON/XML GENERATE receiving item must be alphanumeric or national
31221prog.cob:51: error: JSON/XML GENERATE receiving item may not have JUSTIFIED clause
31222prog.cob:53: error: JSON/XML GENERATE receiving item may not be subscripted
31223prog.cob:54: error: JSON/XML GENERATE receiving item may not be reference modified
31224prog.cob:57: error: syntax error, unexpected intrinsic function name, expecting Identifier
31225prog.cob:59: error: JSON/XML GENERATE input record may not be reference modified
31226prog.cob:61: error: JSON/XML GENERATE input record may not have RENAMES clause
31227prog.cob:66: error: JSON/XML GENERATE input record has subrecords with non-unique names
31228prog.cob:67: error: all the children of 'all-filler-rec' are ignored in JSON/XML GENERATE
31229prog.cob:70: error: COUNT IN item 'float-item' must be numeric and an integer
31230prog.cob:72: error: COUNT IN item 'pic-p-item' may not have PICTURE with P in it
31231prog.cob:89: warning: OCCURS items in JSON/XML GENERATE is not implemented
31232prog.cob:89: warning: WITH ATTRIBUTES specified, but no attributes can be generated
31233prog.cob:89: error: NAMESPACE must be a valid URI
31234prog.cob:92: error: NAMESPACE must be alphanumeric or national
31235prog.cob:92: error: NAMESPACE-PREFIX must be alphanumeric or national
31236prog.cob:97: error: NAMESPACE may not be a figurative constant
31237prog.cob:97: error: NAMESPACE-PREFIX may not be a figurative constant
31238prog.cob:98: error: NAMESPACE-PREFIX must be a valid XML name
31239prog.cob:104: warning: OCCURS items in JSON/XML GENERATE is not implemented
31240prog.cob:102: error: NAME OF item must be the input record or a child of it
31241prog.cob:107: warning: OCCURS items in JSON/XML GENERATE is not implemented
31242prog.cob:105: error: NAME OF item may not be reference modified
31243prog.cob:110: warning: OCCURS items in JSON/XML GENERATE is not implemented
31244prog.cob:108: error: NAME OF item may not be an ignored item in JSON/XML GENERATE
31245prog.cob:114: warning: OCCURS items in JSON/XML GENERATE is not implemented
31246prog.cob:111: error: NAME OF literal must be a valid XML identifier
31247prog.cob:118: warning: OCCURS items in JSON/XML GENERATE is not implemented
31248prog.cob:115: error: TYPE OF item must be elementary
31249prog.cob:115: error: TYPE OF item must be a child of the input record
31250prog.cob:116: error: TYPE OF item must be elementary
31251prog.cob:116: error: TYPE OF item must be a child of the input record
31252prog.cob:122: warning: OCCURS items in JSON/XML GENERATE is not implemented
31253prog.cob:119: error: TYPE OF item may not be reference modified
31254prog.cob:120: error: TYPE OF item may not be subscripted
31255prog.cob:131: warning: OCCURS items in JSON/XML GENERATE is not implemented
31256prog.cob:123: error: TYPE OF item may not be an ignored item in JSON/XML GENERATE
31257prog.cob:135: warning: OCCURS items in JSON/XML GENERATE is not implemented
31258prog.cob:133: error: SUPPRESS item with WHEN clause must be elementary
31259prog.cob:133: error: SUPPRESS item must be a child of the input record
31260prog.cob:132: error: SUPPRESS item may not be an ignored item in JSON/XML GENERATE
31261prog.cob:132: error: SUPPRESS item with WHEN clause must be elementary
31262prog.cob:136: error: syntax error, unexpected intrinsic function name, expecting EVERY or WHEN or Identifier
31263prog.cob:142: warning: OCCURS items in JSON/XML GENERATE is not implemented
31264prog.cob:140: error: SUPPRESS item may not be subscripted
31265prog.cob:139: error: SUPPRESS item may not be reference modified
31266prog.cob:146: warning: OCCURS items in JSON/XML GENERATE is not implemented
31267prog.cob:147: error: SUPPRESS WHEN SPACE item must be USAGE DISPLAY or NATIONAL
31268prog.cob:153: error: SUPPRESS WHEN HIGH-VALUE item must be USAGE DISPLAY or NATIONAL
31269prog.cob:153: error: SUPPRESS WHEN HIGH-VALUE item must be an integer
31270prog.cob:152: error: SUPPRESS WHEN LOW-VALUE item must be USAGE DISPLAY or NATIONAL
31271" | \
31272  $at_diff - "$at_stderr" || at_failed=:
31273at_fn_diff_devnull "$at_stdout" || at_failed=:
31274at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6790"
31275$at_failed && at_fn_log_failure
31276$at_traceon; }
31277
31278  set +x
31279  $at_times_p && times >"$at_times_file"
31280) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31281read at_status <"$at_status_file"
31282#AT_STOP_337
31283#AT_START_338
31284at_fn_group_banner 338 'syn_misc.at:6848' \
31285  "BASED clause, ALLOCATE / FREE statements" "       " 2
31286at_xfail=no
31287(
31288  $as_echo "338. $at_setup_line: testing $at_desc ..."
31289  $at_traceon
31290
31291
31292
31293cat >prog.cob <<'_ATEOF'
31294
31295       IDENTIFICATION DIVISION.
31296       PROGRAM-ID. prog.
31297
31298       DATA DIVISION.
31299       WORKING-STORAGE SECTION.
31300       01  str.
31301           03  str-1  PIC XX BASED.
31302       01  str-2 BASED.
31303           03  str-2a PIC X SYNC.
31304           03  str-2b PIC 9.
31305       01  one        PIC XX BASED.
31306       77  seven      PIC 9 BASED.
31307       77  var        PIC 9.
31308       77  ptr        USAGE POINTER.
31309       SCREEN-STORAGE SECTION.
31310       01  scrn      BASED.
31311           03  scrn-field pic x.
31312
31313       PROCEDURE DIVISION.
31314           ALLOCATE one
31315           ALLOCATE seven INITIALIZED
31316           ALLOCATE seven CHARACTERS.
31317           ALLOCATE seven CHARACTERS RETURNING ptr.
31318           ALLOCATE 1 + 2 * 3 CHARACTERS RETURNING ptr.
31319           ALLOCATE 1 + one * 3 CHARACTERS RETURNING ptr.
31320           ALLOCATE one   CHARACTERS RETURNING ptr.
31321           ALLOCATE seven CHARACTERS INITIALIZED RETURNING ptr.
31322           ALLOCATE var
31323           FREE var
31324           FREE ADDRESS OF var
31325           FREE one
31326           FREE ADDRESS OF seven
31327           MOVE ADDRESS OF seven TO ptr
31328           FREE ptr
31329           GOBACK.
31330_ATEOF
31331
31332
31333{ set +x
31334$as_echo "$at_srcdir/syn_misc.at:6889: \$COMPILE_ONLY prog.cob"
31335at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6889"
31336( $at_check_trace; $COMPILE_ONLY prog.cob
31337) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31338at_status=$? at_failed=false
31339$at_check_filter
31340echo >>"$at_stderr"; $as_echo "prog.cob:8: error: BASED only allowed at 01/77 level
31341prog.cob:16: error: PROCEDURE DIVISION header missing
31342prog.cob:16: error: syntax error, unexpected Identifier
31343prog.cob:17: error: unknown statement '01'
31344prog.cob:18: error: unknown statement '03'
31345prog.cob:20: error: syntax error, unexpected PROCEDURE
31346prog.cob:23: error: ALLOCATE CHARACTERS requires RETURNING clause
31347prog.cob:26: error: 'one' is not a numeric value
31348prog.cob:27: error: amount must be specified as a numeric expression
31349prog.cob:29: error: target of ALLOCATE is not a BASED item
31350prog.cob:30: error: target 1 of FREE is not a BASED data item
31351prog.cob:31: error: target 1 of FREE is not a BASED data item
31352" | \
31353  $at_diff - "$at_stderr" || at_failed=:
31354at_fn_diff_devnull "$at_stdout" || at_failed=:
31355at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6889"
31356$at_failed && at_fn_log_failure
31357$at_traceon; }
31358
31359  set +x
31360  $at_times_p && times >"$at_times_file"
31361) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31362read at_status <"$at_status_file"
31363#AT_STOP_338
31364#AT_START_339
31365at_fn_group_banner 339 'syn_misc.at:6906' \
31366  "CONTINUE statement" "                             " 2
31367at_xfail=no
31368(
31369  $as_echo "339. $at_setup_line: testing $at_desc ..."
31370  $at_traceon
31371
31372
31373
31374cat >prog.cob <<'_ATEOF'
31375
31376       IDENTIFICATION DIVISION.
31377       PROGRAM-ID. prog.
31378
31379       DATA DIVISION.
31380       WORKING-STORAGE SECTION.
31381       01  one        PIC X.
31382       77  seven      PIC 9 BASED.
31383       77  var        PIC 9.
31384       77  ptr        USAGE POINTER.
31385       PROCEDURE DIVISION.
31386           CONTINUE
31387           PERFORM VARYING var FROM 1 BY 1 UNTIL var = 4
31388              CONTINUE
31389           END-PERFORM
31390           CONTINUE AFTER 42 SECONDS      *> COBOL 202x
31391           CONTINUE AFTER 4 + 2 SECONDS
31392           CONTINUE AFTER var + 2 SECONDS
31393           CONTINUE AFTER '1' SECONDS
31394           CONTINUE AFTER ptr SECONDS
31395           CONTINUE AFTER one SECONDS
31396           .
31397_ATEOF
31398
31399
31400{ set +x
31401$as_echo "$at_srcdir/syn_misc.at:6933: \$COMPILE_ONLY prog.cob"
31402at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6933"
31403( $at_check_trace; $COMPILE_ONLY prog.cob
31404) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31405at_status=$? at_failed=false
31406$at_check_filter
31407echo >>"$at_stderr"; $as_echo "prog.cob:19: error: amount must be specified as a numeric expression
31408prog.cob:20: error: amount must be specified as a numeric expression
31409prog.cob:21: error: amount must be specified as a numeric expression
31410" | \
31411  $at_diff - "$at_stderr" || at_failed=:
31412at_fn_diff_devnull "$at_stdout" || at_failed=:
31413at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6933"
31414$at_failed && at_fn_log_failure
31415$at_traceon; }
31416
31417
31418{ set +x
31419$as_echo "$at_srcdir/syn_misc.at:6939: \$COMPILE_ONLY -std=cobol2014 prog.cob"
31420at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6939"
31421( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
31422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31423at_status=$? at_failed=false
31424$at_check_filter
31425echo >>"$at_stderr"; $as_echo "prog.cob:16: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31426prog.cob:17: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31427prog.cob:18: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31428prog.cob:19: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31429prog.cob:20: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31430prog.cob:21: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
31431" | \
31432  $at_diff - "$at_stderr" || at_failed=:
31433at_fn_diff_devnull "$at_stdout" || at_failed=:
31434at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6939"
31435$at_failed && at_fn_log_failure
31436$at_traceon; }
31437
31438  set +x
31439  $at_times_p && times >"$at_times_file"
31440) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31441read at_status <"$at_status_file"
31442#AT_STOP_339
31443#AT_START_340
31444at_fn_group_banner 340 'syn_misc.at:6950' \
31445  "conflict markers" "                               " 2
31446at_xfail=no
31447(
31448  $as_echo "340. $at_setup_line: testing $at_desc ..."
31449  $at_traceon
31450
31451
31452
31453cat >prog.cob <<'_ATEOF'
31454
31455       IDENTIFICATION DIVISION.
31456       PROGRAM-ID. prog.
31457
31458       DATA DIVISION.
31459       WORKING-STORAGE SECTION.
31460      *> Verify that we report conflict markers correctly
31461<<<<<<< HEAD
31462       01  one-1      PIC X.
31463======= there may be something here
31464       01  one-2      PIC X.
31465>>>>>>> some note
31466      *> Verify that we don't have an issue with unmatched conflict markers
31467       77  var        PIC 9.
31468<<<<<<< HEAD
31469       01  var2       PIC X.
31470=======
31471<<<<<<< HEAD
31472      *> Verify that we only report conflict markers at the start of lines.
31473 <<<<<<< HEAD
31474       01  one        PIC X.
31475 =======
31476       01  two        PIC 9.
31477 >>>>>>> some note
31478       PROCEDURE DIVISION.
31479           GOBACK.
31480_ATEOF
31481
31482
31483{ set +x
31484$as_echo "$at_srcdir/syn_misc.at:6981: \$COMPILE_ONLY prog.cob"
31485at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6981"
31486( $at_check_trace; $COMPILE_ONLY prog.cob
31487) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31488at_status=$? at_failed=false
31489$at_check_filter
31490echo >>"$at_stderr"; $as_echo "prog.cob:8: error: version control conflict marker in file
31491prog.cob:10: error: version control conflict marker in file
31492prog.cob:12: error: version control conflict marker in file
31493prog.cob:15: error: version control conflict marker in file
31494prog.cob:17: error: version control conflict marker in file
31495prog.cob:18: error: version control conflict marker in file
31496prog.cob:20: error: invalid indicator '<' at column 7
31497prog.cob:22: error: invalid indicator '=' at column 7
31498prog.cob:24: warning: ignoring invalid directive: '>> some'
31499" | \
31500  $at_diff - "$at_stderr" || at_failed=:
31501at_fn_diff_devnull "$at_stdout" || at_failed=:
31502at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6981"
31503$at_failed && at_fn_log_failure
31504$at_traceon; }
31505
31506
31507{ set +x
31508$as_echo "$at_srcdir/syn_misc.at:6993: \$COMPILE_ONLY -free prog.cob"
31509at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog.cob" "syn_misc.at:6993"
31510( $at_check_trace; $COMPILE_ONLY -free prog.cob
31511) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31512at_status=$? at_failed=false
31513$at_check_filter
31514echo >>"$at_stderr"; $as_echo "prog.cob:8: error: version control conflict marker in file
31515prog.cob:10: error: version control conflict marker in file
31516prog.cob:12: error: version control conflict marker in file
31517prog.cob:15: error: version control conflict marker in file
31518prog.cob:17: error: version control conflict marker in file
31519prog.cob:18: error: version control conflict marker in file
31520prog.cob:24: warning: ignoring invalid directive
31521prog.cob:20: error: PROCEDURE DIVISION header missing
31522prog.cob:20: error: syntax error, unexpected <
31523prog.cob:22: error: syntax error, unexpected =
31524prog.cob:25: error: syntax error, unexpected PROCEDURE
31525" | \
31526  $at_diff - "$at_stderr" || at_failed=:
31527at_fn_diff_devnull "$at_stdout" || at_failed=:
31528at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6993"
31529$at_failed && at_fn_log_failure
31530$at_traceon; }
31531
31532  set +x
31533  $at_times_p && times >"$at_times_file"
31534) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31535read at_status <"$at_status_file"
31536#AT_STOP_340
31537#AT_START_341
31538at_fn_group_banner 341 'syn_misc.at:7009' \
31539  "SORT syntax" "                                    " 2
31540at_xfail=no
31541(
31542  $as_echo "341. $at_setup_line: testing $at_desc ..."
31543  $at_traceon
31544
31545
31546
31547cat >prog.cob <<'_ATEOF'
31548
31549       IDENTIFICATION DIVISION.
31550       PROGRAM-ID. prog.
31551
31552       ENVIRONMENT DIVISION.
31553       INPUT-OUTPUT SECTION.
31554       FILE-CONTROL.
31555           SELECT SRTFIL ASSIGN TO "SRTFIL"
31556           ORGANIZATION LINE SEQUENTIAL.
31557           SELECT STFILE ASSIGN TO "STFILE"
31558           ORGANIZATION LINE SEQUENTIAL.
31559
31560       DATA DIVISION.
31561       FILE SECTION.
31562       FD SRTFIL.
31563       01 SRTREC               PIC X(256).
31564       SD STFILE.
31565       01 STFREC               PIC X(256).
31566
31567       WORKING-STORAGE SECTION.
31568       01 G             VALUE "d4b2e1a3c5".
31569         02 TBL         OCCURS 5.
31570           03 X         PIC X.
31571           03 Y         PIC 9.
31572         02 TBL-ORD     OCCURS 5 ASCENDING YO.
31573           03 XO        PIC X.
31574           03 YO        PIC 9.
31575
31576       PROCEDURE DIVISION.
31577           SORT TBL ASCENDING KEY X.
31578           SORT TBL DESCENDING.
31579           SORT TBL.
31580           SORT TBL-ORD ASCENDING.
31581           SORT TBL-ORD.
31582           SORT STFILE DESCENDING KEY SRTREC.
31583           SORT STFILE DESCENDING KEY SRTREC USING SRTFIL GIVING SRTFIL.
31584           SORT STFILE ASCENDING.
31585           SORT STFILE.
31586           STOP RUN.
31587_ATEOF
31588
31589
31590{ set +x
31591$as_echo "$at_srcdir/syn_misc.at:7053: \$COMPILE_ONLY prog.cob"
31592at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7053"
31593( $at_check_trace; $COMPILE_ONLY prog.cob
31594) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31595at_status=$? at_failed=false
31596$at_check_filter
31597echo >>"$at_stderr"; $as_echo "prog.cob:32: error: table SORT requires KEY phrase
31598prog.cob:35: error: file sort requires USING or INPUT PROCEDURE
31599prog.cob:35: error: file sort requires GIVING or OUTPUT PROCEDURE
31600prog.cob:37: error: file sort requires KEY phrase
31601prog.cob:38: error: file sort requires KEY phrase
31602" | \
31603  $at_diff - "$at_stderr" || at_failed=:
31604at_fn_diff_devnull "$at_stdout" || at_failed=:
31605at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7053"
31606$at_failed && at_fn_log_failure
31607$at_traceon; }
31608
31609  set +x
31610  $at_times_p && times >"$at_times_file"
31611) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31612read at_status <"$at_status_file"
31613#AT_STOP_341
31614#AT_START_342
31615at_fn_group_banner 342 'syn_misc.at:7063' \
31616  "OSVS I/O extensions" "                            " 2
31617at_xfail=no
31618(
31619  $as_echo "342. $at_setup_line: testing $at_desc ..."
31620  $at_traceon
31621
31622
31623
31624cat >prog.cob <<'_ATEOF'
31625
31626       IDENTIFICATION   DIVISION.
31627       PROGRAM-ID.      prog.
31628
31629       ENVIRONMENT      DIVISION.
31630       INPUT-OUTPUT     SECTION.
31631       FILE-CONTROL.
31632           SELECT f ASSIGN "f.dat" SEQUENTIAL
31633               FILE-LIMITS ARE 1 THRU 10, 100 THRU f-max
31634               TRACK-AREA 100 CHARACTERS
31635               TRACK-LIMIT 5 TRACKS.
31636           SELECT g ASSIGN "g.dat" RELATIVE
31637               RELATIVE KEY g-key
31638               ACTUAL KEY g-actual-key.
31639
31640       I-O-CONTROL.
31641           APPLY RECORD-OVERFLOW f, g
31642           APPLY CORE-INDEX core-idx ON f
31643           APPLY CYL-INDEX TO 5 ON f
31644           APPLY CYL-OVERFLOW 10 TRACKS f
31645           APPLY EXTENDED-SEARCH g
31646           APPLY MASTER-INDEX TO 5 on g
31647           APPLY WRITE-VERIFY f, g
31648           APPLY REORG-CRITERIA f-rec, f
31649           RERUN ON "g2.dat" EVERY END REEL g
31650           .
31651       DATA             DIVISION.
31652       FILE             SECTION.
31653       FD  f.
31654       01  f-rec        PIC X(100).
31655
31656       FD  g.
31657       01  g-rec        PIC 9(10).
31658
31659       WORKING-STORAGE  SECTION.
31660       01  core-idx     PIC 999.
31661       01  f-max        PIC 9(5) VALUE 1000.
31662       01  g-key        PIC 999.
31663       01  g-actual-key PIC XXX.
31664
31665       PROCEDURE        DIVISION.
31666           OPEN INPUT f DISP, INPUT g REREAD
31667           .
31668_ATEOF
31669
31670
31671{ set +x
31672$as_echo "$at_srcdir/syn_misc.at:7111: \$COMPILE_ONLY prog.cob"
31673at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7111"
31674( $at_check_trace; $COMPILE_ONLY prog.cob
31675) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31676at_status=$? at_failed=false
31677$at_check_filter
31678echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: FILE-LIMIT is obsolete in GnuCOBOL
31679prog.cob:10: warning: TRACK-AREA is obsolete in GnuCOBOL
31680prog.cob:11: warning: TRACK-LIMIT is obsolete in GnuCOBOL
31681prog.cob:14: warning: ACTUAL KEY is obsolete in GnuCOBOL
31682prog.cob:18: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31683prog.cob:19: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31684prog.cob:20: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31685prog.cob:21: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31686prog.cob:22: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31687prog.cob:23: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31688prog.cob:24: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31689prog.cob:25: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
31690prog.cob:42: warning: OPEN LEAVE/REREAD/DISP is obsolete in GnuCOBOL
31691prog.cob:42: warning: OPEN LEAVE/REREAD/DISP is obsolete in GnuCOBOL
31692" | \
31693  $at_diff - "$at_stderr" || at_failed=:
31694at_fn_diff_devnull "$at_stdout" || at_failed=:
31695at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7111"
31696$at_failed && at_fn_log_failure
31697$at_traceon; }
31698
31699  set +x
31700  $at_times_p && times >"$at_times_file"
31701) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31702read at_status <"$at_status_file"
31703#AT_STOP_342
31704#AT_START_343
31705at_fn_group_banner 343 'syn_misc.at:7130' \
31706  "long literal in error message" "                  " 2
31707at_xfail=no
31708(
31709  $as_echo "343. $at_setup_line: testing $at_desc ..."
31710  $at_traceon
31711
31712
31713
31714cat >prog.cob <<'_ATEOF'
31715
31716       IDENTIFICATION   DIVISION.
31717       PROGRAM-ID.      tutorial.
31718       PROCEDURE DIVISION.
31719           move low-values to
31720           ' 1  c d e f g h i j k l m n 0 q.'-
31721           ' 2  C D E F G H I J K L M N 0 Q.'-
31722           ' 3  c d e f g h i j k l m n 0 q.'-
31723           ' 4  C D E F G H I J K L M N 0 Q.'-
31724           ' 5  c d e f g h i j k l m n 0 q.'-
31725           ' 6  C D E F G H I J K L M N 0 Q.'-
31726           ' 7  c d e f g h i j k l m n 0 q.'-
31727           ' 8  C D E F G H I J K L M N 0 Q.'-
31728           ' 9  c d e f g h i j k l m n 0 q.'-
31729           '10  C D E F G H I J K L M N 0 Q.'-
31730           '11  c d e f g h i j k l m n 0 q.'-
31731           '12  C D E F G H I J K L M N 0 Q.'-
31732           '13  c d e f g h i j k l m n 0 q.'-
31733           '14  C D E F G H I J K L M N 0 Q.'-
31734           '15  c d e f g h i j k l m n 0 q.'.
31735_ATEOF
31736
31737
31738{ set +x
31739$as_echo "$at_srcdir/syn_misc.at:7155: \$COMPILE_ONLY prog.cob"
31740at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7155"
31741( $at_check_trace; $COMPILE_ONLY prog.cob
31742) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31743at_status=$? at_failed=false
31744$at_check_filter
31745echo >>"$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 ...\"
31746" | \
31747  $at_diff - "$at_stderr" || at_failed=:
31748at_fn_diff_devnull "$at_stdout" || at_failed=:
31749at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7155"
31750$at_failed && at_fn_log_failure
31751$at_traceon; }
31752
31753
31754  set +x
31755  $at_times_p && times >"$at_times_file"
31756) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31757read at_status <"$at_status_file"
31758#AT_STOP_343
31759#AT_START_344
31760at_fn_group_banner 344 'syn_misc.at:7162' \
31761  "literal missing terminating character" "          " 2
31762at_xfail=no
31763(
31764  $as_echo "344. $at_setup_line: testing $at_desc ..."
31765  $at_traceon
31766
31767
31768
31769cat >prog.cob <<'_ATEOF'
31770
31771       IDENTIFICATION   DIVISION.
31772       PROGRAM-ID.      tutorial.
31773       PROCEDURE DIVISION.
31774           DISPLAY ' 1  c d e f g h i j k l m n 0 q.
31775      -            ' 2  C D E F G H I J K L M N 0 Q.
31776_ATEOF
31777
31778
31779# FIXME: we should move this from scanner to pplex to preserve the spaces
31780# [prog.cob:5: error: invalid literal: ' 1  c d e f g h i j k l m n 0 q. ...'
31781{ set +x
31782$as_echo "$at_srcdir/syn_misc.at:7175: \$COMPILE_ONLY -w prog.cob"
31783at_fn_check_prepare_dynamic "$COMPILE_ONLY -w prog.cob" "syn_misc.at:7175"
31784( $at_check_trace; $COMPILE_ONLY -w prog.cob
31785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31786at_status=$? at_failed=false
31787$at_check_filter
31788echo >>"$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  ...'
31789prog.cob:5: error: missing terminating ' character
31790prog.cob:5: error: syntax error, unexpected end of file
31791" | \
31792  $at_diff - "$at_stderr" || at_failed=:
31793at_fn_diff_devnull "$at_stdout" || at_failed=:
31794at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7175"
31795$at_failed && at_fn_log_failure
31796$at_traceon; }
31797
31798
31799  set +x
31800  $at_times_p && times >"$at_times_file"
31801) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31802read at_status <"$at_status_file"
31803#AT_STOP_344
31804#AT_START_345
31805at_fn_group_banner 345 'syn_misc.at:7183' \
31806  "EQUALS in expressions" "                          " 2
31807at_xfail=no
31808(
31809  $as_echo "345. $at_setup_line: testing $at_desc ..."
31810  $at_traceon
31811
31812
31813
31814cat >prog.cob <<'_ATEOF'
31815
31816       IDENTIFICATION DIVISION.
31817       PROGRAM-ID. prog.
31818       DATA DIVISION.
31819       WORKING-STORAGE SECTION.
31820       01  num PIC 99 VALUE 0.
31821       PROCEDURE DIVISION.
31822           IF num LESS OR EQUALS 0
31823               CONTINUE
31824           END-IF
31825           IF num GREATER THAN OR EQUALS 1
31826               CONTINUE
31827           END-IF
31828           IF num EQUALS TO 0
31829               CONTINUE
31830           END-IF
31831           .
31832_ATEOF
31833
31834
31835{ set +x
31836$as_echo "$at_srcdir/syn_misc.at:7205: \$COMPILE prog.cob"
31837at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:7205"
31838( $at_check_trace; $COMPILE prog.cob
31839) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31840at_status=$? at_failed=false
31841$at_check_filter
31842at_fn_diff_devnull "$at_stderr" || at_failed=:
31843at_fn_diff_devnull "$at_stdout" || at_failed=:
31844at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7205"
31845$at_failed && at_fn_log_failure
31846$at_traceon; }
31847
31848  set +x
31849  $at_times_p && times >"$at_times_file"
31850) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31851read at_status <"$at_status_file"
31852#AT_STOP_345
31853#AT_START_346
31854at_fn_group_banner 346 'syn_misc.at:7209' \
31855  "Invalid parentheses around condition" "           " 2
31856at_xfail=no
31857(
31858  $as_echo "346. $at_setup_line: testing $at_desc ..."
31859  $at_traceon
31860
31861
31862
31863cat >prog.cob <<'_ATEOF'
31864
31865       IDENTIFICATION DIVISION.
31866       PROGRAM-ID. prog.
31867
31868       DATA DIVISION.
31869       WORKING-STORAGE SECTION.
31870       01  num PIC 99 VALUE 0.
31871       PROCEDURE DIVISION.
31872           IF num NOT (LESS OR EQUALS) 0
31873               CONTINUE
31874           END-IF
31875           .
31876_ATEOF
31877
31878
31879{ set +x
31880$as_echo "$at_srcdir/syn_misc.at:7226: \$COMPILE prog.cob"
31881at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:7226"
31882( $at_check_trace; $COMPILE prog.cob
31883) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31884at_status=$? at_failed=false
31885$at_check_filter
31886echo >>"$at_stderr"; $as_echo "prog.cob:9: error: invalid expression
31887" | \
31888  $at_diff - "$at_stderr" || at_failed=:
31889at_fn_diff_devnull "$at_stdout" || at_failed=:
31890at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7226"
31891$at_failed && at_fn_log_failure
31892$at_traceon; }
31893
31894  set +x
31895  $at_times_p && times >"$at_times_file"
31896) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31897read at_status <"$at_status_file"
31898#AT_STOP_346
31899#AT_START_347
31900at_fn_group_banner 347 'syn_misc.at:7232' \
31901  "DISPLAY directive (1)" "                          " 2
31902at_xfail=no
31903(
31904  $as_echo "347. $at_setup_line: testing $at_desc ..."
31905  $at_traceon
31906
31907
31908
31909# this format is COBOL 202x without UPON
31910# --> implied UPON LISTING which goes to stdout
31911# as there is no listing active
31912# TODO: extend the >> DISPLAY tests and actually support
31913#       the complete format...
31914
31915cat >prog.cob <<'_ATEOF'
31916
31917       IDENTIFICATION   DIVISION.
31918       PROGRAM-ID.      prog.
31919       PROCEDURE        DIVISION.
31920       >>DISPLAY "OK"
31921           STOP RUN.
31922_ATEOF
31923
31924
31925{ set +x
31926$as_echo "$at_srcdir/syn_misc.at:7249: \$COMPILE_ONLY prog.cob"
31927at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7249"
31928( $at_check_trace; $COMPILE_ONLY prog.cob
31929) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31930at_status=$? at_failed=false
31931$at_check_filter
31932at_fn_diff_devnull "$at_stderr" || at_failed=:
31933echo >>"$at_stdout"; $as_echo "OK
31934" | \
31935  $at_diff - "$at_stdout" || at_failed=:
31936at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7249"
31937$at_failed && at_fn_log_failure
31938$at_traceon; }
31939
31940  set +x
31941  $at_times_p && times >"$at_times_file"
31942) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31943read at_status <"$at_status_file"
31944#AT_STOP_347
31945#AT_START_348
31946at_fn_group_banner 348 'syn_misc.at:7255' \
31947  "DISPLAY directive (2)" "                          " 2
31948at_xfail=no
31949(
31950  $as_echo "348. $at_setup_line: testing $at_desc ..."
31951  $at_traceon
31952
31953
31954
31955# this is an OpenCOBOL/GnuCOBOL 2.x extension, with implied literal
31956# similar to $DISPLAY
31957
31958cat >prog.cob <<'_ATEOF'
31959
31960       IDENTIFICATION   DIVISION.
31961       PROGRAM-ID.      prog.
31962       PROCEDURE        DIVISION.
31963       >>DISPLAY OK
31964           STOP RUN.
31965_ATEOF
31966
31967
31968{ set +x
31969$as_echo "$at_srcdir/syn_misc.at:7269: \$COMPILE_ONLY prog.cob"
31970at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7269"
31971( $at_check_trace; $COMPILE_ONLY prog.cob
31972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
31973at_status=$? at_failed=false
31974$at_check_filter
31975at_fn_diff_devnull "$at_stderr" || at_failed=:
31976echo >>"$at_stdout"; $as_echo "OK
31977" | \
31978  $at_diff - "$at_stdout" || at_failed=:
31979at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7269"
31980$at_failed && at_fn_log_failure
31981$at_traceon; }
31982
31983  set +x
31984  $at_times_p && times >"$at_times_file"
31985) 5>&1 2>&1 7>&- | eval $at_tee_pipe
31986read at_status <"$at_status_file"
31987#AT_STOP_348
31988#AT_START_349
31989at_fn_group_banner 349 'syn_misc.at:7275' \
31990  "DISPLAY directive (3)" "                          " 2
31991at_xfail=no
31992(
31993  $as_echo "349. $at_setup_line: testing $at_desc ..."
31994  $at_traceon
31995
31996
31997
31998# this is the classical MicroFocus format
31999
32000cat >prog.cob <<'_ATEOF'
32001
32002       IDENTIFICATION   DIVISION.
32003       PROGRAM-ID.      prog.
32004       PROCEDURE        DIVISION.
32005      $DISPLAY OK
32006           STOP RUN.
32007_ATEOF
32008
32009
32010{ set +x
32011$as_echo "$at_srcdir/syn_misc.at:7288: \$COMPILE_ONLY prog.cob"
32012at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7288"
32013( $at_check_trace; $COMPILE_ONLY prog.cob
32014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32015at_status=$? at_failed=false
32016$at_check_filter
32017at_fn_diff_devnull "$at_stderr" || at_failed=:
32018echo >>"$at_stdout"; $as_echo "OK
32019" | \
32020  $at_diff - "$at_stdout" || at_failed=:
32021at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7288"
32022$at_failed && at_fn_log_failure
32023$at_traceon; }
32024
32025  set +x
32026  $at_times_p && times >"$at_times_file"
32027) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32028read at_status <"$at_status_file"
32029#AT_STOP_349
32030#AT_START_350
32031at_fn_group_banner 350 'syn_misc.at:7294' \
32032  "conditional / define directives (1)" "            " 2
32033at_xfail=no
32034(
32035  $as_echo "350. $at_setup_line: testing $at_desc ..."
32036  $at_traceon
32037
32038
32039
32040cat >prog.cob <<'_ATEOF'
32041
32042       IDENTIFICATION   DIVISION.
32043       PROGRAM-ID.      prog.
32044       DATA             DIVISION.
32045       WORKING-STORAGE  SECTION.
32046       PROCEDURE        DIVISION.
32047       >>IF ACTIVATE DEFINED
32048       >>DISPLAY "NOTOK"
32049       >>ELIF ACTIVATE2 DEFINED
32050       >>DISPLAY "OK"
32051       >>ELSE
32052       >>DISPLAY "NOTOK"
32053       >>END-IF
32054           STOP RUN.
32055_ATEOF
32056
32057
32058{ set +x
32059$as_echo "$at_srcdir/syn_misc.at:7313: \$COMPILE_ONLY -DACTIVATE2 prog.cob"
32060at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 prog.cob" "syn_misc.at:7313"
32061( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 prog.cob
32062) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32063at_status=$? at_failed=false
32064$at_check_filter
32065at_fn_diff_devnull "$at_stderr" || at_failed=:
32066echo >>"$at_stdout"; $as_echo "OK
32067" | \
32068  $at_diff - "$at_stdout" || at_failed=:
32069at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7313"
32070$at_failed && at_fn_log_failure
32071$at_traceon; }
32072
32073  set +x
32074  $at_times_p && times >"$at_times_file"
32075) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32076read at_status <"$at_status_file"
32077#AT_STOP_350
32078#AT_START_351
32079at_fn_group_banner 351 'syn_misc.at:7319' \
32080  "conditional / define directives (2)" "            " 2
32081at_xfail=no
32082(
32083  $as_echo "351. $at_setup_line: testing $at_desc ..."
32084  $at_traceon
32085
32086
32087
32088# COBOL 2002 format; checks that defines are applied at correct place
32089
32090cat >prog.cob <<'_ATEOF'
32091
32092       IDENTIFICATION DIVISION.
32093       PROGRAM-ID.    prog.
32094       PROCEDURE      DIVISION.
32095       >> IF X DEFINED
32096         >>DISPLAY "X defined"
32097       >> ELSE
32098         >> DISPLAY "X not defined"
32099         >> DEFINE X 1
32100       >> END-IF
32101           CONTINUE
32102           .
32103_ATEOF
32104
32105
32106{ set +x
32107$as_echo "$at_srcdir/syn_misc.at:7338: \$COMPILE_ONLY -D X prog.cob"
32108at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7338"
32109( $at_check_trace; $COMPILE_ONLY -D X prog.cob
32110) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32111at_status=$? at_failed=false
32112$at_check_filter
32113at_fn_diff_devnull "$at_stderr" || at_failed=:
32114echo >>"$at_stdout"; $as_echo "X defined
32115" | \
32116  $at_diff - "$at_stdout" || at_failed=:
32117at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7338"
32118$at_failed && at_fn_log_failure
32119$at_traceon; }
32120
32121{ set +x
32122$as_echo "$at_srcdir/syn_misc.at:7341: \$COMPILE_ONLY prog.cob"
32123at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7341"
32124( $at_check_trace; $COMPILE_ONLY prog.cob
32125) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32126at_status=$? at_failed=false
32127$at_check_filter
32128at_fn_diff_devnull "$at_stderr" || at_failed=:
32129echo >>"$at_stdout"; $as_echo "X not defined
32130" | \
32131  $at_diff - "$at_stdout" || at_failed=:
32132at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7341"
32133$at_failed && at_fn_log_failure
32134$at_traceon; }
32135
32136  set +x
32137  $at_times_p && times >"$at_times_file"
32138) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32139read at_status <"$at_status_file"
32140#AT_STOP_351
32141#AT_START_352
32142at_fn_group_banner 352 'syn_misc.at:7347' \
32143  "conditional / define directives (3)" "            " 2
32144at_xfail=no
32145(
32146  $as_echo "352. $at_setup_line: testing $at_desc ..."
32147  $at_traceon
32148
32149
32150
32151cat >prog.cob <<'_ATEOF'
32152
32153       IDENTIFICATION DIVISION.
32154       PROGRAM-ID.    prog.
32155       PROCEDURE      DIVISION.
32156       >>IF A IS DEFINED
32157       >>IF B IS DEFINED
32158           CONTINUE
32159       >> DISPLAY "NOT OK (not both definitions)"
32160           .
32161       >>ELSE
32162           CONTINUE
32163       >> DISPLAY "NOT OK (no definitions)"
32164           .
32165       >>END-IF
32166       >>ELSE
32167           CONTINUE
32168       >> DISPLAY "OK"
32169           .
32170       >>END-IF
32171_ATEOF
32172
32173
32174{ set +x
32175$as_echo "$at_srcdir/syn_misc.at:7371: \$COMPILE_ONLY prog.cob"
32176at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7371"
32177( $at_check_trace; $COMPILE_ONLY prog.cob
32178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32179at_status=$? at_failed=false
32180$at_check_filter
32181at_fn_diff_devnull "$at_stderr" || at_failed=:
32182echo >>"$at_stdout"; $as_echo "OK
32183" | \
32184  $at_diff - "$at_stdout" || at_failed=:
32185at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7371"
32186$at_failed && at_fn_log_failure
32187$at_traceon; }
32188
32189  set +x
32190  $at_times_p && times >"$at_times_file"
32191) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32192read at_status <"$at_status_file"
32193#AT_STOP_352
32194#AT_START_353
32195at_fn_group_banner 353 'syn_misc.at:7377' \
32196  "conditional / define directives (4)" "            " 2
32197at_xfail=no
32198(
32199  $as_echo "353. $at_setup_line: testing $at_desc ..."
32200  $at_traceon
32201
32202
32203
32204# check for case-insensivity
32205
32206cat >prog.cob <<'_ATEOF'
32207
32208       IDENTIFICATION DIVISION.
32209       PROGRAM-ID.    prog.
32210       PROCEDURE      DIVISION.
32211       >>IF A IS DEFINED
32212           CONTINUE
32213           .
32214       >>else
32215           CONTINUE
32216           .
32217       >>eNd-If
32218_ATEOF
32219
32220
32221{ set +x
32222$as_echo "$at_srcdir/syn_misc.at:7395: \$COMPILE_ONLY prog.cob"
32223at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7395"
32224( $at_check_trace; $COMPILE_ONLY prog.cob
32225) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32226at_status=$? at_failed=false
32227$at_check_filter
32228at_fn_diff_devnull "$at_stderr" || at_failed=:
32229at_fn_diff_devnull "$at_stdout" || at_failed=:
32230at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7395"
32231$at_failed && at_fn_log_failure
32232$at_traceon; }
32233
32234  set +x
32235  $at_times_p && times >"$at_times_file"
32236) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32237read at_status <"$at_status_file"
32238#AT_STOP_353
32239#AT_START_354
32240at_fn_group_banner 354 'syn_misc.at:7399' \
32241  "error handling in conditional directives" "       " 2
32242at_xfail=no
32243(
32244  $as_echo "354. $at_setup_line: testing $at_desc ..."
32245  $at_traceon
32246
32247
32248
32249cat >prog.cob <<'_ATEOF'
32250
32251       IDENTIFICATION DIVISION.
32252       PROGRAM-ID.    prog.
32253       PROCEDURE      DIVISION.
32254       >> IF BANANA
32255         >>DISPLAY "Who throws bananas?"
32256       >> ELSE
32257         >> DISPLAY "No BANANA here."
32258         >> DEFINE X 1
32259       >> END-IF
32260           CONTINUE
32261           .
32262_ATEOF
32263
32264
32265{ set +x
32266$as_echo "$at_srcdir/syn_misc.at:7416: \$COMPILE_ONLY -D X prog.cob"
32267at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7416"
32268( $at_check_trace; $COMPILE_ONLY -D X prog.cob
32269) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32270at_status=$? at_failed=false
32271$at_check_filter
32272echo >>"$at_stderr"; $as_echo "prog.cob:5: error: invalid IF directive
32273prog.cob:9: error: duplicate DEFINE directive 'X'
32274" | \
32275  $at_diff - "$at_stderr" || at_failed=:
32276echo >>"$at_stdout"; $as_echo "No BANANA here.
32277" | \
32278  $at_diff - "$at_stdout" || at_failed=:
32279at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7416"
32280$at_failed && at_fn_log_failure
32281$at_traceon; }
32282
32283  set +x
32284  $at_times_p && times >"$at_times_file"
32285) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32286read at_status <"$at_status_file"
32287#AT_STOP_354
32288#AT_START_355
32289at_fn_group_banner 355 'syn_misc.at:7425' \
32290  "conditional directives with lvl 78 (1)" "         " 2
32291at_xfail=yes
32292(
32293  $as_echo "355. $at_setup_line: testing $at_desc ..."
32294  $at_traceon
32295
32296
32297
32298# MicroFocus format; checks that level 78 are applied
32299
32300# FIXME - not done yet:
32301
32302
32303cat >prog.cob <<'_ATEOF'
32304
32305       IDENTIFICATION  DIVISION.
32306       PROGRAM-ID.     prog.
32307       DATA            DIVISION.
32308       WORKING-STORAGE SECTION.
32309       78 Y            VALUE 'a'.
32310       PROCEDURE       DIVISION.
32311      $IF X DEFINED
32312      $DISPLAY X defined
32313      $ELIF Y DEFINED
32314      $DISPLAY X not defined, but Y via lvl 78
32315      $ELSE
32316      $DISPLAY X not defined
32317      $END
32318           CONTINUE
32319           .
32320_ATEOF
32321
32322
32323{ set +x
32324$as_echo "$at_srcdir/syn_misc.at:7451: \$COMPILE_ONLY -D X prog.cob"
32325at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7451"
32326( $at_check_trace; $COMPILE_ONLY -D X prog.cob
32327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32328at_status=$? at_failed=false
32329$at_check_filter
32330at_fn_diff_devnull "$at_stderr" || at_failed=:
32331echo >>"$at_stdout"; $as_echo "X defined
32332" | \
32333  $at_diff - "$at_stdout" || at_failed=:
32334at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7451"
32335$at_failed && at_fn_log_failure
32336$at_traceon; }
32337
32338{ set +x
32339$as_echo "$at_srcdir/syn_misc.at:7454: \$COMPILE_ONLY prog.cob"
32340at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7454"
32341( $at_check_trace; $COMPILE_ONLY prog.cob
32342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32343at_status=$? at_failed=false
32344$at_check_filter
32345at_fn_diff_devnull "$at_stderr" || at_failed=:
32346echo >>"$at_stdout"; $as_echo "X not defined, but Y via lvl 78
32347" | \
32348  $at_diff - "$at_stdout" || at_failed=:
32349at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7454"
32350$at_failed && at_fn_log_failure
32351$at_traceon; }
32352
32353  set +x
32354  $at_times_p && times >"$at_times_file"
32355) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32356read at_status <"$at_status_file"
32357#AT_STOP_355
32358#AT_START_356
32359at_fn_group_banner 356 'syn_misc.at:7460' \
32360  "conditional directives with lvl 78 (2)" "         " 2
32361at_xfail=yes
32362(
32363  $as_echo "356. $at_setup_line: testing $at_desc ..."
32364  $at_traceon
32365
32366
32367
32368# MicroFocus format; checks that level 78 are applied with correct values
32369
32370# FIXME - not done yet:
32371
32372
32373cat >prog.cob <<'_ATEOF'
32374
32375       IDENTIFICATION  DIVISION.
32376       PROGRAM-ID.     prog.
32377       DATA            DIVISION.
32378       WORKING-STORAGE SECTION.
32379       78 Y            VALUE 1.
32380       78 Y2           VALUE 1.
32381       78 X            VALUE 2.
32382       78 Z            VALUE 354.
32383       PROCEDURE       DIVISION.
32384      $IF Y = Y2X
32385      $DISPLAY correct Y = Y2
32386      $ELSE
32387      $DISPLAY bad: Y should be = Y2
32388      $END
32389      $IF Y > X
32390      $DISPLAY BAD - Y is not > X
32391      $ELIF Y < X
32392      $DISPLAY correct Y < X
32393      $ELSE
32394      $DISPLAY BROKEN
32395      $END
32396
32397      $IF X > Y
32398      $DISPLAY correct X > Y
32399      $ELIF X < Y
32400      $DISPLAY BAD - X is not < Y
32401      $ELSE
32402      $DISPLAY BROKEN
32403      $END
32404           CONTINUE
32405           .
32406_ATEOF
32407
32408
32409{ set +x
32410$as_echo "$at_srcdir/syn_misc.at:7502: \$COMPILE_ONLY prog.cob"
32411at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7502"
32412( $at_check_trace; $COMPILE_ONLY prog.cob
32413) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32414at_status=$? at_failed=false
32415$at_check_filter
32416at_fn_diff_devnull "$at_stderr" || at_failed=:
32417echo >>"$at_stdout"; $as_echo "correct Y = Y2
32418correct Y < X
32419correct X > Y
32420" | \
32421  $at_diff - "$at_stdout" || at_failed=:
32422at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7502"
32423$at_failed && at_fn_log_failure
32424$at_traceon; }
32425
32426  set +x
32427  $at_times_p && times >"$at_times_file"
32428) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32429read at_status <"$at_status_file"
32430#AT_STOP_356
32431#AT_START_357
32432at_fn_group_banner 357 'syn_move.at:37' \
32433  "MOVE SPACE TO numeric or numeric-edited item" "   " 2
32434at_xfail=no
32435(
32436  $as_echo "357. $at_setup_line: testing $at_desc ..."
32437  $at_traceon
32438
32439
32440
32441cat >prog.cob <<'_ATEOF'
32442
32443       IDENTIFICATION   DIVISION.
32444       PROGRAM-ID.      prog.
32445       DATA             DIVISION.
32446       WORKING-STORAGE  SECTION.
32447       01 X             PIC 9.
32448       01 Y             PIC 09.
32449       PROCEDURE        DIVISION.
32450           MOVE SPACE TO X.
32451           MOVE SPACE TO Y.
32452           STOP RUN.
32453_ATEOF
32454
32455
32456{ set +x
32457$as_echo "$at_srcdir/syn_move.at:53: \$COMPILE_ONLY prog.cob"
32458at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:53"
32459( $at_check_trace; $COMPILE_ONLY prog.cob
32460) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32461at_status=$? at_failed=false
32462$at_check_filter
32463echo >>"$at_stderr"; $as_echo "prog.cob:9: error: MOVE of figurative constant SPACE to numeric item used
32464prog.cob:10: error: MOVE of figurative constant SPACE to numeric item used
32465" | \
32466  $at_diff - "$at_stderr" || at_failed=:
32467at_fn_diff_devnull "$at_stdout" || at_failed=:
32468at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:53"
32469$at_failed && at_fn_log_failure
32470$at_traceon; }
32471
32472
32473  set +x
32474  $at_times_p && times >"$at_times_file"
32475) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32476read at_status <"$at_status_file"
32477#AT_STOP_357
32478#AT_START_358
32479at_fn_group_banner 358 'syn_move.at:63' \
32480  "MOVE ZERO TO alphabetic item" "                   " 2
32481at_xfail=no
32482(
32483  $as_echo "358. $at_setup_line: testing $at_desc ..."
32484  $at_traceon
32485
32486
32487
32488cat >prog.cob <<'_ATEOF'
32489
32490       IDENTIFICATION   DIVISION.
32491       PROGRAM-ID.      prog.
32492       DATA             DIVISION.
32493       WORKING-STORAGE  SECTION.
32494       01 A             PIC A.
32495       PROCEDURE        DIVISION.
32496           MOVE ZERO TO A.
32497           STOP RUN.
32498_ATEOF
32499
32500
32501{ set +x
32502$as_echo "$at_srcdir/syn_move.at:77: \$COMPILE_ONLY prog.cob"
32503at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:77"
32504( $at_check_trace; $COMPILE_ONLY prog.cob
32505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32506at_status=$? at_failed=false
32507$at_check_filter
32508echo >>"$at_stderr"; $as_echo "prog.cob:8: error: invalid MOVE statement
32509" | \
32510  $at_diff - "$at_stderr" || at_failed=:
32511at_fn_diff_devnull "$at_stdout" || at_failed=:
32512at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:77"
32513$at_failed && at_fn_log_failure
32514$at_traceon; }
32515
32516
32517  set +x
32518  $at_times_p && times >"$at_times_file"
32519) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32520read at_status <"$at_status_file"
32521#AT_STOP_358
32522#AT_START_359
32523at_fn_group_banner 359 'syn_move.at:89' \
32524  "MOVE alphabetic TO x" "                           " 2
32525at_xfail=no
32526(
32527  $as_echo "359. $at_setup_line: testing $at_desc ..."
32528  $at_traceon
32529
32530
32531
32532cat >prog.cob <<'_ATEOF'
32533
32534       IDENTIFICATION   DIVISION.
32535       PROGRAM-ID.      prog.
32536       DATA             DIVISION.
32537       WORKING-STORAGE  SECTION.
32538       01 X             PIC A.
32539       01 Y-A           PIC A.
32540       01 Y-X           PIC X.
32541       01 Y-BX          PIC BX.
32542       01 Y-9           PIC 9.
32543       01 Y-09          PIC 09.
32544       PROCEDURE        DIVISION.
32545           MOVE X TO Y-A.
32546           MOVE X TO Y-X.
32547           MOVE X TO Y-BX.
32548           MOVE X TO Y-9.
32549           MOVE X TO Y-09.
32550           STOP RUN.
32551_ATEOF
32552
32553
32554{ set +x
32555$as_echo "$at_srcdir/syn_move.at:112: \$COMPILE_ONLY prog.cob"
32556at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:112"
32557( $at_check_trace; $COMPILE_ONLY prog.cob
32558) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32559at_status=$? at_failed=false
32560$at_check_filter
32561echo >>"$at_stderr"; $as_echo "prog.cob:16: error: invalid MOVE statement
32562prog.cob:17: error: invalid MOVE statement
32563" | \
32564  $at_diff - "$at_stderr" || at_failed=:
32565at_fn_diff_devnull "$at_stdout" || at_failed=:
32566at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:112"
32567$at_failed && at_fn_log_failure
32568$at_traceon; }
32569
32570
32571  set +x
32572  $at_times_p && times >"$at_times_file"
32573) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32574read at_status <"$at_status_file"
32575#AT_STOP_359
32576#AT_START_360
32577at_fn_group_banner 360 'syn_move.at:120' \
32578  "MOVE alphanumeric TO x" "                         " 2
32579at_xfail=no
32580(
32581  $as_echo "360. $at_setup_line: testing $at_desc ..."
32582  $at_traceon
32583
32584
32585
32586cat >prog.cob <<'_ATEOF'
32587
32588       IDENTIFICATION   DIVISION.
32589       PROGRAM-ID.      prog.
32590       DATA             DIVISION.
32591       WORKING-STORAGE  SECTION.
32592       01 X             PIC X.
32593       01 Y-A           PIC A.
32594       01 Y-X           PIC X.
32595       01 Y-BX          PIC BX.
32596       01 Y-9           PIC 9.
32597       01 Y-09          PIC 09.
32598       PROCEDURE        DIVISION.
32599           MOVE X TO Y-A.
32600           MOVE X TO Y-X.
32601           MOVE X TO Y-BX.
32602           MOVE X TO Y-9.
32603           MOVE X TO Y-09.
32604           STOP RUN.
32605_ATEOF
32606
32607
32608{ set +x
32609$as_echo "$at_srcdir/syn_move.at:143: \$COMPILE_ONLY prog.cob"
32610at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:143"
32611( $at_check_trace; $COMPILE_ONLY prog.cob
32612) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32613at_status=$? at_failed=false
32614$at_check_filter
32615at_fn_diff_devnull "$at_stderr" || at_failed=:
32616at_fn_diff_devnull "$at_stdout" || at_failed=:
32617at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:143"
32618$at_failed && at_fn_log_failure
32619$at_traceon; }
32620
32621
32622  set +x
32623  $at_times_p && times >"$at_times_file"
32624) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32625read at_status <"$at_status_file"
32626#AT_STOP_360
32627#AT_START_361
32628at_fn_group_banner 361 'syn_move.at:148' \
32629  "MOVE alphanumeric-edited TO x" "                  " 2
32630at_xfail=no
32631(
32632  $as_echo "361. $at_setup_line: testing $at_desc ..."
32633  $at_traceon
32634
32635
32636
32637cat >prog.cob <<'_ATEOF'
32638
32639       IDENTIFICATION   DIVISION.
32640       PROGRAM-ID.      prog.
32641       DATA             DIVISION.
32642       WORKING-STORAGE  SECTION.
32643       01 X             PIC BX.
32644       01 Y-A           PIC A.
32645       01 Y-X           PIC X.
32646       01 Y-BX          PIC BX.
32647       01 Y-9           PIC 9.
32648       01 Y-09          PIC 09.
32649       PROCEDURE        DIVISION.
32650           MOVE X TO Y-A.
32651           MOVE X TO Y-X.
32652           MOVE X TO Y-BX.
32653           MOVE X TO Y-9.
32654           MOVE X TO Y-09.
32655           STOP RUN.
32656_ATEOF
32657
32658
32659{ set +x
32660$as_echo "$at_srcdir/syn_move.at:171: \$COMPILE_ONLY prog.cob"
32661at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:171"
32662( $at_check_trace; $COMPILE_ONLY prog.cob
32663) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32664at_status=$? at_failed=false
32665$at_check_filter
32666echo >>"$at_stderr"; $as_echo "prog.cob:16: error: invalid MOVE statement
32667prog.cob:17: error: invalid MOVE statement
32668" | \
32669  $at_diff - "$at_stderr" || at_failed=:
32670at_fn_diff_devnull "$at_stdout" || at_failed=:
32671at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:171"
32672$at_failed && at_fn_log_failure
32673$at_traceon; }
32674
32675
32676  set +x
32677  $at_times_p && times >"$at_times_file"
32678) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32679read at_status <"$at_status_file"
32680#AT_STOP_361
32681#AT_START_362
32682at_fn_group_banner 362 'syn_move.at:179' \
32683  "MOVE numeric (integer) TO x" "                    " 2
32684at_xfail=no
32685(
32686  $as_echo "362. $at_setup_line: testing $at_desc ..."
32687  $at_traceon
32688
32689
32690
32691cat >prog.cob <<'_ATEOF'
32692
32693       IDENTIFICATION   DIVISION.
32694       PROGRAM-ID.      prog.
32695       DATA             DIVISION.
32696       WORKING-STORAGE  SECTION.
32697       01 X             PIC 9.
32698       01 Y-A           PIC A.
32699       01 Y-X           PIC X.
32700       01 Y-BX          PIC BX.
32701       01 Y-9           PIC 9.
32702       01 Y-09          PIC 09.
32703       PROCEDURE        DIVISION.
32704           MOVE X TO Y-A.
32705           MOVE X TO Y-X.
32706           MOVE X TO Y-BX.
32707           MOVE X TO Y-9.
32708           MOVE X TO Y-09.
32709           STOP RUN.
32710_ATEOF
32711
32712
32713{ set +x
32714$as_echo "$at_srcdir/syn_move.at:202: \$COMPILE_ONLY prog.cob"
32715at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:202"
32716( $at_check_trace; $COMPILE_ONLY prog.cob
32717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32718at_status=$? at_failed=false
32719$at_check_filter
32720echo >>"$at_stderr"; $as_echo "prog.cob:13: error: invalid MOVE statement
32721" | \
32722  $at_diff - "$at_stderr" || at_failed=:
32723at_fn_diff_devnull "$at_stdout" || at_failed=:
32724at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:202"
32725$at_failed && at_fn_log_failure
32726$at_traceon; }
32727
32728
32729  set +x
32730  $at_times_p && times >"$at_times_file"
32731) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32732read at_status <"$at_status_file"
32733#AT_STOP_362
32734#AT_START_363
32735at_fn_group_banner 363 'syn_move.at:209' \
32736  "MOVE numeric (non-integer) TO x" "                " 2
32737at_xfail=no
32738(
32739  $as_echo "363. $at_setup_line: testing $at_desc ..."
32740  $at_traceon
32741
32742
32743
32744cat >prog.cob <<'_ATEOF'
32745
32746       IDENTIFICATION   DIVISION.
32747       PROGRAM-ID.      prog.
32748       DATA             DIVISION.
32749       WORKING-STORAGE  SECTION.
32750       01 X             PIC 9V9.
32751       01 Y-A           PIC A.
32752       01 Y-X           PIC X.
32753       01 Y-BX          PIC BX.
32754       01 Y-9           PIC 9.
32755       01 Y-09          PIC 09.
32756       PROCEDURE        DIVISION.
32757           MOVE X TO Y-A.
32758           MOVE X TO Y-X.
32759           MOVE X TO Y-BX.
32760           MOVE X TO Y-9.
32761           MOVE X TO Y-09.
32762           STOP RUN.
32763_ATEOF
32764
32765
32766{ set +x
32767$as_echo "$at_srcdir/syn_move.at:232: \$COMPILE_ONLY prog.cob"
32768at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:232"
32769( $at_check_trace; $COMPILE_ONLY prog.cob
32770) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32771at_status=$? at_failed=false
32772$at_check_filter
32773echo >>"$at_stderr"; $as_echo "prog.cob:13: error: invalid MOVE statement
32774prog.cob:14: error: invalid MOVE statement
32775prog.cob:15: error: invalid MOVE statement
32776" | \
32777  $at_diff - "$at_stderr" || at_failed=:
32778at_fn_diff_devnull "$at_stdout" || at_failed=:
32779at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:232"
32780$at_failed && at_fn_log_failure
32781$at_traceon; }
32782
32783
32784  set +x
32785  $at_times_p && times >"$at_times_file"
32786) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32787read at_status <"$at_status_file"
32788#AT_STOP_363
32789#AT_START_364
32790at_fn_group_banner 364 'syn_move.at:241' \
32791  "MOVE numeric-edited TO x" "                       " 2
32792at_xfail=no
32793(
32794  $as_echo "364. $at_setup_line: testing $at_desc ..."
32795  $at_traceon
32796
32797
32798
32799cat >prog.cob <<'_ATEOF'
32800
32801       IDENTIFICATION   DIVISION.
32802       PROGRAM-ID.      prog.
32803       DATA             DIVISION.
32804       WORKING-STORAGE  SECTION.
32805       01 X             PIC 09.
32806       01 Y-A           PIC A.
32807       01 Y-X           PIC X.
32808       01 Y-BX          PIC BX.
32809       01 Y-9           PIC 9.
32810       01 Y-09          PIC 09.
32811       PROCEDURE        DIVISION.
32812           MOVE X TO Y-A.
32813           MOVE X TO Y-X.
32814           MOVE X TO Y-BX.
32815           MOVE X TO Y-9.
32816           MOVE X TO Y-09.
32817           STOP RUN.
32818_ATEOF
32819
32820
32821{ set +x
32822$as_echo "$at_srcdir/syn_move.at:264: \$COMPILE_ONLY prog.cob"
32823at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:264"
32824( $at_check_trace; $COMPILE_ONLY prog.cob
32825) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32826at_status=$? at_failed=false
32827$at_check_filter
32828echo >>"$at_stderr"; $as_echo "prog.cob:13: error: invalid MOVE statement
32829" | \
32830  $at_diff - "$at_stderr" || at_failed=:
32831at_fn_diff_devnull "$at_stdout" || at_failed=:
32832at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:264"
32833$at_failed && at_fn_log_failure
32834$at_traceon; }
32835
32836
32837  set +x
32838  $at_times_p && times >"$at_times_file"
32839) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32840read at_status <"$at_status_file"
32841#AT_STOP_364
32842#AT_START_365
32843at_fn_group_banner 365 'syn_move.at:276' \
32844  "CORRESPONDING - Operands must be groups" "        " 2
32845at_xfail=no
32846(
32847  $as_echo "365. $at_setup_line: testing $at_desc ..."
32848  $at_traceon
32849
32850
32851
32852cat >prog.cob <<'_ATEOF'
32853
32854       IDENTIFICATION   DIVISION.
32855       PROGRAM-ID.      prog.
32856       DATA             DIVISION.
32857       WORKING-STORAGE  SECTION.
32858       01 G-1.
32859         02 X           PIC X.
32860       01 G-2.
32861         02 Y           PIC X.
32862       PROCEDURE        DIVISION.
32863           MOVE CORR X TO G-1.
32864           MOVE CORR G-1 TO X.
32865           MOVE CORR G-1(1:1) TO G-2.
32866           MOVE CORR G-1 TO G-2(1:1).
32867           STOP RUN.
32868_ATEOF
32869
32870
32871{ set +x
32872$as_echo "$at_srcdir/syn_move.at:296: \$COMPILE_ONLY prog.cob"
32873at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:296"
32874( $at_check_trace; $COMPILE_ONLY prog.cob
32875) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32876at_status=$? at_failed=false
32877$at_check_filter
32878echo >>"$at_stderr"; $as_echo "prog.cob:11: error: 'X' is not a group name
32879prog.cob:12: error: 'X' is not a group name
32880prog.cob:13: error: 'G-1 (1:1)' is not a group name
32881prog.cob:14: error: 'G-2 (1:1)' is not a group name
32882" | \
32883  $at_diff - "$at_stderr" || at_failed=:
32884at_fn_diff_devnull "$at_stdout" || at_failed=:
32885at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:296"
32886$at_failed && at_fn_log_failure
32887$at_traceon; }
32888
32889
32890  set +x
32891  $at_times_p && times >"$at_times_file"
32892) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32893read at_status <"$at_status_file"
32894#AT_STOP_365
32895#AT_START_366
32896at_fn_group_banner 366 'syn_move.at:306' \
32897  "CORRESPONDING - Target has no matching items" "   " 2
32898at_xfail=no
32899(
32900  $as_echo "366. $at_setup_line: testing $at_desc ..."
32901  $at_traceon
32902
32903
32904
32905cat >prog.cob <<'_ATEOF'
32906
32907       IDENTIFICATION   DIVISION.
32908       PROGRAM-ID.      prog.
32909       DATA             DIVISION.
32910       WORKING-STORAGE  SECTION.
32911       01 G-1.
32912         02 X           PIC X.
32913       01 G-2.
32914         02 Y           PIC X.
32915       PROCEDURE        DIVISION.
32916           MOVE CORR G-1 TO G-2.
32917           STOP RUN.
32918_ATEOF
32919
32920
32921{ set +x
32922$as_echo "$at_srcdir/syn_move.at:323: \$COMPILE_ONLY prog.cob"
32923at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:323"
32924( $at_check_trace; $COMPILE_ONLY prog.cob
32925) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32926at_status=$? at_failed=false
32927$at_check_filter
32928echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: no CORRESPONDING items found
32929" | \
32930  $at_diff - "$at_stderr" || at_failed=:
32931at_fn_diff_devnull "$at_stdout" || at_failed=:
32932at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:323"
32933$at_failed && at_fn_log_failure
32934$at_traceon; }
32935
32936
32937  set +x
32938  $at_times_p && times >"$at_times_file"
32939) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32940read at_status <"$at_status_file"
32941#AT_STOP_366
32942#AT_START_367
32943at_fn_group_banner 367 'syn_move.at:332' \
32944  "MOVE to erroneous field" "                        " 2
32945at_xfail=no
32946(
32947  $as_echo "367. $at_setup_line: testing $at_desc ..."
32948  $at_traceon
32949
32950
32951
32952cat >prog.cob <<'_ATEOF'
32953
32954       IDENTIFICATION   DIVISION.
32955       PROGRAM-ID.      prog.
32956       DATA             DIVISION.
32957       WORKING-STORAGE  SECTION.
32958       01 INVALID-ITEM.
32959       01 I             PIC 9(3).
32960       PROCEDURE        DIVISION.
32961           MOVE 1 TO INVALID-ITEM.
32962           MOVE SPACE TO I(1:2).
32963           STOP RUN.
32964_ATEOF
32965
32966
32967{ set +x
32968$as_echo "$at_srcdir/syn_move.at:348: \$COMPILE_ONLY prog.cob"
32969at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:348"
32970( $at_check_trace; $COMPILE_ONLY prog.cob
32971) >>"$at_stdout" 2>>"$at_stderr" 5>&-
32972at_status=$? at_failed=false
32973$at_check_filter
32974echo >>"$at_stderr"; $as_echo "prog.cob:6: error: PICTURE clause required for 'INVALID-ITEM'
32975" | \
32976  $at_diff - "$at_stderr" || at_failed=:
32977at_fn_diff_devnull "$at_stdout" || at_failed=:
32978at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:348"
32979$at_failed && at_fn_log_failure
32980$at_traceon; }
32981
32982
32983  set +x
32984  $at_times_p && times >"$at_times_file"
32985) 5>&1 2>&1 7>&- | eval $at_tee_pipe
32986read at_status <"$at_status_file"
32987#AT_STOP_367
32988#AT_START_368
32989at_fn_group_banner 368 'syn_move.at:355' \
32990  "Overlapping MOVE" "                               " 2
32991at_xfail=no
32992(
32993  $as_echo "368. $at_setup_line: testing $at_desc ..."
32994  $at_traceon
32995
32996
32997
32998cat >prog.cob <<'_ATEOF'
32999
33000        IDENTIFICATION DIVISION.
33001        PROGRAM-ID. prog.
33002        DATA DIVISION.
33003        WORKING-STORAGE SECTION.
33004        01  STRUCTURE1.
33005            05 FIELD1-1  PIC X(5).
33006            05 FIELD1-2  PIC X(10).
33007        01  STRUCTURE2   REDEFINES STRUCTURE1.
33008            05 FIELD2-1  PIC X(10).
33009            05 FIELD2-2  PIC X(5).
33010        01  FILLER       REDEFINES STRUCTURE1.
33011            05 FILLER    PIC X(01).
33012            05 FIELD     PIC X(02) OCCURS 7.
33013        01  FILLER.
33014            05 FIELDO    PIC X(02) OCCURS 7.
33015        77  NUMVAR       PIC 9(02) VALUE 1.
33016        78  CONST4       VALUE 4.
33017        PROCEDURE DIVISION.
33018           MOVE FIELD1-2 TO STRUCTURE1
33019           MOVE FIELD1-2 TO FIELD1-1
33020           MOVE FIELD1-1 TO FIELD1-2, FIELD2-2
33021           MOVE FIELD1-2 TO FIELD2-1
33022           MOVE FIELD2-1 TO FIELD2-2
33023           MOVE FIELD2-1   (2:5) TO FIELD1-2
33024           MOVE STRUCTURE1 (2:4) TO STRUCTURE1 (5:4)
33025           MOVE STRUCTURE1 (2:4) TO STRUCTURE1 (6:4)
33026           MOVE STRUCTURE1 (1:NUMVAR)  TO STRUCTURE1 (3:13)
33027           MOVE STRUCTURE1 (NUMVAR:1)  TO STRUCTURE1 (3:13)
33028           MOVE STRUCTURE1 (3:13)      TO STRUCTURE1 (1:NUMVAR)
33029           MOVE STRUCTURE1 (3:13)      TO STRUCTURE1 (NUMVAR:1)
33030           MOVE STRUCTURE1 (CONST4:2)  TO STRUCTURE1 (3:2)
33031           MOVE STRUCTURE1 (6:4)       TO STRUCTURE1 (2:4)
33032           MOVE STRUCTURE1 (6:4)       TO STRUCTURE1 (2: )
33033           MOVE FIELD (6)         TO STRUCTURE1 (13:2)
33034           MOVE FIELD (5)         TO STRUCTURE1 (13:2)
33035           MOVE FIELD (NUMVAR)    TO STRUCTURE1 (13:2)
33036           MOVE FIELD (CONST4)    TO STRUCTURE1 (13:2)
33037           MOVE FIELDO (1)        TO FIELDO (1)
33038           MOVE FIELDO (CONST4)   TO FIELDO (CONST4)
33039           MOVE FIELDO (1)        TO FIELDO (2)
33040           MOVE FIELDO (4)        TO FIELDO (CONST4)
33041           MOVE FIELDO (CONST4)   TO FIELDO (4)
33042           MOVE FIELDO (4)        TO FIELDO (NUMVAR)
33043           MOVE FIELDO (NUMVAR)   TO FIELDO (4)
33044           MOVE FIELDO (NUMVAR)   TO FIELDO (NUMVAR)
33045           MOVE FIELDO (NUMVAR) (1:1) TO FIELDO (NUMVAR) (2:1)
33046           MOVE FIELDO (NUMVAR) (2:1) TO FIELDO (NUMVAR)
33047           MOVE FIELDO (4) (2:1)  TO FIELDO (CONST4)
33048           STOP RUN.
33049_ATEOF
33050
33051
33052{ set +x
33053$as_echo "$at_srcdir/syn_move.at:410: \$COMPILE -w prog.cob"
33054at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "syn_move.at:410"
33055( $at_check_trace; $COMPILE -w prog.cob
33056) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33057at_status=$? at_failed=false
33058$at_check_filter
33059at_fn_diff_devnull "$at_stderr" || at_failed=:
33060at_fn_diff_devnull "$at_stdout" || at_failed=:
33061at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:410"
33062$at_failed && at_fn_log_failure
33063$at_traceon; }
33064
33065
33066{ set +x
33067$as_echo "$at_srcdir/syn_move.at:412: \$COMPILE -fdiagnostics-show-option prog.cob"
33068at_fn_check_prepare_dynamic "$COMPILE -fdiagnostics-show-option prog.cob" "syn_move.at:412"
33069( $at_check_trace; $COMPILE -fdiagnostics-show-option prog.cob
33070) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33071at_status=$? at_failed=false
33072$at_check_filter
33073echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33074prog.cob:23: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33075prog.cob:25: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33076prog.cob:26: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33077prog.cob:32: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33078prog.cob:34: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33079prog.cob:39: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33080prog.cob:40: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33081prog.cob:42: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33082prog.cob:43: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33083prog.cob:46: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33084prog.cob:48: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33085prog.cob:49: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33086" | \
33087  $at_diff - "$at_stderr" || at_failed=:
33088at_fn_diff_devnull "$at_stdout" || at_failed=:
33089at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:412"
33090$at_failed && at_fn_log_failure
33091$at_traceon; }
33092
33093
33094{ set +x
33095$as_echo "$at_srcdir/syn_move.at:428: \$COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob"
33096at_fn_check_prepare_dynamic "$COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob" "syn_move.at:428"
33097( $at_check_trace; $COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob
33098) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33099at_status=$? at_failed=false
33100$at_check_filter
33101echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33102prog.cob:23: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33103prog.cob:25: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33104prog.cob:26: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33105prog.cob:28: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
33106prog.cob:29: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
33107prog.cob:30: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
33108prog.cob:31: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
33109prog.cob:32: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33110prog.cob:34: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33111prog.cob:39: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33112prog.cob:40: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33113prog.cob:42: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33114prog.cob:43: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33115prog.cob:46: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33116prog.cob:48: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33117prog.cob:49: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
33118" | \
33119  $at_diff - "$at_stderr" || at_failed=:
33120at_fn_diff_devnull "$at_stdout" || at_failed=:
33121at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:428"
33122$at_failed && at_fn_log_failure
33123$at_traceon; }
33124
33125# special case: for GnuCOBOL the result is predictable,
33126# therefore TODO test in run_misc we have the expected result
33127# AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
33128
33129  set +x
33130  $at_times_p && times >"$at_times_file"
33131) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33132read at_status <"$at_status_file"
33133#AT_STOP_368
33134#AT_START_369
33135at_fn_group_banner 369 'syn_move.at:454' \
33136  "invalid source for MOVE" "                        " 2
33137at_xfail=no
33138(
33139  $as_echo "369. $at_setup_line: testing $at_desc ..."
33140  $at_traceon
33141
33142
33143
33144cat >prog.cob <<'_ATEOF'
33145
33146       IDENTIFICATION   DIVISION.
33147       PROGRAM-ID.      prog.
33148       ENVIRONMENT      DIVISION.
33149       CONFIGURATION    SECTION.
33150       REPOSITORY.
33151           PROGRAM repo-prog.
33152       DATA             DIVISION.
33153       WORKING-STORAGE  SECTION.
33154       77 MAIN-VAR      PIC X(3).
33155       PROCEDURE        DIVISION.
33156       MAIN.
33157           MOVE MAIN TO MAIN-VAR.
33158           MOVE repo-prog TO MAIN.
33159           STOP RUN.
33160_ATEOF
33161
33162
33163{ set +x
33164$as_echo "$at_srcdir/syn_move.at:474: \$COMPILE_ONLY prog.cob"
33165at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:474"
33166( $at_check_trace; $COMPILE_ONLY prog.cob
33167) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33168at_status=$? at_failed=false
33169$at_check_filter
33170echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: no definition/prototype seen for PROGRAM 'repo-prog'
33171prog.cob: in paragraph 'MAIN':
33172prog.cob:13: error: 'MAIN' is not a field
33173prog.cob:14: error: 'repo-prog' is not a field
33174" | \
33175  $at_diff - "$at_stderr" || at_failed=:
33176at_fn_diff_devnull "$at_stdout" || at_failed=:
33177at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:474"
33178$at_failed && at_fn_log_failure
33179$at_traceon; }
33180
33181
33182  set +x
33183  $at_times_p && times >"$at_times_file"
33184) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33185read at_status <"$at_status_file"
33186#AT_STOP_369
33187#AT_START_370
33188at_fn_group_banner 370 'syn_move.at:484' \
33189  "invalid target for MOVE" "                        " 2
33190at_xfail=no
33191(
33192  $as_echo "370. $at_setup_line: testing $at_desc ..."
33193  $at_traceon
33194
33195
33196
33197cat >prog.cob <<'_ATEOF'
33198
33199       IDENTIFICATION   DIVISION.
33200       PROGRAM-ID.      prog.
33201       ENVIRONMENT      DIVISION.
33202       CONFIGURATION    SECTION.
33203       REPOSITORY.
33204           PROGRAM repo-prog.
33205       DATA             DIVISION.
33206       WORKING-STORAGE  SECTION.
33207       78 DEFINED-CONST VALUE 'A'.
33208       77 MAIN-VAR      PIC X(3).
33209       PROCEDURE        DIVISION.
33210       MAIN.
33211           MOVE 'A' TO MAIN-VAR.
33212           MOVE 'B' TO MAIN.
33213           MOVE 'C' TO repo-prog.
33214           MOVE 'D' TO QUOTE.
33215           MOVE 'E' TO DEFINED-CONST.
33216           STOP RUN.
33217_ATEOF
33218
33219
33220{ set +x
33221$as_echo "$at_srcdir/syn_move.at:508: \$COMPILE_ONLY prog.cob"
33222at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:508"
33223( $at_check_trace; $COMPILE_ONLY prog.cob
33224) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33225at_status=$? at_failed=false
33226$at_check_filter
33227echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: no definition/prototype seen for PROGRAM 'repo-prog'
33228prog.cob: in paragraph 'MAIN':
33229prog.cob:15: error: invalid MOVE target: MAIN
33230prog.cob:16: error: invalid MOVE target: repo-prog
33231prog.cob:17: error: invalid MOVE target: QUOTE
33232prog.cob:18: error: invalid MOVE target: literal \"A\"
33233" | \
33234  $at_diff - "$at_stderr" || at_failed=:
33235at_fn_diff_devnull "$at_stdout" || at_failed=:
33236at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:508"
33237$at_failed && at_fn_log_failure
33238$at_traceon; }
33239
33240
33241  set +x
33242  $at_times_p && times >"$at_times_file"
33243) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33244read at_status <"$at_status_file"
33245#AT_STOP_370
33246#AT_START_371
33247at_fn_group_banner 371 'syn_move.at:520' \
33248  "SET error" "                                      " 2
33249at_xfail=no
33250(
33251  $as_echo "371. $at_setup_line: testing $at_desc ..."
33252  $at_traceon
33253
33254
33255
33256cat >prog.cob <<'_ATEOF'
33257
33258       program-id. prog.
33259       data division.
33260       working-storage section.
33261       01 default-float usage float-long.
33262       01 no-pointer    pic s9(9) comp.
33263
33264       linkage section.
33265       01 float-var usage float-long.
33266
33267       procedure division .
33268      *> previously generated error message about invalid MOVE statement,
33269      *> see bug #255 and an internal compiler error, see bug #295:
33270           set address of float-var to default-float
33271           set no-pointer to address of default-float
33272      *> all fine...
33273           set address of float-var to address of default-float
33274           goback.
33275       end program prog .
33276_ATEOF
33277
33278
33279{ set +x
33280$as_echo "$at_srcdir/syn_move.at:544: \$COMPILE_ONLY prog.cob"
33281at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:544"
33282( $at_check_trace; $COMPILE_ONLY prog.cob
33283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33284at_status=$? at_failed=false
33285$at_check_filter
33286echo >>"$at_stderr"; $as_echo "prog.cob:14: error: invalid SET statement
33287prog.cob:15: error: invalid SET statement
33288" | \
33289  $at_diff - "$at_stderr" || at_failed=:
33290at_fn_diff_devnull "$at_stdout" || at_failed=:
33291at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:544"
33292$at_failed && at_fn_log_failure
33293$at_traceon; }
33294
33295
33296  set +x
33297  $at_times_p && times >"$at_times_file"
33298) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33299read at_status <"$at_status_file"
33300#AT_STOP_371
33301#AT_START_372
33302at_fn_group_banner 372 'syn_move.at:552' \
33303  "MOVE FIGURATIVE to NUMERIC" "                     " 2
33304at_xfail=no
33305(
33306  $as_echo "372. $at_setup_line: testing $at_desc ..."
33307  $at_traceon
33308
33309
33310
33311cat >prog.cob <<'_ATEOF'
33312
33313       IDENTIFICATION   DIVISION.
33314       PROGRAM-ID. prog.
33315       DATA             DIVISION.
33316       WORKING-STORAGE  SECTION.
33317       01  MYFLD        PIC 9(4) VALUE 96.
33318       01  BIGFLT       COMP-1 VALUE 543.12345E10.
33319       PROCEDURE        DIVISION.
33320       MAIN-1.
33321           MOVE BIGFLT TO MYFLD.
33322           MOVE SPACES TO MYFLD.
33323           MOVE LOW-VALUES TO MYFLD.
33324           MOVE HIGH-VALUES TO MYFLD.
33325           MOVE QUOTE TO MYFLD.
33326           MOVE ALL '*' TO MYFLD.
33327           MOVE ALL '0' TO MYFLD.
33328           MOVE ALL 'A1' TO MYFLD.
33329           MOVE ALL '21' TO MYFLD.
33330           SET MYFLD TO HIGH-VALUES.
33331           SET MYFLD TO SPACES.
33332           MOVE HIGH-VALUES TO MYFLD (1:).
33333
33334           MOVE HIGH-VALUES TO BIGFLT.
33335           MOVE QUOTE TO BIGFLT.
33336           MOVE ALL '*' TO BIGFLT.
33337           MOVE ALL '21' TO BIGFLT.
33338           STOP RUN.
33339_ATEOF
33340
33341
33342{ set +x
33343$as_echo "$at_srcdir/syn_move.at:584: \$COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT prog.cob"
33344at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT prog.cob" "syn_move.at:584"
33345( $at_check_trace; $COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT prog.cob
33346) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33347at_status=$? at_failed=false
33348$at_check_filter
33349echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
33350prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
33351prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
33352prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
33353prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is archaic in COBOL 2002
33354prog.cob:15: warning: numeric value is expected
33355prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33356prog.cob:17: warning: numeric value is expected
33357prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33358prog.cob:19: error: invalid SET statement
33359prog.cob:20: error: invalid SET statement
33360prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
33361prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is archaic in COBOL 2002
33362prog.cob:25: warning: numeric value is expected
33363prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
33364" | \
33365  $at_diff - "$at_stderr" || at_failed=:
33366at_fn_diff_devnull "$at_stdout" || at_failed=:
33367at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:584"
33368$at_failed && at_fn_log_failure
33369$at_traceon; }
33370
33371
33372{ set +x
33373$as_echo "$at_srcdir/syn_move.at:602: \$COMPILE_ONLY -std=ibm prog.cob"
33374at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_move.at:602"
33375( $at_check_trace; $COMPILE_ONLY -std=ibm prog.cob
33376) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33377at_status=$? at_failed=false
33378$at_check_filter
33379echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
33380prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
33381prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
33382prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
33383prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is archaic in IBM COBOL (lax)
33384prog.cob:15: warning: numeric value is expected
33385prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33386prog.cob:17: warning: numeric value is expected
33387prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33388prog.cob:19: error: invalid SET statement
33389prog.cob:20: error: invalid SET statement
33390prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
33391prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is archaic in IBM COBOL (lax)
33392prog.cob:25: warning: numeric value is expected
33393prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
33394" | \
33395  $at_diff - "$at_stderr" || at_failed=:
33396at_fn_diff_devnull "$at_stdout" || at_failed=:
33397at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:602"
33398$at_failed && at_fn_log_failure
33399$at_traceon; }
33400
33401
33402{ set +x
33403$as_echo "$at_srcdir/syn_move.at:620: \$COMPILE_ONLY -std=mf prog.cob"
33404at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_move.at:620"
33405( $at_check_trace; $COMPILE_ONLY -std=mf prog.cob
33406) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33407at_status=$? at_failed=false
33408$at_check_filter
33409echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
33410prog.cob:11: warning: source is non-numeric - substituting zero
33411prog.cob:12: warning: source is non-numeric - substituting zero
33412prog.cob:13: warning: source is non-numeric - substituting zero
33413prog.cob:14: warning: source is non-numeric - substituting zero
33414prog.cob:15: warning: source is non-numeric - substituting zero
33415prog.cob:17: warning: source is non-numeric - substituting zero
33416prog.cob:19: error: invalid SET statement
33417prog.cob:20: error: invalid SET statement
33418prog.cob:23: warning: source is non-numeric - substituting zero
33419prog.cob:24: warning: source is non-numeric - substituting zero
33420prog.cob:25: warning: source is non-numeric - substituting zero
33421" | \
33422  $at_diff - "$at_stderr" || at_failed=:
33423at_fn_diff_devnull "$at_stdout" || at_failed=:
33424at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:620"
33425$at_failed && at_fn_log_failure
33426$at_traceon; }
33427
33428
33429{ set +x
33430$as_echo "$at_srcdir/syn_move.at:635: \$COMPILE_ONLY prog.cob"
33431at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:635"
33432( $at_check_trace; $COMPILE_ONLY prog.cob
33433) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33434at_status=$? at_failed=false
33435$at_check_filter
33436echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
33437prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
33438prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
33439prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
33440prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is obsolete in GnuCOBOL
33441prog.cob:14: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
33442prog.cob:15: warning: numeric value is expected
33443prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33444prog.cob:17: warning: numeric value is expected
33445prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
33446prog.cob:19: error: invalid SET statement
33447prog.cob:20: error: invalid SET statement
33448prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
33449prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is obsolete in GnuCOBOL
33450prog.cob:24: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
33451prog.cob:25: warning: numeric value is expected
33452prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
33453" | \
33454  $at_diff - "$at_stderr" || at_failed=:
33455at_fn_diff_devnull "$at_stdout" || at_failed=:
33456at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:635"
33457$at_failed && at_fn_log_failure
33458$at_traceon; }
33459
33460
33461  set +x
33462  $at_times_p && times >"$at_times_file"
33463) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33464read at_status <"$at_status_file"
33465#AT_STOP_372
33466#AT_START_373
33467at_fn_group_banner 373 'syn_multiply.at:28' \
33468  "Category check of Format 1" "                     " 2
33469at_xfail=no
33470(
33471  $as_echo "373. $at_setup_line: testing $at_desc ..."
33472  $at_traceon
33473
33474
33475
33476cat >prog.cob <<'_ATEOF'
33477
33478       IDENTIFICATION   DIVISION.
33479       PROGRAM-ID.      prog.
33480       DATA             DIVISION.
33481       WORKING-STORAGE  SECTION.
33482       01 X-X           PIC X.
33483       01 X-9           PIC 9.
33484       01 X-09          PIC 09.
33485       PROCEDURE        DIVISION.
33486           MULTIPLY 123  BY 456
33487           MULTIPLY "a"  BY "b"
33488           MULTIPLY 123  BY "b"
33489           MULTIPLY X-X  BY X-9
33490           MULTIPLY X-9  BY X-09
33491           MULTIPLY X-09 BY X-X
33492           MULTIPLY 123  BY X-X
33493           STOP RUN.
33494_ATEOF
33495
33496
33497{ set +x
33498$as_echo "$at_srcdir/syn_multiply.at:50: \$COMPILE_ONLY prog.cob"
33499at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:50"
33500( $at_check_trace; $COMPILE_ONLY prog.cob
33501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33502at_status=$? at_failed=false
33503$at_check_filter
33504echo >>"$at_stderr"; $as_echo "prog.cob:10: error: '456' is not a numeric name
33505prog.cob:11: error: 'literal \"a\"' is not a numeric value
33506prog.cob:12: error: 'literal \"b\"' is not a numeric name
33507prog.cob:13: error: 'X-X' is not a numeric value
33508prog.cob:14: error: 'X-09' is not a numeric name
33509prog.cob:15: error: 'X-09' is not a numeric value
33510prog.cob:16: error: 'X-X' is not a numeric name
33511" | \
33512  $at_diff - "$at_stderr" || at_failed=:
33513at_fn_diff_devnull "$at_stdout" || at_failed=:
33514at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:50"
33515$at_failed && at_fn_log_failure
33516$at_traceon; }
33517
33518
33519  set +x
33520  $at_times_p && times >"$at_times_file"
33521) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33522read at_status <"$at_status_file"
33523#AT_STOP_373
33524#AT_START_374
33525at_fn_group_banner 374 'syn_multiply.at:64' \
33526  "Category check of Format 2" "                     " 2
33527at_xfail=no
33528(
33529  $as_echo "374. $at_setup_line: testing $at_desc ..."
33530  $at_traceon
33531
33532
33533
33534cat >prog.cob <<'_ATEOF'
33535
33536       IDENTIFICATION   DIVISION.
33537       PROGRAM-ID.      prog.
33538       DATA             DIVISION.
33539       WORKING-STORAGE  SECTION.
33540       01 X-X           PIC X.
33541       01 X-9           PIC 9.
33542       01 X-09          PIC 09.
33543       PROCEDURE        DIVISION.
33544           MULTIPLY 123  BY 456  GIVING 789
33545           MULTIPLY "a"  BY "b"  GIVING "c"
33546           MULTIPLY 123  BY 456  GIVING "c"
33547           MULTIPLY X-X  BY X-9  GIVING X-09
33548           MULTIPLY X-9  BY X-09 GIVING X-X
33549           MULTIPLY 123  BY 456  GIVING X-X
33550           MULTIPLY X-09 BY X-X  GIVING X-9
33551           STOP RUN.
33552_ATEOF
33553
33554
33555{ set +x
33556$as_echo "$at_srcdir/syn_multiply.at:86: \$COMPILE_ONLY prog.cob"
33557at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:86"
33558( $at_check_trace; $COMPILE_ONLY prog.cob
33559) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33560at_status=$? at_failed=false
33561$at_check_filter
33562echo >>"$at_stderr"; $as_echo "prog.cob:10: error: '789' is not a numeric or numeric-edited name
33563prog.cob:11: error: 'literal \"a\"' is not a numeric value
33564prog.cob:11: error: 'literal \"b\"' is not a numeric value
33565prog.cob:12: error: 'literal \"c\"' is not a numeric or numeric-edited name
33566prog.cob:13: error: 'X-X' is not a numeric value
33567prog.cob:14: error: 'X-09' is not a numeric value
33568prog.cob:15: error: 'X-X' is not a numeric or numeric-edited name
33569prog.cob:16: error: 'X-09' is not a numeric value
33570prog.cob:16: error: 'X-X' is not a numeric value
33571" | \
33572  $at_diff - "$at_stderr" || at_failed=:
33573at_fn_diff_devnull "$at_stdout" || at_failed=:
33574at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:86"
33575$at_failed && at_fn_log_failure
33576$at_traceon; }
33577
33578
33579  set +x
33580  $at_times_p && times >"$at_times_file"
33581) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33582read at_status <"$at_status_file"
33583#AT_STOP_374
33584#AT_START_375
33585at_fn_group_banner 375 'syn_multiply.at:102' \
33586  "Category check of literals" "                     " 2
33587at_xfail=no
33588(
33589  $as_echo "375. $at_setup_line: testing $at_desc ..."
33590  $at_traceon
33591
33592
33593
33594cat >prog.cob <<'_ATEOF'
33595
33596       IDENTIFICATION   DIVISION.
33597       PROGRAM-ID.      prog.
33598       DATA             DIVISION.
33599       WORKING-STORAGE  SECTION.
33600       01 X             PIC 9.
33601       PROCEDURE        DIVISION.
33602           MULTIPLY 123  BY X
33603           END-MULTIPLY.
33604           MULTIPLY "a"  BY X
33605           END-MULTIPLY.
33606           MULTIPLY 123  BY 456 GIVING X
33607           END-MULTIPLY.
33608           MULTIPLY "a"  BY "b" GIVING X
33609           END-MULTIPLY.
33610           STOP RUN.
33611_ATEOF
33612
33613
33614{ set +x
33615$as_echo "$at_srcdir/syn_multiply.at:123: \$COMPILE_ONLY prog.cob"
33616at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:123"
33617( $at_check_trace; $COMPILE_ONLY prog.cob
33618) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33619at_status=$? at_failed=false
33620$at_check_filter
33621echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'literal \"a\"' is not a numeric value
33622prog.cob:14: error: 'literal \"a\"' is not a numeric value
33623prog.cob:14: error: 'literal \"b\"' is not a numeric value
33624" | \
33625  $at_diff - "$at_stderr" || at_failed=:
33626at_fn_diff_devnull "$at_stdout" || at_failed=:
33627at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:123"
33628$at_failed && at_fn_log_failure
33629$at_traceon; }
33630
33631
33632  set +x
33633  $at_times_p && times >"$at_times_file"
33634) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33635read at_status <"$at_status_file"
33636#AT_STOP_375
33637#AT_START_376
33638at_fn_group_banner 376 'syn_screen.at:24' \
33639  "Flexible ACCEPT/DISPLAY syntax" "                 " 2
33640at_xfail=no
33641(
33642  $as_echo "376. $at_setup_line: testing $at_desc ..."
33643  $at_traceon
33644
33645
33646
33647cat >prog.cob <<'_ATEOF'
33648
33649       IDENTIFICATION   DIVISION.
33650       PROGRAM-ID.      prog.
33651
33652       ENVIRONMENT      DIVISION.
33653       CONFIGURATION    SECTION.
33654       SPECIAL-NAMES.
33655           SYSERR IS ERR-STREAM
33656           .
33657       DATA             DIVISION.
33658       WORKING-STORAGE  SECTION.
33659       01  a-field      PIC XXX.
33660
33661       SCREEN           SECTION.
33662       01  scr.
33663           03 VALUE "blah" LINE 5 COL 5.
33664
33665       PROCEDURE        DIVISION.
33666           *> Valid statements
33667           DISPLAY "123" "456" "789" NO ADVANCING
33668           DISPLAY "foo" COL 1 HIGHLIGHT AT LINE 1 WITH UNDERLINE,
33669               "bar", "foo"
33670           DISPLAY "a" UPON CRT, "b" LINE 3 COL 3, "c" UPON CRT-UNDER
33671           DISPLAY scr, scr
33672
33673           ACCEPT a-field LINE 5 SIZE 3 AT COL 1 WITH AUTO
33674               REVERSE-VIDEO, BLINK
33675
33676           *> invalid statements
33677           DISPLAY scr WITH NO ADVANCING
33678           DISPLAY scr, scr LINE 2 COL 2 UPON ERR-STREAM
33679           DISPLAY "foo" LINE 2 COL 2, scr
33680           DISPLAY "foo" LINE 2 COL 2, "bar" UPON ERR-STREAM
33681           DISPLAY "foo" LINE 1 UPON ERR-STREAM
33682           DISPLAY scr, "foo"
33683           .
33684       END PROGRAM prog.
33685
33686       IDENTIFICATION   DIVISION.
33687       PROGRAM-ID.      prog-2.
33688
33689       ENVIRONMENT      DIVISION.
33690       CONFIGURATION    SECTION.
33691       SPECIAL-NAMES.
33692           CONSOLE IS CRT
33693           .
33694       PROCEDURE DIVISION.
33695           DISPLAY "foo" NO ADVANCING
33696           .
33697       END PROGRAM prog-2.
33698_ATEOF
33699
33700
33701{ set +x
33702$as_echo "$at_srcdir/syn_screen.at:79: \$COMPILE_ONLY prog.cob"
33703at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:79"
33704( $at_check_trace; $COMPILE_ONLY prog.cob
33705) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33706at_status=$? at_failed=false
33707$at_check_filter
33708echo >>"$at_stderr"; $as_echo "prog.cob:31: error: cannot specify NO ADVANCING in screen DISPLAY
33709prog.cob:31: error: screens may only be displayed on CRT
33710prog.cob:32: error: cannot mix screens and fields in the same DISPLAY statement
33711prog.cob:33: error: ambiguous DISPLAY; put items to display on device in separate DISPLAY
33712prog.cob:34: error: screen clauses may only be used for DISPLAY on CRT
33713prog.cob:35: error: cannot mix screens and fields in the same DISPLAY statement
33714prog.cob:49: error: cannot specify NO ADVANCING in screen DISPLAY
33715" | \
33716  $at_diff - "$at_stderr" || at_failed=:
33717at_fn_diff_devnull "$at_stdout" || at_failed=:
33718at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:79"
33719$at_failed && at_fn_log_failure
33720$at_traceon; }
33721
33722
33723  set +x
33724  $at_times_p && times >"$at_times_file"
33725) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33726read at_status <"$at_status_file"
33727#AT_STOP_376
33728#AT_START_377
33729at_fn_group_banner 377 'syn_screen.at:92' \
33730  "Duplicate ACCEPT/DISPLAY clauses" "               " 2
33731at_xfail=no
33732(
33733  $as_echo "377. $at_setup_line: testing $at_desc ..."
33734  $at_traceon
33735
33736
33737
33738cat >prog.cob <<'_ATEOF'
33739
33740       IDENTIFICATION   DIVISION.
33741       PROGRAM-ID.      prog.
33742       DATA             DIVISION.
33743       WORKING-STORAGE  SECTION.
33744       01  a-field      PIC XXX.
33745       PROCEDURE        DIVISION.
33746           DISPLAY "foo" LINE 1 COL 1 HIGHLIGHT LINE 1 HIGHLIGHT
33747               AT 0101 MODE IS BLOCK MODE IS BLOCK
33748           ACCEPT a-field LINE 1 COL 1 HIGHLIGHT LINE 1 HIGHLIGHT
33749               AT 0101
33750           .
33751_ATEOF
33752
33753
33754{ set +x
33755$as_echo "$at_srcdir/syn_screen.at:109: \$COMPILE_ONLY prog.cob"
33756at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:109"
33757( $at_check_trace; $COMPILE_ONLY prog.cob
33758) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33759at_status=$? at_failed=false
33760$at_check_filter
33761echo >>"$at_stderr"; $as_echo "prog.cob:8: error: duplicate LINE clause
33762prog.cob:8: error: duplicate HIGHLIGHT clause
33763prog.cob:9: error: cannot specify both AT screen-location and LINE or COLUMN
33764prog.cob:9: error: duplicate MODE IS BLOCK clause
33765prog.cob:10: error: duplicate LINE clause
33766prog.cob:10: error: duplicate HIGHLIGHT clause
33767prog.cob:11: error: cannot specify both AT screen-location and LINE or COLUMN
33768" | \
33769  $at_diff - "$at_stderr" || at_failed=:
33770at_fn_diff_devnull "$at_stdout" || at_failed=:
33771at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:109"
33772$at_failed && at_fn_log_failure
33773$at_traceon; }
33774
33775  set +x
33776  $at_times_p && times >"$at_times_file"
33777) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33778read at_status <"$at_status_file"
33779#AT_STOP_377
33780#AT_START_378
33781at_fn_group_banner 378 'syn_screen.at:121' \
33782  "AT clause" "                                      " 2
33783at_xfail=no
33784(
33785  $as_echo "378. $at_setup_line: testing $at_desc ..."
33786  $at_traceon
33787
33788
33789
33790cat >prog.cob <<'_ATEOF'
33791
33792       IDENTIFICATION  DIVISION.
33793       PROGRAM-ID.     prog.
33794
33795       DATA            DIVISION.
33796       WORKING-STORAGE SECTION.
33797       01  curs-1      PIC 9(4) VALUE 00000000001111.
33798       01  curs-2.
33799           03  linee   PIC 999.
33800           03  coll    PIC 999.
33801       01  posc        CONSTANT 0101.
33802
33803       01  curs-3      PIC 99.
33804       01  curs-4      PIC 9(8) VALUE 0101.
33805       01  curs-5      PIC X(4).
33806
33807       PROCEDURE       DIVISION.
33808           *> Valid AT clauses
33809           DISPLAY "a" AT curs-1
33810           DISPLAY "a" AT curs-2
33811           DISPLAY "a" AT posc
33812
33813           *> Invalid AT clauses
33814           DISPLAY "a" AT curs-3
33815           DISPLAY "a" AT curs-4
33816           DISPLAY "a" AT curs-5
33817           DISPLAY "a" AT 101
33818           DISPLAY "a" AT ZERO
33819           .
33820_ATEOF
33821
33822
33823{ set +x
33824$as_echo "$at_srcdir/syn_screen.at:155: \$COMPILE_ONLY prog.cob"
33825at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:155"
33826( $at_check_trace; $COMPILE_ONLY prog.cob
33827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33828at_status=$? at_failed=false
33829$at_check_filter
33830echo >>"$at_stderr"; $as_echo "prog.cob:24: error: value in AT clause must have 4 or 6 digits
33831prog.cob:25: error: value in AT clause must have 4 or 6 digits
33832prog.cob:26: error: value in AT clause is not numeric
33833prog.cob:27: error: value in AT clause must have 4 or 6 digits
33834prog.cob:29: error: cannot specify figurative constant ZERO in AT clause
33835" | \
33836  $at_diff - "$at_stderr" || at_failed=:
33837at_fn_diff_devnull "$at_stdout" || at_failed=:
33838at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:155"
33839$at_failed && at_fn_log_failure
33840$at_traceon; }
33841
33842  set +x
33843  $at_times_p && times >"$at_times_file"
33844) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33845read at_status <"$at_status_file"
33846#AT_STOP_378
33847#AT_START_379
33848at_fn_group_banner 379 'syn_screen.at:165' \
33849  "ACCEPT/DISPLAY extensions detection" "            " 2
33850at_xfail=no
33851(
33852  $as_echo "379. $at_setup_line: testing $at_desc ..."
33853  $at_traceon
33854
33855
33856
33857cat >prog.cob <<'_ATEOF'
33858
33859       IDENTIFICATION   DIVISION.
33860       PROGRAM-ID.      prog.
33861
33862       DATA DIVISION.
33863       WORKING-STORAGE SECTION.
33864       01  zero-const CONSTANT 0.
33865       01  x PIC 99.
33866
33867       SCREEN SECTION.
33868       01  scr.
33869           03  y PIC 99 FROM x LINE 3 COLUMN 5.
33870
33871       PROCEDURE DIVISION.
33872           DISPLAY "hello" AT 0000
33873           DISPLAY "world" LINE ZERO COLUMN zero-const
33874           ACCEPT x WITH TIME-OUT 5
33875
33876           DISPLAY scr WITH UNDERLINE
33877           ACCEPT scr WITH HIGHLIGHT
33878
33879           DISPLAY scr, scr
33880
33881           *> Valid statements
33882           DISPLAY scr UPON CRT-UNDER
33883           ACCEPT scr AT LINE 4 COLUMN 4
33884           .
33885_ATEOF
33886
33887
33888{ set +x
33889$as_echo "$at_srcdir/syn_screen.at:197: \$COMPILE_ONLY -faccept-display-extensions=error prog.cob"
33890at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-display-extensions=error prog.cob" "syn_screen.at:197"
33891( $at_check_trace; $COMPILE_ONLY -faccept-display-extensions=error prog.cob
33892) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33893at_status=$? at_failed=false
33894$at_check_filter
33895echo >>"$at_stderr"; $as_echo "prog.cob:15: error: AT clause used
33896prog.cob:15: error: non-standard DISPLAY used
33897prog.cob:16: error: LINE 0 used
33898prog.cob:16: error: COLUMN 0 used
33899prog.cob:16: error: non-standard DISPLAY used
33900prog.cob:17: error: non-standard ACCEPT used
33901prog.cob:19: error: non-standard DISPLAY used
33902prog.cob:20: error: non-standard ACCEPT used
33903prog.cob:22: error: non-standard DISPLAY used
33904" | \
33905  $at_diff - "$at_stderr" || at_failed=:
33906at_fn_diff_devnull "$at_stdout" || at_failed=:
33907at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:197"
33908$at_failed && at_fn_log_failure
33909$at_traceon; }
33910
33911  set +x
33912  $at_times_p && times >"$at_times_file"
33913) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33914read at_status <"$at_status_file"
33915#AT_STOP_379
33916#AT_START_380
33917at_fn_group_banner 380 'syn_screen.at:211' \
33918  "FROM clause" "                                    " 2
33919at_xfail=no
33920(
33921  $as_echo "380. $at_setup_line: testing $at_desc ..."
33922  $at_traceon
33923
33924
33925
33926cat >prog.cob <<'_ATEOF'
33927
33928       IDENTIFICATION   DIVISION.
33929       PROGRAM-ID.      prog.
33930       DATA             DIVISION.
33931       WORKING-STORAGE  SECTION.
33932       01 X             PIC X.
33933       SCREEN  SECTION.
33934       01 SG.
33935          05 SI1   LINE 1 COL 1 PIC X FROM X.
33936          05 SI2   LINE 2 COL 1 PIC X FROM SPACE.
33937          05 SI2-2 LINE 2 COL 5 PIC X(03) FROM ALL SPACES.
33938          05 SI3   LINE 3 COL 1 PIC 9 FROM ZERO.
33939          05 SI3-2 LINE 3 COL 5 PIC X(03) FROM ALL ZEROES.
33940       PROCEDURE        DIVISION.
33941           DISPLAY SG END-DISPLAY.
33942           STOP RUN.
33943_ATEOF
33944
33945
33946{ set +x
33947$as_echo "$at_srcdir/syn_screen.at:232: \$COMPILE_ONLY prog.cob"
33948at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:232"
33949( $at_check_trace; $COMPILE_ONLY prog.cob
33950) >>"$at_stdout" 2>>"$at_stderr" 5>&-
33951at_status=$? at_failed=false
33952$at_check_filter
33953at_fn_diff_devnull "$at_stderr" || at_failed=:
33954at_fn_diff_devnull "$at_stdout" || at_failed=:
33955at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:232"
33956$at_failed && at_fn_log_failure
33957$at_traceon; }
33958
33959
33960  set +x
33961  $at_times_p && times >"$at_times_file"
33962) 5>&1 2>&1 7>&- | eval $at_tee_pipe
33963read at_status <"$at_status_file"
33964#AT_STOP_380
33965#AT_START_381
33966at_fn_group_banner 381 'syn_screen.at:237' \
33967  "Incorrect USAGE clause" "                         " 2
33968at_xfail=no
33969(
33970  $as_echo "381. $at_setup_line: testing $at_desc ..."
33971  $at_traceon
33972
33973
33974
33975cat >prog.cob <<'_ATEOF'
33976
33977       IDENTIFICATION   DIVISION.
33978       PROGRAM-ID. prog.
33979       DATA             DIVISION.
33980       WORKING-STORAGE  SECTION.
33981       01 X             PIC X.
33982       SCREEN  SECTION.
33983        01 SG.
33984           05 SI1    LINE 1 COL 1 PIC X FROM X.
33985           05 SI2    LINE 2 COL 1 PIC X FROM SPACE.
33986           05 SI2-2  LINE 2 COL 5 PIC X(03) FROM ALL SPACES.
33987           05 BAD1   LINE 4 COL 1 PIC 9 BINARY FROM ZERO.
33988           05 FILLER LINE 4 COL 10 PIC 9 COMP-5 FROM ZERO.
33989           05 BAD3   LINE 4 COL 5 COMP-2 FROM ALL ZEROES.
33990       PROCEDURE        DIVISION.
33991           DISPLAY SG END-DISPLAY.
33992           STOP RUN.
33993_ATEOF
33994
33995
33996{ set +x
33997$as_echo "$at_srcdir/syn_screen.at:259: \$COMPILE prog.cob"
33998at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_screen.at:259"
33999( $at_check_trace; $COMPILE prog.cob
34000) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34001at_status=$? at_failed=false
34002$at_check_filter
34003echo >>"$at_stderr"; $as_echo "prog.cob:12: error: SCREEN SECTION item 'BAD1' should be USAGE DISPLAY
34004prog.cob:13: error: SCREEN SECTION item 'FILLER' should be USAGE DISPLAY
34005prog.cob:14: error: SCREEN SECTION item 'BAD3' should be USAGE DISPLAY
34006" | \
34007  $at_diff - "$at_stderr" || at_failed=:
34008at_fn_diff_devnull "$at_stdout" || at_failed=:
34009at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:259"
34010$at_failed && at_fn_log_failure
34011$at_traceon; }
34012
34013
34014  set +x
34015  $at_times_p && times >"$at_times_file"
34016) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34017read at_status <"$at_status_file"
34018#AT_STOP_381
34019#AT_START_382
34020at_fn_group_banner 382 'syn_screen.at:268' \
34021  "SCREEN SECTION clause numbers" "                  " 2
34022at_xfail=no
34023(
34024  $as_echo "382. $at_setup_line: testing $at_desc ..."
34025  $at_traceon
34026
34027
34028
34029cat >prog.cob <<'_ATEOF'
34030
34031       IDENTIFICATION   DIVISION.
34032       PROGRAM-ID.      prog.
34033       DATA             DIVISION.
34034       SCREEN           SECTION.
34035       *> Valid numbers
34036       01  v1           VALUE "-" LINE 1.
34037       01  v2           VALUE "-" LINE + 1.
34038       01  v3           VALUE "-" LINE - 1.
34039       01  v4           VALUE "-" LINE 0.
34040
34041       *> invalid numbers
34042       01  i1           VALUE "-" LINE +1.
34043       01  i2           VALUE "-" LINE -1.
34044       01  i3           VALUE "-" LINE 1.0.
34045       PROCEDURE        DIVISION.
34046           STOP RUN.
34047_ATEOF
34048
34049
34050{ set +x
34051$as_echo "$at_srcdir/syn_screen.at:290: \$COMPILE_ONLY prog.cob"
34052at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:290"
34053( $at_check_trace; $COMPILE_ONLY prog.cob
34054) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34055at_status=$? at_failed=false
34056$at_check_filter
34057echo >>"$at_stderr"; $as_echo "prog.cob:13: error: unsigned integer value expected
34058prog.cob:14: error: unsigned integer value expected
34059prog.cob:15: error: unsigned integer value expected
34060" | \
34061  $at_diff - "$at_stderr" || at_failed=:
34062at_fn_diff_devnull "$at_stdout" || at_failed=:
34063at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:290"
34064$at_failed && at_fn_log_failure
34065$at_traceon; }
34066
34067
34068  set +x
34069  $at_times_p && times >"$at_times_file"
34070) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34071read at_status <"$at_status_file"
34072#AT_STOP_382
34073#AT_START_383
34074at_fn_group_banner 383 'syn_screen.at:300' \
34075  "Screen clauses" "                                 " 2
34076at_xfail=no
34077(
34078  $as_echo "383. $at_setup_line: testing $at_desc ..."
34079  $at_traceon
34080
34081
34082
34083cat >prog.cob <<'_ATEOF'
34084
34085       IDENTIFICATION   DIVISION.
34086       PROGRAM-ID.      prog.
34087       DATA             DIVISION.
34088       WORKING-STORAGE  SECTION.
34089       01  foo          PIC X.
34090       SCREEN           SECTION.
34091       01  scr.
34092           03  a        PIC X TO foo FULL, LEFTLINE, OVERLINE, REQUIRED,
34093                        GRID.
34094       PROCEDURE        DIVISION.
34095           STOP RUN.
34096_ATEOF
34097
34098
34099{ set +x
34100$as_echo "$at_srcdir/syn_screen.at:317: \$COMPILE_ONLY prog.cob"
34101at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:317"
34102( $at_check_trace; $COMPILE_ONLY prog.cob
34103) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34104at_status=$? at_failed=false
34105$at_check_filter
34106echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: LEFTLINE is not implemented
34107prog.cob:9: warning: OVERLINE is not implemented
34108prog.cob:10: warning: GRID is not implemented
34109" | \
34110  $at_diff - "$at_stderr" || at_failed=:
34111at_fn_diff_devnull "$at_stdout" || at_failed=:
34112at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:317"
34113$at_failed && at_fn_log_failure
34114$at_traceon; }
34115
34116
34117  set +x
34118  $at_times_p && times >"$at_times_file"
34119) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34120read at_status <"$at_status_file"
34121#AT_STOP_383
34122#AT_START_384
34123at_fn_group_banner 384 'syn_screen.at:326' \
34124  "ACCEPT ON EXCEPTION/ESCAPE" "                     " 2
34125at_xfail=no
34126(
34127  $as_echo "384. $at_setup_line: testing $at_desc ..."
34128  $at_traceon
34129
34130
34131
34132cat >prog.cob <<'_ATEOF'
34133
34134       IDENTIFICATION   DIVISION.
34135       PROGRAM-ID.      prog.
34136       DATA             DIVISION.
34137       WORKING-STORAGE  SECTION.
34138       01  foo          PIC X.
34139       PROCEDURE        DIVISION.
34140           ACCEPT foo
34141               ON EXCEPTION
34142                   CONTINUE
34143               NOT EXCEPTION
34144                   CONTINUE
34145           END-ACCEPT
34146
34147           ACCEPT foo
34148               ESCAPE
34149                   CONTINUE
34150               NOT ON ESCAPE
34151                   CONTINUE
34152           END-ACCEPT
34153           .
34154_ATEOF
34155
34156
34157{ set +x
34158$as_echo "$at_srcdir/syn_screen.at:352: \$COMPILE_ONLY prog.cob"
34159at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:352"
34160( $at_check_trace; $COMPILE_ONLY prog.cob
34161) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34162at_status=$? at_failed=false
34163$at_check_filter
34164at_fn_diff_devnull "$at_stderr" || at_failed=:
34165at_fn_diff_devnull "$at_stdout" || at_failed=:
34166at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:352"
34167$at_failed && at_fn_log_failure
34168$at_traceon; }
34169
34170  set +x
34171  $at_times_p && times >"$at_times_file"
34172) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34173read at_status <"$at_status_file"
34174#AT_STOP_384
34175#AT_START_385
34176at_fn_group_banner 385 'syn_screen.at:356' \
34177  "Referencing 88-level" "                           " 2
34178at_xfail=no
34179(
34180  $as_echo "385. $at_setup_line: testing $at_desc ..."
34181  $at_traceon
34182
34183# see bug #178
34184
34185
34186cat >prog.cob <<'_ATEOF'
34187
34188       IDENTIFICATION   DIVISION.
34189       PROGRAM-ID.      prog.
34190
34191       DATA             DIVISION.
34192       WORKING-STORAGE  SECTION.
34193       01  flag PIC X.
34194           88  blah VALUE "N".
34195
34196       SCREEN           SECTION.
34197       01  scr.
34198           03  PIC X COLUMN blah TO blah FROM blah.
34199
34200       PROCEDURE        DIVISION.
34201           ACCEPT scr
34202           .
34203_ATEOF
34204
34205
34206{ set +x
34207$as_echo "$at_srcdir/syn_screen.at:378: \$COMPILE_ONLY prog.cob"
34208at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:378"
34209( $at_check_trace; $COMPILE_ONLY prog.cob
34210) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34211at_status=$? at_failed=false
34212$at_check_filter
34213echo >>"$at_stderr"; $as_echo "prog.cob:12: error: condition-name not allowed here: 'blah'
34214prog.cob:12: error: condition-name not allowed here: 'blah'
34215prog.cob:12: error: condition-name not allowed here: 'blah'
34216" | \
34217  $at_diff - "$at_stderr" || at_failed=:
34218at_fn_diff_devnull "$at_stdout" || at_failed=:
34219at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:378"
34220$at_failed && at_fn_log_failure
34221$at_traceon; }
34222
34223
34224  set +x
34225  $at_times_p && times >"$at_times_file"
34226) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34227read at_status <"$at_status_file"
34228#AT_STOP_385
34229#AT_START_386
34230at_fn_group_banner 386 'syn_screen.at:387' \
34231  "Conflicting screen clauses" "                     " 2
34232at_xfail=no
34233(
34234  $as_echo "386. $at_setup_line: testing $at_desc ..."
34235  $at_traceon
34236
34237
34238
34239cat >prog.cob <<'_ATEOF'
34240
34241       IDENTIFICATION   DIVISION.
34242       PROGRAM-ID.      prog.
34243
34244       DATA             DIVISION.
34245       WORKING-STORAGE  SECTION.
34246       01  x            PIC 999.
34247
34248       SCREEN           SECTION.
34249       01  scr.
34250           03  VALUE "foo" HIGHLIGHT, LOWLIGHT;
34251                           ERASE EOL, ERASE EOS;
34252                           BLANK LINE, BLANK SCREEN.
34253
34254       PROCEDURE        DIVISION.
34255           DISPLAY "blah" WITH HIGHLIGHT, LOWLIGHT;
34256                               ERASE EOL, ERASE EOS;
34257                               BLANK LINE, BLANK SCREEN;
34258                               SCROLL UP, SCROLL DOWN;
34259
34260           ACCEPT x WITH AUTO, TAB; SCROLL UP, SCROLL DOWN;
34261               UPDATE, NO UPDATE
34262
34263           SET scr ATTRIBUTE HIGHLIGHT ON, LOWLIGHT OFF
34264           .
34265_ATEOF
34266
34267
34268{ set +x
34269$as_echo "$at_srcdir/syn_screen.at:417: \$COMPILE_ONLY prog.cob"
34270at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:417"
34271( $at_check_trace; $COMPILE_ONLY prog.cob
34272) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34273at_status=$? at_failed=false
34274$at_check_filter
34275echo >>"$at_stderr"; $as_echo "prog.cob:11: error: cannot specify both LOWLIGHT and HIGHLIGHT
34276prog.cob:12: error: cannot specify both ERASE EOS and ERASE EOL
34277prog.cob:13: error: cannot specify both BLANK SCREEN and BLANK LINE
34278prog.cob:16: error: cannot specify both LOWLIGHT and HIGHLIGHT
34279prog.cob:17: error: cannot specify both ERASE EOS and ERASE EOL
34280prog.cob:18: error: cannot specify both BLANK SCREEN and BLANK LINE
34281prog.cob:21: error: cannot specify both SCROLL DOWN and SCROLL UP
34282prog.cob:21: error: cannot specify both TAB and AUTO
34283prog.cob:22: error: cannot specify both SCROLL DOWN and SCROLL UP
34284prog.cob:22: error: cannot specify both NO UPDATE and UPDATE
34285prog.cob:24: error: cannot specify both HIGHLIGHT and LOWLIGHT
34286" | \
34287  $at_diff - "$at_stderr" || at_failed=:
34288at_fn_diff_devnull "$at_stdout" || at_failed=:
34289at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:417"
34290$at_failed && at_fn_log_failure
34291$at_traceon; }
34292
34293
34294{ set +x
34295$as_echo "$at_srcdir/syn_screen.at:431: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
34296at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_screen.at:431"
34297( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
34298) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34299at_status=$? at_failed=false
34300$at_check_filter
34301echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: cannot specify both LOWLIGHT and HIGHLIGHT; LOWLIGHT is ignored
34302prog.cob:12: warning: cannot specify both ERASE EOS and ERASE EOL; ERASE EOS is ignored
34303prog.cob:13: warning: cannot specify both BLANK SCREEN and BLANK LINE; BLANK SCREEN is ignored
34304prog.cob:16: warning: cannot specify both LOWLIGHT and HIGHLIGHT; LOWLIGHT is ignored
34305prog.cob:17: warning: cannot specify both ERASE EOS and ERASE EOL; ERASE EOS is ignored
34306prog.cob:18: warning: cannot specify both BLANK SCREEN and BLANK LINE; BLANK SCREEN is ignored
34307prog.cob:21: warning: cannot specify both SCROLL DOWN and SCROLL UP; SCROLL DOWN is ignored
34308prog.cob:21: warning: cannot specify both TAB and AUTO; TAB is ignored
34309prog.cob:22: warning: cannot specify both SCROLL DOWN and SCROLL UP; SCROLL DOWN is ignored
34310prog.cob:22: warning: cannot specify both NO UPDATE and UPDATE; NO UPDATE is ignored
34311prog.cob:24: error: cannot specify both HIGHLIGHT and LOWLIGHT
34312" | \
34313  $at_diff - "$at_stderr" || at_failed=:
34314at_fn_diff_devnull "$at_stdout" || at_failed=:
34315at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:431"
34316$at_failed && at_fn_log_failure
34317$at_traceon; }
34318
34319
34320  set +x
34321  $at_times_p && times >"$at_times_file"
34322) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34323read at_status <"$at_status_file"
34324#AT_STOP_386
34325#AT_START_387
34326at_fn_group_banner 387 'syn_screen.at:448' \
34327  "Redundant screen clauses" "                       " 2
34328at_xfail=no
34329(
34330  $as_echo "387. $at_setup_line: testing $at_desc ..."
34331  $at_traceon
34332
34333
34334
34335cat >prog.cob <<'_ATEOF'
34336
34337       IDENTIFICATION   DIVISION.
34338       PROGRAM-ID.      prog.
34339
34340       DATA             DIVISION.
34341       WORKING-STORAGE  SECTION.
34342       01  x            PIC 999.
34343
34344       SCREEN           SECTION.
34345       01  scr.
34346           03  HIGHLIGHT FULL.
34347               05  HIGHLIGHT FULL.
34348                   07  FULL FULL VALUE "foo".
34349
34350       PROCEDURE        DIVISION.
34351           DISPLAY "hello" WITH BACKGROUND-COLOR 2, BACKGROUND-COLOR 2
34352           ACCEPT x WITH HIGHLIGHT, HIGHLIGHT, UPDATE, DEFAULT
34353           .
34354_ATEOF
34355
34356
34357{ set +x
34358$as_echo "$at_srcdir/syn_screen.at:471: \$COMPILE_ONLY prog.cob"
34359at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:471"
34360( $at_check_trace; $COMPILE_ONLY prog.cob
34361) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34362at_status=$? at_failed=false
34363$at_check_filter
34364echo >>"$at_stderr"; $as_echo "prog.cob:13: error: duplicate FULL clause
34365prog.cob:16: error: duplicate BACKGROUND-COLOR clause
34366prog.cob:17: error: duplicate HIGHLIGHT clause
34367prog.cob:17: error: duplicate UPDATE clause
34368" | \
34369  $at_diff - "$at_stderr" || at_failed=:
34370at_fn_diff_devnull "$at_stdout" || at_failed=:
34371at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:471"
34372$at_failed && at_fn_log_failure
34373$at_traceon; }
34374
34375
34376  set +x
34377  $at_times_p && times >"$at_times_file"
34378) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34379read at_status <"$at_status_file"
34380#AT_STOP_387
34381#AT_START_388
34382at_fn_group_banner 388 'syn_screen.at:481' \
34383  "Screen item OCCURS w-/wo relative LINE/COL" "     " 2
34384at_xfail=no
34385(
34386  $as_echo "388. $at_setup_line: testing $at_desc ..."
34387  $at_traceon
34388
34389
34390
34391cat >prog.cob <<'_ATEOF'
34392
34393       IDENTIFICATION   DIVISION.
34394       PROGRAM-ID.      prog.
34395       DATA             DIVISION.
34396       SCREEN           SECTION.
34397       01 x-scr.
34398          03 x PIC X VALUE "a" OCCURS 10.
34399_ATEOF
34400
34401
34402cat >prog2.cob <<'_ATEOF'
34403
34404       IDENTIFICATION   DIVISION.
34405       PROGRAM-ID.      prog2.
34406       DATA             DIVISION.
34407       SCREEN           SECTION.
34408       01 x-scr.
34409          03 x PIC X VALUE "a" OCCURS 10 COL  10.
34410       01 y-scr.
34411          03 y PIC X VALUE "a" OCCURS 10 LINE 10.
34412_ATEOF
34413
34414
34415cat >prog3.cob <<'_ATEOF'
34416
34417       IDENTIFICATION   DIVISION.
34418       PROGRAM-ID.      prog3.
34419       DATA             DIVISION.
34420       SCREEN           SECTION.
34421       01 x-scr.
34422          03 x PIC X VALUE "a" OCCURS 10 COL  + 10.
34423       01 y-scr.
34424          03 y PIC X VALUE "a" OCCURS 10 LINE - 10.
34425       01 a-scr.
34426          03 a PIC X VALUE "a" OCCURS 10 COL  PLUS 10.
34427       01 b-scr.
34428          03 b PIC X VALUE "a" OCCURS 10 LINE MINUS 10.
34429_ATEOF
34430
34431
34432{ set +x
34433$as_echo "$at_srcdir/syn_screen.at:519: \$COMPILE_ONLY prog.cob"
34434at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:519"
34435( $at_check_trace; $COMPILE_ONLY prog.cob
34436) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34437at_status=$? at_failed=false
34438$at_check_filter
34439echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: OCCURS screen items is not implemented
34440prog.cob:7: error: relative LINE/COLUMN clause required with OCCURS
34441" | \
34442  $at_diff - "$at_stderr" || at_failed=:
34443at_fn_diff_devnull "$at_stdout" || at_failed=:
34444at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:519"
34445$at_failed && at_fn_log_failure
34446$at_traceon; }
34447
34448
34449{ set +x
34450$as_echo "$at_srcdir/syn_screen.at:524: \$COMPILE_ONLY prog2.cob"
34451at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_screen.at:524"
34452( $at_check_trace; $COMPILE_ONLY prog2.cob
34453) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34454at_status=$? at_failed=false
34455$at_check_filter
34456echo >>"$at_stderr"; $as_echo "prog2.cob:7: warning: OCCURS screen items is not implemented
34457prog2.cob:7: error: relative LINE/COLUMN clause required with OCCURS
34458prog2.cob:9: warning: OCCURS screen items is not implemented
34459prog2.cob:9: error: relative LINE/COLUMN clause required with OCCURS
34460" | \
34461  $at_diff - "$at_stderr" || at_failed=:
34462at_fn_diff_devnull "$at_stdout" || at_failed=:
34463at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:524"
34464$at_failed && at_fn_log_failure
34465$at_traceon; }
34466
34467
34468{ set +x
34469$as_echo "$at_srcdir/syn_screen.at:531: \$COMPILE_ONLY prog3.cob"
34470at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_screen.at:531"
34471( $at_check_trace; $COMPILE_ONLY prog3.cob
34472) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34473at_status=$? at_failed=false
34474$at_check_filter
34475echo >>"$at_stderr"; $as_echo "prog3.cob:7: warning: OCCURS screen items is not implemented
34476prog3.cob:9: warning: OCCURS screen items is not implemented
34477prog3.cob:11: warning: OCCURS screen items is not implemented
34478prog3.cob:13: warning: OCCURS screen items is not implemented
34479" | \
34480  $at_diff - "$at_stderr" || at_failed=:
34481at_fn_diff_devnull "$at_stdout" || at_failed=:
34482at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:531"
34483$at_failed && at_fn_log_failure
34484$at_traceon; }
34485
34486
34487  set +x
34488  $at_times_p && times >"$at_times_file"
34489) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34490read at_status <"$at_status_file"
34491#AT_STOP_388
34492#AT_START_389
34493at_fn_group_banner 389 'syn_screen.at:541' \
34494  "VALUE clause missing" "                           " 2
34495at_xfail=no
34496(
34497  $as_echo "389. $at_setup_line: testing $at_desc ..."
34498  $at_traceon
34499
34500
34501
34502cat >prog.cob <<'_ATEOF'
34503
34504       IDENTIFICATION   DIVISION.
34505       PROGRAM-ID.      prog.
34506       DATA             DIVISION.
34507       WORKING-STORAGE  SECTION.
34508       SCREEN  SECTION.
34509       01 SG.
34510          05 LINE 21 COL 1 VALUE "TESTING".
34511          05 " IMPLICIT VALUE " HIGHLIGHT.
34512       PROCEDURE        DIVISION.
34513           DISPLAY SG END-DISPLAY.
34514           STOP RUN.
34515_ATEOF
34516
34517
34518{ set +x
34519$as_echo "$at_srcdir/syn_screen.at:558: \$COMPILE_ONLY prog.cob"
34520at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:558"
34521( $at_check_trace; $COMPILE_ONLY prog.cob
34522) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34523at_status=$? at_failed=false
34524$at_check_filter
34525echo >>"$at_stderr"; $as_echo "prog.cob:9: error: syntax error, unexpected Literal
34526" | \
34527  $at_diff - "$at_stderr" || at_failed=:
34528at_fn_diff_devnull "$at_stdout" || at_failed=:
34529at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:558"
34530$at_failed && at_fn_log_failure
34531$at_traceon; }
34532
34533
34534  set +x
34535  $at_times_p && times >"$at_times_file"
34536) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34537read at_status <"$at_status_file"
34538#AT_STOP_389
34539#AT_START_390
34540at_fn_group_banner 390 'syn_screen.at:565' \
34541  "FULL on numeric item" "                           " 2
34542at_xfail=no
34543(
34544  $as_echo "390. $at_setup_line: testing $at_desc ..."
34545  $at_traceon
34546
34547
34548
34549cat >prog.cob <<'_ATEOF'
34550
34551       IDENTIFICATION DIVISION.
34552       PROGRAM-ID. prog.
34553
34554       DATA DIVISION.
34555       WORKING-STORAGE SECTION.
34556       01  num PIC 999.
34557
34558       SCREEN SECTION.
34559       01  scr.
34560           03  full-pointless PIC 999 TO num FULL.
34561           03  full-useful PIC ZZZ TO num FULL.
34562_ATEOF
34563
34564
34565{ set +x
34566$as_echo "$at_srcdir/syn_screen.at:582: \$COMPILE_ONLY prog.cob"
34567at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:582"
34568( $at_check_trace; $COMPILE_ONLY prog.cob
34569) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34570at_status=$? at_failed=false
34571$at_check_filter
34572echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: FULL has no effect on numeric items; you may want REQUIRED or PIC Z
34573" | \
34574  $at_diff - "$at_stderr" || at_failed=:
34575at_fn_diff_devnull "$at_stdout" || at_failed=:
34576at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:582"
34577$at_failed && at_fn_log_failure
34578$at_traceon; }
34579
34580
34581  set +x
34582  $at_times_p && times >"$at_times_file"
34583) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34584read at_status <"$at_status_file"
34585#AT_STOP_390
34586#AT_START_391
34587at_fn_group_banner 391 'syn_screen.at:589' \
34588  "Compiler-specific SCREEN SECTION clause rules" "  " 2
34589at_xfail=no
34590(
34591  $as_echo "391. $at_setup_line: testing $at_desc ..."
34592  $at_traceon
34593
34594
34595
34596cat >prog.cob <<'_ATEOF'
34597
34598       IDENTIFICATION DIVISION.
34599       PROGRAM-ID. prog.
34600
34601       DATA DIVISION.
34602       WORKING-STORAGE SECTION.
34603       01  x PIC X.
34604       01  num PIC 9.
34605
34606       SCREEN SECTION.
34607       01  scr.
34608           03  no-clauses.
34609           03  no-required-clauses BACKGROUND-COLOR 1.
34610           03  only-line LINE 1.
34611           03  numeric-pic-and-value PIC 999 VALUE 100.
34612           03  only-pic PIC 9.
34613           03  from-to-using-without-pic FROM x.
34614           03  auto-without-from-to-using PIC 9 AUTO.
34615           03  full-without-to-using PIC X FROM x FULL.
34616           03  full-and-justified PIC X USING x, FULL, JUST.
34617           03  secure-with-from PIC X FROM x SECURE.
34618           03  secure-justified-no-clauses VALUE "Hello" SECURE, JUST.
34619           03  blank-when-zero-without-pic FROM num, BLANK ZERO.
34620           03  justified-without-pic FROM x, JUST.
34621           03  sign-no-clauses PIC S9, SIGN LEADING SEPARATE.
34622           03  figurative-constant-value VALUE SPACES.
34623           03  only-erase ERASE EOL.
34624           03  only-blank BLANK SCREEN.
34625           03  only-bell BELL.
34626           03  numeric-value-no-pic VALUE 1.
34627
34628       01 always-ok-scr.
34629           03  my-group LINE 1, COL 1, FULL.
34630               05  PIC X FROM "x" TO x.
34631               05  PIC Z USING num.
34632               05  VALUE "Hello, world!".
34633_ATEOF
34634
34635
34636{ set +x
34637$as_echo "$at_srcdir/syn_screen.at:630: \$COMPILE_ONLY -fscreen-section-rules=std prog.cob"
34638at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=std prog.cob" "syn_screen.at:630"
34639( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=std prog.cob
34640) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34641at_status=$? at_failed=false
34642$at_check_filter
34643echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
34644prog.cob:13: error: 'no-required-clauses' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
34645prog.cob:14: error: 'only-line' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
34646prog.cob:16: error: 'only-pic' cannot have PIC without FROM, TO, USING or numeric VALUE
34647prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34648prog.cob:18: error: 'auto-without-from-to-using' cannot have PIC without FROM, TO, USING or numeric VALUE
34649prog.cob:20: error: cannot specify both FULL and JUSTIFIED
34650prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34651prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34652prog.cob:25: error: 'sign-no-clauses' cannot have PIC without FROM, TO, USING or numeric VALUE
34653prog.cob:26: error: VALUE may not contain a figurative constant
34654prog.cob:30: warning: 'numeric-value-no-pic' has numeric VALUE without PIC; PIC will be implied
34655" | \
34656  $at_diff - "$at_stderr" || at_failed=:
34657at_fn_diff_devnull "$at_stdout" || at_failed=:
34658at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:630"
34659$at_failed && at_fn_log_failure
34660$at_traceon; }
34661
34662
34663{ set +x
34664$as_echo "$at_srcdir/syn_screen.at:645: \$COMPILE_ONLY -fscreen-section-rules=acu prog.cob"
34665at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=acu prog.cob" "syn_screen.at:645"
34666( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=acu prog.cob
34667) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34668at_status=$? at_failed=false
34669$at_check_filter
34670echo >>"$at_stderr"; $as_echo "prog.cob:15: error: cannot specify both PIC and VALUE
34671prog.cob:15: error: cannot have PIC without FROM, TO or USING
34672prog.cob:15: error: VALUE item may not be numeric
34673prog.cob:16: error: cannot have PIC without FROM, TO or USING
34674prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34675prog.cob:18: error: cannot have PIC without FROM, TO or USING
34676prog.cob:22: error: cannot have JUSTIFIED without PIC
34677prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34678prog.cob:23: error: cannot have BLANK WHEN ZERO without PIC
34679prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34680prog.cob:24: error: cannot have JUSTIFIED without PIC
34681prog.cob:25: error: cannot have PIC without FROM, TO or USING
34682prog.cob:30: error: VALUE item may not be numeric
34683" | \
34684  $at_diff - "$at_stderr" || at_failed=:
34685at_fn_diff_devnull "$at_stdout" || at_failed=:
34686at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:645"
34687$at_failed && at_fn_log_failure
34688$at_traceon; }
34689
34690
34691{ set +x
34692$as_echo "$at_srcdir/syn_screen.at:661: \$COMPILE_ONLY -fscreen-section-rules=mf prog.cob"
34693at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=mf prog.cob" "syn_screen.at:661"
34694( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=mf prog.cob
34695) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34696at_status=$? at_failed=false
34697$at_check_filter
34698echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34699prog.cob:13: error: 'no-required-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34700prog.cob:15: error: cannot specify both PIC and VALUE
34701prog.cob:15: error: cannot have PIC without FROM, TO or USING
34702prog.cob:15: error: VALUE item may not be numeric
34703prog.cob:16: error: cannot have PIC without FROM, TO or USING
34704prog.cob:17: error: 'from-to-using-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34705prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34706prog.cob:18: error: cannot have PIC without FROM, TO or USING
34707prog.cob:18: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
34708prog.cob:19: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
34709prog.cob:21: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
34710prog.cob:22: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
34711prog.cob:22: error: cannot use BLANK WHEN ZERO, JUSTIFIED, OCCURS or SIGN on item without FROM, TO or USING
34712prog.cob:23: error: 'blank-when-zero-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34713prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34714prog.cob:24: error: 'justified-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34715prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34716prog.cob:25: error: cannot have PIC without FROM, TO or USING
34717prog.cob:25: error: cannot use BLANK WHEN ZERO, JUSTIFIED, OCCURS or SIGN on item without FROM, TO or USING
34718prog.cob:26: error: VALUE may not contain a figurative constant
34719prog.cob:27: error: 'only-erase' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34720prog.cob:30: error: VALUE item may not be numeric
34721prog.cob:36: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
34722" | \
34723  $at_diff - "$at_stderr" || at_failed=:
34724at_fn_diff_devnull "$at_stdout" || at_failed=:
34725at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:661"
34726$at_failed && at_fn_log_failure
34727$at_traceon; }
34728
34729
34730{ set +x
34731$as_echo "$at_srcdir/syn_screen.at:688: \$COMPILE_ONLY -fscreen-section-rules=rm prog.cob"
34732at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=rm prog.cob" "syn_screen.at:688"
34733( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=rm prog.cob
34734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34735at_status=$? at_failed=false
34736$at_check_filter
34737echo >>"$at_stderr"; $as_echo "prog.cob:15: error: cannot specify both PIC and VALUE
34738prog.cob:15: error: cannot have PIC without FROM, TO or USING
34739prog.cob:15: error: VALUE item may not be numeric
34740prog.cob:16: error: cannot have PIC without FROM, TO or USING
34741prog.cob:17: error: cannot have FROM, TO or USING without PIC
34742prog.cob:18: error: cannot have PIC without FROM, TO or USING
34743prog.cob:22: error: cannot use AUTO, FULL, REQUIRED or SECURE on elementary item without FROM, TO or USING
34744prog.cob:22: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
34745prog.cob:23: error: cannot have FROM, TO or USING without PIC
34746prog.cob:23: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
34747prog.cob:24: error: cannot have FROM, TO or USING without PIC
34748prog.cob:24: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
34749prog.cob:25: error: cannot have PIC without FROM, TO or USING
34750prog.cob:30: error: VALUE item may not be numeric
34751prog.cob:36: error: cannot use AUTO, FULL, REQUIRED or SECURE on elementary item without FROM, TO or USING
34752" | \
34753  $at_diff - "$at_stderr" || at_failed=:
34754at_fn_diff_devnull "$at_stdout" || at_failed=:
34755at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:688"
34756$at_failed && at_fn_log_failure
34757$at_traceon; }
34758
34759
34760{ set +x
34761$as_echo "$at_srcdir/syn_screen.at:706: \$COMPILE_ONLY -fscreen-section-rules=xopen prog.cob"
34762at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=xopen prog.cob" "syn_screen.at:706"
34763( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=xopen prog.cob
34764) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34765at_status=$? at_failed=false
34766$at_check_filter
34767echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34768prog.cob:13: error: 'no-required-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34769prog.cob:15: error: cannot specify both PIC and VALUE
34770prog.cob:15: error: cannot have PIC without FROM, TO or USING
34771prog.cob:15: error: VALUE item may not be numeric
34772prog.cob:16: error: cannot have PIC without FROM, TO or USING
34773prog.cob:17: error: 'from-to-using-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34774prog.cob:17: error: cannot have FROM, TO or USING without PIC
34775prog.cob:18: error: cannot have PIC without FROM, TO or USING
34776prog.cob:18: error: cannot have AUTO without FROM, TO or USING
34777prog.cob:19: error: cannot use FULL or REQUIRED on item without TO or USING
34778prog.cob:20: error: cannot specify both FULL and JUSTIFIED
34779prog.cob:21: error: SECURE can be used with TO only
34780prog.cob:22: error: SECURE must be used with TO
34781prog.cob:23: error: 'blank-when-zero-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34782prog.cob:23: error: cannot have FROM, TO or USING without PIC
34783prog.cob:24: error: 'justified-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34784prog.cob:24: error: cannot have FROM, TO or USING without PIC
34785prog.cob:25: error: cannot have PIC without FROM, TO or USING
34786prog.cob:27: error: 'only-erase' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
34787prog.cob:30: error: VALUE item may not be numeric
34788prog.cob:36: error: cannot use FULL or REQUIRED on item without TO or USING
34789" | \
34790  $at_diff - "$at_stderr" || at_failed=:
34791at_fn_diff_devnull "$at_stdout" || at_failed=:
34792at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:706"
34793$at_failed && at_fn_log_failure
34794$at_traceon; }
34795
34796
34797{ set +x
34798$as_echo "$at_srcdir/syn_screen.at:731: \$COMPILE_ONLY -fscreen-section-rules=gc prog.cob"
34799at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=gc prog.cob" "syn_screen.at:731"
34800( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=gc prog.cob
34801) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34802at_status=$? at_failed=false
34803$at_check_filter
34804echo >>"$at_stderr"; $as_echo "prog.cob:12: warning: 'no-clauses' does nothing
34805prog.cob:13: warning: 'no-required-clauses' does nothing
34806prog.cob:15: warning: 'numeric-pic-and-value' has numeric VALUE without PIC; PIC will be implied
34807prog.cob:16: warning: 'only-pic' does nothing
34808prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34809prog.cob:18: warning: 'auto-without-from-to-using' does nothing
34810prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34811prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34812prog.cob:25: warning: 'sign-no-clauses' does nothing
34813prog.cob:30: warning: 'numeric-value-no-pic' has numeric VALUE without PIC; PIC will be implied
34814" | \
34815  $at_diff - "$at_stderr" || at_failed=:
34816at_fn_diff_devnull "$at_stdout" || at_failed=:
34817at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:731"
34818$at_failed && at_fn_log_failure
34819$at_traceon; }
34820
34821
34822  set +x
34823  $at_times_p && times >"$at_times_file"
34824) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34825read at_status <"$at_status_file"
34826#AT_STOP_391
34827#AT_START_392
34828at_fn_group_banner 392 'syn_screen.at:747' \
34829  "MS-COBOL position-spec" "                         " 2
34830at_xfail=no
34831(
34832  $as_echo "392. $at_setup_line: testing $at_desc ..."
34833  $at_traceon
34834
34835
34836
34837# FIXME: WITH clause including a WITH COLUMN (both separate (working)
34838#        and combined - error - must be added
34839
34840cat >prog.cob <<'_ATEOF'
34841
34842       IDENTIFICATION   DIVISION.
34843       PROGRAM-ID.      prog.
34844       DATA             DIVISION.
34845       WORKING-STORAGE  SECTION.
34846       01 FIELD-A  PIC X(06) VALUE "ms-cob".
34847       01 A        PIC X.
34848       PROCEDURE        DIVISION.
34849           DISPLAY ERASE
34850           MOVE 10 TO LIN. MOVE 15 TO COL.
34851           DISPLAY (LIN , COL - 3) FIELD-A.
34852           DISPLAY (LIN + 1 , COL) FIELD-A.
34853           ACCEPT  (   , 10) A.
34854           DISPLAY (08 , 12) FIELD-A.
34855           ACCEPT  (   , 08) A WITH NO-ECHO.
34856           DISPLAY FIELD-A AT LINE 06  COLUMN 12.
34857           ACCEPT  A       AT COLUMN 8.
34858           SUBTRACT 2 FROM LIN.
34859           SUBTRACT 3 FROM COL.
34860           DISPLAY FIELD-A AT LINE LIN COLUMN COL.
34861           ACCEPT  (   , 10) A.
34862           DISPLAY ( 1 , 1 ) ERASE.
34863           DISPLAY ( 2 , 1 ) "Field value : ", FIELD-A.
34864           DISPLAY ( 3 , 1 ) A " --> A value"
34865           DISPLAY ( 5 , 1 ) "Press ENTER to exit".
34866           ACCEPT (11 , 1 ) A.
34867           STOP RUN.
34868_ATEOF
34869
34870
34871{ set +x
34872$as_echo "$at_srcdir/syn_screen.at:782: \$COMPILE_ONLY prog.cob"
34873at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:782"
34874( $at_check_trace; $COMPILE_ONLY prog.cob
34875) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34876at_status=$? at_failed=false
34877$at_check_filter
34878echo >>"$at_stderr"; $as_echo "prog.cob:10: error: 'LIN' is not defined
34879prog.cob:10: error: syntax error, unexpected COL
34880prog.cob:11: error: syntax error, unexpected COL, expecting Literal or ) or Identifier
34881prog.cob:12: error: syntax error, unexpected COL, expecting Literal or ) or Identifier
34882prog.cob:19: error: syntax error, unexpected COL
34883prog.cob:20: error: syntax error, unexpected COL, expecting Literal or Identifier or ZERO
34884" | \
34885  $at_diff - "$at_stderr" || at_failed=:
34886at_fn_diff_devnull "$at_stdout" || at_failed=:
34887at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:782"
34888$at_failed && at_fn_log_failure
34889$at_traceon; }
34890
34891{ set +x
34892$as_echo "$at_srcdir/syn_screen.at:790: \$COMPILE_ONLY -fregister=LIN,COL prog.cob"
34893at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=LIN,COL prog.cob" "syn_screen.at:790"
34894( $at_check_trace; $COMPILE_ONLY -fregister=LIN,COL prog.cob
34895) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34896at_status=$? at_failed=false
34897$at_check_filter
34898at_fn_diff_devnull "$at_stderr" || at_failed=:
34899at_fn_diff_devnull "$at_stdout" || at_failed=:
34900at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:790"
34901$at_failed && at_fn_log_failure
34902$at_traceon; }
34903
34904
34905  set +x
34906  $at_times_p && times >"$at_times_file"
34907) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34908read at_status <"$at_status_file"
34909#AT_STOP_392
34910#AT_START_393
34911at_fn_group_banner 393 'syn_screen.at:795' \
34912  "Screen with invalid FROM clause" "                " 2
34913at_xfail=no
34914(
34915  $as_echo "393. $at_setup_line: testing $at_desc ..."
34916  $at_traceon
34917
34918
34919
34920cat >prog.cob <<'_ATEOF'
34921
34922       IDENTIFICATION DIVISION.
34923       PROGRAM-ID. prog.
34924
34925       DATA DIVISION.
34926       WORKING-STORAGE SECTION.
34927       01  some-const CONSTANT AS '123'.
34928
34929       SCREEN SECTION.
34930       01  bild.
34931           05 from-constant-with-size   FROM some-const.
34932           05 from-constant-without-pic FROM ZERO.
34933           05 LINE 24 COL 1 FROM message.
34934_ATEOF
34935
34936
34937{ set +x
34938$as_echo "$at_srcdir/syn_screen.at:813: \$COMPILE_ONLY prog.cob"
34939at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:813"
34940( $at_check_trace; $COMPILE_ONLY prog.cob
34941) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34942at_status=$? at_failed=false
34943$at_check_filter
34944echo >>"$at_stderr"; $as_echo "prog.cob:13: error: syntax error, unexpected MESSAGE
34945prog.cob:11: warning: 'from-constant-with-size' has FROM, TO or USING without PIC; PIC will be implied
34946prog.cob:12: warning: 'from-constant-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34947prog.cob:12: error: PICTURE clause required for 'from-constant-without-pic'
34948" | \
34949  $at_diff - "$at_stderr" || at_failed=:
34950at_fn_diff_devnull "$at_stdout" || at_failed=:
34951at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:813"
34952$at_failed && at_fn_log_failure
34953$at_traceon; }
34954
34955{ set +x
34956$as_echo "$at_srcdir/syn_screen.at:819: \$COMPILE_ONLY -fnot-reserved=MESSAGE prog.cob"
34957at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=MESSAGE prog.cob" "syn_screen.at:819"
34958( $at_check_trace; $COMPILE_ONLY -fnot-reserved=MESSAGE prog.cob
34959) >>"$at_stdout" 2>>"$at_stderr" 5>&-
34960at_status=$? at_failed=false
34961$at_check_filter
34962echo >>"$at_stderr"; $as_echo "prog.cob:13: error: 'message' is not defined, but is a reserved word in another dialect
34963prog.cob:11: warning: 'from-constant-with-size' has FROM, TO or USING without PIC; PIC will be implied
34964prog.cob:12: warning: 'from-constant-without-pic' has FROM, TO or USING without PIC; PIC will be implied
34965prog.cob:12: error: PICTURE clause required for 'from-constant-without-pic'
34966prog.cob:13: warning: 'FILLER' has FROM, TO or USING without PIC; PIC will be implied
34967" | \
34968  $at_diff - "$at_stderr" || at_failed=:
34969at_fn_diff_devnull "$at_stdout" || at_failed=:
34970at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:819"
34971$at_failed && at_fn_log_failure
34972$at_traceon; }
34973
34974
34975  set +x
34976  $at_times_p && times >"$at_times_file"
34977) 5>&1 2>&1 7>&- | eval $at_tee_pipe
34978read at_status <"$at_status_file"
34979#AT_STOP_393
34980#AT_START_394
34981at_fn_group_banner 394 'syn_set.at:24' \
34982  "SET ADDRESS OF item" "                            " 2
34983at_xfail=no
34984(
34985  $as_echo "394. $at_setup_line: testing $at_desc ..."
34986  $at_traceon
34987
34988
34989
34990cat >prog.cob <<'_ATEOF'
34991
34992       IDENTIFICATION   DIVISION.
34993       PROGRAM-ID.      prog.
34994
34995       DATA             DIVISION.
34996       WORKING-STORAGE  SECTION.
34997       01 X             PIC X.
34998
34999       LINKAGE          SECTION.
35000       01 Y             BASED.
35001          03  Z         PIC X.
35002
35003       PROCEDURE        DIVISION.
35004           SET ADDRESS OF X TO NULL.
35005           SET ADDRESS OF Z TO NULL.
35006           STOP RUN.
35007_ATEOF
35008
35009
35010{ set +x
35011$as_echo "$at_srcdir/syn_set.at:45: \$COMPILE_ONLY prog.cob"
35012at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_set.at:45"
35013( $at_check_trace; $COMPILE_ONLY prog.cob
35014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35015at_status=$? at_failed=false
35016$at_check_filter
35017echo >>"$at_stderr"; $as_echo "prog.cob:14: error: cannot change address of 'X', which is not BASED or a LINKAGE item
35018prog.cob:15: error: cannot change address of 'Z', which is not level 1 or 77
35019" | \
35020  $at_diff - "$at_stderr" || at_failed=:
35021at_fn_diff_devnull "$at_stdout" || at_failed=:
35022at_fn_check_status 1 $at_status "$at_srcdir/syn_set.at:45"
35023$at_failed && at_fn_log_failure
35024$at_traceon; }
35025
35026
35027  set +x
35028  $at_times_p && times >"$at_times_file"
35029) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35030read at_status <"$at_status_file"
35031#AT_STOP_394
35032#AT_START_395
35033at_fn_group_banner 395 'syn_set.at:53' \
35034  "SET item TO 88-level" "                           " 2
35035at_xfail=no
35036(
35037  $as_echo "395. $at_setup_line: testing $at_desc ..."
35038  $at_traceon
35039
35040
35041
35042cat >prog.cob <<'_ATEOF'
35043
35044       IDENTIFICATION   DIVISION.
35045       PROGRAM-ID.      prog.
35046
35047       DATA             DIVISION.
35048       WORKING-STORAGE  SECTION.
35049       01 X             PIC 9.
35050          88 x-wrong-init   value space.
35051       01 Y             PIC X.
35052          88 y-wrong-init   value low-value.
35053
35054       PROCEDURE        DIVISION.
35055           SET x-wrong-init  TO TRUE.
35056           SET y-wrong-init  TO TRUE.
35057           STOP RUN.
35058_ATEOF
35059
35060
35061{ set +x
35062$as_echo "$at_srcdir/syn_set.at:73: \$COMPILE_ONLY prog.cob"
35063at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_set.at:73"
35064( $at_check_trace; $COMPILE_ONLY prog.cob
35065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35066at_status=$? at_failed=false
35067$at_check_filter
35068echo >>"$at_stderr"; $as_echo "prog.cob:8: error: literal type does not match numeric data type
35069prog.cob:13: error: invalid SET statement
35070" | \
35071  $at_diff - "$at_stderr" || at_failed=:
35072at_fn_diff_devnull "$at_stdout" || at_failed=:
35073at_fn_check_status 1 $at_status "$at_srcdir/syn_set.at:73"
35074$at_failed && at_fn_log_failure
35075$at_traceon; }
35076
35077
35078  set +x
35079  $at_times_p && times >"$at_times_file"
35080) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35081read at_status <"$at_status_file"
35082#AT_STOP_395
35083#AT_START_396
35084at_fn_group_banner 396 'syn_functions.at:22' \
35085  "ANY LENGTH / NUMERIC as function RETURNING item" "" 2
35086at_xfail=no
35087(
35088  $as_echo "396. $at_setup_line: testing $at_desc ..."
35089  $at_traceon
35090
35091
35092
35093cat >prog.cob <<'_ATEOF'
35094
35095       IDENTIFICATION DIVISION.
35096       FUNCTION-ID.   func.
35097
35098       DATA           DIVISION.
35099       LINKAGE        SECTION.
35100       01  any-len    PIC X ANY LENGTH.
35101
35102       PROCEDURE      DIVISION RETURNING any-len.
35103           CONTINUE
35104           .
35105       END FUNCTION   func.
35106_ATEOF
35107
35108
35109{ set +x
35110$as_echo "$at_srcdir/syn_functions.at:39: \$COMPILE_ONLY prog.cob"
35111at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:39"
35112( $at_check_trace; $COMPILE_ONLY prog.cob
35113) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35114at_status=$? at_failed=false
35115$at_check_filter
35116echo >>"$at_stderr"; $as_echo "prog.cob:9: error: function RETURNING item may not be ANY LENGTH
35117" | \
35118  $at_diff - "$at_stderr" || at_failed=:
35119at_fn_diff_devnull "$at_stdout" || at_failed=:
35120at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:39"
35121$at_failed && at_fn_log_failure
35122$at_traceon; }
35123
35124
35125cat >prog2.cob <<'_ATEOF'
35126
35127       IDENTIFICATION DIVISION.
35128       FUNCTION-ID.   func.
35129
35130       DATA           DIVISION.
35131       LINKAGE        SECTION.
35132       01  any-len    PIC 9 ANY NUMERIC.
35133
35134       PROCEDURE      DIVISION RETURNING any-len.
35135           CONTINUE
35136           .
35137       END FUNCTION   func.
35138_ATEOF
35139
35140
35141{ set +x
35142$as_echo "$at_srcdir/syn_functions.at:57: \$COMPILE_ONLY prog2.cob"
35143at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_functions.at:57"
35144( $at_check_trace; $COMPILE_ONLY prog2.cob
35145) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35146at_status=$? at_failed=false
35147$at_check_filter
35148echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: function RETURNING item may not be ANY LENGTH
35149" | \
35150  $at_diff - "$at_stderr" || at_failed=:
35151at_fn_diff_devnull "$at_stdout" || at_failed=:
35152at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:57"
35153$at_failed && at_fn_log_failure
35154$at_traceon; }
35155
35156
35157  set +x
35158  $at_times_p && times >"$at_times_file"
35159) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35160read at_status <"$at_status_file"
35161#AT_STOP_396
35162#AT_START_397
35163at_fn_group_banner 397 'syn_functions.at:64' \
35164  "REPOSITORY INTRINSIC phrase" "                    " 2
35165at_xfail=no
35166(
35167  $as_echo "397. $at_setup_line: testing $at_desc ..."
35168  $at_traceon
35169
35170
35171
35172cat >prog.cob <<'_ATEOF'
35173
35174       IDENTIFICATION   DIVISION.
35175       PROGRAM-ID.      prog.
35176       ENVIRONMENT DIVISION.
35177       CONFIGURATION SECTION.
35178       REPOSITORY.
35179           FUNCTION pi e intrinsic
35180           .
35181       DATA             DIVISION.
35182       WORKING-STORAGE  SECTION.
35183       PROCEDURE        DIVISION.
35184           DISPLAY PI.
35185           DISPLAY E.
35186           STOP RUN.
35187_ATEOF
35188
35189
35190{ set +x
35191$as_echo "$at_srcdir/syn_functions.at:83: \$COMPILE_ONLY prog.cob"
35192at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:83"
35193( $at_check_trace; $COMPILE_ONLY prog.cob
35194) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35195at_status=$? at_failed=false
35196$at_check_filter
35197at_fn_diff_devnull "$at_stderr" || at_failed=:
35198at_fn_diff_devnull "$at_stdout" || at_failed=:
35199at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:83"
35200$at_failed && at_fn_log_failure
35201$at_traceon; }
35202
35203  set +x
35204  $at_times_p && times >"$at_times_file"
35205) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35206read at_status <"$at_status_file"
35207#AT_STOP_397
35208#AT_START_398
35209at_fn_group_banner 398 'syn_functions.at:87' \
35210  "REPOSITORY FUNCTION phrase" "                     " 2
35211at_xfail=no
35212(
35213  $as_echo "398. $at_setup_line: testing $at_desc ..."
35214  $at_traceon
35215
35216
35217
35218cat >prog.cob <<'_ATEOF'
35219
35220       IDENTIFICATION DIVISION.
35221       FUNCTION-ID. x AS "y".
35222
35223       DATA DIVISION.
35224       LINKAGE SECTION.
35225       01  ret PIC 9(4).
35226
35227       PROCEDURE DIVISION RETURNING ret.
35228           MOVE 100 TO ret
35229           .
35230       END FUNCTION x.
35231
35232       IDENTIFICATION DIVISION.
35233       FUNCTION-ID. z.
35234
35235       DATA DIVISION.
35236       LINKAGE SECTION.
35237       01  ret PIC 9(5).
35238
35239       PROCEDURE DIVISION RETURNING ret.
35240           MOVE 1 TO ret
35241           .
35242       END FUNCTION z.
35243
35244       IDENTIFICATION DIVISION.
35245       PROGRAM-ID. prog.
35246
35247       ENVIRONMENT DIVISION.
35248       CONFIGURATION SECTION.
35249       REPOSITORY.
35250           FUNCTION y AS "y"
35251           FUNCTION z
35252           .
35253       PROCEDURE DIVISION.
35254           DISPLAY FUNCTION y
35255           DISPLAY FUNCTION z
35256           .
35257       END PROGRAM prog.
35258_ATEOF
35259
35260
35261{ set +x
35262$as_echo "$at_srcdir/syn_functions.at:131: \$COMPILE_ONLY prog.cob"
35263at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:131"
35264( $at_check_trace; $COMPILE_ONLY prog.cob
35265) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35266at_status=$? at_failed=false
35267$at_check_filter
35268at_fn_diff_devnull "$at_stderr" || at_failed=:
35269at_fn_diff_devnull "$at_stdout" || at_failed=:
35270at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:131"
35271$at_failed && at_fn_log_failure
35272$at_traceon; }
35273
35274  set +x
35275  $at_times_p && times >"$at_times_file"
35276) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35277read at_status <"$at_status_file"
35278#AT_STOP_398
35279#AT_START_399
35280at_fn_group_banner 399 'syn_functions.at:135' \
35281  "Redundant REPOSITORY entries" "                   " 2
35282at_xfail=no
35283(
35284  $as_echo "399. $at_setup_line: testing $at_desc ..."
35285  $at_traceon
35286
35287
35288
35289cat >prog.cob <<'_ATEOF'
35290
35291       PROGRAM-ID. prog.
35292       END PROGRAM prog.
35293
35294       IDENTIFICATION DIVISION.
35295       FUNCTION-ID. alpha.
35296
35297       ENVIRONMENT DIVISION.
35298       CONFIGURATION SECTION.
35299       SPECIAL-NAMES.
35300           ALPHABET gamma IS ASCII
35301           .
35302       REPOSITORY.
35303           FUNCTION alpha
35304           PROGRAM prog
35305           PROGRAM prog
35306           PROGRAM prog AS "alpha"
35307           FUNCTION prog
35308           FUNCTION gamma
35309           .
35310       END FUNCTION alpha.
35311_ATEOF
35312
35313
35314{ set +x
35315$as_echo "$at_srcdir/syn_functions.at:161: \$COMPILE_ONLY prog.cob"
35316at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:161"
35317( $at_check_trace; $COMPILE_ONLY prog.cob
35318) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35319at_status=$? at_failed=false
35320$at_check_filter
35321echo >>"$at_stderr"; $as_echo "prog.cob:14: warning: prototype has same name as current function and will be ignored
35322prog.cob:16: warning: duplicate REPOSITORY entry for 'prog'
35323prog.cob:17: error: duplicate REPOSITORY entries for 'prog' do not match
35324prog.cob:18: error: duplicate REPOSITORY entries for 'prog' do not match
35325prog.cob:19: warning: no definition/prototype seen for FUNCTION 'gamma'
35326prog.cob:19: error: redefinition of 'gamma'
35327prog.cob:11: note: 'gamma' previously defined here
35328prog.cob:21: error: FUNCTION 'alpha' has no PROCEDURE DIVISION
35329" | \
35330  $at_diff - "$at_stderr" || at_failed=:
35331at_fn_diff_devnull "$at_stdout" || at_failed=:
35332at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:161"
35333$at_failed && at_fn_log_failure
35334$at_traceon; }
35335
35336  set +x
35337  $at_times_p && times >"$at_times_file"
35338) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35339read at_status <"$at_status_file"
35340#AT_STOP_399
35341#AT_START_400
35342at_fn_group_banner 400 'syn_functions.at:174' \
35343  "Missing prototype/definition" "                   " 2
35344at_xfail=no
35345(
35346  $as_echo "400. $at_setup_line: testing $at_desc ..."
35347  $at_traceon
35348
35349
35350
35351cat >prog.cob <<'_ATEOF'
35352
35353       IDENTIFICATION DIVISION.
35354       FUNCTION-ID. blah.
35355
35356       ENVIRONMENT DIVISION.
35357       CONFIGURATION SECTION.
35358       REPOSITORY.
35359           FUNCTION x
35360           PROGRAM y
35361           .
35362       DATA DIVISION.
35363       LINKAGE SECTION.
35364       01  ret PIC X.
35365
35366       PROCEDURE DIVISION RETURNING ret.
35367           MOVE FUNCTION x TO ret
35368           MOVE FUNCTION x TO ret
35369           .
35370       END FUNCTION blah.
35371_ATEOF
35372
35373
35374{ set +x
35375$as_echo "$at_srcdir/syn_functions.at:198: \$COMPILE_ONLY prog.cob"
35376at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:198"
35377( $at_check_trace; $COMPILE_ONLY prog.cob
35378) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35379at_status=$? at_failed=false
35380$at_check_filter
35381echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: no definition/prototype seen for FUNCTION 'x'
35382prog.cob:9: warning: no definition/prototype seen for PROGRAM 'y'
35383" | \
35384  $at_diff - "$at_stderr" || at_failed=:
35385at_fn_diff_devnull "$at_stdout" || at_failed=:
35386at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:198"
35387$at_failed && at_fn_log_failure
35388$at_traceon; }
35389
35390  set +x
35391  $at_times_p && times >"$at_times_file"
35392) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35393read at_status <"$at_status_file"
35394#AT_STOP_400
35395#AT_START_401
35396at_fn_group_banner 401 'syn_functions.at:205' \
35397  "Empty function" "                                 " 2
35398at_xfail=no
35399(
35400  $as_echo "401. $at_setup_line: testing $at_desc ..."
35401  $at_traceon
35402
35403
35404
35405# Note: Test case for "Function without END FUNCTION" in syn_definition
35406
35407cat >prog.cob <<'_ATEOF'
35408
35409       IDENTIFICATION DIVISION.
35410       FUNCTION-ID. func.
35411
35412       END FUNCTION func.
35413
35414       IDENTIFICATION DIVISION.
35415       PROGRAM-ID. prog.
35416
35417       DATA DIVISION.
35418       WORKING-STORAGE SECTION.
35419       01  x PIC 999 VALUE 124.
35420       END PROGRAM prog.
35421_ATEOF
35422
35423
35424{ set +x
35425$as_echo "$at_srcdir/syn_functions.at:225: \$COMPILE_ONLY prog.cob"
35426at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:225"
35427( $at_check_trace; $COMPILE_ONLY prog.cob
35428) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35429at_status=$? at_failed=false
35430$at_check_filter
35431echo >>"$at_stderr"; $as_echo "prog.cob:5: error: FUNCTION 'func' has no PROCEDURE DIVISION
35432" | \
35433  $at_diff - "$at_stderr" || at_failed=:
35434at_fn_diff_devnull "$at_stdout" || at_failed=:
35435at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:225"
35436$at_failed && at_fn_log_failure
35437$at_traceon; }
35438
35439
35440  set +x
35441  $at_times_p && times >"$at_times_file"
35442) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35443read at_status <"$at_status_file"
35444#AT_STOP_401
35445#AT_START_402
35446at_fn_group_banner 402 'syn_functions.at:232' \
35447  "Function definition inside program" "             " 2
35448at_xfail=no
35449(
35450  $as_echo "402. $at_setup_line: testing $at_desc ..."
35451  $at_traceon
35452
35453
35454
35455cat >prog.cob <<'_ATEOF'
35456
35457       IDENTIFICATION DIVISION.
35458       PROGRAM-ID. prog.
35459
35460       PROCEDURE DIVISION.
35461           CONTINUE
35462           .
35463
35464       IDENTIFICATION DIVISION.
35465       FUNCTION-ID. f.
35466       END FUNCTION f.
35467_ATEOF
35468
35469
35470{ set +x
35471$as_echo "$at_srcdir/syn_functions.at:248: \$COMPILE_ONLY prog.cob"
35472at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:248"
35473( $at_check_trace; $COMPILE_ONLY prog.cob
35474) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35475at_status=$? at_failed=false
35476$at_check_filter
35477echo >>"$at_stderr"; $as_echo "prog.cob:10: error: functions may not be defined within a program/function
35478prog.cob:11: error: FUNCTION 'f' has no PROCEDURE DIVISION
35479" | \
35480  $at_diff - "$at_stderr" || at_failed=:
35481at_fn_diff_devnull "$at_stdout" || at_failed=:
35482at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:248"
35483$at_failed && at_fn_log_failure
35484$at_traceon; }
35485
35486  set +x
35487  $at_times_p && times >"$at_times_file"
35488) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35489read at_status <"$at_status_file"
35490#AT_STOP_402
35491#AT_START_403
35492at_fn_group_banner 403 'syn_functions.at:255' \
35493  "Intrinsic functions: dialect" "                   " 2
35494at_xfail=no
35495(
35496  $as_echo "403. $at_setup_line: testing $at_desc ..."
35497  $at_traceon
35498
35499
35500
35501cat >prog.cob <<'_ATEOF'
35502
35503       IDENTIFICATION   DIVISION.
35504       PROGRAM-ID.      prog.
35505       ENVIRONMENT DIVISION.
35506       DATA             DIVISION.
35507       WORKING-STORAGE  SECTION.
35508       PROCEDURE        DIVISION.
35509           DISPLAY FUNCTION ABS (1).
35510           DISPLAY FUNCTION TRIM (" some text here").
35511           DISPLAY FUNCTION SUBSTITUTE ('some text' 'some' 'nice').
35512           STOP RUN.
35513_ATEOF
35514
35515
35516{ set +x
35517$as_echo "$at_srcdir/syn_functions.at:271: \$COMPILE_ONLY prog.cob"
35518at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:271"
35519( $at_check_trace; $COMPILE_ONLY prog.cob
35520) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35521at_status=$? at_failed=false
35522$at_check_filter
35523at_fn_diff_devnull "$at_stderr" || at_failed=:
35524at_fn_diff_devnull "$at_stdout" || at_failed=:
35525at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:271"
35526$at_failed && at_fn_log_failure
35527$at_traceon; }
35528
35529{ set +x
35530$as_echo "$at_srcdir/syn_functions.at:272: \$COMPILE_ONLY -std=acu-strict prog.cob"
35531at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_functions.at:272"
35532( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
35533) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35534at_status=$? at_failed=false
35535$at_check_filter
35536echo >>"$at_stderr"; $as_echo "prog.cob:9: error: FUNCTION 'TRIM' unknown
35537prog.cob:10: error: FUNCTION 'SUBSTITUTE' unknown
35538" | \
35539  $at_diff - "$at_stderr" || at_failed=:
35540at_fn_diff_devnull "$at_stdout" || at_failed=:
35541at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:272"
35542$at_failed && at_fn_log_failure
35543$at_traceon; }
35544
35545
35546  set +x
35547  $at_times_p && times >"$at_times_file"
35548) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35549read at_status <"$at_status_file"
35550#AT_STOP_403
35551#AT_START_404
35552at_fn_group_banner 404 'syn_functions.at:280' \
35553  "Intrinsic functions: replaced" "                  " 2
35554at_xfail=no
35555(
35556  $as_echo "404. $at_setup_line: testing $at_desc ..."
35557  $at_traceon
35558
35559
35560
35561cat >prog.cob <<'_ATEOF'
35562
35563       IDENTIFICATION DIVISION.
35564       FUNCTION-ID. SUBSTITUTE.
35565
35566       DATA DIVISION.
35567       LINKAGE SECTION.
35568       01  func-in  PIC X(15).
35569       01  func-sub PIC X.
35570       01  func-out PIC X(15).
35571
35572       PROCEDURE DIVISION USING func-in, func-sub RETURNING func-out.
35573           MOVE func-in TO func-out
35574           INSPECT func-out REPLACING ALL '%' BY func-sub
35575           .
35576       END FUNCTION SUBSTITUTE.
35577
35578       IDENTIFICATION DIVISION.
35579       PROGRAM-ID. prog.
35580
35581       ENVIRONMENT DIVISION.
35582       CONFIGURATION SECTION.
35583       REPOSITORY.
35584           FUNCTION SUBSTITUTE
35585           .
35586       PROCEDURE DIVISION.
35587           DISPLAY FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "_")
35588           DISPLAY FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "-")
35589           .
35590       END PROGRAM prog.
35591_ATEOF
35592
35593
35594{ set +x
35595$as_echo "$at_srcdir/syn_functions.at:314: \$COMPILE_ONLY -fnot-intrinsic=substitute prog.cob"
35596at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-intrinsic=substitute prog.cob" "syn_functions.at:314"
35597( $at_check_trace; $COMPILE_ONLY -fnot-intrinsic=substitute prog.cob
35598) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35599at_status=$? at_failed=false
35600$at_check_filter
35601at_fn_diff_devnull "$at_stderr" || at_failed=:
35602at_fn_diff_devnull "$at_stdout" || at_failed=:
35603at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:314"
35604$at_failed && at_fn_log_failure
35605$at_traceon; }
35606
35607{ set +x
35608$as_echo "$at_srcdir/syn_functions.at:315: \$COMPILE_ONLY prog.cob"
35609at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:315"
35610( $at_check_trace; $COMPILE_ONLY prog.cob
35611) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35612at_status=$? at_failed=false
35613$at_check_filter
35614echo >>"$at_stderr"; $as_echo "prog.cob:24: error: syntax error, unexpected ., expecting intrinsic function name or INTRINSIC
35615prog.cob:26: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
35616prog.cob:27: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
35617" | \
35618  $at_diff - "$at_stderr" || at_failed=:
35619at_fn_diff_devnull "$at_stdout" || at_failed=:
35620at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:315"
35621$at_failed && at_fn_log_failure
35622$at_traceon; }
35623
35624
35625  set +x
35626  $at_times_p && times >"$at_times_file"
35627) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35628read at_status <"$at_status_file"
35629#AT_STOP_404
35630#AT_START_405
35631at_fn_group_banner 405 'syn_functions.at:324' \
35632  "Intrinsic functions: number of arguments" "       " 2
35633at_xfail=no
35634(
35635  $as_echo "405. $at_setup_line: testing $at_desc ..."
35636  $at_traceon
35637
35638
35639
35640cat >prog.cob <<'_ATEOF'
35641
35642       IDENTIFICATION   DIVISION.
35643       PROGRAM-ID.      prog.
35644       ENVIRONMENT DIVISION.
35645       DATA             DIVISION.
35646       WORKING-STORAGE  SECTION.
35647       PROCEDURE        DIVISION.
35648           DISPLAY FUNCTION PI.
35649           DISPLAY FUNCTION PI ( ).
35650           DISPLAY FUNCTION PI (1).
35651           DISPLAY FUNCTION ABS.
35652           DISPLAY FUNCTION ABS (1).
35653           DISPLAY FUNCTION ABS (1, 2).
35654           DISPLAY FUNCTION DAY-TO-YYYYDDD.
35655           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000).
35656           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50).
35657           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50,1600).
35658           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50,1600,500).
35659           DISPLAY FUNCTION MAX ().
35660           DISPLAY FUNCTION MAX (6000).
35661           DISPLAY FUNCTION SUBSTITUTE ('A' 'B' 'C' 'D').
35662           STOP RUN.
35663_ATEOF
35664
35665
35666{ set +x
35667$as_echo "$at_srcdir/syn_functions.at:351: \$COMPILE_ONLY prog.cob"
35668at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:351"
35669( $at_check_trace; $COMPILE_ONLY prog.cob
35670) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35671at_status=$? at_failed=false
35672$at_check_filter
35673echo >>"$at_stderr"; $as_echo "prog.cob:10: error: FUNCTION 'PI' has wrong number of arguments
35674prog.cob:11: error: FUNCTION 'ABS' has wrong number of arguments
35675prog.cob:13: error: FUNCTION 'ABS' has wrong number of arguments
35676prog.cob:14: error: FUNCTION 'DAY-TO-YYYYDDD' has wrong number of arguments
35677prog.cob:18: error: FUNCTION 'DAY-TO-YYYYDDD' has wrong number of arguments
35678prog.cob:19: error: FUNCTION 'MAX' has wrong number of arguments
35679prog.cob:21: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
35680" | \
35681  $at_diff - "$at_stderr" || at_failed=:
35682at_fn_diff_devnull "$at_stdout" || at_failed=:
35683at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:351"
35684$at_failed && at_fn_log_failure
35685$at_traceon; }
35686
35687
35688  set +x
35689  $at_times_p && times >"$at_times_file"
35690) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35691read at_status <"$at_status_file"
35692#AT_STOP_405
35693#AT_START_406
35694at_fn_group_banner 406 'syn_functions.at:364' \
35695  "Intrinsic functions: reference modification" "    " 2
35696at_xfail=no
35697(
35698  $as_echo "406. $at_setup_line: testing $at_desc ..."
35699  $at_traceon
35700
35701
35702
35703# the following should be checked, currently doesn't work
35704#AT_DATA([prog.cob], [
35705#       IDENTIFICATION   DIVISION.
35706#       PROGRAM-ID.      prog.
35707#       ENVIRONMENT DIVISION.
35708#       DATA             DIVISION.
35709#       WORKING-STORAGE  SECTION.
35710#       PROCEDURE        DIVISION.
35711#           DISPLAY FUNCTION CHAR (66)(1:2).
35712#           DISPLAY FUNCTION NUMVAL-C (123)(1:2).
35713#           DISPLAY FUNCTION REVERSE ("TESTME")(20:1).
35714#           DISPLAY FUNCTION REVERSE ("TESTME")(-1:1).
35715#           DISPLAY FUNCTION REVERSE ("TESTME")(1:0).
35716#           STOP RUN.
35717#])
35718#
35719#AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
35720#[prog.cob:8: error: FUNCTION 'PI' can not have reference modification
35721#prog.cob:9: error: FUNCTION 'NUMVAL-C' can not have reference modification
35722#prog.cob:10: error: FUNCTION 'REVERSE' has invalid reference modification
35723#prog.cob:11: error: FUNCTION 'REVERSE' has invalid reference modification
35724#prog.cob:12: error: FUNCTION 'REVERSE' has invalid reference modification
35725#])
35726
35727# test what is in already...
35728cat >prog.cob <<'_ATEOF'
35729
35730       IDENTIFICATION   DIVISION.
35731       PROGRAM-ID.      prog.
35732       ENVIRONMENT DIVISION.
35733       DATA             DIVISION.
35734       WORKING-STORAGE  SECTION.
35735       PROCEDURE        DIVISION.
35736           DISPLAY FUNCTION REVERSE ("TESTME")(-1:1).
35737           DISPLAY FUNCTION REVERSE ("TESTME")(1:0).
35738           STOP RUN.
35739_ATEOF
35740
35741
35742{ set +x
35743$as_echo "$at_srcdir/syn_functions.at:404: \$COMPILE_ONLY prog.cob"
35744at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:404"
35745( $at_check_trace; $COMPILE_ONLY prog.cob
35746) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35747at_status=$? at_failed=false
35748$at_check_filter
35749echo >>"$at_stderr"; $as_echo "prog.cob:8: error: FUNCTION 'REVERSE' has invalid reference modification
35750prog.cob:9: error: FUNCTION 'REVERSE' has invalid reference modification
35751" | \
35752  $at_diff - "$at_stderr" || at_failed=:
35753at_fn_diff_devnull "$at_stdout" || at_failed=:
35754at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:404"
35755$at_failed && at_fn_log_failure
35756$at_traceon; }
35757
35758
35759  set +x
35760  $at_times_p && times >"$at_times_file"
35761) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35762read at_status <"$at_status_file"
35763#AT_STOP_406
35764#AT_START_407
35765at_fn_group_banner 407 'syn_functions.at:412' \
35766  "Intrinsic functions: argument type" "             " 2
35767at_xfail=no
35768(
35769  $as_echo "407. $at_setup_line: testing $at_desc ..."
35770  $at_traceon
35771
35772
35773
35774# TODO: Add more tests
35775
35776cat >prog.cob <<'_ATEOF'
35777
35778       IDENTIFICATION   DIVISION.
35779       PROGRAM-ID.      prog.
35780       ENVIRONMENT DIVISION.
35781       DATA             DIVISION.
35782       WORKING-STORAGE  SECTION.
35783       PROCEDURE        DIVISION.
35784           DISPLAY FUNCTION ABS ('1').
35785           STOP RUN.
35786_ATEOF
35787
35788
35789{ set +x
35790$as_echo "$at_srcdir/syn_functions.at:428: \$COMPILE_ONLY prog.cob"
35791at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:428"
35792( $at_check_trace; $COMPILE_ONLY prog.cob
35793) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35794at_status=$? at_failed=false
35795$at_check_filter
35796echo >>"$at_stderr"; $as_echo "prog.cob:8: error: FUNCTION 'ABS' has invalid argument
35797" | \
35798  $at_diff - "$at_stderr" || at_failed=:
35799at_fn_diff_devnull "$at_stdout" || at_failed=:
35800at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:428"
35801$at_failed && at_fn_log_failure
35802$at_traceon; }
35803
35804
35805  set +x
35806  $at_times_p && times >"$at_times_file"
35807) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35808read at_status <"$at_status_file"
35809#AT_STOP_407
35810#AT_START_408
35811at_fn_group_banner 408 'syn_functions.at:435' \
35812  "invalid formatted date/time args" "               " 2
35813at_xfail=no
35814(
35815  $as_echo "408. $at_setup_line: testing $at_desc ..."
35816  $at_traceon
35817
35818
35819
35820cat >prog.cob <<'_ATEOF'
35821
35822       IDENTIFICATION   DIVISION.
35823       PROGRAM-ID.      prog.
35824       DATA             DIVISION.
35825       WORKING-STORAGE  SECTION.
35826       01  format-str         PIC X(8) VALUE "YYYYMMDD".
35827       01  Date-Format        CONSTANT "YYYYMMDD".
35828       01  Time-Format        CONSTANT "hhmmss".
35829       01  Datetime-Format    CONSTANT "YYYYMMDDThhmmss".
35830       PROCEDURE        DIVISION.
35831      *>   Test wrong formats
35832           DISPLAY FUNCTION FORMATTED-DATE ( "YYYYWWWD", 1 )
35833           END-DISPLAY
35834           DISPLAY FUNCTION FORMATTED-TIME ( "HHMMSS", 1)
35835           END-DISPLAY
35836           DISPLAY FUNCTION FORMATTED-DATETIME
35837                ( "YYYYWWWDTHHMMSS", 1, 1)
35838           END-DISPLAY
35839
35840      *>   Test format in variable
35841           DISPLAY FUNCTION FORMATTED-DATE ( format-str, 1)
35842           END-DISPLAY
35843
35844      *>   Test incompatible formats
35845           DISPLAY FUNCTION FORMATTED-CURRENT-DATE (Date-Format)
35846           END-DISPLAY
35847           DISPLAY FUNCTION FORMATTED-CURRENT-DATE (Time-Format)
35848           END-DISPLAY
35849
35850           DISPLAY FUNCTION FORMATTED-DATE ( Time-Format, 1)
35851           END-DISPLAY
35852           DISPLAY FUNCTION FORMATTED-DATE ( Datetime-Format, 1)
35853           END-DISPLAY
35854
35855           DISPLAY FUNCTION FORMATTED-TIME ( Date-Format, 1)
35856           END-DISPLAY
35857           DISPLAY FUNCTION FORMATTED-TIME ( Datetime-Format, 1)
35858           END-DISPLAY
35859
35860           DISPLAY FUNCTION FORMATTED-DATETIME ( Date-Format, 1, 1)
35861           END-DISPLAY
35862           DISPLAY FUNCTION FORMATTED-DATETIME ( Time-Format, 1, 1)
35863           END-DISPLAY
35864
35865           DISPLAY FUNCTION INTEGER-OF-FORMATTED-DATE ( Time-Format, 1)
35866           END-DISPLAY
35867
35868           DISPLAY FUNCTION SECONDS-FROM-FORMATTED-TIME
35869               ( Date-Format, 1)
35870           END-DISPLAY
35871
35872      *>   Time format with more than 9 decimal places.
35873           DISPLAY FUNCTION FORMATTED-TIME ( "hhmmss.ssssssssss", 1)
35874           END-DISPLAY
35875
35876           STOP RUN.
35877_ATEOF
35878
35879
35880{ set +x
35881$as_echo "$at_srcdir/syn_functions.at:496: \$COMPILE_ONLY prog.cob"
35882at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:496"
35883( $at_check_trace; $COMPILE_ONLY prog.cob
35884) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35885at_status=$? at_failed=false
35886$at_check_filter
35887echo >>"$at_stderr"; $as_echo "prog.cob:12: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
35888prog.cob:14: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
35889prog.cob:16: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
35890prog.cob:21: warning: FUNCTION 'FORMATTED-DATE' has format in variable
35891prog.cob:25: error: FUNCTION 'FORMATTED-CURRENT-DATE' has invalid date/time format
35892prog.cob:27: error: FUNCTION 'FORMATTED-CURRENT-DATE' has invalid date/time format
35893prog.cob:30: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
35894prog.cob:32: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
35895prog.cob:35: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
35896prog.cob:37: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
35897prog.cob:40: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
35898prog.cob:42: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
35899prog.cob:45: error: FUNCTION 'INTEGER-OF-FORMATTED-DATE' has invalid date/time format
35900prog.cob:48: error: FUNCTION 'SECONDS-FROM-FORMATTED-TIME' has invalid date/time format
35901prog.cob:53: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
35902" | \
35903  $at_diff - "$at_stderr" || at_failed=:
35904at_fn_diff_devnull "$at_stdout" || at_failed=:
35905at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:496"
35906$at_failed && at_fn_log_failure
35907$at_traceon; }
35908
35909
35910  set +x
35911  $at_times_p && times >"$at_times_file"
35912) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35913read at_status <"$at_status_file"
35914#AT_STOP_408
35915#AT_START_409
35916at_fn_group_banner 409 'syn_functions.at:516' \
35917  "invalid formats w/ DECIMAL-POINT IS COMMA" "      " 2
35918at_xfail=no
35919(
35920  $as_echo "409. $at_setup_line: testing $at_desc ..."
35921  $at_traceon
35922
35923
35924
35925cat >prog.cob <<'_ATEOF'
35926
35927       IDENTIFICATION   DIVISION.
35928       PROGRAM-ID.      prog.
35929       ENVIRONMENT      DIVISION.
35930       CONFIGURATION    SECTION.
35931       SPECIAL-NAMES.
35932           DECIMAL-POINT IS COMMA.
35933       PROCEDURE        DIVISION.
35934           DISPLAY FUNCTION FORMATTED-TIME ("hhmmss,ss", 1)
35935           END-DISPLAY
35936           DISPLAY FUNCTION FORMATTED-DATETIME
35937                       ("YYYYMMDDThhmmss,ss", 1, 1)
35938           END-DISPLAY
35939
35940           DISPLAY FUNCTION FORMATTED-TIME ("hhmmss.ss", 1)
35941           END-DISPLAY
35942           DISPLAY FUNCTION FORMATTED-DATETIME
35943                       ("YYYYMMDDThhmmss.ss", 1, 1)
35944           END-DISPLAY
35945
35946           STOP RUN.
35947_ATEOF
35948
35949
35950{ set +x
35951$as_echo "$at_srcdir/syn_functions.at:542: \$COMPILE_ONLY prog.cob"
35952at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:542"
35953( $at_check_trace; $COMPILE_ONLY prog.cob
35954) >>"$at_stdout" 2>>"$at_stderr" 5>&-
35955at_status=$? at_failed=false
35956$at_check_filter
35957echo >>"$at_stderr"; $as_echo "prog.cob:15: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
35958prog.cob:17: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
35959" | \
35960  $at_diff - "$at_stderr" || at_failed=:
35961at_fn_diff_devnull "$at_stdout" || at_failed=:
35962at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:542"
35963$at_failed && at_fn_log_failure
35964$at_traceon; }
35965
35966
35967  set +x
35968  $at_times_p && times >"$at_times_file"
35969) 5>&1 2>&1 7>&- | eval $at_tee_pipe
35970read at_status <"$at_status_file"
35971#AT_STOP_409
35972#AT_START_410
35973at_fn_group_banner 410 'syn_functions.at:550' \
35974  "Specified offset and SYSTEM-OFFSET" "             " 2
35975at_xfail=no
35976(
35977  $as_echo "410. $at_setup_line: testing $at_desc ..."
35978  $at_traceon
35979
35980
35981
35982cat >prog.cob <<'_ATEOF'
35983
35984       IDENTIFICATION   DIVISION.
35985       PROGRAM-ID.      prog.
35986       PROCEDURE        DIVISION.
35987           DISPLAY FUNCTION FORMATTED-DATETIME
35988                       ("YYYYDDDThhmmssZ", 1, 1, 1, SYSTEM-OFFSET)
35989           END-DISPLAY
35990           DISPLAY FUNCTION FORMATTED-TIME
35991                       ("hhmmssZ", 1, 1, SYSTEM-OFFSET)
35992           END-DISPLAY
35993           .
35994_ATEOF
35995
35996
35997{ set +x
35998$as_echo "$at_srcdir/syn_functions.at:566: \$COMPILE prog.cob"
35999at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_functions.at:566"
36000( $at_check_trace; $COMPILE prog.cob
36001) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36002at_status=$? at_failed=false
36003$at_check_filter
36004echo >>"$at_stderr"; $as_echo "prog.cob:6: error: cannot specify offset and SYSTEM-OFFSET at the same time
36005prog.cob:9: error: cannot specify offset and SYSTEM-OFFSET at the same time
36006" | \
36007  $at_diff - "$at_stderr" || at_failed=:
36008at_fn_diff_devnull "$at_stdout" || at_failed=:
36009at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:566"
36010$at_failed && at_fn_log_failure
36011$at_traceon; }
36012
36013
36014  set +x
36015  $at_times_p && times >"$at_times_file"
36016) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36017read at_status <"$at_status_file"
36018#AT_STOP_410
36019#AT_START_411
36020at_fn_group_banner 411 'syn_functions.at:574' \
36021  "FUNCTION LENGTH / BYTE-LENGTH" "                  " 2
36022at_xfail=no
36023(
36024  $as_echo "411. $at_setup_line: testing $at_desc ..."
36025  $at_traceon
36026
36027
36028
36029cat >prog.cob <<'_ATEOF'
36030
36031       IDENTIFICATION   DIVISION.
36032       PROGRAM-ID.      prog.
36033       PROCEDURE        DIVISION.
36034           DISPLAY FUNCTION LENGTH      ("abcd" & "xyz")
36035           END-DISPLAY
36036           DISPLAY FUNCTION BYTE-LENGTH ("abcd" & "xyz")
36037           END-DISPLAY
36038           DISPLAY FUNCTION LENGTH      ("abcd" "xyz")
36039           END-DISPLAY
36040           DISPLAY FUNCTION BYTE-LENGTH (01234)
36041           END-DISPLAY
36042           DISPLAY FUNCTION LENGTH      (567)
36043           END-DISPLAY
36044           DISPLAY FUNCTION LENGTH      ("abcd" & "xyz" PHYSICAL)
36045           END-DISPLAY
36046           DISPLAY FUNCTION BYTE-LENGTH ("abcd" & "xyz" PHYSICAL)
36047           END-DISPLAY
36048           .
36049_ATEOF
36050
36051
36052{ set +x
36053$as_echo "$at_srcdir/syn_functions.at:598: \$COMPILE -Wno-pending prog.cob"
36054at_fn_check_prepare_dynamic "$COMPILE -Wno-pending prog.cob" "syn_functions.at:598"
36055( $at_check_trace; $COMPILE -Wno-pending prog.cob
36056) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36057at_status=$? at_failed=false
36058$at_check_filter
36059echo >>"$at_stderr"; $as_echo "prog.cob:9: error: syntax error, unexpected Literal, expecting PHYSICAL or )
36060prog.cob:11: error: a non-numeric literal is expected here
36061prog.cob:13: error: a non-numeric literal is expected here
36062" | \
36063  $at_diff - "$at_stderr" || at_failed=:
36064at_fn_diff_devnull "$at_stdout" || at_failed=:
36065at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:598"
36066$at_failed && at_fn_log_failure
36067$at_traceon; }
36068
36069
36070  set +x
36071  $at_times_p && times >"$at_times_file"
36072) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36073read at_status <"$at_status_file"
36074#AT_STOP_411
36075#AT_START_412
36076at_fn_group_banner 412 'listings.at:21' \
36077  "Minimal lines per listing pages" "                " 3
36078at_xfail=no
36079(
36080  $as_echo "412. $at_setup_line: testing $at_desc ..."
36081  $at_traceon
36082
36083
36084
36085# note: 2.2 did not use a minmal length,
36086# a typo like -tlines=2 loops forever
36087
36088
36089
36090cat >prog.cob <<'_ATEOF'
36091
36092      * some comments go here
36093                 *> and here
36094                        *> and finally... here
36095       IDENTIFICATION   DIVISION.
36096       PROGRAM-ID.      prog.
36097       DATA             DIVISION.
36098       WORKING-STORAGE  SECTION.
36099       01 NEWSTUFF PIC X(80).
36100       PROCEDURE        DIVISION.
36101           DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
36102           "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
36103           "AND STUFF !"
36104                   NO ADVANCING
36105           END-DISPLAY.
36106           STOP RUN.
36107_ATEOF
36108
36109
36110cat >expected.lst <<'_ATEOF'
36111GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
36112
36113LINE    PG/LN  A...B............................................................
36114
36115000001
36116000002        * some comments go here
36117000003                   *> and here
36118000004                          *> and finally... here
36119000005         IDENTIFICATION   DIVISION.
36120000006         PROGRAM-ID.      prog.
36121000007         DATA             DIVISION.
36122000008         WORKING-STORAGE  SECTION.
36123000009         01 NEWSTUFF PIC X(80).
36124000010         PROCEDURE        DIVISION.
36125000011             DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
36126000012             "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
36127000013             "AND STUFF !"
36128000014                     NO ADVANCING
36129000015             END-DISPLAY.
36130000016             STOP RUN.
36131
36132GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
36133
361340 warnings in compilation group
361350 errors in compilation group
36136_ATEOF
36137
36138
36139{ set +x
36140$as_echo "$at_srcdir/listings.at:75: \$COMPILE_ONLY -t prog.lst -tlines=2 prog.cob"
36141at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=2 prog.cob" "listings.at:75"
36142( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=2 prog.cob
36143) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36144at_status=$? at_failed=false
36145$at_check_filter
36146echo >>"$at_stderr"; $as_echo "cobc: warning: 2 lines per listing page specified, using 20
36147" | \
36148  $at_diff - "$at_stderr" || at_failed=:
36149at_fn_diff_devnull "$at_stdout" || at_failed=:
36150at_fn_check_status 0 $at_status "$at_srcdir/listings.at:75"
36151$at_failed && at_fn_log_failure  \
36152"prog.lst"
36153$at_traceon; }
36154
36155
36156{ set +x
36157$as_echo "$at_srcdir/listings.at:79: \$UNIFY_LISTING prog.lst prog.lis"
36158at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:79"
36159( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
36160) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36161at_status=$? at_failed=false
36162$at_check_filter
36163at_fn_diff_devnull "$at_stderr" || at_failed=:
36164at_fn_diff_devnull "$at_stdout" || at_failed=:
36165at_fn_check_status 0 $at_status "$at_srcdir/listings.at:79"
36166$at_failed && at_fn_log_failure  \
36167"prog.lst"
36168$at_traceon; }
36169
36170{ set +x
36171$as_echo "$at_srcdir/listings.at:80: diff expected.lst prog.lis"
36172at_fn_check_prepare_trace "listings.at:80"
36173( $at_check_trace; diff expected.lst prog.lis
36174) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36175at_status=$? at_failed=false
36176$at_check_filter
36177at_fn_diff_devnull "$at_stderr" || at_failed=:
36178at_fn_diff_devnull "$at_stdout" || at_failed=:
36179at_fn_check_status 0 $at_status "$at_srcdir/listings.at:80"
36180$at_failed && at_fn_log_failure  \
36181"prog.lst"
36182$at_traceon; }
36183
36184
36185  set +x
36186  $at_times_p && times >"$at_times_file"
36187) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36188read at_status <"$at_status_file"
36189#AT_STOP_412
36190#AT_START_413
36191at_fn_group_banner 413 'listings.at:85' \
36192  "COPY within comment" "                            " 3
36193at_xfail=no
36194(
36195  $as_echo "413. $at_setup_line: testing $at_desc ..."
36196  $at_traceon
36197
36198
36199
36200
36201
36202cat >prog.cob <<'_ATEOF'
36203
36204       IDENTIFICATION   DIVISION.
36205       PROGRAM-ID.      prog.
36206       DATA             DIVISION.
36207       WORKING-STORAGE  SECTION.
36208      *COPY "copy.inc".
36209       PROCEDURE        DIVISION.
36210           STOP RUN.
36211_ATEOF
36212
36213
36214{ set +x
36215$as_echo "$at_srcdir/listings.at:100: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
36216at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:100"
36217( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
36218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36219at_status=$? at_failed=false
36220$at_check_filter
36221at_fn_diff_devnull "$at_stderr" || at_failed=:
36222at_fn_diff_devnull "$at_stdout" || at_failed=:
36223at_fn_check_status 0 $at_status "$at_srcdir/listings.at:100"
36224$at_failed && at_fn_log_failure  \
36225"prog.lst"
36226$at_traceon; }
36227
36228
36229cat >prog1.lst <<'_ATEOF'
36230GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
36231
36232LINE    PG/LN  A...B............................................................
36233
36234000001
36235000002         IDENTIFICATION   DIVISION.
36236000003         PROGRAM-ID.      prog.
36237000004         DATA             DIVISION.
36238000005         WORKING-STORAGE  SECTION.
36239000006        *COPY "copy.inc".
36240000007         PROCEDURE        DIVISION.
36241000008             STOP RUN.
36242
36243
362440 warnings in compilation group
362450 errors in compilation group
36246_ATEOF
36247
36248
36249{ set +x
36250$as_echo "$at_srcdir/listings.at:121: \$UNIFY_LISTING prog.lst prog.lis once"
36251at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:121"
36252( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36253) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36254at_status=$? at_failed=false
36255$at_check_filter
36256at_fn_diff_devnull "$at_stderr" || at_failed=:
36257at_fn_diff_devnull "$at_stdout" || at_failed=:
36258at_fn_check_status 0 $at_status "$at_srcdir/listings.at:121"
36259$at_failed && at_fn_log_failure  \
36260"prog.lst"
36261$at_traceon; }
36262
36263{ set +x
36264$as_echo "$at_srcdir/listings.at:122: diff prog1.lst prog.lis"
36265at_fn_check_prepare_trace "listings.at:122"
36266( $at_check_trace; diff prog1.lst prog.lis
36267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36268at_status=$? at_failed=false
36269$at_check_filter
36270at_fn_diff_devnull "$at_stderr" || at_failed=:
36271at_fn_diff_devnull "$at_stdout" || at_failed=:
36272at_fn_check_status 0 $at_status "$at_srcdir/listings.at:122"
36273$at_failed && at_fn_log_failure  \
36274"prog.lst"
36275$at_traceon; }
36276
36277
36278cat >prog2.cob <<'_ATEOF'
36279
36280  IDENTIFICATION   DIVISION.
36281  PROGRAM-ID.      prog2.
36282  DATA             DIVISION.
36283  WORKING-STORAGE  SECTION.
36284  *> COPY "copy.inc".
36285  PROCEDURE        DIVISION.
36286  STOP RUN.
36287_ATEOF
36288
36289
36290{ set +x
36291$as_echo "$at_srcdir/listings.at:134: \$COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.cob"
36292at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.cob" "listings.at:134"
36293( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.cob
36294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36295at_status=$? at_failed=false
36296$at_check_filter
36297at_fn_diff_devnull "$at_stderr" || at_failed=:
36298at_fn_diff_devnull "$at_stdout" || at_failed=:
36299at_fn_check_status 0 $at_status "$at_srcdir/listings.at:134"
36300$at_failed && at_fn_log_failure  \
36301"prog.lst"
36302$at_traceon; }
36303
36304
36305cat >prog2.lst <<'_ATEOF'
36306GnuCOBOL V.R.P               prog2.cob                  DDD MMM dd HH:MM:SS YYYY
36307
36308LINE    .....................SOURCE.............................................
36309
36310000001
36311000002    IDENTIFICATION   DIVISION.
36312000003    PROGRAM-ID.      prog2.
36313000004    DATA             DIVISION.
36314000005    WORKING-STORAGE  SECTION.
36315000006    *> COPY "copy.inc".
36316000007    PROCEDURE        DIVISION.
36317000008    STOP RUN.
36318
36319
363200 warnings in compilation group
363210 errors in compilation group
36322_ATEOF
36323
36324
36325{ set +x
36326$as_echo "$at_srcdir/listings.at:155: \$UNIFY_LISTING prog.lst prog.lis once"
36327at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:155"
36328( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36329) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36330at_status=$? at_failed=false
36331$at_check_filter
36332at_fn_diff_devnull "$at_stderr" || at_failed=:
36333at_fn_diff_devnull "$at_stdout" || at_failed=:
36334at_fn_check_status 0 $at_status "$at_srcdir/listings.at:155"
36335$at_failed && at_fn_log_failure  \
36336"prog.lst"
36337$at_traceon; }
36338
36339{ set +x
36340$as_echo "$at_srcdir/listings.at:156: diff prog2.lst prog.lis"
36341at_fn_check_prepare_trace "listings.at:156"
36342( $at_check_trace; diff prog2.lst prog.lis
36343) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36344at_status=$? at_failed=false
36345$at_check_filter
36346at_fn_diff_devnull "$at_stderr" || at_failed=:
36347at_fn_diff_devnull "$at_stdout" || at_failed=:
36348at_fn_check_status 0 $at_status "$at_srcdir/listings.at:156"
36349$at_failed && at_fn_log_failure  \
36350"prog.lst"
36351$at_traceon; }
36352
36353
36354  set +x
36355  $at_times_p && times >"$at_times_file"
36356) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36357read at_status <"$at_status_file"
36358#AT_STOP_413
36359#AT_START_414
36360at_fn_group_banner 414 'listings.at:161' \
36361  "Replacement w/o strings" "                        " 3
36362at_xfail=no
36363(
36364  $as_echo "414. $at_setup_line: testing $at_desc ..."
36365  $at_traceon
36366
36367
36368
36369
36370
36371cat >prog.cob <<'_ATEOF'
36372
36373       REPLACE   =="SOME"== BY =="MANY"==
36374                 =='SOME'== BY =="VERY MUCH"==
36375                 ==STUFF==  BY ==NEWSTUFF==.
36376       IDENTIFICATION   DIVISION.
36377       PROGRAM-ID.      prog.
36378       DATA             DIVISION.
36379       WORKING-STORAGE  SECTION.
36380       01 NEWSTUFF PIC X(80).
36381       PROCEDURE        DIVISION.
36382           DISPLAY STUFF " BENEFITS SOME PARTS FROM "
36383                   "SOME" "STUFF" ", " 'SOME' "GOOD" STUFF "AND STUFF !"
36384                   NO ADVANCING
36385           END-DISPLAY.
36386           STOP RUN.
36387_ATEOF
36388
36389
36390{ set +x
36391$as_echo "$at_srcdir/listings.at:183: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
36392at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:183"
36393( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
36394) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36395at_status=$? at_failed=false
36396$at_check_filter
36397at_fn_diff_devnull "$at_stderr" || at_failed=:
36398at_fn_diff_devnull "$at_stdout" || at_failed=:
36399at_fn_check_status 0 $at_status "$at_srcdir/listings.at:183"
36400$at_failed && at_fn_log_failure  \
36401"prog.lst"
36402$at_traceon; }
36403
36404
36405cat >expected.lst <<'_ATEOF'
36406GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
36407
36408LINE    PG/LN  A...B............................................................
36409
36410000001
36411000002         REPLACE   =="SOME"== BY =="MANY"==
36412000003                   =='SOME'== BY =="VERY MUCH"==
36413000004                   ==STUFF==  BY ==NEWSTUFF==.
36414000005         IDENTIFICATION   DIVISION.
36415000006         PROGRAM-ID.      prog.
36416000007         DATA             DIVISION.
36417000008         WORKING-STORAGE  SECTION.
36418000009         01 NEWSTUFF PIC X(80).
36419000010         PROCEDURE        DIVISION.
36420000011             DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
36421000012             "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
36422000012+       -    "AND STUFF !"
36423000013                     NO ADVANCING
36424000014             END-DISPLAY.
36425000015             STOP RUN.
36426
36427SIZE  TYPE           LVL  NAME                           PICTURE
36428
36429      WORKING-STORAGE SECTION
36430
3643100080 ALPHANUMERIC   01   NEWSTUFF                       X(80)
36432
36433
364340 warnings in compilation group
364350 errors in compilation group
36436_ATEOF
36437
36438
36439{ set +x
36440$as_echo "$at_srcdir/listings.at:218: \$UNIFY_LISTING prog.lst prog.lis once"
36441at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:218"
36442( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36444at_status=$? at_failed=false
36445$at_check_filter
36446at_fn_diff_devnull "$at_stderr" || at_failed=:
36447at_fn_diff_devnull "$at_stdout" || at_failed=:
36448at_fn_check_status 0 $at_status "$at_srcdir/listings.at:218"
36449$at_failed && at_fn_log_failure  \
36450"prog.lst"
36451$at_traceon; }
36452
36453{ set +x
36454$as_echo "$at_srcdir/listings.at:219: diff expected.lst prog.lis"
36455at_fn_check_prepare_trace "listings.at:219"
36456( $at_check_trace; diff expected.lst prog.lis
36457) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36458at_status=$? at_failed=false
36459$at_check_filter
36460at_fn_diff_devnull "$at_stderr" || at_failed=:
36461at_fn_diff_devnull "$at_stdout" || at_failed=:
36462at_fn_check_status 0 $at_status "$at_srcdir/listings.at:219"
36463$at_failed && at_fn_log_failure  \
36464"prog.lst"
36465$at_traceon; }
36466
36467
36468  set +x
36469  $at_times_p && times >"$at_times_file"
36470) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36471read at_status <"$at_status_file"
36472#AT_STOP_414
36473#AT_START_415
36474at_fn_group_banner 415 'listings.at:224' \
36475  "COPY replacement order" "                         " 3
36476at_xfail=no
36477(
36478  $as_echo "415. $at_setup_line: testing $at_desc ..."
36479  $at_traceon
36480
36481
36482
36483
36484
36485cat >copy.inc <<'_ATEOF'
36486
36487       01 TEST-VAR PIC X(2) VALUE "OK".
36488_ATEOF
36489
36490
36491cat >prog.cob <<'_ATEOF'
36492
36493       IDENTIFICATION   DIVISION.
36494       PROGRAM-ID.      prog.
36495       DATA             DIVISION.
36496       WORKING-STORAGE  SECTION.
36497       COPY "copy.inc"
36498          REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
36499                    ==TEST-VAR== BY ==SECOND-MATCH==.
36500       PROCEDURE        DIVISION.
36501           DISPLAY FIRST-MATCH NO ADVANCING
36502           END-DISPLAY.
36503           STOP RUN.
36504_ATEOF
36505
36506
36507{ set +x
36508$as_echo "$at_srcdir/listings.at:247: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
36509at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:247"
36510( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
36511) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36512at_status=$? at_failed=false
36513$at_check_filter
36514at_fn_diff_devnull "$at_stderr" || at_failed=:
36515at_fn_diff_devnull "$at_stdout" || at_failed=:
36516at_fn_check_status 0 $at_status "$at_srcdir/listings.at:247"
36517$at_failed && at_fn_log_failure  \
36518"prog.lst"
36519$at_traceon; }
36520
36521
36522cat >prog3.lst <<'_ATEOF'
36523GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
36524
36525LINE    PG/LN  A...B............................................................
36526
36527000001
36528000002         IDENTIFICATION   DIVISION.
36529000003         PROGRAM-ID.      prog.
36530000004         DATA             DIVISION.
36531000005         WORKING-STORAGE  SECTION.
36532000006         COPY "copy.inc"
36533000007            REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
36534000008                      ==TEST-VAR== BY ==SECOND-MATCH==.
36535000001C
36536000002C        01 FIRST-MATCH PIC X(2) VALUE "OK".
36537000009         PROCEDURE        DIVISION.
36538000010             DISPLAY FIRST-MATCH NO ADVANCING
36539000011             END-DISPLAY.
36540000012             STOP RUN.
36541
36542SIZE  TYPE           LVL  NAME                           PICTURE
36543
36544      WORKING-STORAGE SECTION
36545
3654600002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)
36547
36548
365490 warnings in compilation group
365500 errors in compilation group
36551_ATEOF
36552
36553
36554{ set +x
36555$as_echo "$at_srcdir/listings.at:280: \$UNIFY_LISTING prog.lst prog.lis once"
36556at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:280"
36557( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36558) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36559at_status=$? at_failed=false
36560$at_check_filter
36561at_fn_diff_devnull "$at_stderr" || at_failed=:
36562at_fn_diff_devnull "$at_stdout" || at_failed=:
36563at_fn_check_status 0 $at_status "$at_srcdir/listings.at:280"
36564$at_failed && at_fn_log_failure  \
36565"prog.lst"
36566$at_traceon; }
36567
36568{ set +x
36569$as_echo "$at_srcdir/listings.at:281: diff prog3.lst prog.lis"
36570at_fn_check_prepare_trace "listings.at:281"
36571( $at_check_trace; diff prog3.lst prog.lis
36572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36573at_status=$? at_failed=false
36574$at_check_filter
36575at_fn_diff_devnull "$at_stderr" || at_failed=:
36576at_fn_diff_devnull "$at_stdout" || at_failed=:
36577at_fn_check_status 0 $at_status "$at_srcdir/listings.at:281"
36578$at_failed && at_fn_log_failure  \
36579"prog.lst"
36580$at_traceon; }
36581
36582
36583{ set +x
36584$as_echo "$at_srcdir/listings.at:283: \$COBC \$FLAGS -E -o prog.i prog.cob"
36585at_fn_check_prepare_dynamic "$COBC $FLAGS -E -o prog.i prog.cob" "listings.at:283"
36586( $at_check_trace; $COBC $FLAGS -E -o prog.i prog.cob
36587) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36588at_status=$? at_failed=false
36589$at_check_filter
36590at_fn_diff_devnull "$at_stderr" || at_failed=:
36591at_fn_diff_devnull "$at_stdout" || at_failed=:
36592at_fn_check_status 0 $at_status "$at_srcdir/listings.at:283"
36593$at_failed && at_fn_log_failure  \
36594"prog.lst"
36595$at_traceon; }
36596
36597{ set +x
36598$as_echo "$at_srcdir/listings.at:284: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i"
36599at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i" "listings.at:284"
36600( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i
36601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36602at_status=$? at_failed=false
36603$at_check_filter
36604at_fn_diff_devnull "$at_stderr" || at_failed=:
36605at_fn_diff_devnull "$at_stdout" || at_failed=:
36606at_fn_check_status 0 $at_status "$at_srcdir/listings.at:284"
36607$at_failed && at_fn_log_failure  \
36608"prog.lst"
36609$at_traceon; }
36610
36611
36612cat >prog4.lst <<'_ATEOF'
36613GnuCOBOL V.R.P               prog.i                     DDD MMM dd HH:MM:SS YYYY
36614
36615LINE    PG/LN  A...B............................................................
36616
36617000001  #line 1 "prog.cob"
36618000001
36619000002   IDENTIFICATION   DIVISION.
36620000003   PROGRAM-ID. prog.
36621000004   DATA DIVISION.
36622000005   WORKING-STORAGE SECTION.
36623000006
36624000007
36625000008
36626000001  #line 1 "copy.inc"
36627000001
36628000002   01 FIRST-MATCH PIC X(2) VALUE "OK".
36629000008  #line 8 "prog.cob"
36630000008
36631000009   PROCEDURE DIVISION.
36632000010   DISPLAY FIRST-MATCH NO ADVANCING
36633000011   END-DISPLAY.
36634000012   STOP RUN.
36635
36636SIZE  TYPE           LVL  NAME                           PICTURE
36637
36638      WORKING-STORAGE SECTION
36639
3664000002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)
36641
36642
366430 warnings in compilation group
366440 errors in compilation group
36645_ATEOF
36646
36647
36648{ set +x
36649$as_echo "$at_srcdir/listings.at:321: \$UNIFY_LISTING prog.lst prog.lis once"
36650at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:321"
36651( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36652) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36653at_status=$? at_failed=false
36654$at_check_filter
36655at_fn_diff_devnull "$at_stderr" || at_failed=:
36656at_fn_diff_devnull "$at_stdout" || at_failed=:
36657at_fn_check_status 0 $at_status "$at_srcdir/listings.at:321"
36658$at_failed && at_fn_log_failure  \
36659"prog.lst"
36660$at_traceon; }
36661
36662{ set +x
36663$as_echo "$at_srcdir/listings.at:322: diff prog4.lst prog.lis"
36664at_fn_check_prepare_trace "listings.at:322"
36665( $at_check_trace; diff prog4.lst prog.lis
36666) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36667at_status=$? at_failed=false
36668$at_check_filter
36669at_fn_diff_devnull "$at_stderr" || at_failed=:
36670at_fn_diff_devnull "$at_stdout" || at_failed=:
36671at_fn_check_status 0 $at_status "$at_srcdir/listings.at:322"
36672$at_failed && at_fn_log_failure  \
36673"prog.lst"
36674$at_traceon; }
36675
36676
36677  set +x
36678  $at_times_p && times >"$at_times_file"
36679) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36680read at_status <"$at_status_file"
36681#AT_STOP_415
36682#AT_START_416
36683at_fn_group_banner 416 'listings.at:327' \
36684  "COPY separators" "                                " 3
36685at_xfail=no
36686(
36687  $as_echo "416. $at_setup_line: testing $at_desc ..."
36688  $at_traceon
36689
36690
36691
36692
36693
36694cat >copy.inc <<'_ATEOF'
36695
36696       01 TEST-VAR PIC X(2) VALUE "OK".                                  COPY001
36697_ATEOF
36698
36699
36700cat >prog.cob <<'_ATEOF'
36701
36702       IDENTIFICATION   DIVISION.                                        PROG001
36703       PROGRAM-ID.      prog.                                            PROG002
36704       DATA             DIVISION.                                        PROG003
36705       WORKING-STORAGE  SECTION.                                         PROG004
36706       COPY "copy.inc"                                                   PROG005
36707          REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,                    PROG006
36708                 ,  ==TEST-VAR==; BY ==SECOND-MATCH==;                   PROG007
36709                 ;  ==TEST-VAR== , BY ==THIRD-MATCH==                    PROG008
36710                    ==TEST-VAR== ; BY ==FOURTH-MATCH==.                  PROG009
36711       PROCEDURE        DIVISION.                                        PROG010
36712           DISPLAY FIRST-MATCH NO ADVANCING                              PROG011
36713           END-DISPLAY.                                                  PROG012
36714           STOP RUN.                                                     PROG013
36715_ATEOF
36716
36717
36718{ set +x
36719$as_echo "$at_srcdir/listings.at:352: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
36720at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:352"
36721( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
36722) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36723at_status=$? at_failed=false
36724$at_check_filter
36725at_fn_diff_devnull "$at_stderr" || at_failed=:
36726at_fn_diff_devnull "$at_stdout" || at_failed=:
36727at_fn_check_status 0 $at_status "$at_srcdir/listings.at:352"
36728$at_failed && at_fn_log_failure  \
36729"prog.lst"
36730$at_traceon; }
36731
36732
36733cat >prog4.lst <<'_ATEOF'
36734GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
36735
36736LINE    PG/LN  A...B............................................................
36737
36738000001
36739000002         IDENTIFICATION   DIVISION.
36740000003         PROGRAM-ID.      prog.
36741000004         DATA             DIVISION.
36742000005         WORKING-STORAGE  SECTION.
36743000006         COPY "copy.inc"
36744000007            REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,
36745000008                   ,  ==TEST-VAR==; BY ==SECOND-MATCH==;
36746000009                   ;  ==TEST-VAR== , BY ==THIRD-MATCH==
36747000010                      ==TEST-VAR== ; BY ==FOURTH-MATCH==.
36748000001C
36749000002C        01 FIRST-MATCH PIC X(2) VALUE "OK".
36750000011         PROCEDURE        DIVISION.
36751000012             DISPLAY FIRST-MATCH NO ADVANCING
36752000013             END-DISPLAY.
36753000014             STOP RUN.
36754
36755SIZE  TYPE           LVL  NAME                           PICTURE
36756
36757      WORKING-STORAGE SECTION
36758
3675900002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)
36760
36761
367620 warnings in compilation group
367630 errors in compilation group
36764_ATEOF
36765
36766
36767{ set +x
36768$as_echo "$at_srcdir/listings.at:387: \$UNIFY_LISTING prog.lst prog.lis once"
36769at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:387"
36770( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36772at_status=$? at_failed=false
36773$at_check_filter
36774at_fn_diff_devnull "$at_stderr" || at_failed=:
36775at_fn_diff_devnull "$at_stdout" || at_failed=:
36776at_fn_check_status 0 $at_status "$at_srcdir/listings.at:387"
36777$at_failed && at_fn_log_failure  \
36778"prog.lst"
36779$at_traceon; }
36780
36781{ set +x
36782$as_echo "$at_srcdir/listings.at:388: diff prog4.lst prog.lis"
36783at_fn_check_prepare_trace "listings.at:388"
36784( $at_check_trace; diff prog4.lst prog.lis
36785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36786at_status=$? at_failed=false
36787$at_check_filter
36788at_fn_diff_devnull "$at_stderr" || at_failed=:
36789at_fn_diff_devnull "$at_stdout" || at_failed=:
36790at_fn_check_status 0 $at_status "$at_srcdir/listings.at:388"
36791$at_failed && at_fn_log_failure  \
36792"prog.lst"
36793$at_traceon; }
36794
36795
36796  set +x
36797  $at_times_p && times >"$at_times_file"
36798) 5>&1 2>&1 7>&- | eval $at_tee_pipe
36799read at_status <"$at_status_file"
36800#AT_STOP_416
36801#AT_START_417
36802at_fn_group_banner 417 'listings.at:393' \
36803  "COPY partial replacement" "                       " 3
36804at_xfail=no
36805(
36806  $as_echo "417. $at_setup_line: testing $at_desc ..."
36807  $at_traceon
36808
36809
36810
36811
36812
36813cat >copy.inc <<'_ATEOF'
36814
36815       01 :TEST:-VAR PIC X(2) VALUE "OK".
36816       01 (TEST)-VAR PIC X(2) VALUE "OK".
36817_ATEOF
36818
36819
36820cat >prog.cob <<'_ATEOF'
36821
36822       IDENTIFICATION   DIVISION.
36823       PROGRAM-ID.      prog.
36824       DATA             DIVISION.
36825       WORKING-STORAGE  SECTION.
36826       COPY "copy.inc"
36827          REPLACING ==:TEST:== BY ==COLON==
36828                    ==(TEST)== BY ==PAREN==.
36829       PROCEDURE        DIVISION.
36830           DISPLAY COLON-VAR NO ADVANCING
36831           END-DISPLAY.
36832           DISPLAY PAREN-VAR NO ADVANCING
36833           END-DISPLAY.
36834           STOP RUN.
36835_ATEOF
36836
36837
36838{ set +x
36839$as_echo "$at_srcdir/listings.at:419: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
36840at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:419"
36841( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
36842) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36843at_status=$? at_failed=false
36844$at_check_filter
36845at_fn_diff_devnull "$at_stderr" || at_failed=:
36846at_fn_diff_devnull "$at_stdout" || at_failed=:
36847at_fn_check_status 0 $at_status "$at_srcdir/listings.at:419"
36848$at_failed && at_fn_log_failure  \
36849"prog.lst"
36850$at_traceon; }
36851
36852
36853cat >prog5.lst <<'_ATEOF'
36854GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
36855
36856LINE    PG/LN  A...B............................................................
36857
36858000001
36859000002         IDENTIFICATION   DIVISION.
36860000003         PROGRAM-ID.      prog.
36861000004         DATA             DIVISION.
36862000005         WORKING-STORAGE  SECTION.
36863000006         COPY "copy.inc"
36864000007            REPLACING ==:TEST:== BY ==COLON==
36865000008                      ==(TEST)== BY ==PAREN==.
36866000001C
36867000002C        01 COLON PIC X(2) VALUE "OK".
36868000003C        01 PAREN PIC X(2) VALUE "OK".
36869000009         PROCEDURE        DIVISION.
36870000010             DISPLAY COLON-VAR NO ADVANCING
36871000011             END-DISPLAY.
36872000012             DISPLAY PAREN-VAR NO ADVANCING
36873000013             END-DISPLAY.
36874000014             STOP RUN.
36875
36876SIZE  TYPE           LVL  NAME                           PICTURE
36877
36878      WORKING-STORAGE SECTION
36879
3688000002 ALPHANUMERIC   01   COLON-VAR                      X(2)
36881
3688200002 ALPHANUMERIC   01   PAREN-VAR                      X(2)
36883
36884
368850 warnings in compilation group
368860 errors in compilation group
36887_ATEOF
36888
36889
36890{ set +x
36891$as_echo "$at_srcdir/listings.at:457: \$UNIFY_LISTING prog.lst prog.lis once"
36892at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:457"
36893( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
36894) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36895at_status=$? at_failed=false
36896$at_check_filter
36897at_fn_diff_devnull "$at_stderr" || at_failed=:
36898at_fn_diff_devnull "$at_stdout" || at_failed=:
36899at_fn_check_status 0 $at_status "$at_srcdir/listings.at:457"
36900$at_failed && at_fn_log_failure  \
36901"prog.lst"
36902$at_traceon; }
36903
36904{ set +x
36905$as_echo "$at_srcdir/listings.at:458: diff prog5.lst prog.lis"
36906at_fn_check_prepare_trace "listings.at:458"
36907( $at_check_trace; diff prog5.lst prog.lis
36908) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36909at_status=$? at_failed=false
36910$at_check_filter
36911at_fn_diff_devnull "$at_stderr" || at_failed=:
36912at_fn_diff_devnull "$at_stdout" || at_failed=:
36913at_fn_check_status 0 $at_status "$at_srcdir/listings.at:458"
36914$at_failed && at_fn_log_failure  \
36915"prog.lst"
36916$at_traceon; }
36917
36918
36919
36920
36921cat >copy1.inc <<'_ATEOF'
36922
36923       01 'yyy-'struktur.
36924          05  'yyy-'hello    pic x(30) value 'yyy copy1.inc'.
36925          05  'yy1-'hello    pic x(30) value 'yy1 copy1.inc'.
36926          05  'yy2-'hello    pic x(30) value 'yy2 copy1.inc'.
36927          05  filler         pic x(20).
36928_ATEOF
36929
36930
36931cat >prog1.cob <<'_ATEOF'
36932
36933       identification division.
36934       program-id. copytest.
36935
36936       data division.
36937       working-storage section.
36938       01 hello                pic x(20) value 'Copytest'.
36939
36940       01 xx                   pic x(02).
36941
36942          copy 'copy1.inc' replacing 'YYY-' by a10-
36943                                     'yy1-' by a11-
36944                                     'yy2-' by a12-.
36945
36946          copy 'copy1.inc' replacing 'YYY-' by a20-
36947                                     'yy1-' by a21-
36948                                     'yy2-' by a22-.
36949
36950          copy 'copy1.inc' replacing 'YYY-' by a30-
36951                                     'yy1-' by a31-
36952                                     'yy2-' by a32-.
36953
36954       procedure division.
36955
36956       display hello
36957
36958       display 'a10-struktur'
36959       display a10-struktur
36960
36961       display 'a20-struktur'
36962       display a20-struktur
36963
36964       display 'a30-struktur'
36965       display a30-struktur
36966
36967       goback.
36968       end program copytest.
36969_ATEOF
36970
36971
36972{ set +x
36973$as_echo "$at_srcdir/listings.at:509: \$COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.cob"
36974at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.cob" "listings.at:509"
36975( $at_check_trace; $COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.cob
36976) >>"$at_stdout" 2>>"$at_stderr" 5>&-
36977at_status=$? at_failed=false
36978$at_check_filter
36979at_fn_diff_devnull "$at_stderr" || at_failed=:
36980at_fn_diff_devnull "$at_stdout" || at_failed=:
36981at_fn_check_status 0 $at_status "$at_srcdir/listings.at:509"
36982$at_failed && at_fn_log_failure  \
36983"prog.lst" \
36984"prog1.lst"
36985$at_traceon; }
36986
36987
36988cat >prog6.lst <<'_ATEOF'
36989GnuCOBOL V.R.P               prog1.cob                  DDD MMM dd HH:MM:SS YYYY
36990
36991LINE    PG/LN  A...B............................................................
36992
36993000001
36994000002         identification division.
36995000003         program-id. copytest.
36996000004
36997000005         data division.
36998000006         working-storage section.
36999000007         01 hello                pic x(20) value 'Copytest'.
37000000008
37001000009         01 xx                   pic x(02).
37002000010
37003000011            copy 'copy1.inc' replacing 'YYY-' by a10-
37004000012                                       'yy1-' by a11-
37005000013                                       'yy2-' by a12-.
37006000001C
37007000002C        01 a10-struktur.
37008000003C        05 a10-hello pic x(30) value 'yyy copy1.inc'.
37009000004C        05 a11-hello pic x(30) value 'yy1 copy1.inc'.
37010000005C        05 a12-hello pic x(30) value 'yy2 copy1.inc'.
37011000006C           05  filler         pic x(20).
37012000014
37013000015            copy 'copy1.inc' replacing 'YYY-' by a20-
37014000016                                       'yy1-' by a21-
37015000017                                       'yy2-' by a22-.
37016000001C
37017000002C        01 a20-struktur.
37018000003C        05 a20-hello pic x(30) value 'yyy copy1.inc'.
37019000004C        05 a21-hello pic x(30) value 'yy1 copy1.inc'.
37020000005C        05 a22-hello pic x(30) value 'yy2 copy1.inc'.
37021000006C           05  filler         pic x(20).
37022000018
37023000019            copy 'copy1.inc' replacing 'YYY-' by a30-
37024000020                                       'yy1-' by a31-
37025000021                                       'yy2-' by a32-.
37026000001C
37027000002C        01 a30-struktur.
37028000003C        05 a30-hello pic x(30) value 'yyy copy1.inc'.
37029000004C        05 a31-hello pic x(30) value 'yy1 copy1.inc'.
37030000005C        05 a32-hello pic x(30) value 'yy2 copy1.inc'.
37031000006C           05  filler         pic x(20).
37032000022
37033000023         procedure division.
37034000024
37035000025         display hello
37036000026
37037000027         display 'a10-struktur'
37038000028         display a10-struktur
37039000029
37040000030         display 'a20-struktur'
37041000031         display a20-struktur
37042000032
37043000033         display 'a30-struktur'
37044000034         display a30-struktur
37045000035
37046000036         goback.
37047000037         end program copytest.
37048
37049SIZE  TYPE           LVL  NAME                           PICTURE
37050
37051      WORKING-STORAGE SECTION
37052
3705300020 ALPHANUMERIC   01   hello                          X(20)
37054
3705500002 ALPHANUMERIC   01   xx                             X(02)
37056
3705700110 GROUP          01   a10-struktur
3705800030 ALPHANUMERIC   05   a10-hello                      X(30)
3705900030 ALPHANUMERIC   05   a11-hello                      X(30)
3706000030 ALPHANUMERIC   05   a12-hello                      X(30)
3706100020 ALPHANUMERIC   05   FILLER                         X(20)
37062
3706300110 GROUP          01   a20-struktur
3706400030 ALPHANUMERIC   05   a20-hello                      X(30)
3706500030 ALPHANUMERIC   05   a21-hello                      X(30)
3706600030 ALPHANUMERIC   05   a22-hello                      X(30)
3706700020 ALPHANUMERIC   05   FILLER                         X(20)
37068
3706900110 GROUP          01   a30-struktur
3707000030 ALPHANUMERIC   05   a30-hello                      X(30)
3707100030 ALPHANUMERIC   05   a31-hello                      X(30)
3707200030 ALPHANUMERIC   05   a32-hello                      X(30)
3707300020 ALPHANUMERIC   05   FILLER                         X(20)
37074
37075
370760 warnings in compilation group
370770 errors in compilation group
37078_ATEOF
37079
37080
37081{ set +x
37082$as_echo "$at_srcdir/listings.at:603: \$UNIFY_LISTING prog1.lst prog1.lis once"
37083at_fn_check_prepare_dynamic "$UNIFY_LISTING prog1.lst prog1.lis once" "listings.at:603"
37084( $at_check_trace; $UNIFY_LISTING prog1.lst prog1.lis once
37085) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37086at_status=$? at_failed=false
37087$at_check_filter
37088at_fn_diff_devnull "$at_stderr" || at_failed=:
37089at_fn_diff_devnull "$at_stdout" || at_failed=:
37090at_fn_check_status 0 $at_status "$at_srcdir/listings.at:603"
37091$at_failed && at_fn_log_failure  \
37092"prog.lst" \
37093"prog1.lst"
37094$at_traceon; }
37095
37096{ set +x
37097$as_echo "$at_srcdir/listings.at:604: diff prog6.lst prog1.lis"
37098at_fn_check_prepare_trace "listings.at:604"
37099( $at_check_trace; diff prog6.lst prog1.lis
37100) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37101at_status=$? at_failed=false
37102$at_check_filter
37103at_fn_diff_devnull "$at_stderr" || at_failed=:
37104at_fn_diff_devnull "$at_stdout" || at_failed=:
37105at_fn_check_status 0 $at_status "$at_srcdir/listings.at:604"
37106$at_failed && at_fn_log_failure  \
37107"prog.lst" \
37108"prog1.lst"
37109$at_traceon; }
37110
37111
37112  set +x
37113  $at_times_p && times >"$at_times_file"
37114) 5>&1 2>&1 7>&- | eval $at_tee_pipe
37115read at_status <"$at_status_file"
37116#AT_STOP_417
37117#AT_START_418
37118at_fn_group_banner 418 'listings.at:609' \
37119  "COPY LEADING replacement" "                       " 3
37120at_xfail=no
37121(
37122  $as_echo "418. $at_setup_line: testing $at_desc ..."
37123  $at_traceon
37124
37125
37126
37127
37128
37129cat >copy.inc <<'_ATEOF'
37130
37131       01  TEST-VAR PIC X(2) VALUE "OK".
37132       01  NORM-VAR PIC X(2) VALUE "OK".
37133_ATEOF
37134
37135
37136cat >prog.cob <<'_ATEOF'
37137
37138       IDENTIFICATION   DIVISION.
37139       PROGRAM-ID.      prog.
37140       DATA             DIVISION.
37141       WORKING-STORAGE  SECTION.
37142       COPY "copy.inc"
37143            REPLACING LEADING ==TEST== BY ==FIRST==
37144                      LEADING ==NORM== BY ==SECOND==.
37145       PROCEDURE        DIVISION.
37146           DISPLAY FIRST-VAR NO ADVANCING
37147           END-DISPLAY.
37148           DISPLAY SECOND-VAR NO ADVANCING
37149           END-DISPLAY.
37150           STOP RUN.
37151_ATEOF
37152
37153
37154{ set +x
37155$as_echo "$at_srcdir/listings.at:635: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
37156at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:635"
37157( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
37158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37159at_status=$? at_failed=false
37160$at_check_filter
37161at_fn_diff_devnull "$at_stderr" || at_failed=:
37162at_fn_diff_devnull "$at_stdout" || at_failed=:
37163at_fn_check_status 0 $at_status "$at_srcdir/listings.at:635"
37164$at_failed && at_fn_log_failure  \
37165"prog.lst"
37166$at_traceon; }
37167
37168
37169cat >progl.lst <<'_ATEOF'
37170GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
37171
37172LINE    PG/LN  A...B............................................................
37173
37174000001
37175000002         IDENTIFICATION   DIVISION.
37176000003         PROGRAM-ID.      prog.
37177000004         DATA             DIVISION.
37178000005         WORKING-STORAGE  SECTION.
37179000006         COPY "copy.inc"
37180000007              REPLACING LEADING ==TEST== BY ==FIRST==
37181000008                        LEADING ==NORM== BY ==SECOND==.
37182000001C
37183000002C        01 FIRST-VAR PIC X(2) VALUE "OK".
37184000003C        01 SECOND-VAR PIC X(2) VALUE "OK".
37185000009         PROCEDURE        DIVISION.
37186000010             DISPLAY FIRST-VAR NO ADVANCING
37187000011             END-DISPLAY.
37188000012             DISPLAY SECOND-VAR NO ADVANCING
37189000013             END-DISPLAY.
37190000014             STOP RUN.
37191
37192SIZE  TYPE           LVL  NAME                           PICTURE
37193
37194      WORKING-STORAGE SECTION
37195
3719600002 ALPHANUMERIC   01   FIRST-VAR                      X(2)
37197
3719800002 ALPHANUMERIC   01   SECOND-VAR                     X(2)
37199
37200
372010 warnings in compilation group
372020 errors in compilation group
37203_ATEOF
37204
37205
37206{ set +x
37207$as_echo "$at_srcdir/listings.at:673: \$UNIFY_LISTING prog.lst prog.lis once"
37208at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:673"
37209( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
37210) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37211at_status=$? at_failed=false
37212$at_check_filter
37213at_fn_diff_devnull "$at_stderr" || at_failed=:
37214at_fn_diff_devnull "$at_stdout" || at_failed=:
37215at_fn_check_status 0 $at_status "$at_srcdir/listings.at:673"
37216$at_failed && at_fn_log_failure  \
37217"prog.lst"
37218$at_traceon; }
37219
37220{ set +x
37221$as_echo "$at_srcdir/listings.at:674: diff progl.lst prog.lis"
37222at_fn_check_prepare_trace "listings.at:674"
37223( $at_check_trace; diff progl.lst prog.lis
37224) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37225at_status=$? at_failed=false
37226$at_check_filter
37227at_fn_diff_devnull "$at_stderr" || at_failed=:
37228at_fn_diff_devnull "$at_stdout" || at_failed=:
37229at_fn_check_status 0 $at_status "$at_srcdir/listings.at:674"
37230$at_failed && at_fn_log_failure  \
37231"prog.lst"
37232$at_traceon; }
37233
37234
37235  set +x
37236  $at_times_p && times >"$at_times_file"
37237) 5>&1 2>&1 7>&- | eval $at_tee_pipe
37238read at_status <"$at_status_file"
37239#AT_STOP_418
37240#AT_START_419
37241at_fn_group_banner 419 'listings.at:679' \
37242  "COPY TRAILING replacement" "                      " 3
37243at_xfail=no
37244(
37245  $as_echo "419. $at_setup_line: testing $at_desc ..."
37246  $at_traceon
37247
37248
37249
37250
37251
37252cat >copy.inc <<'_ATEOF'
37253
37254       01  TEST-FIRST  PIC X(2) VALUE "OK".
37255       01  TEST-SECOND PIC X(2) VALUE "OK".
37256_ATEOF
37257
37258
37259cat >prog.cob <<'_ATEOF'
37260
37261       IDENTIFICATION   DIVISION.
37262       PROGRAM-ID.      prog.
37263       DATA             DIVISION.
37264       WORKING-STORAGE  SECTION.
37265       COPY "copy.inc"
37266            REPLACING TRAILING ==FIRST== BY ==VAR1==
37267                      TRAILING ==SECOND== BY ==VAR2==.
37268       PROCEDURE        DIVISION.
37269           DISPLAY TEST-VAR1 NO ADVANCING
37270           END-DISPLAY.
37271           DISPLAY TEST-VAR2 NO ADVANCING
37272           END-DISPLAY.
37273           STOP RUN.
37274_ATEOF
37275
37276
37277
37278{ set +x
37279$as_echo "$at_srcdir/listings.at:706: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
37280at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:706"
37281( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
37282) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37283at_status=$? at_failed=false
37284$at_check_filter
37285at_fn_diff_devnull "$at_stderr" || at_failed=:
37286at_fn_diff_devnull "$at_stdout" || at_failed=:
37287at_fn_check_status 0 $at_status "$at_srcdir/listings.at:706"
37288$at_failed && at_fn_log_failure  \
37289"prog.lst"
37290$at_traceon; }
37291
37292
37293cat >progr.lst <<'_ATEOF'
37294GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
37295
37296LINE    PG/LN  A...B............................................................
37297
37298000001
37299000002         IDENTIFICATION   DIVISION.
37300000003         PROGRAM-ID.      prog.
37301000004         DATA             DIVISION.
37302000005         WORKING-STORAGE  SECTION.
37303000006         COPY "copy.inc"
37304000007              REPLACING TRAILING ==FIRST== BY ==VAR1==
37305000008                        TRAILING ==SECOND== BY ==VAR2==.
37306000001C
37307000002C        01 TEST-VAR1 PIC X(2) VALUE "OK".
37308000003C        01 TEST-VAR2 PIC X(2) VALUE "OK".
37309000009         PROCEDURE        DIVISION.
37310000010             DISPLAY TEST-VAR1 NO ADVANCING
37311000011             END-DISPLAY.
37312000012             DISPLAY TEST-VAR2 NO ADVANCING
37313000013             END-DISPLAY.
37314000014             STOP RUN.
37315
37316SIZE  TYPE           LVL  NAME                           PICTURE
37317
37318      WORKING-STORAGE SECTION
37319
3732000002 ALPHANUMERIC   01   TEST-VAR1                      X(2)
37321
3732200002 ALPHANUMERIC   01   TEST-VAR2                      X(2)
37323
37324
373250 warnings in compilation group
373260 errors in compilation group
37327_ATEOF
37328
37329
37330{ set +x
37331$as_echo "$at_srcdir/listings.at:744: \$UNIFY_LISTING prog.lst prog.lis once"
37332at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:744"
37333( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
37334) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37335at_status=$? at_failed=false
37336$at_check_filter
37337at_fn_diff_devnull "$at_stderr" || at_failed=:
37338at_fn_diff_devnull "$at_stdout" || at_failed=:
37339at_fn_check_status 0 $at_status "$at_srcdir/listings.at:744"
37340$at_failed && at_fn_log_failure  \
37341"prog.lst"
37342$at_traceon; }
37343
37344{ set +x
37345$as_echo "$at_srcdir/listings.at:745: diff progr.lst prog.lis"
37346at_fn_check_prepare_trace "listings.at:745"
37347( $at_check_trace; diff progr.lst prog.lis
37348) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37349at_status=$? at_failed=false
37350$at_check_filter
37351at_fn_diff_devnull "$at_stderr" || at_failed=:
37352at_fn_diff_devnull "$at_stdout" || at_failed=:
37353at_fn_check_status 0 $at_status "$at_srcdir/listings.at:745"
37354$at_failed && at_fn_log_failure  \
37355"prog.lst"
37356$at_traceon; }
37357
37358
37359  set +x
37360  $at_times_p && times >"$at_times_file"
37361) 5>&1 2>&1 7>&- | eval $at_tee_pipe
37362read at_status <"$at_status_file"
37363#AT_STOP_419
37364#AT_START_420
37365at_fn_group_banner 420 'listings.at:750' \
37366  "COPY recursive replacement" "                     " 3
37367at_xfail=no
37368(
37369  $as_echo "420. $at_setup_line: testing $at_desc ..."
37370  $at_traceon
37371
37372
37373
37374
37375
37376cat >copy-2.inc <<'_ATEOF'
37377
37378       01 TEST-VAR PIC X(2) VALUE "OK".
37379_ATEOF
37380
37381
37382cat >copy-1.inc <<'_ATEOF'
37383
37384       COPY "copy-2.inc".
37385_ATEOF
37386
37387
37388cat >prog.cob <<'_ATEOF'
37389
37390       IDENTIFICATION   DIVISION.
37391       PROGRAM-ID.      prog.
37392       DATA             DIVISION.
37393       WORKING-STORAGE  SECTION.
37394       COPY "copy-1.inc"
37395           REPLACING ==TEST-VAR== BY ==COPY-VAR==.
37396       PROCEDURE        DIVISION.
37397           DISPLAY COPY-VAR NO ADVANCING
37398           END-DISPLAY.
37399           STOP RUN.
37400_ATEOF
37401
37402
37403{ set +x
37404$as_echo "$at_srcdir/listings.at:776: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
37405at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:776"
37406( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
37407) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37408at_status=$? at_failed=false
37409$at_check_filter
37410at_fn_diff_devnull "$at_stderr" || at_failed=:
37411at_fn_diff_devnull "$at_stdout" || at_failed=:
37412at_fn_check_status 0 $at_status "$at_srcdir/listings.at:776"
37413$at_failed && at_fn_log_failure  \
37414"prog.lst"
37415$at_traceon; }
37416
37417
37418cat >prog6.lst <<'_ATEOF'
37419GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
37420
37421LINE    PG/LN  A...B............................................................
37422
37423000001
37424000002         IDENTIFICATION   DIVISION.
37425000003         PROGRAM-ID.      prog.
37426000004         DATA             DIVISION.
37427000005         WORKING-STORAGE  SECTION.
37428000006         COPY "copy-1.inc"
37429000007             REPLACING ==TEST-VAR== BY ==COPY-VAR==.
37430000001C
37431000002C        COPY "copy-2.inc".
37432000001C
37433000002C        01 COPY-VAR PIC X(2) VALUE "OK".
37434000008         PROCEDURE        DIVISION.
37435000009             DISPLAY COPY-VAR NO ADVANCING
37436000010             END-DISPLAY.
37437000011             STOP RUN.
37438
37439SIZE  TYPE           LVL  NAME                           PICTURE
37440
37441      WORKING-STORAGE SECTION
37442
3744300002 ALPHANUMERIC   01   COPY-VAR                       X(2)
37444
37445
374460 warnings in compilation group
374470 errors in compilation group
37448_ATEOF
37449
37450
37451{ set +x
37452$as_echo "$at_srcdir/listings.at:810: \$UNIFY_LISTING prog.lst prog.lis once"
37453at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:810"
37454( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
37455) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37456at_status=$? at_failed=false
37457$at_check_filter
37458at_fn_diff_devnull "$at_stderr" || at_failed=:
37459at_fn_diff_devnull "$at_stdout" || at_failed=:
37460at_fn_check_status 0 $at_status "$at_srcdir/listings.at:810"
37461$at_failed && at_fn_log_failure  \
37462"prog.lst"
37463$at_traceon; }
37464
37465{ set +x
37466$as_echo "$at_srcdir/listings.at:811: diff prog6.lst prog.lis"
37467at_fn_check_prepare_trace "listings.at:811"
37468( $at_check_trace; diff prog6.lst prog.lis
37469) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37470at_status=$? at_failed=false
37471$at_check_filter
37472at_fn_diff_devnull "$at_stderr" || at_failed=:
37473at_fn_diff_devnull "$at_stdout" || at_failed=:
37474at_fn_check_status 0 $at_status "$at_srcdir/listings.at:811"
37475$at_failed && at_fn_log_failure  \
37476"prog.lst"
37477$at_traceon; }
37478
37479
37480  set +x
37481  $at_times_p && times >"$at_times_file"
37482) 5>&1 2>&1 7>&- | eval $at_tee_pipe
37483read at_status <"$at_status_file"
37484#AT_STOP_420
37485#AT_START_421
37486at_fn_group_banner 421 'listings.at:816' \
37487  "COPY multiple files" "                            " 3
37488at_xfail=no
37489(
37490  $as_echo "421. $at_setup_line: testing $at_desc ..."
37491  $at_traceon
37492
37493
37494
37495
37496
37497cat >copy-fd-1.inc <<'_ATEOF'
37498
37499       FD  TEXTFILE-1        RECORD VARYING 1 TO 999 CHARACTERS
37500                                 DEPENDING ON TEXTFILE-1-SIZE.
37501       01  TEXTRECD-1.
37502           03 FILLER         PIC X(999).
37503      *
37504_ATEOF
37505
37506
37507cat >copy-fd-2.inc <<'_ATEOF'
37508
37509       FD  TEXTFILE-2        RECORD VARYING 1 TO 999 CHARACTERS
37510                                 DEPENDING ON TEXTFILE-2-SIZE.
37511       01  TEXTRECD-2.
37512           03 FILLER         PIC X(999).
37513      *
37514_ATEOF
37515
37516
37517cat >copy-ws-1.inc <<'_ATEOF'
37518
37519       01  TEXTFILE-1-NAME          PIC X(080)     VALUE "TEXTFILE.1".
37520       01  TEXTFILE-1-OCFG          PIC X(001)     VALUE "C".
37521           88 TEXTFILE-1-NOTOPEN    VALUE "C".
37522           88 TEXTFILE-1-IS-OPEN    VALUE "I", "O", "U".
37523       01  TEXTFILE-1-SIZE          PIC 9(004) EXTERNAL.
37524      *
37525_ATEOF
37526
37527
37528cat >copy-ws-2.inc <<'_ATEOF'
37529
37530       01  TEXTFILE-2-NAME          PIC X(080)     VALUE "TEXTFILE.2".
37531       01  TEXTFILE-2-OCFG          PIC X(001)     VALUE "C".
37532           88 TEXTFILE-2-NOTOPEN    VALUE "C".
37533           88 TEXTFILE-2-IS-OPEN    VALUE "I", "O", "U".
37534       01  TEXTFILE-2-SIZE          PIC 9(004).
37535      *
37536_ATEOF
37537
37538
37539cat >copy-sl-1.inc <<'_ATEOF'
37540
37541           SELECT TEXTFILE-1   ASSIGN TO DISK    TEXTFILE-1-NAME
37542                               ORGANIZATION      LINE SEQUENTIAL
37543                               ACCESS MODE       SEQUENTIAL.
37544      *
37545_ATEOF
37546
37547
37548cat >copy-sl-2.inc <<'_ATEOF'
37549
37550           SELECT TEXTFILE-2   ASSIGN TO DISK    TEXTFILE-2-NAME
37551                               ORGANIZATION      LINE SEQUENTIAL
37552                               ACCESS MODE       SEQUENTIAL.
37553      *
37554_ATEOF
37555
37556
37557cat >tstcpybk.cob <<'_ATEOF'
37558
37559       IDENTIFICATION DIVISION.
37560       PROGRAM-ID. tstcpybk.
37561      *
37562       ENVIRONMENT DIVISION.
37563       CONFIGURATION SECTION.
37564      *
37565       SOURCE-COMPUTER. LINUX.
37566       OBJECT-COMPUTER. LINUX.
37567
37568       INPUT-OUTPUT SECTION.
37569       FILE-CONTROL.
37570           COPY "copy-sl-1.inc".
37571           COPY "copy-sl-2.inc".
37572
37573       DATA DIVISION.
37574       FILE SECTION.
37575           COPY "copy-fd-1.inc".
37576           COPY "copy-fd-2.inc".
37577
37578       WORKING-STORAGE SECTION.
37579       01  HEADER BASED.
37580           03 FILLER         PIC X(016)     VALUE 'FCSI CodeWerks:'.
37581           03 FILLER         PIC X(064)     VALUE
37582              'Name:tstcpybk.cbl  Version:1.7.1  Date:2017-03-15'.
37583           03 FILLER         PIC X(002)     VALUE LOW-VALUES.
37584      *
37585       77  GLOB              PIC 99         GLOBAL.
37586      *
37587           COPY "copy-ws-1.inc".
37588           COPY "copy-ws-2.inc".
37589
37590       PROCEDURE DIVISION.
37591       MAIN-PROCEDURE SECTION.
37592       MAIN-PROCEDURE-0000.
37593           CONTINUE.
37594       MAIN-PROCEDURE-EXIT.
37595           STOP RUN.
37596_ATEOF
37597
37598
37599{ set +x
37600$as_echo "$at_srcdir/listings.at:909: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.cob"
37601at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.cob" "listings.at:909"
37602( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.cob
37603) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37604at_status=$? at_failed=false
37605$at_check_filter
37606at_fn_diff_devnull "$at_stderr" || at_failed=:
37607at_fn_diff_devnull "$at_stdout" || at_failed=:
37608at_fn_check_status 0 $at_status "$at_srcdir/listings.at:909"
37609$at_failed && at_fn_log_failure  \
37610"prog.lst"
37611$at_traceon; }
37612
37613
37614cat >prog3.lst <<'_ATEOF'
37615GnuCOBOL V.R.P               tstcpybk.cob               DDD MMM dd HH:MM:SS YYYY
37616
37617LINE    PG/LN  A...B............................................................
37618
37619000001
37620000002         IDENTIFICATION DIVISION.
37621000003         PROGRAM-ID. tstcpybk.
37622000004        *
37623000005         ENVIRONMENT DIVISION.
37624000006         CONFIGURATION SECTION.
37625000007        *
37626000008         SOURCE-COMPUTER. LINUX.
37627000009         OBJECT-COMPUTER. LINUX.
37628000010
37629000011         INPUT-OUTPUT SECTION.
37630000012         FILE-CONTROL.
37631000013             COPY "copy-sl-1.inc".
37632000001C
37633000002C            SELECT TEXTFILE-1   ASSIGN TO DISK    TEXTFILE-1-NAME
37634000003C                                ORGANIZATION      LINE SEQUENTIAL
37635000004C                                ACCESS MODE       SEQUENTIAL.
37636000005C       *
37637000014             COPY "copy-sl-2.inc".
37638000001C
37639000002C            SELECT TEXTFILE-2   ASSIGN TO DISK    TEXTFILE-2-NAME
37640000003C                                ORGANIZATION      LINE SEQUENTIAL
37641000004C                                ACCESS MODE       SEQUENTIAL.
37642000005C       *
37643000015
37644000016         DATA DIVISION.
37645000017         FILE SECTION.
37646000018             COPY "copy-fd-1.inc".
37647000001C
37648000002C        FD  TEXTFILE-1        RECORD VARYING 1 TO 999 CHARACTERS
37649000003C                                  DEPENDING ON TEXTFILE-1-SIZE.
37650000004C        01  TEXTRECD-1.
37651000005C            03 FILLER         PIC X(999).
37652000006C       *
37653000019             COPY "copy-fd-2.inc".
37654000001C
37655000002C        FD  TEXTFILE-2        RECORD VARYING 1 TO 999 CHARACTERS
37656000003C                                  DEPENDING ON TEXTFILE-2-SIZE.
37657000004C        01  TEXTRECD-2.
37658000005C            03 FILLER         PIC X(999).
37659000006C       *
37660000020
37661000021         WORKING-STORAGE SECTION.
37662000022         01  HEADER BASED.
37663000023             03 FILLER         PIC X(016)     VALUE 'FCSI CodeWerks:'.
37664000024             03 FILLER         PIC X(064)     VALUE
37665000025                'Name:tstcpybk.cbl  Version:1.7.1  Date:2017-03-15'.
37666000026             03 FILLER         PIC X(002)     VALUE LOW-VALUES.
37667000027        *
37668000028         77  GLOB              PIC 99         GLOBAL.
37669000029        *
37670000030             COPY "copy-ws-1.inc".
37671000001C
37672000002C        01  TEXTFILE-1-NAME          PIC X(080)     VALUE "TEXTFILE.1".
37673000003C        01  TEXTFILE-1-OCFG          PIC X(001)     VALUE "C".
37674000004C            88 TEXTFILE-1-NOTOPEN    VALUE "C".
37675000005C            88 TEXTFILE-1-IS-OPEN    VALUE "I", "O", "U".
37676000006C        01  TEXTFILE-1-SIZE          PIC 9(004) EXTERNAL.
37677000007C       *
37678000031             COPY "copy-ws-2.inc".
37679000001C
37680000002C        01  TEXTFILE-2-NAME          PIC X(080)     VALUE "TEXTFILE.2".
37681000003C        01  TEXTFILE-2-OCFG          PIC X(001)     VALUE "C".
37682000004C            88 TEXTFILE-2-NOTOPEN    VALUE "C".
37683000005C            88 TEXTFILE-2-IS-OPEN    VALUE "I", "O", "U".
37684000006C        01  TEXTFILE-2-SIZE          PIC 9(004).
37685000007C       *
37686000032
37687000033         PROCEDURE DIVISION.
37688000034         MAIN-PROCEDURE SECTION.
37689000035         MAIN-PROCEDURE-0000.
37690000036             CONTINUE.
37691000037         MAIN-PROCEDURE-EXIT.
37692000038             STOP RUN.
37693
37694SIZE  TYPE           LVL  NAME                           PICTURE
37695
3769600999 FILE                TEXTFILE-1
3769700999 GROUP          01   TEXTRECD-1
3769800999 ALPHANUMERIC   03   FILLER                         X(999)
37699
3770000999 FILE                TEXTFILE-2
3770100999 GROUP          01   TEXTRECD-2
3770200999 ALPHANUMERIC   03   FILLER                         X(999)
37703
37704      WORKING-STORAGE SECTION
37705
3770600082 GROUP          01   HEADER BASED
3770700016 ALPHANUMERIC   03   FILLER                         X(016)
3770800064 ALPHANUMERIC   03   FILLER                         X(064)
3770900002 ALPHANUMERIC   03   FILLER                         X(002)
37710
3771100002 NUMERIC        77   GLOB                           99 GLOBAL
37712
3771300080 ALPHANUMERIC   01   TEXTFILE-1-NAME                X(080)
37714
3771500001 ALPHANUMERIC   01   TEXTFILE-1-OCFG                X(001)
37716      CONDITIONAL    88   TEXTFILE-1-NOTOPEN
37717      CONDITIONAL    88   TEXTFILE-1-IS-OPEN
37718
3771900004 NUMERIC        01   TEXTFILE-1-SIZE                9(004) EXTERNAL
37720
3772100080 ALPHANUMERIC   01   TEXTFILE-2-NAME                X(080)
37722
3772300001 ALPHANUMERIC   01   TEXTFILE-2-OCFG                X(001)
37724      CONDITIONAL    88   TEXTFILE-2-NOTOPEN
37725      CONDITIONAL    88   TEXTFILE-2-IS-OPEN
37726
3772700004 NUMERIC        01   TEXTFILE-2-SIZE                9(004)
37728
37729
377300 warnings in compilation group
377310 errors in compilation group
37732_ATEOF
37733
37734
37735{ set +x
37736$as_echo "$at_srcdir/listings.at:1031: \$UNIFY_LISTING prog.lst prog.lis once"
37737at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1031"
37738( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
37739) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37740at_status=$? at_failed=false
37741$at_check_filter
37742at_fn_diff_devnull "$at_stderr" || at_failed=:
37743at_fn_diff_devnull "$at_stdout" || at_failed=:
37744at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1031"
37745$at_failed && at_fn_log_failure  \
37746"prog.lst"
37747$at_traceon; }
37748
37749{ set +x
37750$as_echo "$at_srcdir/listings.at:1032: diff prog3.lst prog.lis"
37751at_fn_check_prepare_trace "listings.at:1032"
37752( $at_check_trace; diff prog3.lst prog.lis
37753) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37754at_status=$? at_failed=false
37755$at_check_filter
37756at_fn_diff_devnull "$at_stderr" || at_failed=:
37757at_fn_diff_devnull "$at_stdout" || at_failed=:
37758at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1032"
37759$at_failed && at_fn_log_failure  \
37760"prog.lst"
37761$at_traceon; }
37762
37763
37764  set +x
37765  $at_times_p && times >"$at_times_file"
37766) 5>&1 2>&1 7>&- | eval $at_tee_pipe
37767read at_status <"$at_status_file"
37768#AT_STOP_421
37769#AT_START_422
37770at_fn_group_banner 422 'listings.at:1037' \
37771  "Error/Warning messages" "                         " 3
37772at_xfail=no
37773(
37774  $as_echo "422. $at_setup_line: testing $at_desc ..."
37775  $at_traceon
37776
37777
37778
37779
37780
37781cat >copy.inc <<'_ATEOF'
37782
37783       ENVIRONMENT    DIVISION.
37784       INPUT-OUTPUT   SECTION.
37785       FILE-CONTROL.
37786           SELECT testfile
37787               ASSIGN TO filename
37788               ORGANIZATION RELATIVE
37789               ACCESS IS sequentia
37790               STATUS IS stat.
37791_ATEOF
37792
37793
37794cat >prog.cob <<'_ATEOF'
37795
37796       IDENTIFICATION   DIVISION.
37797       PROGRAM-ID.      prog.
37798       COPY "copy.inc".
37799       DATA             DIVISION.
37800       WORKING-STORAGE  SECTION.
37801       PROCEDURE        DIVISION.
37802           DISPLAY FIRST-MATCH NO ADVANCING
37803           END-DISPLAY.
37804           STOP RUN.
37805_ATEOF
37806
37807
37808{ set +x
37809$as_echo "$at_srcdir/listings.at:1065: \$COMPILE_ONLY -Wimplicit-define -t prog.lst prog.cob"
37810at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wimplicit-define -t prog.lst prog.cob" "listings.at:1065"
37811( $at_check_trace; $COMPILE_ONLY -Wimplicit-define -t prog.lst prog.cob
37812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37813at_status=$? at_failed=false
37814$at_check_filter
37815echo >>"$at_stderr"; $as_echo "copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
37816copy.inc:5: error: missing file description for FILE testfile
37817prog.cob:7: warning: variable 'filename' will be implicitly defined
37818prog.cob:8: error: 'FIRST-MATCH' is not defined
37819" | \
37820  $at_diff - "$at_stderr" || at_failed=:
37821at_fn_diff_devnull "$at_stdout" || at_failed=:
37822at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1065"
37823$at_failed && at_fn_log_failure  \
37824"prog.lst"
37825$at_traceon; }
37826
37827
37828cat >prog12.lst <<'_ATEOF'
37829GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
37830
37831LINE    PG/LN  A...B............................................................
37832
37833000001
37834000002         IDENTIFICATION   DIVISION.
37835000003         PROGRAM-ID.      prog.
37836000004         COPY "copy.inc".
37837000001C
37838000002C        ENVIRONMENT    DIVISION.
37839000003C        INPUT-OUTPUT   SECTION.
37840000004C        FILE-CONTROL.
37841000005C            SELECT testfile
37842error: missing file description for FILE testfile
37843000006C                ASSIGN TO filename
37844000007C                ORGANIZATION RELATIVE
37845000008C                ACCESS IS sequentia
37846error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or
37847     + SEQUENTIAL
37848000009C                STATUS IS stat.
37849000005         DATA             DIVISION.
37850000006         WORKING-STORAGE  SECTION.
37851000007         PROCEDURE        DIVISION.
37852warning: variable 'filename' will be implicitly defined
37853000008             DISPLAY FIRST-MATCH NO ADVANCING
37854error: 'FIRST-MATCH' is not defined
37855000009             END-DISPLAY.
37856000010             STOP RUN.
37857
37858
37859GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
37860
37861Error/Warning summary:
37862
37863copy.inc:5: error: missing file description for FILE testfile
37864copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
37865prog.cob:7: warning: variable 'filename' will be implicitly defined
37866prog.cob:8: error: 'FIRST-MATCH' is not defined
37867
378681 warning in compilation group
378693 errors in compilation group
37870_ATEOF
37871
37872
37873{ set +x
37874$as_echo "$at_srcdir/listings.at:1116: \$UNIFY_LISTING prog.lst prog.lis"
37875at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1116"
37876( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
37877) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37878at_status=$? at_failed=false
37879$at_check_filter
37880at_fn_diff_devnull "$at_stderr" || at_failed=:
37881at_fn_diff_devnull "$at_stdout" || at_failed=:
37882at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1116"
37883$at_failed && at_fn_log_failure  \
37884"prog.lst"
37885$at_traceon; }
37886
37887{ set +x
37888$as_echo "$at_srcdir/listings.at:1117: diff prog12.lst prog.lis"
37889at_fn_check_prepare_trace "listings.at:1117"
37890( $at_check_trace; diff prog12.lst prog.lis
37891) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37892at_status=$? at_failed=false
37893$at_check_filter
37894at_fn_diff_devnull "$at_stderr" || at_failed=:
37895at_fn_diff_devnull "$at_stdout" || at_failed=:
37896at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1117"
37897$at_failed && at_fn_log_failure  \
37898"prog.lst"
37899$at_traceon; }
37900
37901
37902{ set +x
37903$as_echo "$at_srcdir/listings.at:1119: \$COMPILE_ONLY -Wimplicit-define -T prog.lst prog.cob"
37904at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wimplicit-define -T prog.lst prog.cob" "listings.at:1119"
37905( $at_check_trace; $COMPILE_ONLY -Wimplicit-define -T prog.lst prog.cob
37906) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37907at_status=$? at_failed=false
37908$at_check_filter
37909echo >>"$at_stderr"; $as_echo "copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
37910copy.inc:5: error: missing file description for FILE testfile
37911prog.cob:7: warning: variable 'filename' will be implicitly defined
37912prog.cob:8: error: 'FIRST-MATCH' is not defined
37913" | \
37914  $at_diff - "$at_stderr" || at_failed=:
37915at_fn_diff_devnull "$at_stdout" || at_failed=:
37916at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1119"
37917$at_failed && at_fn_log_failure  \
37918"prog.lst"
37919$at_traceon; }
37920
37921
37922cat >prog13.lst <<'_ATEOF'
37923GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0001
37924
37925LINE    PG/LN  A...B............................................................SEQUENCE
37926
37927000001
37928000002         IDENTIFICATION   DIVISION.
37929000003         PROGRAM-ID.      prog.
37930000004         COPY "copy.inc".
37931000001C
37932000002C        ENVIRONMENT    DIVISION.
37933000003C        INPUT-OUTPUT   SECTION.
37934000004C        FILE-CONTROL.
37935000005C            SELECT testfile
37936error: missing file description for FILE testfile
37937000006C                ASSIGN TO filename
37938000007C                ORGANIZATION RELATIVE
37939000008C                ACCESS IS sequentia
37940error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
37941000009C                STATUS IS stat.
37942000005         DATA             DIVISION.
37943000006         WORKING-STORAGE  SECTION.
37944000007         PROCEDURE        DIVISION.
37945warning: variable 'filename' will be implicitly defined
37946000008             DISPLAY FIRST-MATCH NO ADVANCING
37947error: 'FIRST-MATCH' is not defined
37948000009             END-DISPLAY.
37949000010             STOP RUN.
37950
37951
37952GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0002
37953
37954Error/Warning summary:
37955
37956copy.inc:5: error: missing file description for FILE testfile
37957copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
37958prog.cob:7: warning: variable 'filename' will be implicitly defined
37959prog.cob:8: error: 'FIRST-MATCH' is not defined
37960
379611 warning in compilation group
379623 errors in compilation group
37963_ATEOF
37964
37965
37966{ set +x
37967$as_echo "$at_srcdir/listings.at:1169: \$UNIFY_LISTING prog.lst prog.lis"
37968at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1169"
37969( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
37970) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37971at_status=$? at_failed=false
37972$at_check_filter
37973at_fn_diff_devnull "$at_stderr" || at_failed=:
37974at_fn_diff_devnull "$at_stdout" || at_failed=:
37975at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1169"
37976$at_failed && at_fn_log_failure  \
37977"prog.lst"
37978$at_traceon; }
37979
37980{ set +x
37981$as_echo "$at_srcdir/listings.at:1170: diff prog13.lst prog.lis"
37982at_fn_check_prepare_trace "listings.at:1170"
37983( $at_check_trace; diff prog13.lst prog.lis
37984) >>"$at_stdout" 2>>"$at_stderr" 5>&-
37985at_status=$? at_failed=false
37986$at_check_filter
37987at_fn_diff_devnull "$at_stderr" || at_failed=:
37988at_fn_diff_devnull "$at_stdout" || at_failed=:
37989at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1170"
37990$at_failed && at_fn_log_failure  \
37991"prog.lst"
37992$at_traceon; }
37993
37994
37995cat >prog.cob <<'_ATEOF'
37996
37997       IDENTIFICATION   DIVISION.
37998       PROGRAM-ID.      prog.
37999       DATA             DIVISION.
38000       WORKING-STORAGE  SECTION.
38001       01 TEST-VAR PIC 9(2) VALUE 'F1'.
38002       PROCEDURE        DIVISION.
38003           DISPLAY TEST-VAR NO ADVANCING
38004           END-DISPLAY.
38005           STOP RUN.
38006_ATEOF
38007
38008
38009{ set +x
38010$as_echo "$at_srcdir/listings.at:1184: \$COMPILE_ONLY -t prog.lst -tsymbols prog.cob"
38011at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols prog.cob" "listings.at:1184"
38012( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols prog.cob
38013) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38014at_status=$? at_failed=false
38015$at_check_filter
38016echo >>"$at_stderr"; $as_echo "prog.cob:6: warning: numeric value is expected
38017" | \
38018  $at_diff - "$at_stderr" || at_failed=:
38019at_fn_diff_devnull "$at_stdout" || at_failed=:
38020at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1184"
38021$at_failed && at_fn_log_failure  \
38022"prog.lst"
38023$at_traceon; }
38024
38025
38026cat >prog14.lst <<'_ATEOF'
38027GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
38028
38029LINE    PG/LN  A...B............................................................
38030
38031000001
38032000002         IDENTIFICATION   DIVISION.
38033000003         PROGRAM-ID.      prog.
38034000004         DATA             DIVISION.
38035000005         WORKING-STORAGE  SECTION.
38036000006         01 TEST-VAR PIC 9(2) VALUE 'F1'.
38037warning: numeric value is expected
38038000007         PROCEDURE        DIVISION.
38039000008             DISPLAY TEST-VAR NO ADVANCING
38040000009             END-DISPLAY.
38041000010             STOP RUN.
38042GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
38043
38044SIZE  TYPE           LVL  NAME                           PICTURE
38045
38046      WORKING-STORAGE SECTION
38047
3804800002 NUMERIC        01   TEST-VAR                       9(2)
38049
38050
38051GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0003
38052
38053Error/Warning summary:
38054
38055prog.cob:6: warning: numeric value is expected
38056
380571 warning in compilation group
380580 errors in compilation group
38059_ATEOF
38060
38061
38062{ set +x
38063$as_echo "$at_srcdir/listings.at:1223: \$UNIFY_LISTING prog.lst prog.lis"
38064at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1223"
38065( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
38066) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38067at_status=$? at_failed=false
38068$at_check_filter
38069at_fn_diff_devnull "$at_stderr" || at_failed=:
38070at_fn_diff_devnull "$at_stdout" || at_failed=:
38071at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1223"
38072$at_failed && at_fn_log_failure  \
38073"prog.lst"
38074$at_traceon; }
38075
38076{ set +x
38077$as_echo "$at_srcdir/listings.at:1224: diff prog14.lst prog.lis"
38078at_fn_check_prepare_trace "listings.at:1224"
38079( $at_check_trace; diff prog14.lst prog.lis
38080) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38081at_status=$? at_failed=false
38082$at_check_filter
38083at_fn_diff_devnull "$at_stderr" || at_failed=:
38084at_fn_diff_devnull "$at_stdout" || at_failed=:
38085at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1224"
38086$at_failed && at_fn_log_failure  \
38087"prog.lst"
38088$at_traceon; }
38089
38090
38091
38092{ set +x
38093$as_echo "$at_srcdir/listings.at:1227: \$COMPILE_ONLY -t prog.lst crud.cob"
38094at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst crud.cob" "listings.at:1227"
38095( $at_check_trace; $COMPILE_ONLY -t prog.lst crud.cob
38096) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38097at_status=$? at_failed=false
38098$at_check_filter
38099echo >>"$at_stderr"; $as_echo "cobc: crud.cob: No such file or directory
38100" | \
38101  $at_diff - "$at_stderr" || at_failed=:
38102at_fn_diff_devnull "$at_stdout" || at_failed=:
38103at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1227"
38104$at_failed && at_fn_log_failure  \
38105"prog.lst"
38106$at_traceon; }
38107
38108
38109cat >prog15.lst <<'_ATEOF'
38110GnuCOBOL V.R.P          crud.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
38111
38112 cobc: crud.cob: No such file or directory
38113
38114
381150 warnings in compilation group
381161 error in compilation group
38117_ATEOF
38118
38119
38120{ set +x
38121$as_echo "$at_srcdir/listings.at:1241: \$UNIFY_LISTING prog.lst prog.lis"
38122at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1241"
38123( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
38124) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38125at_status=$? at_failed=false
38126$at_check_filter
38127at_fn_diff_devnull "$at_stderr" || at_failed=:
38128at_fn_diff_devnull "$at_stdout" || at_failed=:
38129at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1241"
38130$at_failed && at_fn_log_failure  \
38131"prog.lst"
38132$at_traceon; }
38133
38134{ set +x
38135$as_echo "$at_srcdir/listings.at:1242: diff prog15.lst prog.lis"
38136at_fn_check_prepare_trace "listings.at:1242"
38137( $at_check_trace; diff prog15.lst prog.lis
38138) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38139at_status=$? at_failed=false
38140$at_check_filter
38141at_fn_diff_devnull "$at_stderr" || at_failed=:
38142at_fn_diff_devnull "$at_stdout" || at_failed=:
38143at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1242"
38144$at_failed && at_fn_log_failure  \
38145"prog.lst"
38146$at_traceon; }
38147
38148
38149cat >prog.cpy <<'_ATEOF'
38150
38151       78  I   VALUE 20.
38152       78  J   VALUE 5000.
38153       78  M   VALUE 5.
38154_ATEOF
38155
38156
38157cat >prog.cob <<'_ATEOF'
38158
38159       IDENTIFICATION   DIVISION.
38160       PROGRAM-ID.      prog.
38161       DATA             DIVISION.
38162       WORKING-STORAGE  SECTION.
38163       01 TEST-VAR PIC 9(2) VALUE 12.
38164       COPY 'prog.cpy'.
38165       PROCEDURE        DIVISION.
38166           DISPLAY TEST-VAR NO ADVANCING
38167           END-DISPLAY
38168           MOVE 'AA' TO TEST-VAR
38169           DISPLAY TEST-VAR NO ADVANCING
38170           END-DISPLAY
38171           STOP RUN.
38172_ATEOF
38173
38174
38175{ set +x
38176$as_echo "$at_srcdir/listings.at:1266: \$COBC \$FLAGS -E -o prog.i prog.cob"
38177at_fn_check_prepare_dynamic "$COBC $FLAGS -E -o prog.i prog.cob" "listings.at:1266"
38178( $at_check_trace; $COBC $FLAGS -E -o prog.i prog.cob
38179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38180at_status=$? at_failed=false
38181$at_check_filter
38182at_fn_diff_devnull "$at_stderr" || at_failed=:
38183at_fn_diff_devnull "$at_stdout" || at_failed=:
38184at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1266"
38185$at_failed && at_fn_log_failure  \
38186"prog.lst"
38187$at_traceon; }
38188
38189{ set +x
38190$as_echo "$at_srcdir/listings.at:1267: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i"
38191at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i" "listings.at:1267"
38192( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i
38193) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38194at_status=$? at_failed=false
38195$at_check_filter
38196echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: numeric value is expected
38197prog.cob:6: note: 'TEST-VAR' defined here as PIC 9(2)
38198" | \
38199  $at_diff - "$at_stderr" || at_failed=:
38200at_fn_diff_devnull "$at_stdout" || at_failed=:
38201at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1267"
38202$at_failed && at_fn_log_failure  \
38203"prog.lst"
38204$at_traceon; }
38205
38206
38207cat >prog17.lst <<'_ATEOF'
38208GnuCOBOL V.R.P               prog.i                     DDD MMM dd HH:MM:SS YYYY
38209
38210LINE    PG/LN  A...B............................................................
38211
38212000001  #line 1 "prog.cob"
38213000001
38214000002   IDENTIFICATION   DIVISION.
38215000003   PROGRAM-ID. prog.
38216000004   DATA DIVISION.
38217000005   WORKING-STORAGE SECTION.
38218000006   01 TEST-VAR PIC 9(2) VALUE 12.
38219000007
38220000001  #line 1 "prog.cpy"
38221000001
38222000002   78 I VALUE 20.
38223000003   78 J VALUE 5000.
38224000004   78 M VALUE 5.
38225000007  #line 7 "prog.cob"
38226000007
38227000008   PROCEDURE DIVISION.
38228000009   DISPLAY TEST-VAR NO ADVANCING
38229000010   END-DISPLAY
38230000011   MOVE 'AA' TO TEST-VAR
38231warning: numeric value is expected
38232000012   DISPLAY TEST-VAR NO ADVANCING
38233000013   END-DISPLAY
38234000014   STOP RUN.
38235
38236SIZE  TYPE           LVL  NAME                           PICTURE
38237
38238      WORKING-STORAGE SECTION
38239
3824000002 NUMERIC        01   TEST-VAR                       9(2)
38241
38242
38243
38244Error/Warning summary:
38245
38246prog.cob:11: warning: numeric value is expected
38247
382481 warning in compilation group
382490 errors in compilation group
38250_ATEOF
38251
38252
38253{ set +x
38254$as_echo "$at_srcdir/listings.at:1317: \$UNIFY_LISTING prog.lst prog.lis once"
38255at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1317"
38256( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
38257) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38258at_status=$? at_failed=false
38259$at_check_filter
38260at_fn_diff_devnull "$at_stderr" || at_failed=:
38261at_fn_diff_devnull "$at_stdout" || at_failed=:
38262at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1317"
38263$at_failed && at_fn_log_failure  \
38264"prog.lst"
38265$at_traceon; }
38266
38267{ set +x
38268$as_echo "$at_srcdir/listings.at:1318: diff prog17.lst prog.lis"
38269at_fn_check_prepare_trace "listings.at:1318"
38270( $at_check_trace; diff prog17.lst prog.lis
38271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38272at_status=$? at_failed=false
38273$at_check_filter
38274at_fn_diff_devnull "$at_stderr" || at_failed=:
38275at_fn_diff_devnull "$at_stdout" || at_failed=:
38276at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1318"
38277$at_failed && at_fn_log_failure  \
38278"prog.lst"
38279$at_traceon; }
38280
38281
38282cat >prog.cob <<'_ATEOF'
38283
38284       IDENTIFICATION   DIVISION.
38285       PROGRAM-ID.      prog.
38286       DATA             DIVISION.
38287       WORKING-STORAGE  SECTION.
38288       01 TEST-VAR PIC 9(2) VALUE 'A'.
38289       COPY 'CRUD.CPY'.
38290       PROCEDURE        DIVISION.
38291           DISPLAY TEST-VAR NO ADVANCING
38292           END-DISPLAY
38293           MOVE 12 TO TEST-VAR
38294           DISPLAY TEST-VAR NO ADVANCING
38295           END-DISPLAY
38296           STOP RUN.
38297_ATEOF
38298
38299
38300{ set +x
38301$as_echo "$at_srcdir/listings.at:1336: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
38302at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:1336"
38303( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
38304) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38305at_status=$? at_failed=false
38306$at_check_filter
38307echo >>"$at_stderr"; $as_echo "prog.cob:7: error: CRUD.CPY: No such file or directory
38308prog.cob:6: warning: numeric value is expected
38309" | \
38310  $at_diff - "$at_stderr" || at_failed=:
38311at_fn_diff_devnull "$at_stdout" || at_failed=:
38312at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1336"
38313$at_failed && at_fn_log_failure  \
38314"prog.lst"
38315$at_traceon; }
38316
38317
38318cat >prog16.lst <<'_ATEOF'
38319GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
38320
38321LINE    PG/LN  A...B............................................................
38322
38323000001
38324000002         IDENTIFICATION   DIVISION.
38325000003         PROGRAM-ID.      prog.
38326000004         DATA             DIVISION.
38327000005         WORKING-STORAGE  SECTION.
38328000006         01 TEST-VAR PIC 9(2) VALUE 'A'.
38329warning: numeric value is expected
38330000007         COPY 'CRUD.CPY'.
38331error: CRUD.CPY: No such file or directory
38332000008         PROCEDURE        DIVISION.
38333000009             DISPLAY TEST-VAR NO ADVANCING
38334000010             END-DISPLAY
38335000011             MOVE 12 TO TEST-VAR
38336000012             DISPLAY TEST-VAR NO ADVANCING
38337000013             END-DISPLAY
38338000014             STOP RUN.
38339
38340
38341
38342Error/Warning summary:
38343
38344prog.cob:7: error: CRUD.CPY: No such file or directory
38345prog.cob:6: warning: numeric value is expected
38346
383471 warning in compilation group
383481 error in compilation group
38349_ATEOF
38350
38351
38352{ set +x
38353$as_echo "$at_srcdir/listings.at:1374: \$UNIFY_LISTING prog.lst prog.lis once"
38354at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1374"
38355( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
38356) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38357at_status=$? at_failed=false
38358$at_check_filter
38359at_fn_diff_devnull "$at_stderr" || at_failed=:
38360at_fn_diff_devnull "$at_stdout" || at_failed=:
38361at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1374"
38362$at_failed && at_fn_log_failure  \
38363"prog.lst"
38364$at_traceon; }
38365
38366{ set +x
38367$as_echo "$at_srcdir/listings.at:1375: diff prog16.lst prog.lis"
38368at_fn_check_prepare_trace "listings.at:1375"
38369( $at_check_trace; diff prog16.lst prog.lis
38370) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38371at_status=$? at_failed=false
38372$at_check_filter
38373at_fn_diff_devnull "$at_stderr" || at_failed=:
38374at_fn_diff_devnull "$at_stdout" || at_failed=:
38375at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1375"
38376$at_failed && at_fn_log_failure  \
38377"prog.lst"
38378$at_traceon; }
38379
38380
38381{ set +x
38382$as_echo "$at_srcdir/listings.at:1377: \$COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 prog.cob"
38383at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 prog.cob" "listings.at:1377"
38384( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 prog.cob
38385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38386at_status=$? at_failed=false
38387$at_check_filter
38388echo >>"$at_stderr"; $as_echo "prog.cob:7: error: CRUD.CPY: No such file or directory
38389cobc: too many errors
38390
38391cobc: aborting compile of prog.cob at line 7 (unknown: unknown)
38392" | \
38393  $at_diff - "$at_stderr" || at_failed=:
38394at_fn_diff_devnull "$at_stdout" || at_failed=:
38395at_fn_check_status 97 $at_status "$at_srcdir/listings.at:1377"
38396$at_failed && at_fn_log_failure  \
38397"prog.lst"
38398$at_traceon; }
38399
38400
38401cat >prog17.lst <<'_ATEOF'
38402GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
38403
38404LINE    PG/LN  A...B............................................................
38405
38406000001
38407000002         IDENTIFICATION   DIVISION.
38408000003         PROGRAM-ID.      prog.
38409000004         DATA             DIVISION.
38410000005         WORKING-STORAGE  SECTION.
38411000006         01 TEST-VAR PIC 9(2) VALUE 'A'.
38412000007         COPY 'CRUD.CPY'.
38413error: CRUD.CPY: No such file or directory
38414000008         PROCEDURE        DIVISION.
38415000009             DISPLAY TEST-VAR NO ADVANCING
38416000010             END-DISPLAY
38417000011             MOVE 12 TO TEST-VAR
38418000012             DISPLAY TEST-VAR NO ADVANCING
38419000013             END-DISPLAY
38420000014             STOP RUN.
38421
38422
38423
38424Error/Warning summary:
38425
38426prog.cob:7: error: CRUD.CPY: No such file or directory
38427
384280 warnings in compilation group
384291 error in compilation group
38430Too many errors in compilation group: 0 maximum errors
38431_ATEOF
38432
38433
38434{ set +x
38435$as_echo "$at_srcdir/listings.at:1416: \$UNIFY_LISTING prog.lst prog.lis once"
38436at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1416"
38437( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
38438) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38439at_status=$? at_failed=false
38440$at_check_filter
38441at_fn_diff_devnull "$at_stderr" || at_failed=:
38442at_fn_diff_devnull "$at_stdout" || at_failed=:
38443at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1416"
38444$at_failed && at_fn_log_failure  \
38445"prog.lst"
38446$at_traceon; }
38447
38448{ set +x
38449$as_echo "$at_srcdir/listings.at:1417: diff prog17.lst prog.lis"
38450at_fn_check_prepare_trace "listings.at:1417"
38451( $at_check_trace; diff prog17.lst prog.lis
38452) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38453at_status=$? at_failed=false
38454$at_check_filter
38455at_fn_diff_devnull "$at_stderr" || at_failed=:
38456at_fn_diff_devnull "$at_stdout" || at_failed=:
38457at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1417"
38458$at_failed && at_fn_log_failure  \
38459"prog.lst"
38460$at_traceon; }
38461
38462
38463
38464  set +x
38465  $at_times_p && times >"$at_times_file"
38466) 5>&1 2>&1 7>&- | eval $at_tee_pipe
38467read at_status <"$at_status_file"
38468#AT_STOP_422
38469#AT_START_423
38470at_fn_group_banner 423 'listings.at:1423' \
38471  "Two source files" "                               " 3
38472at_xfail=no
38473(
38474  $as_echo "423. $at_setup_line: testing $at_desc ..."
38475  $at_traceon
38476
38477
38478
38479
38480
38481cat >prog.cob <<'_ATEOF'
38482
38483       IDENTIFICATION   DIVISION.
38484       PROGRAM-ID.      prog.
38485       DATA             DIVISION.
38486       WORKING-STORAGE  SECTION.
38487      *COPY "copy.inc".
38488       PROCEDURE        DIVISION.
38489           STOP RUN.
38490_ATEOF
38491
38492
38493cat >prog1.cob <<'_ATEOF'
38494
38495       IDENTIFICATION   DIVISION.
38496       PROGRAM-ID.      prog1.
38497       DATA             DIVISION.
38498       WORKING-STORAGE  SECTION.
38499      *COPY "copy.inc".
38500       PROCEDURE        DIVISION.
38501           STOP RUN.
38502_ATEOF
38503
38504
38505{ set +x
38506$as_echo "$at_srcdir/listings.at:1448: \$COMPILE_ONLY -t prog.lst prog.cob prog1.cob"
38507at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob prog1.cob" "listings.at:1448"
38508( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob prog1.cob
38509) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38510at_status=$? at_failed=false
38511$at_check_filter
38512at_fn_diff_devnull "$at_stderr" || at_failed=:
38513at_fn_diff_devnull "$at_stdout" || at_failed=:
38514at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1448"
38515$at_failed && at_fn_log_failure  \
38516"prog.lst"
38517$at_traceon; }
38518
38519
38520cat >prog11.lst <<'_ATEOF'
38521GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
38522
38523LINE    PG/LN  A...B............................................................
38524
38525000001
38526000002         IDENTIFICATION   DIVISION.
38527000003         PROGRAM-ID.      prog.
38528000004         DATA             DIVISION.
38529000005         WORKING-STORAGE  SECTION.
38530000006        *COPY "copy.inc".
38531000007         PROCEDURE        DIVISION.
38532000008             STOP RUN.
38533
38534
385350 warnings in compilation group
385360 errors in compilation group
38537GnuCOBOL V.R.P          prog1.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
38538
38539LINE    PG/LN  A...B............................................................
38540
38541000001
38542000002         IDENTIFICATION   DIVISION.
38543000003         PROGRAM-ID.      prog1.
38544000004         DATA             DIVISION.
38545000005         WORKING-STORAGE  SECTION.
38546000006        *COPY "copy.inc".
38547000007         PROCEDURE        DIVISION.
38548000008             STOP RUN.
38549
38550
385510 warnings in compilation group
385520 errors in compilation group
38553_ATEOF
38554
38555
38556{ set +x
38557$as_echo "$at_srcdir/listings.at:1485: \$UNIFY_LISTING prog.lst prog.lis"
38558at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1485"
38559( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
38560) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38561at_status=$? at_failed=false
38562$at_check_filter
38563at_fn_diff_devnull "$at_stderr" || at_failed=:
38564at_fn_diff_devnull "$at_stdout" || at_failed=:
38565at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1485"
38566$at_failed && at_fn_log_failure  \
38567"prog.lst"
38568$at_traceon; }
38569
38570{ set +x
38571$as_echo "$at_srcdir/listings.at:1486: diff prog11.lst prog.lis"
38572at_fn_check_prepare_trace "listings.at:1486"
38573( $at_check_trace; diff prog11.lst prog.lis
38574) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38575at_status=$? at_failed=false
38576$at_check_filter
38577at_fn_diff_devnull "$at_stderr" || at_failed=:
38578at_fn_diff_devnull "$at_stdout" || at_failed=:
38579at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1486"
38580$at_failed && at_fn_log_failure  \
38581"prog.lst"
38582$at_traceon; }
38583
38584
38585  set +x
38586  $at_times_p && times >"$at_times_file"
38587) 5>&1 2>&1 7>&- | eval $at_tee_pipe
38588read at_status <"$at_status_file"
38589#AT_STOP_423
38590#AT_START_424
38591at_fn_group_banner 424 'listings.at:1491' \
38592  "Multiple programs in one file" "                  " 3
38593at_xfail=no
38594(
38595  $as_echo "424. $at_setup_line: testing $at_desc ..."
38596  $at_traceon
38597
38598
38599
38600
38601
38602
38603cat >prog.cob <<'_ATEOF'
38604
38605       IDENTIFICATION DIVISION.
38606       PROGRAM-ID. prog-1.
38607
38608       DATA DIVISION.
38609       WORKING-STORAGE SECTION.
38610       01  blah PIC x.
38611
38612       END PROGRAM prog-1.
38613
38614       IDENTIFICATION DIVISION.
38615       PROGRAM-ID. prog-2.
38616       END PROGRAM prog-2.
38617_ATEOF
38618
38619
38620cat >prog20.lst <<'_ATEOF'
38621GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
38622
38623LINE    PG/LN  A...B............................................................
38624
38625000001
38626000002         IDENTIFICATION DIVISION.
38627000003         PROGRAM-ID. prog-1.
38628000004
38629000005         DATA DIVISION.
38630000006         WORKING-STORAGE SECTION.
38631000007         01  blah PIC x.
38632000008
38633000009         END PROGRAM prog-1.
38634000010
38635000011         IDENTIFICATION DIVISION.
38636000012         PROGRAM-ID. prog-2.
38637000013         END PROGRAM prog-2.
38638GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
38639
38640SIZE  TYPE           LVL  NAME                           PICTURE
38641
38642      PROGRAM             prog-1
38643
38644      WORKING-STORAGE SECTION
38645
3864600001 ALPHANUMERIC   01   blah                           X
38647
38648      PROGRAM             prog-2
38649
38650      No fields defined.
38651
38652
386530 warnings in compilation group
386540 errors in compilation group
38655_ATEOF
38656
38657
38658# Check once with $COMPILE and once with $COMPILE_ONLY.
38659# This tests whether codegen affects the listing.
38660{ set +x
38661$as_echo "$at_srcdir/listings.at:1551: \$COMPILE -t prog.lst -tsymbols prog.cob"
38662at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols prog.cob" "listings.at:1551"
38663( $at_check_trace; $COMPILE -t prog.lst -tsymbols prog.cob
38664) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38665at_status=$? at_failed=false
38666$at_check_filter
38667at_fn_diff_devnull "$at_stderr" || at_failed=:
38668at_fn_diff_devnull "$at_stdout" || at_failed=:
38669at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1551"
38670$at_failed && at_fn_log_failure  \
38671"prog.lst" \
38672"prog2.lst"
38673$at_traceon; }
38674
38675{ set +x
38676$as_echo "$at_srcdir/listings.at:1552: \$UNIFY_LISTING prog.lst prog.lis"
38677at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1552"
38678( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
38679) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38680at_status=$? at_failed=false
38681$at_check_filter
38682at_fn_diff_devnull "$at_stderr" || at_failed=:
38683at_fn_diff_devnull "$at_stdout" || at_failed=:
38684at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1552"
38685$at_failed && at_fn_log_failure  \
38686"prog.lst" \
38687"prog2.lst"
38688$at_traceon; }
38689
38690{ set +x
38691$as_echo "$at_srcdir/listings.at:1553: diff prog20.lst prog.lis"
38692at_fn_check_prepare_trace "listings.at:1553"
38693( $at_check_trace; diff prog20.lst prog.lis
38694) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38695at_status=$? at_failed=false
38696$at_check_filter
38697at_fn_diff_devnull "$at_stderr" || at_failed=:
38698at_fn_diff_devnull "$at_stdout" || at_failed=:
38699at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1553"
38700$at_failed && at_fn_log_failure  \
38701"prog.lst" \
38702"prog2.lst"
38703$at_traceon; }
38704
38705{ set +x
38706$as_echo "$at_srcdir/listings.at:1554: \$COMPILE_ONLY -t prog2.lst -tsymbols prog.cob"
38707at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols prog.cob" "listings.at:1554"
38708( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols prog.cob
38709) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38710at_status=$? at_failed=false
38711$at_check_filter
38712at_fn_diff_devnull "$at_stderr" || at_failed=:
38713at_fn_diff_devnull "$at_stdout" || at_failed=:
38714at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1554"
38715$at_failed && at_fn_log_failure  \
38716"prog.lst" \
38717"prog2.lst"
38718$at_traceon; }
38719
38720{ set +x
38721$as_echo "$at_srcdir/listings.at:1555: \$UNIFY_LISTING prog2.lst prog.lis"
38722at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1555"
38723( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
38724) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38725at_status=$? at_failed=false
38726$at_check_filter
38727at_fn_diff_devnull "$at_stderr" || at_failed=:
38728at_fn_diff_devnull "$at_stdout" || at_failed=:
38729at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1555"
38730$at_failed && at_fn_log_failure  \
38731"prog.lst" \
38732"prog2.lst"
38733$at_traceon; }
38734
38735{ set +x
38736$as_echo "$at_srcdir/listings.at:1556: diff prog20.lst prog.lis"
38737at_fn_check_prepare_trace "listings.at:1556"
38738( $at_check_trace; diff prog20.lst prog.lis
38739) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38740at_status=$? at_failed=false
38741$at_check_filter
38742at_fn_diff_devnull "$at_stderr" || at_failed=:
38743at_fn_diff_devnull "$at_stdout" || at_failed=:
38744at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1556"
38745$at_failed && at_fn_log_failure  \
38746"prog.lst" \
38747"prog2.lst"
38748$at_traceon; }
38749
38750
38751{ set +x
38752$as_echo "$at_srcdir/listings.at:1558: rm -f prog.lst prog2.lst"
38753at_fn_check_prepare_trace "listings.at:1558"
38754( $at_check_trace; rm -f prog.lst prog2.lst
38755) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38756at_status=$? at_failed=false
38757$at_check_filter
38758at_fn_diff_devnull "$at_stderr" || at_failed=:
38759at_fn_diff_devnull "$at_stdout" || at_failed=:
38760at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1558"
38761$at_failed && at_fn_log_failure  \
38762"prog.lst" \
38763"prog2.lst"
38764$at_traceon; }
38765
38766
38767cat >progb.cob <<'_ATEOF'
38768
38769       IDENTIFICATION DIVISION.
38770       PROGRAM-ID. prog-1.
38771
38772       DATA DIVISION.
38773       WORKING-STORAGE SECTION.
38774       01  blah PIC x.
38775
38776       PROCEDURE DIVISION.
38777
38778       IDENTIFICATION DIVISION.
38779       PROGRAM-ID. prog-2.
38780       PROCEDURE DIVISION.
38781       END PROGRAM prog-2.
38782
38783       END PROGRAM prog-1.
38784_ATEOF
38785
38786
38787cat >prog20b.lst <<'_ATEOF'
38788GnuCOBOL V.R.P          progb.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
38789
38790LINE    PG/LN  A...B............................................................
38791
38792000001
38793000002         IDENTIFICATION DIVISION.
38794000003         PROGRAM-ID. prog-1.
38795000004
38796000005         DATA DIVISION.
38797000006         WORKING-STORAGE SECTION.
38798000007         01  blah PIC x.
38799000008
38800000009         PROCEDURE DIVISION.
38801000010
38802000011         IDENTIFICATION DIVISION.
38803000012         PROGRAM-ID. prog-2.
38804000013         PROCEDURE DIVISION.
38805000014         END PROGRAM prog-2.
38806000015
38807000016         END PROGRAM prog-1.
38808GnuCOBOL V.R.P          progb.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002
38809
38810SIZE  TYPE           LVL  NAME                           PICTURE
38811
38812      PROGRAM             prog-1
38813
38814      WORKING-STORAGE SECTION
38815
3881600001 ALPHANUMERIC   01   blah                           X
38817
38818      PROGRAM             prog-2
38819
38820      No fields defined.
38821
38822
388230 warnings in compilation group
388240 errors in compilation group
38825_ATEOF
38826
38827
38828# Check once with $COMPILE and once with $COMPILE_ONLY.
38829# This tests whether codegen affects the listing.
38830{ set +x
38831$as_echo "$at_srcdir/listings.at:1620: \$COMPILE -t prog.lst -tsymbols progb.cob"
38832at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols progb.cob" "listings.at:1620"
38833( $at_check_trace; $COMPILE -t prog.lst -tsymbols progb.cob
38834) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38835at_status=$? at_failed=false
38836$at_check_filter
38837at_fn_diff_devnull "$at_stderr" || at_failed=:
38838at_fn_diff_devnull "$at_stdout" || at_failed=:
38839at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1620"
38840$at_failed && at_fn_log_failure  \
38841"prog.lst" \
38842"prog2.lst"
38843$at_traceon; }
38844
38845{ set +x
38846$as_echo "$at_srcdir/listings.at:1621: \$UNIFY_LISTING prog.lst prog.lis"
38847at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1621"
38848( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
38849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38850at_status=$? at_failed=false
38851$at_check_filter
38852at_fn_diff_devnull "$at_stderr" || at_failed=:
38853at_fn_diff_devnull "$at_stdout" || at_failed=:
38854at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1621"
38855$at_failed && at_fn_log_failure  \
38856"prog.lst" \
38857"prog2.lst"
38858$at_traceon; }
38859
38860{ set +x
38861$as_echo "$at_srcdir/listings.at:1622: diff prog20b.lst prog.lis"
38862at_fn_check_prepare_trace "listings.at:1622"
38863( $at_check_trace; diff prog20b.lst prog.lis
38864) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38865at_status=$? at_failed=false
38866$at_check_filter
38867at_fn_diff_devnull "$at_stderr" || at_failed=:
38868at_fn_diff_devnull "$at_stdout" || at_failed=:
38869at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1622"
38870$at_failed && at_fn_log_failure  \
38871"prog.lst" \
38872"prog2.lst"
38873$at_traceon; }
38874
38875{ set +x
38876$as_echo "$at_srcdir/listings.at:1623: \$COMPILE_ONLY -t prog2.lst -tsymbols progb.cob"
38877at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols progb.cob" "listings.at:1623"
38878( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols progb.cob
38879) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38880at_status=$? at_failed=false
38881$at_check_filter
38882at_fn_diff_devnull "$at_stderr" || at_failed=:
38883at_fn_diff_devnull "$at_stdout" || at_failed=:
38884at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1623"
38885$at_failed && at_fn_log_failure  \
38886"prog.lst" \
38887"prog2.lst"
38888$at_traceon; }
38889
38890{ set +x
38891$as_echo "$at_srcdir/listings.at:1624: \$UNIFY_LISTING prog2.lst prog.lis"
38892at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1624"
38893( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
38894) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38895at_status=$? at_failed=false
38896$at_check_filter
38897at_fn_diff_devnull "$at_stderr" || at_failed=:
38898at_fn_diff_devnull "$at_stdout" || at_failed=:
38899at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1624"
38900$at_failed && at_fn_log_failure  \
38901"prog.lst" \
38902"prog2.lst"
38903$at_traceon; }
38904
38905{ set +x
38906$as_echo "$at_srcdir/listings.at:1625: diff prog20b.lst prog.lis"
38907at_fn_check_prepare_trace "listings.at:1625"
38908( $at_check_trace; diff prog20b.lst prog.lis
38909) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38910at_status=$? at_failed=false
38911$at_check_filter
38912at_fn_diff_devnull "$at_stderr" || at_failed=:
38913at_fn_diff_devnull "$at_stdout" || at_failed=:
38914at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1625"
38915$at_failed && at_fn_log_failure  \
38916"prog.lst" \
38917"prog2.lst"
38918$at_traceon; }
38919
38920
38921{ set +x
38922$as_echo "$at_srcdir/listings.at:1627: rm -f prog.lst prog2.lst"
38923at_fn_check_prepare_trace "listings.at:1627"
38924( $at_check_trace; rm -f prog.lst prog2.lst
38925) >>"$at_stdout" 2>>"$at_stderr" 5>&-
38926at_status=$? at_failed=false
38927$at_check_filter
38928at_fn_diff_devnull "$at_stderr" || at_failed=:
38929at_fn_diff_devnull "$at_stdout" || at_failed=:
38930at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1627"
38931$at_failed && at_fn_log_failure  \
38932"prog.lst" \
38933"prog2.lst"
38934$at_traceon; }
38935
38936
38937cat >progc.cob <<'_ATEOF'
38938
38939       IDENTIFICATION DIVISION.
38940       PROGRAM-ID. prog-1.
38941
38942       DATA DIVISION.
38943       WORKING-STORAGE SECTION.
38944       01  blah PIC x.
38945
38946       PROCEDURE DIVISION.
38947
38948       IDENTIFICATION DIVISION.
38949       PROGRAM-ID. prog-2.
38950       PROCEDURE.
38951       END PROGRAM prog-2.
38952
38953       END PROGRAM prog-1.
38954_ATEOF
38955
38956
38957cat >prog20c.lst <<'_ATEOF'
38958GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
38959
38960LINE    PG/LN  A...B............................................................
38961
38962000001
38963000002         IDENTIFICATION DIVISION.
38964000003         PROGRAM-ID. prog-1.
38965000004
38966000005         DATA DIVISION.
38967000006         WORKING-STORAGE SECTION.
38968000007         01  blah PIC x.
38969000008
38970000009         PROCEDURE DIVISION.
38971000010
38972000011         IDENTIFICATION DIVISION.
38973000012         PROGRAM-ID. prog-2.
38974000013         PROCEDURE.
38975error: syntax error, unexpected ., expecting DIVISION
38976000014         END PROGRAM prog-2.
38977000015
38978000016         END PROGRAM prog-1.
38979GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002
38980
38981SIZE  TYPE           LVL  NAME                           PICTURE
38982
38983      PROGRAM             prog-1
38984
38985      WORKING-STORAGE SECTION
38986
3898700001 ALPHANUMERIC   01   blah                           X
38988
38989      PROGRAM             prog-2
38990
38991      No fields defined.
38992
38993
38994GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0003
38995
38996Error/Warning summary:
38997
38998progc.cob:13: error: syntax error, unexpected ., expecting DIVISION
38999
390000 warnings in compilation group
390011 error in compilation group
39002_ATEOF
39003
39004
39005# Check once with $COMPILE and once with $COMPILE_ONLY.
39006# This tests whether codegen affects the listing.
39007{ set +x
39008$as_echo "$at_srcdir/listings.at:1696: \$COMPILE -t prog.lst -tsymbols progc.cob"
39009at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols progc.cob" "listings.at:1696"
39010( $at_check_trace; $COMPILE -t prog.lst -tsymbols progc.cob
39011) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39012at_status=$? at_failed=false
39013$at_check_filter
39014echo >>"$at_stderr"; $as_echo "progc.cob:13: error: syntax error, unexpected ., expecting DIVISION
39015" | \
39016  $at_diff - "$at_stderr" || at_failed=:
39017at_fn_diff_devnull "$at_stdout" || at_failed=:
39018at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1696"
39019$at_failed && at_fn_log_failure  \
39020"prog.lst" \
39021"prog2.lst"
39022$at_traceon; }
39023
39024{ set +x
39025$as_echo "$at_srcdir/listings.at:1699: \$UNIFY_LISTING prog.lst prog.lis"
39026at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1699"
39027( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39028) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39029at_status=$? at_failed=false
39030$at_check_filter
39031at_fn_diff_devnull "$at_stderr" || at_failed=:
39032at_fn_diff_devnull "$at_stdout" || at_failed=:
39033at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1699"
39034$at_failed && at_fn_log_failure  \
39035"prog.lst" \
39036"prog2.lst"
39037$at_traceon; }
39038
39039{ set +x
39040$as_echo "$at_srcdir/listings.at:1700: diff prog20c.lst prog.lis"
39041at_fn_check_prepare_trace "listings.at:1700"
39042( $at_check_trace; diff prog20c.lst prog.lis
39043) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39044at_status=$? at_failed=false
39045$at_check_filter
39046at_fn_diff_devnull "$at_stderr" || at_failed=:
39047at_fn_diff_devnull "$at_stdout" || at_failed=:
39048at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1700"
39049$at_failed && at_fn_log_failure  \
39050"prog.lst" \
39051"prog2.lst"
39052$at_traceon; }
39053
39054{ set +x
39055$as_echo "$at_srcdir/listings.at:1701: \$COMPILE_ONLY -t prog2.lst -tsymbols progc.cob"
39056at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols progc.cob" "listings.at:1701"
39057( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols progc.cob
39058) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39059at_status=$? at_failed=false
39060$at_check_filter
39061echo >>"$at_stderr"; $as_echo "progc.cob:13: error: syntax error, unexpected ., expecting DIVISION
39062" | \
39063  $at_diff - "$at_stderr" || at_failed=:
39064at_fn_diff_devnull "$at_stdout" || at_failed=:
39065at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1701"
39066$at_failed && at_fn_log_failure  \
39067"prog.lst" \
39068"prog2.lst"
39069$at_traceon; }
39070
39071{ set +x
39072$as_echo "$at_srcdir/listings.at:1704: \$UNIFY_LISTING prog2.lst prog.lis"
39073at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1704"
39074( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
39075) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39076at_status=$? at_failed=false
39077$at_check_filter
39078at_fn_diff_devnull "$at_stderr" || at_failed=:
39079at_fn_diff_devnull "$at_stdout" || at_failed=:
39080at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1704"
39081$at_failed && at_fn_log_failure  \
39082"prog.lst" \
39083"prog2.lst"
39084$at_traceon; }
39085
39086{ set +x
39087$as_echo "$at_srcdir/listings.at:1705: diff prog20c.lst prog.lis"
39088at_fn_check_prepare_trace "listings.at:1705"
39089( $at_check_trace; diff prog20c.lst prog.lis
39090) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39091at_status=$? at_failed=false
39092$at_check_filter
39093at_fn_diff_devnull "$at_stderr" || at_failed=:
39094at_fn_diff_devnull "$at_stdout" || at_failed=:
39095at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1705"
39096$at_failed && at_fn_log_failure  \
39097"prog.lst" \
39098"prog2.lst"
39099$at_traceon; }
39100
39101
39102  set +x
39103  $at_times_p && times >"$at_times_file"
39104) 5>&1 2>&1 7>&- | eval $at_tee_pipe
39105read at_status <"$at_status_file"
39106#AT_STOP_424
39107#AT_START_425
39108at_fn_group_banner 425 'listings.at:1710' \
39109  "Multiple programs in one compilation group" "     " 3
39110at_xfail=no
39111(
39112  $as_echo "425. $at_setup_line: testing $at_desc ..."
39113  $at_traceon
39114
39115
39116
39117# TODO CHECK
39118# combinations and positions of entries in compilation group,
39119# the previous test should likely produce a different result, too...
39120
39121
39122
39123cat >prog-1.cob <<'_ATEOF'
39124
39125       IDENTIFICATION DIVISION.
39126       PROGRAM-ID. prog-1.
39127
39128       DATA DIVISION.
39129       WORKING-STORAGE SECTION.
39130       01  blah   PIC x.
39131
39132       PROCEDURE DIVISION.
39133           ACCEPT blah END-ACCEPT
39134           CALL "prog-2" USING blah END-CALL
39135           GO TO EX
39136
39137           DISPLAY blah.
39138
39139       EX. STOP RUN.
39140_ATEOF
39141
39142
39143cat >prog-2.cob <<'_ATEOF'
39144
39145       IDENTIFICATION DIVISION.
39146       PROGRAM-ID. prog-2.
39147
39148       DATA DIVISION.
39149       WORKING-STORAGE SECTION.
39150       01  data-b  PIC 9.
39151       LINKAGE SECTION.
39152       01  stuff   PIC x.
39153       PROCEDURE DIVISION USING stuff.
39154       MAIN.
39155           MOVE FUNCTION NUMVAL (stuff) TO data-b
39156           DISPLAY data-b
39157           GO TO EX
39158
39159           ACCEPT stuff.
39160
39161       EX. STOP RUN.
39162
39163_ATEOF
39164
39165
39166cat >expected.lst <<'_ATEOF'
39167GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0001
39168
39169LINE    PG/LN  A...B............................................................
39170
39171000001
39172000002         IDENTIFICATION DIVISION.
39173000003         PROGRAM-ID. prog-1.
39174000004
39175000005         DATA DIVISION.
39176000006         WORKING-STORAGE SECTION.
39177000007         01  blah   PIC x.
39178000008
39179000009         PROCEDURE DIVISION.
39180000010             ACCEPT blah END-ACCEPT
39181000011             CALL "prog-2" USING blah END-CALL
39182000012             GO TO EX
39183000013
39184000014             DISPLAY blah.
39185warning: unreachable statement 'DISPLAY'
39186000015
39187000016         EX. STOP RUN.
39188GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0002
39189
39190SIZE  TYPE           LVL  NAME                           PICTURE
39191
39192      WORKING-STORAGE SECTION
39193
3919400001 ALPHANUMERIC   01   blah                           X
39195
39196GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0003
39197
39198NAME                           DEFINED                REFERENCES
39199
39200blah                           7       *10      11      14             x3
39201
39202GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0004
39203
39204LABEL                          DEFINED                REFERENCES
39205
39206E prog__1                      9
39207P EX                           16       12                             x1
39208GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0005
39209
39210FUNCTION                       TYPE                   REFERENCES
39211
39212L prog-2                       EXTERN   11                             x1
39213
39214GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0006
39215
39216Error/Warning summary:
39217
39218prog-1.cob:14: warning: unreachable statement 'DISPLAY'
39219
392201 warning in compilation group
392210 errors in compilation group
39222GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0001
39223
39224LINE    PG/LN  A...B............................................................
39225
39226000001
39227000002         IDENTIFICATION DIVISION.
39228000003         PROGRAM-ID. prog-2.
39229000004
39230000005         DATA DIVISION.
39231000006         WORKING-STORAGE SECTION.
39232000007         01  data-b  PIC 9.
39233000008         LINKAGE SECTION.
39234000009         01  stuff   PIC x.
39235000010         PROCEDURE DIVISION USING stuff.
39236000011         MAIN.
39237000012             MOVE FUNCTION NUMVAL (stuff) TO data-b
39238000013             DISPLAY data-b
39239000014             GO TO EX
39240000015
39241000016             ACCEPT stuff.
39242warning: unreachable statement 'ACCEPT'
39243000017
39244000018         EX. STOP RUN.
39245000019
39246GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0002
39247
39248SIZE  TYPE           LVL  NAME                           PICTURE
39249
39250      WORKING-STORAGE SECTION
39251
3925200001 NUMERIC        01   data-b                         9
39253
39254      LINKAGE SECTION
39255
3925600001 ALPHANUMERIC   01   stuff                          X
39257
39258GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0003
39259
39260NAME                           DEFINED                REFERENCES
39261
39262data-b                         7       *12      13                     x2
39263
39264stuff                          9       *10      12     *16             x3
39265
39266GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0004
39267
39268LABEL                          DEFINED                REFERENCES
39269
39270E prog__2                      10
39271P MAIN                         11     not referenced
39272P EX                           18       14                             x1
39273
39274GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0005
39275
39276Error/Warning summary:
39277
39278prog-2.cob:16: warning: unreachable statement 'ACCEPT'
39279
392802 warnings in compilation group
392810 errors in compilation group
39282_ATEOF
39283
39284
39285# Check once with $COMPILE and once with $COMPILE_ONLY.
39286# This tests whether codegen affects the listing.
39287
39288{ set +x
39289$as_echo "$at_srcdir/listings.at:1879: \$COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob"
39290at_fn_check_prepare_dynamic "$COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob" "listings.at:1879"
39291( $at_check_trace; $COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob
39292) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39293at_status=$? at_failed=false
39294$at_check_filter
39295echo >>"$at_stderr"; $as_echo "prog-1.cob:14: warning: unreachable statement 'DISPLAY'
39296prog-2.cob: in paragraph 'MAIN':
39297prog-2.cob:16: warning: unreachable statement 'ACCEPT'
39298" | \
39299  $at_diff - "$at_stderr" || at_failed=:
39300at_fn_diff_devnull "$at_stdout" || at_failed=:
39301at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1879"
39302$at_failed && at_fn_log_failure  \
39303"prog.lst"
39304$at_traceon; }
39305
39306{ set +x
39307$as_echo "$at_srcdir/listings.at:1884: \$UNIFY_LISTING prog.lst prog.lis"
39308at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1884"
39309( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39310) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39311at_status=$? at_failed=false
39312$at_check_filter
39313at_fn_diff_devnull "$at_stderr" || at_failed=:
39314at_fn_diff_devnull "$at_stdout" || at_failed=:
39315at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1884"
39316$at_failed && at_fn_log_failure  \
39317"prog.lst"
39318$at_traceon; }
39319
39320{ set +x
39321$as_echo "$at_srcdir/listings.at:1885: diff expected.lst prog.lis"
39322at_fn_check_prepare_trace "listings.at:1885"
39323( $at_check_trace; diff expected.lst prog.lis
39324) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39325at_status=$? at_failed=false
39326$at_check_filter
39327at_fn_diff_devnull "$at_stderr" || at_failed=:
39328at_fn_diff_devnull "$at_stdout" || at_failed=:
39329at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1885"
39330$at_failed && at_fn_log_failure  \
39331"prog.lst"
39332$at_traceon; }
39333
39334
39335{ set +x
39336$as_echo "$at_srcdir/listings.at:1887: \$COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob"
39337at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob" "listings.at:1887"
39338( $at_check_trace; $COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob
39339) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39340at_status=$? at_failed=false
39341$at_check_filter
39342echo >>"$at_stderr"; $as_echo "prog-1.cob:14: warning: unreachable statement 'DISPLAY'
39343prog-2.cob: in paragraph 'MAIN':
39344prog-2.cob:16: warning: unreachable statement 'ACCEPT'
39345" | \
39346  $at_diff - "$at_stderr" || at_failed=:
39347at_fn_diff_devnull "$at_stdout" || at_failed=:
39348at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1887"
39349$at_failed && at_fn_log_failure  \
39350"prog.lst"
39351$at_traceon; }
39352
39353{ set +x
39354$as_echo "$at_srcdir/listings.at:1892: \$UNIFY_LISTING prog.lst prog.lis"
39355at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1892"
39356( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39357) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39358at_status=$? at_failed=false
39359$at_check_filter
39360at_fn_diff_devnull "$at_stderr" || at_failed=:
39361at_fn_diff_devnull "$at_stdout" || at_failed=:
39362at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1892"
39363$at_failed && at_fn_log_failure  \
39364"prog.lst"
39365$at_traceon; }
39366
39367{ set +x
39368$as_echo "$at_srcdir/listings.at:1893: diff expected.lst prog.lis"
39369at_fn_check_prepare_trace "listings.at:1893"
39370( $at_check_trace; diff expected.lst prog.lis
39371) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39372at_status=$? at_failed=false
39373$at_check_filter
39374at_fn_diff_devnull "$at_stderr" || at_failed=:
39375at_fn_diff_devnull "$at_stdout" || at_failed=:
39376at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1893"
39377$at_failed && at_fn_log_failure  \
39378"prog.lst"
39379$at_traceon; }
39380
39381
39382  set +x
39383  $at_times_p && times >"$at_times_file"
39384) 5>&1 2>&1 7>&- | eval $at_tee_pipe
39385read at_status <"$at_status_file"
39386#AT_STOP_425
39387#AT_START_426
39388at_fn_group_banner 426 'listings.at:1898' \
39389  "Wide listing" "                                   " 3
39390at_xfail=no
39391(
39392  $as_echo "426. $at_setup_line: testing $at_desc ..."
39393  $at_traceon
39394
39395
39396
39397
39398
39399cat >prog.cob <<'_ATEOF'
39400
39401       IDENTIFICATION   DIVISION.                                       PROG001
39402       PROGRAM-ID.      prog.                                           PROG002
39403       DATA             DIVISION.                                       PROG003
39404       WORKING-STORAGE  SECTION.                                        PROG004
39405      /                                                                 PROG005
39406       PROCEDURE        DIVISION.                                       PROG006
39407           STOP RUN.                                                    PROG007
39408_ATEOF
39409
39410
39411{ set +x
39412$as_echo "$at_srcdir/listings.at:1913: \$COMPILE_ONLY -T prog.lst prog.cob"
39413at_fn_check_prepare_dynamic "$COMPILE_ONLY -T prog.lst prog.cob" "listings.at:1913"
39414( $at_check_trace; $COMPILE_ONLY -T prog.lst prog.cob
39415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39416at_status=$? at_failed=false
39417$at_check_filter
39418at_fn_diff_devnull "$at_stderr" || at_failed=:
39419at_fn_diff_devnull "$at_stdout" || at_failed=:
39420at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1913"
39421$at_failed && at_fn_log_failure  \
39422"prog.lst"
39423$at_traceon; }
39424
39425
39426cat >prog9.lst <<'_ATEOF'
39427GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0001
39428
39429LINE    PG/LN  A...B............................................................SEQUENCE
39430
39431000001
39432000002         IDENTIFICATION   DIVISION.                                       PROG001
39433000003         PROGRAM-ID.      prog.                                           PROG002
39434000004         DATA             DIVISION.                                       PROG003
39435000005         WORKING-STORAGE  SECTION.                                        PROG004
39436GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0002
39437
39438LINE    PG/LN  A...B............................................................SEQUENCE
39439
39440000006        /                                                                 PROG005
39441000007         PROCEDURE        DIVISION.                                       PROG006
39442000008             STOP RUN.                                                    PROG007
39443
39444
394450 warnings in compilation group
394460 errors in compilation group
39447_ATEOF
39448
39449
39450{ set +x
39451$as_echo "$at_srcdir/listings.at:1938: \$UNIFY_LISTING prog.lst prog.lis"
39452at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1938"
39453( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39454) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39455at_status=$? at_failed=false
39456$at_check_filter
39457at_fn_diff_devnull "$at_stderr" || at_failed=:
39458at_fn_diff_devnull "$at_stdout" || at_failed=:
39459at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1938"
39460$at_failed && at_fn_log_failure  \
39461"prog.lst"
39462$at_traceon; }
39463
39464{ set +x
39465$as_echo "$at_srcdir/listings.at:1939: diff prog9.lst prog.lis"
39466at_fn_check_prepare_trace "listings.at:1939"
39467( $at_check_trace; diff prog9.lst prog.lis
39468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39469at_status=$? at_failed=false
39470$at_check_filter
39471at_fn_diff_devnull "$at_stderr" || at_failed=:
39472at_fn_diff_devnull "$at_stdout" || at_failed=:
39473at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1939"
39474$at_failed && at_fn_log_failure  \
39475"prog.lst"
39476$at_traceon; }
39477
39478
39479cat >prog2.cob <<'_ATEOF'
39480
39481  IDENTIFICATION   DIVISION.
39482  PROGRAM-ID.      prog2.
39483  DATA             DIVISION.
39484  WORKING-STORAGE  SECTION.
39485  >> PAGE  page  feed  comment
39486  PROCEDURE        DIVISION.
39487 DISPLAY
39488 '3456&'.
39489  STOP RUN.
39490_ATEOF
39491
39492
39493{ set +x
39494$as_echo "$at_srcdir/listings.at:1953: \$COMPILE_ONLY -T prog.lst -free prog2.cob"
39495at_fn_check_prepare_dynamic "$COMPILE_ONLY -T prog.lst -free prog2.cob" "listings.at:1953"
39496( $at_check_trace; $COMPILE_ONLY -T prog.lst -free prog2.cob
39497) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39498at_status=$? at_failed=false
39499$at_check_filter
39500at_fn_diff_devnull "$at_stderr" || at_failed=:
39501at_fn_diff_devnull "$at_stdout" || at_failed=:
39502at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1953"
39503$at_failed && at_fn_log_failure  \
39504"prog.lst"
39505$at_traceon; }
39506
39507
39508cat >prog10.lst <<'_ATEOF'
39509GnuCOBOL V.R.P          prog2.cob                                                     DDD MMM dd HH:MM:SS YYYY  Page 0001
39510
39511LINE    .....................................................SOURCE.....................................................
39512
39513000001
39514000002    IDENTIFICATION   DIVISION.
39515000003    PROGRAM-ID.      prog2.
39516000004    DATA             DIVISION.
39517000005    WORKING-STORAGE  SECTION.
39518GnuCOBOL V.R.P          prog2.cob                                                     DDD MMM dd HH:MM:SS YYYY  Page 0002
39519
39520LINE    .....................................................SOURCE.....................................................
39521
39522000006    >> PAGE  page  feed  comment
39523000007    PROCEDURE        DIVISION.
39524000008   DISPLAY
39525000009   '3456&'.
39526000010    STOP RUN.
39527
39528
395290 warnings in compilation group
395300 errors in compilation group
39531_ATEOF
39532
39533
39534{ set +x
39535$as_echo "$at_srcdir/listings.at:1980: \$UNIFY_LISTING prog.lst prog.lis"
39536at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1980"
39537( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39538) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39539at_status=$? at_failed=false
39540$at_check_filter
39541at_fn_diff_devnull "$at_stderr" || at_failed=:
39542at_fn_diff_devnull "$at_stdout" || at_failed=:
39543at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1980"
39544$at_failed && at_fn_log_failure  \
39545"prog.lst"
39546$at_traceon; }
39547
39548{ set +x
39549$as_echo "$at_srcdir/listings.at:1981: diff prog10.lst prog.lis"
39550at_fn_check_prepare_trace "listings.at:1981"
39551( $at_check_trace; diff prog10.lst prog.lis
39552) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39553at_status=$? at_failed=false
39554$at_check_filter
39555at_fn_diff_devnull "$at_stderr" || at_failed=:
39556at_fn_diff_devnull "$at_stdout" || at_failed=:
39557at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1981"
39558$at_failed && at_fn_log_failure  \
39559"prog.lst"
39560$at_traceon; }
39561
39562
39563  set +x
39564  $at_times_p && times >"$at_times_file"
39565) 5>&1 2>&1 7>&- | eval $at_tee_pipe
39566read at_status <"$at_status_file"
39567#AT_STOP_426
39568#AT_START_427
39569at_fn_group_banner 427 'listings.at:1986' \
39570  "Symbols: simple" "                                " 3
39571at_xfail=no
39572(
39573  $as_echo "427. $at_setup_line: testing $at_desc ..."
39574  $at_traceon
39575
39576
39577
39578
39579
39580cat >prog.cob <<'_ATEOF'
39581
39582       IDENTIFICATION   DIVISION.
39583       PROGRAM-ID.      prog.
39584       DATA             DIVISION.
39585       WORKING-STORAGE  SECTION.
39586       01 WS-ONE    PIC 9(4) VALUE 37.
39587       01 WS-TWO    PIC A(4) VALUE 'HIGH'.
39588       01 WS-THREE  PIC X(4) VALUE 'BAR'.
39589       01 WS-FOUR            COMP-1 VALUE 37.
39590       01 WS-FIVE            COMP-2 VALUE 37.
39591       01 WS-SIX    PIC S999 COMP-3 VALUE -37.
39592       01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
39593       PROCEDURE        DIVISION.
39594           STOP RUN.
39595_ATEOF
39596
39597
39598{ set +x
39599$as_echo "$at_srcdir/listings.at:2007: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols prog.cob"
39600at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols prog.cob" "listings.at:2007"
39601( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols prog.cob
39602) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39603at_status=$? at_failed=false
39604$at_check_filter
39605at_fn_diff_devnull "$at_stderr" || at_failed=:
39606at_fn_diff_devnull "$at_stdout" || at_failed=:
39607at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2007"
39608$at_failed && at_fn_log_failure  \
39609"prog.lst"
39610$at_traceon; }
39611
39612
39613cat >prog15.lst <<'_ATEOF'
39614GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
39615
39616LINE    PG/LN  A...B............................................................
39617
39618000001
39619000002         IDENTIFICATION   DIVISION.
39620000003         PROGRAM-ID.      prog.
39621000004         DATA             DIVISION.
39622000005         WORKING-STORAGE  SECTION.
39623000006         01 WS-ONE    PIC 9(4) VALUE 37.
39624000007         01 WS-TWO    PIC A(4) VALUE 'HIGH'.
39625000008         01 WS-THREE  PIC X(4) VALUE 'BAR'.
39626000009         01 WS-FOUR            COMP-1 VALUE 37.
39627000010         01 WS-FIVE            COMP-2 VALUE 37.
39628000011         01 WS-SIX    PIC S999 COMP-3 VALUE -37.
39629000012         01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
39630000013         PROCEDURE        DIVISION.
39631000014             STOP RUN.
39632
39633SIZE  TYPE           LVL  NAME                           PICTURE
39634
39635      WORKING-STORAGE SECTION
39636
3963700004 NUMERIC        01   WS-ONE                         9(4)
39638
3963900004 ALPHABETIC     01   WS-TWO                         A(4)
39640
3964100004 ALPHANUMERIC   01   WS-THREE                       X(4)
39642
3964300004 NUMERIC        01   WS-FOUR                        S9(7)V9(8) COMP-1
39644
3964500008 NUMERIC        01   WS-FIVE                        S9(17)V9(17) COMP-2
39646
3964700002 NUMERIC        01   WS-SIX                         S999 COMP-3
39648
3964900013 NUMERIC        01   WS-SEVEN                       $$,$$$,$$9.99
39650
39651
39652_ATEOF
39653
39654
39655{ set +x
39656$as_echo "$at_srcdir/listings.at:2050: \$UNIFY_LISTING prog.lst prog.lis once"
39657at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2050"
39658( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
39659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39660at_status=$? at_failed=false
39661$at_check_filter
39662at_fn_diff_devnull "$at_stderr" || at_failed=:
39663at_fn_diff_devnull "$at_stdout" || at_failed=:
39664at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2050"
39665$at_failed && at_fn_log_failure  \
39666"prog.lst"
39667$at_traceon; }
39668
39669{ set +x
39670$as_echo "$at_srcdir/listings.at:2051: diff prog15.lst prog.lis"
39671at_fn_check_prepare_trace "listings.at:2051"
39672( $at_check_trace; diff prog15.lst prog.lis
39673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39674at_status=$? at_failed=false
39675$at_check_filter
39676at_fn_diff_devnull "$at_stderr" || at_failed=:
39677at_fn_diff_devnull "$at_stdout" || at_failed=:
39678at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2051"
39679$at_failed && at_fn_log_failure  \
39680"prog.lst"
39681$at_traceon; }
39682
39683
39684cat >prog2.cob <<'_ATEOF'
39685
39686       IDENTIFICATION   DIVISION.
39687       PROGRAM-ID.      prog2.
39688       DATA             DIVISION.
39689       LINKAGE          SECTION.
39690       01 WS-ONE    PIC 9(4).
39691       01 WS-TWO    PIC A(4).
39692       01 WS-THREE  PIC X(4).
39693       PROCEDURE        DIVISION.
39694           STOP RUN.
39695_ATEOF
39696
39697
39698{ set +x
39699$as_echo "$at_srcdir/listings.at:2065: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.cob"
39700at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.cob" "listings.at:2065"
39701( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.cob
39702) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39703at_status=$? at_failed=false
39704$at_check_filter
39705at_fn_diff_devnull "$at_stderr" || at_failed=:
39706at_fn_diff_devnull "$at_stdout" || at_failed=:
39707at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2065"
39708$at_failed && at_fn_log_failure  \
39709"prog.lst"
39710$at_traceon; }
39711
39712
39713cat >prog16.lst <<'_ATEOF'
39714GnuCOBOL V.R.P               prog2.cob                  DDD MMM dd HH:MM:SS YYYY
39715
39716SIZE  TYPE           LVL  NAME                           PICTURE
39717
39718      LINKAGE SECTION
39719
3972000004 NUMERIC        01   WS-ONE                         9(4)
39721
3972200004 ALPHABETIC     01   WS-TWO                         A(4)
39723
3972400004 ALPHANUMERIC   01   WS-THREE                       X(4)
39725
39726
39727_ATEOF
39728
39729
39730{ set +x
39731$as_echo "$at_srcdir/listings.at:2083: \$UNIFY_LISTING prog.lst prog.lis once"
39732at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2083"
39733( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
39734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39735at_status=$? at_failed=false
39736$at_check_filter
39737at_fn_diff_devnull "$at_stderr" || at_failed=:
39738at_fn_diff_devnull "$at_stdout" || at_failed=:
39739at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2083"
39740$at_failed && at_fn_log_failure  \
39741"prog.lst"
39742$at_traceon; }
39743
39744{ set +x
39745$as_echo "$at_srcdir/listings.at:2084: diff prog16.lst prog.lis"
39746at_fn_check_prepare_trace "listings.at:2084"
39747( $at_check_trace; diff prog16.lst prog.lis
39748) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39749at_status=$? at_failed=false
39750$at_check_filter
39751at_fn_diff_devnull "$at_stderr" || at_failed=:
39752at_fn_diff_devnull "$at_stdout" || at_failed=:
39753at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2084"
39754$at_failed && at_fn_log_failure  \
39755"prog.lst"
39756$at_traceon; }
39757
39758
39759cat >prog3.cob <<'_ATEOF'
39760
39761       IDENTIFICATION   DIVISION.
39762       PROGRAM-ID.      prog3.
39763       DATA             DIVISION.
39764       WORKING-STORAGE  SECTION.
39765       01 WS-ONE    PIC 9(4) VALUE 37.
39766       01 WS-TWO    PIC A(4) VALUE 'HIGH'.
39767       01 WS-THREE  PIC X(4) VALUE 'BAR'.
39768       01 WS-FOUR            COMP-1 VALUE 37.
39769       01 WS-FIVE            COMP-2 VALUE 37.
39770       01 WS-SIX    PIC S999 COMP-3 VALUE -37.
39771       01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
39772       PROCEDURE        DIVISION.
39773           STOP RUN.
39774_ATEOF
39775
39776
39777{ set +x
39778$as_echo "$at_srcdir/listings.at:2102: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob"
39779at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob" "listings.at:2102"
39780( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob
39781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39782at_status=$? at_failed=false
39783$at_check_filter
39784at_fn_diff_devnull "$at_stderr" || at_failed=:
39785at_fn_diff_devnull "$at_stdout" || at_failed=:
39786at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2102"
39787$at_failed && at_fn_log_failure  \
39788"prog.lst"
39789$at_traceon; }
39790
39791
39792cat >prog15-1.lst <<'_ATEOF'
39793GnuCOBOL V.R.P          prog3.cob                  DDD MMM dd HH:MM:SS YYYY
39794
39795SIZE  TYPE           LVL  NAME                           PICTURE
39796
39797      WORKING-STORAGE SECTION
39798
3979900004 NUMERIC        01   WS-ONE                         9(4)
39800
3980100004 ALPHABETIC     01   WS-TWO                         A(4)
39802
3980300004 ALPHANUMERIC   01   WS-THREE                       X(4)
39804
3980500004 NUMERIC        01   WS-FOUR                        S9(7)V9(8) COMP-1
39806
3980700008 NUMERIC        01   WS-FIVE                        S9(17)V9(17) COMP-2
39808
3980900002 NUMERIC        01   WS-SIX                         S999 COMP-3
39810
3981100013 NUMERIC        01   WS-SEVEN                       $$,$$$,$$9.99
39812
39813
39814_ATEOF
39815
39816
39817{ set +x
39818$as_echo "$at_srcdir/listings.at:2128: \$UNIFY_LISTING prog.lst prog.lis"
39819at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2128"
39820( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
39821) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39822at_status=$? at_failed=false
39823$at_check_filter
39824at_fn_diff_devnull "$at_stderr" || at_failed=:
39825at_fn_diff_devnull "$at_stdout" || at_failed=:
39826at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2128"
39827$at_failed && at_fn_log_failure  \
39828"prog.lst"
39829$at_traceon; }
39830
39831{ set +x
39832$as_echo "$at_srcdir/listings.at:2129: diff prog15-1.lst prog.lis"
39833at_fn_check_prepare_trace "listings.at:2129"
39834( $at_check_trace; diff prog15-1.lst prog.lis
39835) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39836at_status=$? at_failed=false
39837$at_check_filter
39838at_fn_diff_devnull "$at_stderr" || at_failed=:
39839at_fn_diff_devnull "$at_stdout" || at_failed=:
39840at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2129"
39841$at_failed && at_fn_log_failure  \
39842"prog.lst"
39843$at_traceon; }
39844
39845
39846# verify that the symbol listing is identical if full codegen was done
39847{ set +x
39848$as_echo "$at_srcdir/listings.at:2132: \$COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob"
39849at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob" "listings.at:2132"
39850( $at_check_trace; $COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob
39851) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39852at_status=$? at_failed=false
39853$at_check_filter
39854at_fn_diff_devnull "$at_stderr" || at_failed=:
39855at_fn_diff_devnull "$at_stdout" || at_failed=:
39856at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2132"
39857$at_failed && at_fn_log_failure  \
39858"prog.lst"
39859$at_traceon; }
39860
39861
39862{ set +x
39863$as_echo "$at_srcdir/listings.at:2134: \$UNIFY_LISTING prog.lst compiled.lis"
39864at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst compiled.lis" "listings.at:2134"
39865( $at_check_trace; $UNIFY_LISTING prog.lst compiled.lis
39866) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39867at_status=$? at_failed=false
39868$at_check_filter
39869at_fn_diff_devnull "$at_stderr" || at_failed=:
39870at_fn_diff_devnull "$at_stdout" || at_failed=:
39871at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2134"
39872$at_failed && at_fn_log_failure  \
39873"prog.lst"
39874$at_traceon; }
39875
39876{ set +x
39877$as_echo "$at_srcdir/listings.at:2135: diff prog15-1.lst compiled.lis"
39878at_fn_check_prepare_trace "listings.at:2135"
39879( $at_check_trace; diff prog15-1.lst compiled.lis
39880) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39881at_status=$? at_failed=false
39882$at_check_filter
39883at_fn_diff_devnull "$at_stderr" || at_failed=:
39884at_fn_diff_devnull "$at_stdout" || at_failed=:
39885at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2135"
39886$at_failed && at_fn_log_failure  \
39887"prog.lst"
39888$at_traceon; }
39889
39890
39891  set +x
39892  $at_times_p && times >"$at_times_file"
39893) 5>&1 2>&1 7>&- | eval $at_tee_pipe
39894read at_status <"$at_status_file"
39895#AT_STOP_427
39896#AT_START_428
39897at_fn_group_banner 428 'listings.at:2140' \
39898  "Symbols: pointer" "                               " 3
39899at_xfail=no
39900(
39901  $as_echo "428. $at_setup_line: testing $at_desc ..."
39902  $at_traceon
39903
39904
39905
39906
39907
39908cat >prog.cob <<'_ATEOF'
39909
39910       IDENTIFICATION   DIVISION.
39911       PROGRAM-ID.      prog.
39912       DATA             DIVISION.
39913       WORKING-STORAGE  SECTION.
39914       77  WS-Where           pic x(512).
39915
39916       01  ws-mysql.
39917           02  ws-mysql-cid                        usage pointer.
39918           02  ws-mysql-result                     usage pointer.
39919           02  ws-mysql-result-2                   usage pointer.
39920           02  ws-mysql-result-3                   usage pointer.
39921           02  ws-mysql-count-rows                 pic s9(9) comp.
39922           02  ws-mysql-error-number               pic x(4).
39923           02  ws-mysql-error-message              pic x(80).
39924           02  ws-mysql-host-name                  pic x(64).
39925           02  ws-mysql-implementation             pic x(64).
39926           02  ws-mysql-password                   pic x(64).
39927           02  ws-mysql-base-name                  pic x(64).
39928           02  ws-mysql-port-number                pic x(4).
39929           02  ws-mysql-socket                     pic x(64).
39930           02  ws-mysql-command                    pic x(4096).
39931
39932       01  ws-No-Paragraph pic 9(4).
39933       local-storage section.
39934       01  subscripts usage comp-5.
39935           12 J                    pic s9(4).
39936           12 K                    pic s9(4).
39937           12 L                    pic s9(4).
39938
39939       SCREEN           SECTION.
39940       01  Display-Message-1 foreground-color 2.
39941           03  value "WS-Where=" line 23 col  1.
39942           03  from WS-Where (1:J) pic x(69) col 10.
39943       01  Display-Message-2 foreground-color 2.
39944           03  value "ST004 SQL Err No.=" line 4 col  1.
39945           03  using ws-mysql-error-number pic x(4) col 19.
39946           03  value " Para=" col 23.
39947           03  using WS-No-Paragraph pic 9(3) col 29.
39948           03  value " SQL Cmd=" col 32.
39949           03  using ws-mysql-command pic x(199) col 41.
39950           03  value "SQL Err Msg=" line 7 col  1.
39951           03  using ws-mysql-error-message pic x(67) col 13.
39952       PROCEDURE        DIVISION.
39953           STOP RUN.
39954_ATEOF
39955
39956
39957{ set +x
39958$as_echo "$at_srcdir/listings.at:2192: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
39959at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:2192"
39960( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
39961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39962at_status=$? at_failed=false
39963$at_check_filter
39964at_fn_diff_devnull "$at_stderr" || at_failed=:
39965at_fn_diff_devnull "$at_stdout" || at_failed=:
39966at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2192"
39967$at_failed && at_fn_log_failure  \
39968"prog.lst"
39969$at_traceon; }
39970
39971
39972{ set +x
39973$as_echo "$at_srcdir/listings.at:2194: \$UNIFY_LISTING prog.lst prog.lis once"
39974at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2194"
39975( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
39976) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39977at_status=$? at_failed=false
39978$at_check_filter
39979at_fn_diff_devnull "$at_stderr" || at_failed=:
39980at_fn_diff_devnull "$at_stdout" || at_failed=:
39981at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2194"
39982$at_failed && at_fn_log_failure  \
39983"prog.lst"
39984$at_traceon; }
39985
39986
39987{ set +x
39988$as_echo "$at_srcdir/listings.at:2196: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
39989at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "listings.at:2196"
39990( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
39991) >>"$at_stdout" 2>>"$at_stderr" 5>&-
39992at_status=$? at_failed=false
39993$at_check_filter
39994at_fn_diff_devnull "$at_stderr" || at_failed=:
39995at_fn_diff_devnull "$at_stdout" || at_failed=:
39996at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
39997if $at_failed; then :
39998  # Previous test "failed" --> 32 bit
39999
40000cat >prog17-32.lst <<'_ATEOF'
40001GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
40002
40003LINE    PG/LN  A...B............................................................
40004
40005000001
40006000002         IDENTIFICATION   DIVISION.
40007000003         PROGRAM-ID.      prog.
40008000004         DATA             DIVISION.
40009000005         WORKING-STORAGE  SECTION.
40010000006         77  WS-Where           pic x(512).
40011000007
40012000008         01  ws-mysql.
40013000009             02  ws-mysql-cid                        usage pointer.
40014000010             02  ws-mysql-result                     usage pointer.
40015000011             02  ws-mysql-result-2                   usage pointer.
40016000012             02  ws-mysql-result-3                   usage pointer.
40017000013             02  ws-mysql-count-rows                 pic s9(9) comp.
40018000014             02  ws-mysql-error-number               pic x(4).
40019000015             02  ws-mysql-error-message              pic x(80).
40020000016             02  ws-mysql-host-name                  pic x(64).
40021000017             02  ws-mysql-implementation             pic x(64).
40022000018             02  ws-mysql-password                   pic x(64).
40023000019             02  ws-mysql-base-name                  pic x(64).
40024000020             02  ws-mysql-port-number                pic x(4).
40025000021             02  ws-mysql-socket                     pic x(64).
40026000022             02  ws-mysql-command                    pic x(4096).
40027000023
40028000024         01  ws-No-Paragraph pic 9(4).
40029000025         local-storage section.
40030000026         01  subscripts usage comp-5.
40031000027             12 J                    pic s9(4).
40032000028             12 K                    pic s9(4).
40033000029             12 L                    pic s9(4).
40034000030
40035000031         SCREEN           SECTION.
40036000032         01  Display-Message-1 foreground-color 2.
40037000033             03  value "WS-Where=" line 23 col  1.
40038000034             03  from WS-Where (1:J) pic x(69) col 10.
40039000035         01  Display-Message-2 foreground-color 2.
40040000036             03  value "ST004 SQL Err No.=" line 4 col  1.
40041000037             03  using ws-mysql-error-number pic x(4) col 19.
40042000038             03  value " Para=" col 23.
40043000039             03  using WS-No-Paragraph pic 9(3) col 29.
40044000040             03  value " SQL Cmd=" col 32.
40045000041             03  using ws-mysql-command pic x(199) col 41.
40046000042             03  value "SQL Err Msg=" line 7 col  1.
40047000043             03  using ws-mysql-error-message pic x(67) col 13.
40048000044         PROCEDURE        DIVISION.
40049000045             STOP RUN.
40050
40051SIZE  TYPE           LVL  NAME                           PICTURE
40052
40053      WORKING-STORAGE SECTION
40054
4005500512 ALPHANUMERIC   77   WS-Where                       X(512)
40056
4005704524 GROUP          01   ws-mysql
4005800004 POINTER        02   ws-mysql-cid
4005900004 POINTER        02   ws-mysql-result
4006000004 POINTER        02   ws-mysql-result-2
4006100004 POINTER        02   ws-mysql-result-3
4006200004 NUMERIC        02   ws-mysql-count-rows            S9(9) COMP
4006300004 ALPHANUMERIC   02   ws-mysql-error-number          X(4)
4006400080 ALPHANUMERIC   02   ws-mysql-error-message         X(80)
4006500064 ALPHANUMERIC   02   ws-mysql-host-name             X(64)
4006600064 ALPHANUMERIC   02   ws-mysql-implementation        X(64)
4006700064 ALPHANUMERIC   02   ws-mysql-password              X(64)
4006800064 ALPHANUMERIC   02   ws-mysql-base-name             X(64)
4006900004 ALPHANUMERIC   02   ws-mysql-port-number           X(4)
4007000064 ALPHANUMERIC   02   ws-mysql-socket                X(64)
4007104096 ALPHANUMERIC   02   ws-mysql-command               X(4096)
40072
4007300004 NUMERIC        01   ws-No-Paragraph                9(4)
40074
40075      LOCAL-STORAGE SECTION
40076
4007700006 GROUP          01   subscripts
4007800002 NUMERIC        12   J                              S9(4) COMP-5
4007900002 NUMERIC        12   K                              S9(4) COMP-5
4008000002 NUMERIC        12   L                              S9(4) COMP-5
40081
40082      SCREEN SECTION
40083
4008400078 GROUP          01   Display-Message-1
4008500009 ALPHANUMERIC   03   FILLER                         X(9)
4008600069 ALPHANUMERIC   03   FILLER                         X(69)
40087
4008800318 GROUP          01   Display-Message-2
4008900018 ALPHANUMERIC   03   FILLER                         X(18)
4009000004 ALPHANUMERIC   03   FILLER                         X(4)
4009100006 ALPHANUMERIC   03   FILLER                         X(6)
4009200003 NUMERIC        03   FILLER                         9(3)
4009300009 ALPHANUMERIC   03   FILLER                         X(9)
4009400199 ALPHANUMERIC   03   FILLER                         X(199)
4009500012 ALPHANUMERIC   03   FILLER                         X(12)
4009600067 ALPHANUMERIC   03   FILLER                         X(67)
40097
40098
400990 warnings in compilation group
401000 errors in compilation group
40101_ATEOF
40102
40103
40104{ set +x
40105$as_echo "$at_srcdir/listings.at:2196: diff prog17-32.lst prog.lis"
40106at_fn_check_prepare_trace "listings.at:2196"
40107( $at_check_trace; diff prog17-32.lst prog.lis
40108) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40109at_status=$? at_failed=false
40110$at_check_filter
40111at_fn_diff_devnull "$at_stderr" || at_failed=:
40112at_fn_diff_devnull "$at_stdout" || at_failed=:
40113at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
40114$at_failed && at_fn_log_failure  \
40115"prog.lst"
40116$at_traceon; }
40117
40118
40119
40120else
40121  # Previous test "passed" --> 64 bit
40122
40123cat >prog17-64.lst <<'_ATEOF'
40124GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
40125
40126LINE    PG/LN  A...B............................................................
40127
40128000001
40129000002         IDENTIFICATION   DIVISION.
40130000003         PROGRAM-ID.      prog.
40131000004         DATA             DIVISION.
40132000005         WORKING-STORAGE  SECTION.
40133000006         77  WS-Where           pic x(512).
40134000007
40135000008         01  ws-mysql.
40136000009             02  ws-mysql-cid                        usage pointer.
40137000010             02  ws-mysql-result                     usage pointer.
40138000011             02  ws-mysql-result-2                   usage pointer.
40139000012             02  ws-mysql-result-3                   usage pointer.
40140000013             02  ws-mysql-count-rows                 pic s9(9) comp.
40141000014             02  ws-mysql-error-number               pic x(4).
40142000015             02  ws-mysql-error-message              pic x(80).
40143000016             02  ws-mysql-host-name                  pic x(64).
40144000017             02  ws-mysql-implementation             pic x(64).
40145000018             02  ws-mysql-password                   pic x(64).
40146000019             02  ws-mysql-base-name                  pic x(64).
40147000020             02  ws-mysql-port-number                pic x(4).
40148000021             02  ws-mysql-socket                     pic x(64).
40149000022             02  ws-mysql-command                    pic x(4096).
40150000023
40151000024         01  ws-No-Paragraph pic 9(4).
40152000025         local-storage section.
40153000026         01  subscripts usage comp-5.
40154000027             12 J                    pic s9(4).
40155000028             12 K                    pic s9(4).
40156000029             12 L                    pic s9(4).
40157000030
40158000031         SCREEN           SECTION.
40159000032         01  Display-Message-1 foreground-color 2.
40160000033             03  value "WS-Where=" line 23 col  1.
40161000034             03  from WS-Where (1:J) pic x(69) col 10.
40162000035         01  Display-Message-2 foreground-color 2.
40163000036             03  value "ST004 SQL Err No.=" line 4 col  1.
40164000037             03  using ws-mysql-error-number pic x(4) col 19.
40165000038             03  value " Para=" col 23.
40166000039             03  using WS-No-Paragraph pic 9(3) col 29.
40167000040             03  value " SQL Cmd=" col 32.
40168000041             03  using ws-mysql-command pic x(199) col 41.
40169000042             03  value "SQL Err Msg=" line 7 col  1.
40170000043             03  using ws-mysql-error-message pic x(67) col 13.
40171000044         PROCEDURE        DIVISION.
40172000045             STOP RUN.
40173
40174SIZE  TYPE           LVL  NAME                           PICTURE
40175
40176      WORKING-STORAGE SECTION
40177
4017800512 ALPHANUMERIC   77   WS-Where                       X(512)
40179
4018004540 GROUP          01   ws-mysql
4018100008 POINTER        02   ws-mysql-cid
4018200008 POINTER        02   ws-mysql-result
4018300008 POINTER        02   ws-mysql-result-2
4018400008 POINTER        02   ws-mysql-result-3
4018500004 NUMERIC        02   ws-mysql-count-rows            S9(9) COMP
4018600004 ALPHANUMERIC   02   ws-mysql-error-number          X(4)
4018700080 ALPHANUMERIC   02   ws-mysql-error-message         X(80)
4018800064 ALPHANUMERIC   02   ws-mysql-host-name             X(64)
4018900064 ALPHANUMERIC   02   ws-mysql-implementation        X(64)
4019000064 ALPHANUMERIC   02   ws-mysql-password              X(64)
4019100064 ALPHANUMERIC   02   ws-mysql-base-name             X(64)
4019200004 ALPHANUMERIC   02   ws-mysql-port-number           X(4)
4019300064 ALPHANUMERIC   02   ws-mysql-socket                X(64)
4019404096 ALPHANUMERIC   02   ws-mysql-command               X(4096)
40195
4019600004 NUMERIC        01   ws-No-Paragraph                9(4)
40197
40198      LOCAL-STORAGE SECTION
40199
4020000006 GROUP          01   subscripts
4020100002 NUMERIC        12   J                              S9(4) COMP-5
4020200002 NUMERIC        12   K                              S9(4) COMP-5
4020300002 NUMERIC        12   L                              S9(4) COMP-5
40204
40205      SCREEN SECTION
40206
4020700078 GROUP          01   Display-Message-1
4020800009 ALPHANUMERIC   03   FILLER                         X(9)
4020900069 ALPHANUMERIC   03   FILLER                         X(69)
40210
4021100318 GROUP          01   Display-Message-2
4021200018 ALPHANUMERIC   03   FILLER                         X(18)
4021300004 ALPHANUMERIC   03   FILLER                         X(4)
4021400006 ALPHANUMERIC   03   FILLER                         X(6)
4021500003 NUMERIC        03   FILLER                         9(3)
4021600009 ALPHANUMERIC   03   FILLER                         X(9)
4021700199 ALPHANUMERIC   03   FILLER                         X(199)
4021800012 ALPHANUMERIC   03   FILLER                         X(12)
4021900067 ALPHANUMERIC   03   FILLER                         X(67)
40220
40221
402220 warnings in compilation group
402230 errors in compilation group
40224_ATEOF
40225
40226
40227{ set +x
40228$as_echo "$at_srcdir/listings.at:2196: diff prog17-64.lst prog.lis"
40229at_fn_check_prepare_trace "listings.at:2196"
40230( $at_check_trace; diff prog17-64.lst prog.lis
40231) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40232at_status=$? at_failed=false
40233$at_check_filter
40234at_fn_diff_devnull "$at_stderr" || at_failed=:
40235at_fn_diff_devnull "$at_stdout" || at_failed=:
40236at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
40237$at_failed && at_fn_log_failure  \
40238"prog.lst"
40239$at_traceon; }
40240
40241
40242
40243fi
40244$at_failed && at_fn_log_failure  \
40245"prog.lst"
40246$at_traceon; }
40247
40248
40249
40250  set +x
40251  $at_times_p && times >"$at_times_file"
40252) 5>&1 2>&1 7>&- | eval $at_tee_pipe
40253read at_status <"$at_status_file"
40254#AT_STOP_428
40255#AT_START_429
40256at_fn_group_banner 429 'listings.at:2420' \
40257  "Symbols: multiple programs/functions" "           " 3
40258at_xfail=no
40259(
40260  $as_echo "429. $at_setup_line: testing $at_desc ..."
40261  $at_traceon
40262
40263
40264
40265
40266
40267cat >prog.cob <<'_ATEOF'
40268
40269       IDENTIFICATION   DIVISION.
40270       FUNCTION-ID.     WITHPAR.
40271       DATA             DIVISION.
40272       LINKAGE          SECTION.
40273       01 PAR-IN        PIC 9.
40274       01 PAR-OUT       PIC 9.
40275       PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
40276           ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
40277           GOBACK.
40278       END FUNCTION WITHPAR.
40279
40280       IDENTIFICATION   DIVISION.
40281       FUNCTION-ID.     WITHOUTPAR.
40282       DATA             DIVISION.
40283       LINKAGE          SECTION.
40284       01 PAR           PIC 9.
40285       PROCEDURE DIVISION RETURNING PAR.
40286           MOVE 1 TO PAR.
40287           GOBACK.
40288       END FUNCTION WITHOUTPAR.
40289
40290       IDENTIFICATION   DIVISION.
40291       PROGRAM-ID.      prog.
40292       ENVIRONMENT      DIVISION.
40293       CONFIGURATION    SECTION.
40294       REPOSITORY.
40295           FUNCTION     WITHPAR
40296           FUNCTION     WITHOUTPAR.
40297       PROCEDURE        DIVISION.
40298           IF WITHPAR(1) NOT = 2
40299              DISPLAY WITHPAR(1)
40300              END-DISPLAY
40301           END-IF.
40302           IF WITHOUTPAR NOT = 1
40303              DISPLAY WITHOUTPAR
40304              END-DISPLAY
40305           END-IF.
40306           STOP RUN.
40307       END PROGRAM prog.
40308_ATEOF
40309
40310
40311{ set +x
40312$as_echo "$at_srcdir/listings.at:2467: \$COMPILE_ONLY -t prog.lst -tsymbols prog.cob"
40313at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols prog.cob" "listings.at:2467"
40314( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols prog.cob
40315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40316at_status=$? at_failed=false
40317$at_check_filter
40318at_fn_diff_devnull "$at_stderr" || at_failed=:
40319at_fn_diff_devnull "$at_stdout" || at_failed=:
40320at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2467"
40321$at_failed && at_fn_log_failure  \
40322"prog.lst"
40323$at_traceon; }
40324
40325
40326cat >prog18.lst <<'_ATEOF'
40327GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
40328
40329LINE    PG/LN  A...B............................................................
40330
40331000001
40332000002         IDENTIFICATION   DIVISION.
40333000003         FUNCTION-ID.     WITHPAR.
40334000004         DATA             DIVISION.
40335000005         LINKAGE          SECTION.
40336000006         01 PAR-IN        PIC 9.
40337000007         01 PAR-OUT       PIC 9.
40338000008         PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
40339000009             ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
40340000010             GOBACK.
40341000011         END FUNCTION WITHPAR.
40342000012
40343000013         IDENTIFICATION   DIVISION.
40344000014         FUNCTION-ID.     WITHOUTPAR.
40345000015         DATA             DIVISION.
40346000016         LINKAGE          SECTION.
40347000017         01 PAR           PIC 9.
40348000018         PROCEDURE DIVISION RETURNING PAR.
40349000019             MOVE 1 TO PAR.
40350000020             GOBACK.
40351000021         END FUNCTION WITHOUTPAR.
40352000022
40353000023         IDENTIFICATION   DIVISION.
40354000024         PROGRAM-ID.      prog.
40355000025         ENVIRONMENT      DIVISION.
40356000026         CONFIGURATION    SECTION.
40357000027         REPOSITORY.
40358000028             FUNCTION     WITHPAR
40359000029             FUNCTION     WITHOUTPAR.
40360000030         PROCEDURE        DIVISION.
40361000031             IF WITHPAR(1) NOT = 2
40362000032                DISPLAY WITHPAR(1)
40363000033                END-DISPLAY
40364000034             END-IF.
40365000035             IF WITHOUTPAR NOT = 1
40366000036                DISPLAY WITHOUTPAR
40367000037                END-DISPLAY
40368000038             END-IF.
40369000039             STOP RUN.
40370000040         END PROGRAM prog.
40371GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
40372
40373SIZE  TYPE           LVL  NAME                           PICTURE
40374
40375      FUNCTION            WITHPAR
40376
40377      LINKAGE SECTION
40378
4037900001 NUMERIC        01   PAR-IN                         9
40380
4038100001 NUMERIC        01   PAR-OUT                        9
40382
40383      FUNCTION            WITHOUTPAR
40384
40385      LINKAGE SECTION
40386
4038700001 NUMERIC        01   PAR                            9
40388
40389      PROGRAM             prog
40390
40391      No fields defined.
40392
40393
403940 warnings in compilation group
403950 errors in compilation group
40396_ATEOF
40397
40398
40399{ set +x
40400$as_echo "$at_srcdir/listings.at:2541: \$UNIFY_LISTING prog.lst prog.lis"
40401at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2541"
40402( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
40403) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40404at_status=$? at_failed=false
40405$at_check_filter
40406at_fn_diff_devnull "$at_stderr" || at_failed=:
40407at_fn_diff_devnull "$at_stdout" || at_failed=:
40408at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2541"
40409$at_failed && at_fn_log_failure  \
40410"prog.lst"
40411$at_traceon; }
40412
40413{ set +x
40414$as_echo "$at_srcdir/listings.at:2542: diff prog18.lst prog.lis"
40415at_fn_check_prepare_trace "listings.at:2542"
40416( $at_check_trace; diff prog18.lst prog.lis
40417) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40418at_status=$? at_failed=false
40419$at_check_filter
40420at_fn_diff_devnull "$at_stderr" || at_failed=:
40421at_fn_diff_devnull "$at_stdout" || at_failed=:
40422at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2542"
40423$at_failed && at_fn_log_failure  \
40424"prog.lst"
40425$at_traceon; }
40426
40427
40428  set +x
40429  $at_times_p && times >"$at_times_file"
40430) 5>&1 2>&1 7>&- | eval $at_tee_pipe
40431read at_status <"$at_status_file"
40432#AT_STOP_429
40433#AT_START_430
40434at_fn_group_banner 430 'listings.at:2547' \
40435  "Symbols: OCCURS/REDEFINES" "                      " 3
40436at_xfail=no
40437(
40438  $as_echo "430. $at_setup_line: testing $at_desc ..."
40439  $at_traceon
40440
40441
40442
40443
40444
40445cat >prog.cob <<'_ATEOF'
40446
40447       IDENTIFICATION   DIVISION.
40448       PROGRAM-ID.      prog.
40449       ENVIRONMENT DIVISION.
40450       CONFIGURATION SECTION.
40451       DATA             DIVISION.
40452       WORKING-STORAGE  SECTION.
40453       78  I   VALUE 20.
40454       78  J   VALUE 5000.
40455       78  M   VALUE 5.
40456       01  SETUP-REC.
40457           05  FL1       PIC X(04).
40458           05  FL2       PIC ZZZZZ.
40459           05  FL3       PIC 9(04).
40460           05  FL4       PIC 9(08) COMP.
40461           05  FL5       PIC 9(04) COMP-4.
40462           05  FL6       PIC Z,ZZZ.99.
40463           05  FL7       PIC S9(05) SIGN LEADING SEPARATE.
40464           05  FL8       PIC X(04).
40465           05  FL9 REDEFINES FL8 PIC 9(04).
40466           05  FLA.
40467               10  FLB OCCURS I TIMES.
40468                   15  FLC PIC X(02).
40469               10  FLD   PIC X(20).
40470           05  FLD1      PIC X(100).
40471           05  FLD2 OCCURS M TO J TIMES DEPENDING ON FL5.
40472               10  FILLER PIC X(01).
40473           05  FLD3      PIC X(3).
40474           05  FLD4      PIC X(4).
40475       PROCEDURE        DIVISION.
40476           STOP RUN.
40477_ATEOF
40478
40479
40480{ set +x
40481$as_echo "$at_srcdir/listings.at:2585: \$COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols prog.cob"
40482at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols prog.cob" "listings.at:2585"
40483( $at_check_trace; $COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols prog.cob
40484) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40485at_status=$? at_failed=false
40486$at_check_filter
40487at_fn_diff_devnull "$at_stderr" || at_failed=:
40488at_fn_diff_devnull "$at_stdout" || at_failed=:
40489at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2585"
40490$at_failed && at_fn_log_failure  \
40491"prog.lst"
40492$at_traceon; }
40493
40494
40495cat >prog19.lst <<'_ATEOF'
40496GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
40497
40498LINE    PG/LN  A...B............................................................
40499
40500000001
40501000002         IDENTIFICATION   DIVISION.
40502000003         PROGRAM-ID.      prog.
40503000004         ENVIRONMENT DIVISION.
40504000005         CONFIGURATION SECTION.
40505000006         DATA             DIVISION.
40506000007         WORKING-STORAGE  SECTION.
40507000008         78  I   VALUE 20.
40508000009         78  J   VALUE 5000.
40509000010         78  M   VALUE 5.
40510000011         01  SETUP-REC.
40511000012             05  FL1       PIC X(04).
40512000013             05  FL2       PIC ZZZZZ.
40513000014             05  FL3       PIC 9(04).
40514000015             05  FL4       PIC 9(08) COMP.
40515000016             05  FL5       PIC 9(04) COMP-4.
40516000017             05  FL6       PIC Z,ZZZ.99.
40517000018             05  FL7       PIC S9(05) SIGN LEADING SEPARATE.
40518000019             05  FL8       PIC X(04).
40519000020             05  FL9 REDEFINES FL8 PIC 9(04).
40520000021             05  FLA.
40521000022                 10  FLB OCCURS I TIMES.
40522000023                     15  FLC PIC X(02).
40523000024                 10  FLD   PIC X(20).
40524000025             05  FLD1      PIC X(100).
40525000026             05  FLD2 OCCURS M TO J TIMES DEPENDING ON FL5.
40526000027                 10  FILLER PIC X(01).
40527000028             05  FLD3      PIC X(3).
40528000029             05  FLD4      PIC X(4).
40529000030         PROCEDURE        DIVISION.
40530000031             STOP RUN.
40531GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
40532
40533SIZE  TYPE           LVL  NAME                           PICTURE
40534
40535      WORKING-STORAGE SECTION
40536
4053705204 GROUP          01   SETUP-REC
4053800004 ALPHANUMERIC   05   FL1                            X(04)
4053900005 NUMERIC        05   FL2                            ZZZZZ
4054000004 NUMERIC        05   FL3                            9(04)
4054100004 NUMERIC        05   FL4                            9(08) COMP
4054200002 NUMERIC        05   FL5                            9(04) COMP
4054300008 NUMERIC        05   FL6                            Z,ZZZ.99
4054400006 NUMERIC        05   FL7                            S9(05)
4054500004 ALPHANUMERIC   05   FL8                            X(04)
4054600004 NUMERIC        05   FL9                            9(04), REDEFINES FL8
4054700060 GROUP          05   FLA
4054800040 GROUP          10   FLB                            OCCURS 20
4054900002 ALPHANUMERIC   15   FLC                            X(02)
4055000020 ALPHANUMERIC   10   FLD                            X(20)
4055100100 ALPHANUMERIC   05   FLD1                           X(100)
4055205000 GROUP          05   FLD2                           OCCURS 5 TO 5000
4055300001 ALPHANUMERIC   10   FILLER                         X(01)
4055400003 ALPHANUMERIC   05   FLD3                           X(3)
4055500004 ALPHANUMERIC   05   FLD4                           X(4)
40556
40557
405580 warnings in compilation group
405590 errors in compilation group
40560_ATEOF
40561
40562
40563{ set +x
40564$as_echo "$at_srcdir/listings.at:2654: \$UNIFY_LISTING prog.lst prog.lis"
40565at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2654"
40566( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
40567) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40568at_status=$? at_failed=false
40569$at_check_filter
40570at_fn_diff_devnull "$at_stderr" || at_failed=:
40571at_fn_diff_devnull "$at_stdout" || at_failed=:
40572at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2654"
40573$at_failed && at_fn_log_failure  \
40574"prog.lst"
40575$at_traceon; }
40576
40577{ set +x
40578$as_echo "$at_srcdir/listings.at:2655: diff prog19.lst prog.lis"
40579at_fn_check_prepare_trace "listings.at:2655"
40580( $at_check_trace; diff prog19.lst prog.lis
40581) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40582at_status=$? at_failed=false
40583$at_check_filter
40584at_fn_diff_devnull "$at_stderr" || at_failed=:
40585at_fn_diff_devnull "$at_stdout" || at_failed=:
40586at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2655"
40587$at_failed && at_fn_log_failure  \
40588"prog.lst"
40589$at_traceon; }
40590
40591
40592  set +x
40593  $at_times_p && times >"$at_times_file"
40594) 5>&1 2>&1 7>&- | eval $at_tee_pipe
40595read at_status <"$at_status_file"
40596#AT_STOP_430
40597#AT_START_431
40598at_fn_group_banner 431 'listings.at:2660' \
40599  "Conditional compilation" "                        " 3
40600at_xfail=no
40601(
40602  $as_echo "431. $at_setup_line: testing $at_desc ..."
40603  $at_traceon
40604
40605
40606
40607
40608
40609cat >prog.cob <<'_ATEOF'
40610
40611       IDENTIFICATION   DIVISION.
40612       PROGRAM-ID.      prog.
40613       DATA             DIVISION.
40614       WORKING-STORAGE  SECTION.
40615       PROCEDURE        DIVISION.
40616       >>IF ACTIVATE DEFINED
40617           DISPLAY "NOTOK" NO ADVANCING
40618           END-DISPLAY
40619       >>ELIF ACTIVATE2 DEFINED
40620           DISPLAY "OK" NO ADVANCING
40621           END-DISPLAY
40622       >>ELSE
40623           DISPLAY "NOTOK" NO ADVANCING
40624           END-DISPLAY
40625       >>END-IF
40626           STOP RUN.
40627_ATEOF
40628
40629cat >prog2.cob <<'_ATEOF'
40630
40631       IDENTIFICATION   DIVISION.
40632       PROGRAM-ID.      prog2.
40633       DATA             DIVISION.
40634       WORKING-STORAGE  SECTION.
40635       PROCEDURE        DIVISION.
40636      $IF ACTIVATE DEFINED
40637           DISPLAY "NOTOK" NO ADVANCING
40638           END-DISPLAY
40639      $ELIF ACTIVATE2 DEFINED
40640           DISPLAY "OK" NO ADVANCING
40641           END-DISPLAY
40642      $ELSE
40643           DISPLAY "NOTOK" NO ADVANCING
40644           END-DISPLAY
40645      $END
40646           STOP RUN.
40647_ATEOF
40648
40649
40650{ set +x
40651$as_echo "$at_srcdir/listings.at:2702: \$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog.cob"
40652at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog.cob" "listings.at:2702"
40653( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 -t prog.lst prog.cob
40654) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40655at_status=$? at_failed=false
40656$at_check_filter
40657at_fn_diff_devnull "$at_stderr" || at_failed=:
40658at_fn_diff_devnull "$at_stdout" || at_failed=:
40659at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2702"
40660$at_failed && at_fn_log_failure  \
40661"prog.lst"
40662$at_traceon; }
40663
40664
40665cat >prog16.lst <<'_ATEOF'
40666GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
40667
40668LINE    PG/LN  A...B............................................................
40669
40670000001
40671000002         IDENTIFICATION   DIVISION.
40672000003         PROGRAM-ID.      prog.
40673000004         DATA             DIVISION.
40674000005         WORKING-STORAGE  SECTION.
40675000006         PROCEDURE        DIVISION.
40676000007         >>IF ACTIVATE DEFINED
40677000008X            DISPLAY "NOTOK" NO ADVANCING
40678000009X            END-DISPLAY
40679000010         >>ELIF ACTIVATE2 DEFINED
40680000011             DISPLAY "OK" NO ADVANCING
40681000012             END-DISPLAY
40682000013         >>ELSE
40683000014X            DISPLAY "NOTOK" NO ADVANCING
40684000015X            END-DISPLAY
40685000016         >>END-IF
40686000017             STOP RUN.
40687
40688
406890 warnings in compilation group
406900 errors in compilation group
40691_ATEOF
40692
40693
40694{ set +x
40695$as_echo "$at_srcdir/listings.at:2732: \$UNIFY_LISTING prog.lst prog.lis"
40696at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2732"
40697( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
40698) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40699at_status=$? at_failed=false
40700$at_check_filter
40701at_fn_diff_devnull "$at_stderr" || at_failed=:
40702at_fn_diff_devnull "$at_stdout" || at_failed=:
40703at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2732"
40704$at_failed && at_fn_log_failure  \
40705"prog.lst"
40706$at_traceon; }
40707
40708{ set +x
40709$as_echo "$at_srcdir/listings.at:2733: diff prog16.lst prog.lis"
40710at_fn_check_prepare_trace "listings.at:2733"
40711( $at_check_trace; diff prog16.lst prog.lis
40712) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40713at_status=$? at_failed=false
40714$at_check_filter
40715at_fn_diff_devnull "$at_stderr" || at_failed=:
40716at_fn_diff_devnull "$at_stdout" || at_failed=:
40717at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2733"
40718$at_failed && at_fn_log_failure  \
40719"prog.lst"
40720$at_traceon; }
40721
40722
40723{ set +x
40724$as_echo "$at_srcdir/listings.at:2735: \$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.cob"
40725at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.cob" "listings.at:2735"
40726( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.cob
40727) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40728at_status=$? at_failed=false
40729$at_check_filter
40730at_fn_diff_devnull "$at_stderr" || at_failed=:
40731at_fn_diff_devnull "$at_stdout" || at_failed=:
40732at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2735"
40733$at_failed && at_fn_log_failure  \
40734"prog.lst"
40735$at_traceon; }
40736
40737
40738cat >prog16b.lst <<'_ATEOF'
40739GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
40740
40741LINE    PG/LN  A...B............................................................
40742
40743000001
40744000002         IDENTIFICATION   DIVISION.
40745000003         PROGRAM-ID.      prog2.
40746000004         DATA             DIVISION.
40747000005         WORKING-STORAGE  SECTION.
40748000006         PROCEDURE        DIVISION.
40749000007        $IF ACTIVATE DEFINED
40750000008X            DISPLAY "NOTOK" NO ADVANCING
40751000009X            END-DISPLAY
40752000010        $ELIF ACTIVATE2 DEFINED
40753000011             DISPLAY "OK" NO ADVANCING
40754000012             END-DISPLAY
40755000013        $ELSE
40756000014X            DISPLAY "NOTOK" NO ADVANCING
40757000015X            END-DISPLAY
40758000016        $END
40759000017             STOP RUN.
40760
40761
407620 warnings in compilation group
407630 errors in compilation group
40764_ATEOF
40765
40766
40767{ set +x
40768$as_echo "$at_srcdir/listings.at:2765: \$UNIFY_LISTING prog.lst prog.lis"
40769at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2765"
40770( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
40771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40772at_status=$? at_failed=false
40773$at_check_filter
40774at_fn_diff_devnull "$at_stderr" || at_failed=:
40775at_fn_diff_devnull "$at_stdout" || at_failed=:
40776at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2765"
40777$at_failed && at_fn_log_failure  \
40778"prog.lst"
40779$at_traceon; }
40780
40781{ set +x
40782$as_echo "$at_srcdir/listings.at:2766: diff prog16b.lst prog.lis"
40783at_fn_check_prepare_trace "listings.at:2766"
40784( $at_check_trace; diff prog16b.lst prog.lis
40785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40786at_status=$? at_failed=false
40787$at_check_filter
40788at_fn_diff_devnull "$at_stderr" || at_failed=:
40789at_fn_diff_devnull "$at_stdout" || at_failed=:
40790at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2766"
40791$at_failed && at_fn_log_failure  \
40792"prog.lst"
40793$at_traceon; }
40794
40795
40796  set +x
40797  $at_times_p && times >"$at_times_file"
40798) 5>&1 2>&1 7>&- | eval $at_tee_pipe
40799read at_status <"$at_status_file"
40800#AT_STOP_431
40801#AT_START_432
40802at_fn_group_banner 432 'listings.at:2771' \
40803  "File descriptions" "                              " 3
40804at_xfail=no
40805(
40806  $as_echo "432. $at_setup_line: testing $at_desc ..."
40807  $at_traceon
40808
40809
40810
40811
40812
40813cat >prog.cob <<'_ATEOF'
40814
40815       IDENTIFICATION DIVISION.
40816       PROGRAM-ID. prog.
40817       ENVIRONMENT DIVISION.
40818       INPUT-OUTPUT SECTION.
40819       FILE-CONTROL.
40820           SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
40821                               ORGANIZATION LINE SEQUENTIAL.
40822           SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
40823                               ORGANIZATION LINE SEQUENTIAL.
40824           SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
40825                               ORGANIZATION LINE SEQUENTIAL.
40826           SELECT MODIFICATION ASSIGN TO "SYSIN1"
40827                               ORGANIZATION LINE SEQUENTIAL.
40828           SELECT COMMENTARY   ASSIGN TO "SYSOU1"
40829                               ORGANIZATION LINE SEQUENTIAL.
40830       DATA DIVISION.
40831       FILE SECTION.
40832
40833       FD  OLD-VERSION
40834           LABEL RECORDS ARE STANDARD
40835           BLOCK CONTAINS 80 CHARACTERS
40836           DATA RECORD IS OLD-RECORD.
40837
40838       01  OLD-RECORD.
40839           02 OLD-STATEMENT       PICTURE X(75).
40840           02 OLD-NUMBER          PICTURE X(5).
40841
40842       FD  NEW-VERSION
40843           LABEL RECORDS ARE STANDARD
40844           BLOCK CONTAINS 80 CHARACTERS
40845           DATA RECORD IS NEW-RECORD.
40846
40847       01  NEW-RECORD.
40848           02 NEW-STATEMENT       PICTURE X(75).
40849           02 NEW-NUMBER          PICTURE X(5).
40850
40851       FD  MODIFICATION
40852           LABEL RECORDS ARE OMITTED
40853           BLOCK CONTAINS 80 CHARACTERS
40854           DATA RECORD IS UPDATE-ORDER.
40855
40856       01  UPDATE-ORDER.
40857           02 INSERTION.
40858              03 COMMAND          PICTURE X(6).
40859                 88 ENDJOB        VALUE "ENDJOB".
40860                 88 ENDSET        VALUE "ENDSET".
40861                 88 REMOVE        VALUE "REMOVE".
40862                 88 ADDNEW        VALUE "INSERT".
40863                 88 CHANGE        VALUE "CHANGE".
40864                 88 DISPLY        VALUE "DISPLY".
40865              03 FILLER           PICTURE X.
40866              03 A-FIELD          PICTURE 9(5).
40867              03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
40868                 88 A-BLANK       VALUE SPACES.
40869              03 FILLER           PICTURE X(4).
40870              03 B-FIELD          PICTURE 9(5).
40871              03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
40872                 88 B-BLANK       VALUE SPACES.
40873              03 FILLER           PICTURE X(54).
40874           02 FILLER              PICTURE X(5).
40875
40876       FD  COMMENTARY
40877           LABEL RECORDS ARE OMITTED
40878           BLOCK CONTAINS 82 CHARACTERS
40879           DATA RECORD IS COMMENT-LINE.
40880
40881       01  COMMENT-LINE.
40882           02 FILLER              PICTURE X(82).
40883
40884       WORKING-STORAGE  SECTION.
40885
40886       01  HEADINGS-LINE.
40887           02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
40888           02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
40889           02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
40890           02 MONTH-RUN           PICTURE XX.
40891           02 FILLER              PICTURE X VALUE "/".
40892           02 DAY-RUN             PICTURE XX.
40893           02 FILLER              PICTURE X VALUE "/".
40894           02 YEAR-RUN            PICTURE XX.
40895           02 FILLER              PICTURE X(8) VALUE SPACES.
40896           02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
40897           02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.
40898
40899       01  COMMAND-LISTING.
40900           02 FILLER              PICTURE X(2) VALUE SPACES.
40901           02 COMMAND-IMAGE       PICTURE X(80).
40902
40903       01  ACTIVITIES-LISTING.
40904           02 DISPOSITION         PICTURE X(2).
40905           02 ACTIVE-IMAGE        PICTURE X(80).
40906
40907       01  UPSI-BYTE.
40908           02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.
40909
40910       01  MESSAGE-LOG.
40911           02 FILLER              PICTURE X(2) VALUE SPACES.
40912           02 MESSAGE-TEXT        PICTURE X(80).
40913
40914       01  DISPLAY-MESSAGE.
40915           02 FILLER              PICTURE X(2) VALUE SPACES.
40916           02 DISPLAY-TEMP        PICTURE X(6).
40917           02 FILLER              PICTURE X(2) VALUE SPACES.
40918           02 DISPLAY-TEXT        PICTURE X(60).
40919
40920       PROCEDURE DIVISION.
40921           OPEN INPUT OLD-VERSION, MODIFICATION,
40922                OUTPUT NEW-VERSION, COMMENTARY.
40923           CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
40924           STOP RUN.
40925_ATEOF
40926
40927
40928{ set +x
40929$as_echo "$at_srcdir/listings.at:2889: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
40930at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:2889"
40931( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
40932) >>"$at_stdout" 2>>"$at_stderr" 5>&-
40933at_status=$? at_failed=false
40934$at_check_filter
40935echo >>"$at_stderr"; $as_echo "prog.cob:21: warning: LABEL RECORDS is obsolete in GnuCOBOL
40936prog.cob:23: warning: DATA RECORDS is obsolete in GnuCOBOL
40937prog.cob:30: warning: LABEL RECORDS is obsolete in GnuCOBOL
40938prog.cob:32: warning: DATA RECORDS is obsolete in GnuCOBOL
40939prog.cob:39: warning: LABEL RECORDS is obsolete in GnuCOBOL
40940prog.cob:41: warning: DATA RECORDS is obsolete in GnuCOBOL
40941prog.cob:64: warning: LABEL RECORDS is obsolete in GnuCOBOL
40942prog.cob:66: warning: DATA RECORDS is obsolete in GnuCOBOL
40943prog.cob:11: error: missing file description for FILE PRT-VERSION
40944" | \
40945  $at_diff - "$at_stderr" || at_failed=:
40946at_fn_diff_devnull "$at_stdout" || at_failed=:
40947at_fn_check_status 1 $at_status "$at_srcdir/listings.at:2889"
40948$at_failed && at_fn_log_failure  \
40949"prog.lst"
40950$at_traceon; }
40951
40952
40953
40954cat >prog18.lst <<'_ATEOF'
40955GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
40956
40957LINE    PG/LN  A...B............................................................
40958
40959000001
40960000002         IDENTIFICATION DIVISION.
40961000003         PROGRAM-ID. prog.
40962000004         ENVIRONMENT DIVISION.
40963000005         INPUT-OUTPUT SECTION.
40964000006         FILE-CONTROL.
40965000007             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
40966000008                                 ORGANIZATION LINE SEQUENTIAL.
40967000009             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
40968000010                                 ORGANIZATION LINE SEQUENTIAL.
40969000011             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
40970error: missing file description for FILE PRT-VERSION
40971000012                                 ORGANIZATION LINE SEQUENTIAL.
40972000013             SELECT MODIFICATION ASSIGN TO "SYSIN1"
40973000014                                 ORGANIZATION LINE SEQUENTIAL.
40974000015             SELECT COMMENTARY   ASSIGN TO "SYSOU1"
40975000016                                 ORGANIZATION LINE SEQUENTIAL.
40976000017         DATA DIVISION.
40977000018         FILE SECTION.
40978000019
40979000020         FD  OLD-VERSION
40980000021             LABEL RECORDS ARE STANDARD
40981warning: LABEL RECORDS is obsolete in GnuCOBOL
40982000022             BLOCK CONTAINS 80 CHARACTERS
40983000023             DATA RECORD IS OLD-RECORD.
40984warning: DATA RECORDS is obsolete in GnuCOBOL
40985000024
40986000025         01  OLD-RECORD.
40987000026             02 OLD-STATEMENT       PICTURE X(75).
40988000027             02 OLD-NUMBER          PICTURE X(5).
40989000028
40990000029         FD  NEW-VERSION
40991000030             LABEL RECORDS ARE STANDARD
40992warning: LABEL RECORDS is obsolete in GnuCOBOL
40993000031             BLOCK CONTAINS 80 CHARACTERS
40994000032             DATA RECORD IS NEW-RECORD.
40995warning: DATA RECORDS is obsolete in GnuCOBOL
40996000033
40997000034         01  NEW-RECORD.
40998000035             02 NEW-STATEMENT       PICTURE X(75).
40999000036             02 NEW-NUMBER          PICTURE X(5).
41000000037
41001000038         FD  MODIFICATION
41002000039             LABEL RECORDS ARE OMITTED
41003warning: LABEL RECORDS is obsolete in GnuCOBOL
41004000040             BLOCK CONTAINS 80 CHARACTERS
41005000041             DATA RECORD IS UPDATE-ORDER.
41006warning: DATA RECORDS is obsolete in GnuCOBOL
41007000042
41008000043         01  UPDATE-ORDER.
41009000044             02 INSERTION.
41010000045                03 COMMAND          PICTURE X(6).
41011000046                   88 ENDJOB        VALUE "ENDJOB".
41012000047                   88 ENDSET        VALUE "ENDSET".
41013000048                   88 REMOVE        VALUE "REMOVE".
41014000049                   88 ADDNEW        VALUE "INSERT".
41015000050                   88 CHANGE        VALUE "CHANGE".
41016000051                   88 DISPLY        VALUE "DISPLY".
41017000052                03 FILLER           PICTURE X.
41018000053                03 A-FIELD          PICTURE 9(5).
41019000054                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
41020000055                   88 A-BLANK       VALUE SPACES.
41021000056                03 FILLER           PICTURE X(4).
41022000057                03 B-FIELD          PICTURE 9(5).
41023000058                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
41024000059                   88 B-BLANK       VALUE SPACES.
41025000060                03 FILLER           PICTURE X(54).
41026000061             02 FILLER              PICTURE X(5).
41027000062
41028000063         FD  COMMENTARY
41029000064             LABEL RECORDS ARE OMITTED
41030warning: LABEL RECORDS is obsolete in GnuCOBOL
41031000065             BLOCK CONTAINS 82 CHARACTERS
41032000066             DATA RECORD IS COMMENT-LINE.
41033warning: DATA RECORDS is obsolete in GnuCOBOL
41034000067
41035000068         01  COMMENT-LINE.
41036000069             02 FILLER              PICTURE X(82).
41037000070
41038000071         WORKING-STORAGE  SECTION.
41039000072
41040000073         01  HEADINGS-LINE.
41041000074             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
41042000075             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
41043000076             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
41044000077             02 MONTH-RUN           PICTURE XX.
41045000078             02 FILLER              PICTURE X VALUE "/".
41046000079             02 DAY-RUN             PICTURE XX.
41047000080             02 FILLER              PICTURE X VALUE "/".
41048000081             02 YEAR-RUN            PICTURE XX.
41049000082             02 FILLER              PICTURE X(8) VALUE SPACES.
41050000083             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
41051000084             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.
41052000085
41053000086         01  COMMAND-LISTING.
41054000087             02 FILLER              PICTURE X(2) VALUE SPACES.
41055000088             02 COMMAND-IMAGE       PICTURE X(80).
41056000089
41057000090         01  ACTIVITIES-LISTING.
41058000091             02 DISPOSITION         PICTURE X(2).
41059000092             02 ACTIVE-IMAGE        PICTURE X(80).
41060000093
41061000094         01  UPSI-BYTE.
41062000095             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.
41063000096
41064000097         01  MESSAGE-LOG.
41065000098             02 FILLER              PICTURE X(2) VALUE SPACES.
41066000099             02 MESSAGE-TEXT        PICTURE X(80).
41067000100
41068000101         01  DISPLAY-MESSAGE.
41069000102             02 FILLER              PICTURE X(2) VALUE SPACES.
41070000103             02 DISPLAY-TEMP        PICTURE X(6).
41071000104             02 FILLER              PICTURE X(2) VALUE SPACES.
41072000105             02 DISPLAY-TEXT        PICTURE X(60).
41073000106
41074000107         PROCEDURE DIVISION.
41075000108             OPEN INPUT OLD-VERSION, MODIFICATION,
41076000109                  OUTPUT NEW-VERSION, COMMENTARY.
41077000110             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
41078000111             STOP RUN.
41079
41080SIZE  TYPE           LVL  NAME                           PICTURE
41081
4108200080 FILE                OLD-VERSION
4108300080 GROUP          01   OLD-RECORD
4108400075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
4108500005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)
41086
4108700080 FILE                NEW-VERSION
4108800080 GROUP          01   NEW-RECORD
4108900075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
4109000005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)
41091
4109200032 FILE                PRT-VERSION
41093
4109400080 FILE                MODIFICATION
4109500080 GROUP          01   UPDATE-ORDER
4109600075 GROUP          02   INSERTION
4109700006 ALPHANUMERIC   03   COMMAND                        X(6)
41098      CONDITIONAL    88   ENDJOB
41099      CONDITIONAL    88   ENDSET
41100      CONDITIONAL    88   REMOVE
41101      CONDITIONAL    88   ADDNEW
41102      CONDITIONAL    88   CHANGE
41103      CONDITIONAL    88   DISPLY
4110400001 ALPHANUMERIC   03   FILLER                         X
4110500005 NUMERIC        03   A-FIELD                        9(5)
4110600005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
41107      CONDITIONAL    88   A-BLANK
4110800004 ALPHANUMERIC   03   FILLER                         X(4)
4110900005 NUMERIC        03   B-FIELD                        9(5)
4111000005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
41111      CONDITIONAL    88   B-BLANK
4111200054 ALPHANUMERIC   03   FILLER                         X(54)
4111300005 ALPHANUMERIC   02   FILLER                         X(5)
41114
4111500082 FILE                COMMENTARY
4111600082 GROUP          01   COMMENT-LINE
4111700082 ALPHANUMERIC   02   FILLER                         X(82)
41118
41119      WORKING-STORAGE SECTION
41120
4112100080 GROUP          01   HEADINGS-LINE
4112200015 ALPHANUMERIC   02   FILLER                         X(15)
4112300020 ALPHANUMERIC   02   FILLER                         X(20)
4112400017 ALPHANUMERIC   02   PHASE                          X(17)
4112500002 ALPHANUMERIC   02   MONTH-RUN                      XX
4112600001 ALPHANUMERIC   02   FILLER                         X
4112700002 ALPHANUMERIC   02   DAY-RUN                        XX
4112800001 ALPHANUMERIC   02   FILLER                         X
4112900002 ALPHANUMERIC   02   YEAR-RUN                       XX
4113000008 ALPHANUMERIC   02   FILLER                         X(8)
4113100008 ALPHANUMERIC   02   FILLER                         X(8)
4113200004 NUMERIC        02   PAGE-NUMBER                    9(4)
41133
4113400082 GROUP          01   COMMAND-LISTING
4113500002 ALPHANUMERIC   02   FILLER                         X(2)
4113600080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)
41137
4113800082 GROUP          01   ACTIVITIES-LISTING
4113900002 ALPHANUMERIC   02   DISPOSITION                    X(2)
4114000080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)
41141
4114200008 GROUP          01   UPSI-BYTE
4114300001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8
41144
4114500082 GROUP          01   MESSAGE-LOG
4114600002 ALPHANUMERIC   02   FILLER                         X(2)
4114700080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)
41148
4114900070 GROUP          01   DISPLAY-MESSAGE
4115000002 ALPHANUMERIC   02   FILLER                         X(2)
4115100006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
4115200002 ALPHANUMERIC   02   FILLER                         X(2)
4115300060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)
41154
41155
41156
41157Error/Warning summary:
41158
41159prog.cob:11: error: missing file description for FILE PRT-VERSION
41160prog.cob:21: warning: LABEL RECORDS is obsolete in GnuCOBOL
41161prog.cob:23: warning: DATA RECORDS is obsolete in GnuCOBOL
41162prog.cob:30: warning: LABEL RECORDS is obsolete in GnuCOBOL
41163prog.cob:32: warning: DATA RECORDS is obsolete in GnuCOBOL
41164prog.cob:39: warning: LABEL RECORDS is obsolete in GnuCOBOL
41165prog.cob:41: warning: DATA RECORDS is obsolete in GnuCOBOL
41166prog.cob:64: warning: LABEL RECORDS is obsolete in GnuCOBOL
41167prog.cob:66: warning: DATA RECORDS is obsolete in GnuCOBOL
41168
411698 warnings in compilation group
411701 error in compilation group
41171_ATEOF
41172
41173
41174{ set +x
41175$as_echo "$at_srcdir/listings.at:3121: \$UNIFY_LISTING prog.lst prog.lis once"
41176at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3121"
41177( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
41178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41179at_status=$? at_failed=false
41180$at_check_filter
41181at_fn_diff_devnull "$at_stderr" || at_failed=:
41182at_fn_diff_devnull "$at_stdout" || at_failed=:
41183at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3121"
41184$at_failed && at_fn_log_failure  \
41185"prog.lst"
41186$at_traceon; }
41187
41188{ set +x
41189$as_echo "$at_srcdir/listings.at:3122: diff prog18.lst prog.lis"
41190at_fn_check_prepare_trace "listings.at:3122"
41191( $at_check_trace; diff prog18.lst prog.lis
41192) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41193at_status=$? at_failed=false
41194$at_check_filter
41195at_fn_diff_devnull "$at_stderr" || at_failed=:
41196at_fn_diff_devnull "$at_stdout" || at_failed=:
41197at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3122"
41198$at_failed && at_fn_log_failure  \
41199"prog.lst"
41200$at_traceon; }
41201
41202
41203  set +x
41204  $at_times_p && times >"$at_times_file"
41205) 5>&1 2>&1 7>&- | eval $at_tee_pipe
41206read at_status <"$at_status_file"
41207#AT_STOP_432
41208#AT_START_433
41209at_fn_group_banner 433 'listings.at:3127' \
41210  "Invalid PICTURE strings" "                        " 3
41211at_xfail=no
41212(
41213  $as_echo "433. $at_setup_line: testing $at_desc ..."
41214  $at_traceon
41215
41216
41217
41218
41219
41220cat >prog.cob <<'_ATEOF'
41221
41222       IDENTIFICATION DIVISION.
41223       PROGRAM-ID. prog.
41224
41225       DATA DIVISION.
41226       WORKING-STORAGE SECTION.
41227       01  empty-pic PIC.
41228       01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41229      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
41230       01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41231      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41232      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41233      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41234      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
41235       01  multiple-symbols.
41236           03  PIC 9CRCR.
41237           03  PIC 9DBDB.
41238           03  PIC SS99S.
41239           03  PIC 99..9.
41240           03  PIC 99VV9.
41241           03  PIC +$99+.
41242           03  PIC $+99$-.
41243       01  non-symbols.
41244           03  PIC 9K.
41245           03  PIC 999C.
41246           03  PIC 999D.
41247       01  too-many-digits PIC 9(50).
41248       01  too-long-number-in-parens PIC 9(11111111111111).
41249       01  nested-parens PIC 9((100)).
41250       01  unbalanced-parens PIC 9(.
41251       01  multiple-pairs-of-parens PIC 9(5)(3).
41252       01  no-digit-in-parens PIC 9().
41253       01  mutually-exclusive-symbols.
41254           03  PIC P(3)9.9.
41255           03  PIC 9V.9.
41256           03  PIC Z*.
41257           03  PIC +(5)--.
41258           03  PIC $(4)Z(9).
41259           03  PIC $$B*(4).
41260           03  PIC NX.
41261           03  PIC AN.
41262           03  PIC AZ(3).
41263           03  PIC 99.99XXXXX.
41264           03  PIC SA.
41265           03  PIC $$$B+++B---.
41266           03  PIC +++9+.
41267           03  PIC +9(5)CR.
41268           03  PIC -9(5)DB.
41269       01 non-rightmost-leftmost-symbols.
41270           03  PIC BBB+BB99.
41271           03  PIC 99-B.
41272           03  PIC 9CRB.
41273           03  PIC DB9(5).
41274           03  PIC 99$$$.
41275           03  PIC 99$B.
41276           03  PIC 0$99.
41277           03  PIC PPPVP9.
41278       01  missing-symbols.
41279           03  PIC B(5).
41280           03  PIC +.
41281           03  PIC $.
41282
41283       01  str-constant CONSTANT "hello".
41284       01  float-constant CONSTANT 1.0.
41285       01  signed-constant CONSTANT -1.
41286       01  invalid-constant.
41287           03  PIC X(str-constant).
41288           03  PIC X(float-constant).
41289           03  PIC X(signed-constant).
41290           03  PIC X(unseen-constant).
41291
41292       01  integer-constant CONSTANT 5.
41293       01  valid-pics.
41294           03  PIC VP9B.
41295           03  PIC B9P(3).
41296           03  PIC B$$$.
41297           03  PIC 0000+B0+++0B,+.
41298           03  PIC +(5)P(3).
41299           03  PIC ++.++.
41300           03  PIC $(integer-constant).
41301           03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
41302      -(integer-constant).   *> CHECKME: should this be really valid?
41303
41304
41305       01  PC-COLOR-BACKGROUND-TABLE.
41306           05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
41307           05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
41308           05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
41309           05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
41310           05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
41311           05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
41312           05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
41313           05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
41314       01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
41315           05  COLOR-BACKGROUND
41316               OCCURS 8 TIMES            PIC 1(8) BIT.
41317_ATEOF
41318
41319
41320{ set +x
41321$as_echo "$at_srcdir/listings.at:3230: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok prog.cob"
41322at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok prog.cob" "listings.at:3230"
41323( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok prog.cob
41324) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41325at_status=$? at_failed=false
41326$at_check_filter
41327echo >>"$at_stderr"; $as_echo "prog.cob:7: error: missing PICTURE string
41328prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
41329prog.cob:16: error: CR or DB may only occur once in a PICTURE string
41330prog.cob:17: error: CR or DB may only occur once in a PICTURE string
41331prog.cob:18: error: S may only occur once in a PICTURE string
41332prog.cob:18: error: S must be at start of PICTURE string
41333prog.cob:19: error: . may only occur once in a PICTURE string
41334prog.cob:20: error: V may only occur once in a PICTURE string
41335prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
41336prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
41337prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
41338prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
41339prog.cob:24: error: invalid PICTURE character 'K'
41340prog.cob:25: error: C must be followed by R
41341prog.cob:26: error: D must be followed by B
41342prog.cob:27: error: numeric field cannot be larger than 38 digits
41343prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
41344prog.cob:29: error: parentheses must be preceded by a picture symbol
41345prog.cob:30: error: unbalanced parentheses
41346prog.cob:31: error: parentheses must be preceded by a picture symbol
41347prog.cob:32: error: parentheses must contain an unsigned integer
41348prog.cob:34: error: . cannot follow a P which is after the decimal point
41349prog.cob:35: error: . cannot follow V
41350prog.cob:36: error: cannot have both Z and * in PICTURE string
41351prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
41352prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
41353prog.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
41354prog.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
41355prog.cob:40: error: A or X cannot follow N
41356prog.cob:41: error: N cannot follow A or X
41357prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
41358prog.cob:43: error: A or X cannot follow .
41359prog.cob:44: error: A or X cannot follow S
41360prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
41361prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
41362prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
41363prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
41364prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
41365prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
41366prog.cob:47: error: CR or DB cannot follow a leading +/- sign
41367prog.cob:48: error: CR or DB cannot follow a leading +/- sign
41368prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
41369prog.cob:51: error: a leading +/- sign cannot follow 9
41370prog.cob:52: error: B, 0 or / cannot follow CR or DB
41371prog.cob:53: error: 9 cannot follow CR or DB
41372prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
41373prog.cob:55: error: a leading currency symbol cannot follow 9
41374prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
41375prog.cob:57: error: P must be at start or end of PICTURE string
41376prog.cob:57: error: V cannot follow a P which is after the decimal point
41377prog.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
41378prog.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
41379prog.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
41380prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
41381prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
41382prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
41383prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
41384prog.cob:81: warning: uncommon parentheses
41385" | \
41386  $at_diff - "$at_stderr" || at_failed=:
41387at_fn_diff_devnull "$at_stdout" || at_failed=:
41388at_fn_check_status 1 $at_status "$at_srcdir/listings.at:3230"
41389$at_failed && at_fn_log_failure  \
41390"prog.lst"
41391$at_traceon; }
41392
41393
41394cat >prog19.lst <<'_ATEOF'
41395GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
41396
41397LINE    PG/LN  A...B............................................................
41398
41399000001
41400000002         IDENTIFICATION DIVISION.
41401000003         PROGRAM-ID. prog.
41402000004
41403000005         DATA DIVISION.
41404000006         WORKING-STORAGE SECTION.
41405000007         01  empty-pic PIC.
41406error: missing PICTURE string
41407000008         01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41408000009        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
41409000010         01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41410error: PICTURE string may not contain more than 255 characters; contains 301
41411     + characters
41412000011        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41413000012        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41414000013        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41415000014        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
41416000015         01  multiple-symbols.
41417000016             03  PIC 9CRCR.
41418error: CR or DB may only occur once in a PICTURE string
41419000017             03  PIC 9DBDB.
41420error: CR or DB may only occur once in a PICTURE string
41421000018             03  PIC SS99S.
41422error: S may only occur once in a PICTURE string
41423error: S must be at start of PICTURE string
41424000019             03  PIC 99..9.
41425error: . may only occur once in a PICTURE string
41426000020             03  PIC 99VV9.
41427error: V may only occur once in a PICTURE string
41428000021             03  PIC +$99+.
41429error: a trailing +/- sign cannot follow a leading +/- sign
41430000022             03  PIC $+99$-.
41431error: a leading +/- sign cannot follow a leading currency symbol
41432error: a trailing currency symbol cannot follow a leading currency symbol
41433error: a trailing +/- sign cannot follow a leading +/- sign
41434000023         01  non-symbols.
41435000024             03  PIC 9K.
41436error: invalid PICTURE character 'K'
41437000025             03  PIC 999C.
41438error: C must be followed by R
41439000026             03  PIC 999D.
41440error: D must be followed by B
41441000027         01  too-many-digits PIC 9(50).
41442error: numeric field cannot be larger than 38 digits
41443000028         01  too-long-number-in-parens PIC 9(11111111111111).
41444error: only up to 9 significant digits are permitted within parentheses
41445000029         01  nested-parens PIC 9((100)).
41446error: parentheses must be preceded by a picture symbol
41447000030         01  unbalanced-parens PIC 9(.
41448error: unbalanced parentheses
41449000031         01  multiple-pairs-of-parens PIC 9(5)(3).
41450error: parentheses must be preceded by a picture symbol
41451000032         01  no-digit-in-parens PIC 9().
41452error: parentheses must contain an unsigned integer
41453000033         01  mutually-exclusive-symbols.
41454000034             03  PIC P(3)9.9.
41455error: . cannot follow a P which is after the decimal point
41456000035             03  PIC 9V.9.
41457error: . cannot follow V
41458000036             03  PIC Z*.
41459error: cannot have both Z and * in PICTURE string
41460000037             03  PIC +(5)--.
41461error: a trailing +/- sign cannot follow a floating +/- string which is before
41462     + the decimal point
41463error: a trailing +/- sign may only occur once in a PICTURE string
41464000038             03  PIC $(4)Z(9).
41465error: a Z or * which is before the decimal point cannot follow a floating
41466     + currency symbol string which is before the decimal point
41467000039             03  PIC $$B*(4).
41468error: a Z or * which is before the decimal point cannot follow a floating
41469     + currency symbol string which is before the decimal point
41470000040             03  PIC NX.
41471error: A or X cannot follow N
41472000041             03  PIC AN.
41473error: N cannot follow A or X
41474000042             03  PIC AZ(3).
41475error: a Z or * which is before the decimal point cannot follow A or X
41476000043             03  PIC 99.99XXXXX.
41477error: A or X cannot follow .
41478000044             03  PIC SA.
41479error: A or X cannot follow S
41480000045             03  PIC $$$B+++B---.
41481error: a leading +/- sign cannot follow B, 0 or /
41482error: a leading +/- sign cannot follow a floating currency symbol string
41483     + which is before the decimal point
41484error: a leading +/- sign may only occur once in a PICTURE string
41485error: a trailing +/- sign cannot follow a leading +/- sign
41486error: a trailing +/- sign may only occur once in a PICTURE string
41487000046             03  PIC +++9+.
41488error: a trailing +/- sign cannot follow a floating +/- string which is before
41489     + the decimal point
41490000047             03  PIC +9(5)CR.
41491error: CR or DB cannot follow a leading +/- sign
41492000048             03  PIC -9(5)DB.
41493error: CR or DB cannot follow a leading +/- sign
41494000049         01 non-rightmost-leftmost-symbols.
41495000050             03  PIC BBB+BB99.
41496error: a leading +/- sign cannot follow B, 0 or /
41497000051             03  PIC 99-B.
41498error: a leading +/- sign cannot follow 9
41499000052             03  PIC 9CRB.
41500error: B, 0 or / cannot follow CR or DB
41501000053             03  PIC DB9(5).
41502error: 9 cannot follow CR or DB
41503000054             03  PIC 99$$$.
41504error: a floating currency symbol string which is before the decimal point
41505     + cannot follow 9
41506000055             03  PIC 99$B.
41507error: a leading currency symbol cannot follow 9
41508000056             03  PIC 0$99.
41509error: a leading currency symbol cannot follow B, 0 or /
41510000057             03  PIC PPPVP9.
41511error: P must be at start or end of PICTURE string
41512error: V cannot follow a P which is after the decimal point
41513000058         01  missing-symbols.
41514000059             03  PIC B(5).
41515error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
41516     + and *; or at least two of the set +, - and the currency symbol
41517000060             03  PIC +.
41518error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
41519     + and *; or at least two of the set +, - and the currency symbol
41520000061             03  PIC $.
41521error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
41522     + and *; or at least two of the set +, - and the currency symbol
41523000062
41524000063         01  str-constant CONSTANT "hello".
41525000064         01  float-constant CONSTANT 1.0.
41526000065         01  signed-constant CONSTANT -1.
41527000066         01  invalid-constant.
41528000067             03  PIC X(str-constant).
41529error: 'STR-CONSTANT' is not a numeric literal
41530000068             03  PIC X(float-constant).
41531error: 'FLOAT-CONSTANT' is not an integer
41532000069             03  PIC X(signed-constant).
41533error: 'SIGNED-CONSTANT' is not unsigned
41534000070             03  PIC X(unseen-constant).
41535error: 'UNSEEN-CONSTANT' is not defined
41536000071
41537000072         01  integer-constant CONSTANT 5.
41538000073         01  valid-pics.
41539000074             03  PIC VP9B.
41540000075             03  PIC B9P(3).
41541000076             03  PIC B$$$.
41542000077             03  PIC 0000+B0+++0B,+.
41543000078             03  PIC +(5)P(3).
41544000079             03  PIC ++.++.
41545000080             03  PIC $(integer-constant).
41546000081             03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
41547warning: uncommon parentheses
41548000082        -(integer-constant).   *> CHECKME: should this be really valid?
41549000083
41550000084
41551000085         01  PC-COLOR-BACKGROUND-TABLE.
41552000086             05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
41553000087             05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
41554000088             05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
41555000089             05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
41556000090             05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
41557000091             05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
41558000092             05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
41559000093             05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
41560000094         01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
41561000095             05  COLOR-BACKGROUND
41562000096                 OCCURS 8 TIMES            PIC 1(8) BIT.
41563
41564SIZE  TYPE           LVL  NAME                           PICTURE
41565
41566      WORKING-STORAGE SECTION
41567
4156800000 ALPHANUMERIC   01   empty-pic                      INVALID
41569
4157000077 ALPHANUMERIC   01   too-long-pic                   XXXXXXXXXXXXXXXXXXXXXXX
41571
4157200000 ALPHANUMERIC   01   too-long-pic2                  INVALID
41573
4157400000 GROUP          01   multiple-symbols
4157500000 ALPHANUMERIC   03   FILLER                         INVALID
4157600000 ALPHANUMERIC   03   FILLER                         INVALID
4157700000 ALPHANUMERIC   03   FILLER                         INVALID
4157800000 ALPHANUMERIC   03   FILLER                         INVALID
4157900000 ALPHANUMERIC   03   FILLER                         INVALID
4158000000 ALPHANUMERIC   03   FILLER                         INVALID
4158100000 ALPHANUMERIC   03   FILLER                         INVALID
41582
4158300000 GROUP          01   non-symbols
4158400000 ALPHANUMERIC   03   FILLER                         INVALID
4158500000 ALPHANUMERIC   03   FILLER                         INVALID
4158600000 ALPHANUMERIC   03   FILLER                         INVALID
41587
4158800050 NUMERIC        01   too-many-digits                9(50)
41589
4159000000 ALPHANUMERIC   01   too-long-number-in-parens      INVALID
41591
4159200000 ALPHANUMERIC   01   nested-parens                  INVALID
41593
4159400000 ALPHANUMERIC   01   unbalanced-parens              INVALID
41595
4159600000 ALPHANUMERIC   01   multiple-pairs-of-parens       INVALID
41597
4159800000 ALPHANUMERIC   01   no-digit-in-parens             INVALID
41599
4160000000 GROUP          01   mutually-exclusive-symbols
4160100000 ALPHANUMERIC   03   FILLER                         INVALID
4160200000 ALPHANUMERIC   03   FILLER                         INVALID
4160300000 ALPHANUMERIC   03   FILLER                         INVALID
4160400000 ALPHANUMERIC   03   FILLER                         INVALID
4160500000 ALPHANUMERIC   03   FILLER                         INVALID
4160600000 ALPHANUMERIC   03   FILLER                         INVALID
4160700000 ALPHANUMERIC   03   FILLER                         INVALID
4160800000 ALPHANUMERIC   03   FILLER                         INVALID
4160900000 ALPHANUMERIC   03   FILLER                         INVALID
4161000000 ALPHANUMERIC   03   FILLER                         INVALID
4161100000 ALPHANUMERIC   03   FILLER                         INVALID
4161200000 ALPHANUMERIC   03   FILLER                         INVALID
4161300000 ALPHANUMERIC   03   FILLER                         INVALID
4161400000 ALPHANUMERIC   03   FILLER                         INVALID
4161500000 ALPHANUMERIC   03   FILLER                         INVALID
41616
4161700000 GROUP          01   non-rightmost-leftmost-symbols
4161800000 ALPHANUMERIC   03   FILLER                         INVALID
4161900000 ALPHANUMERIC   03   FILLER                         INVALID
4162000000 ALPHANUMERIC   03   FILLER                         INVALID
4162100000 ALPHANUMERIC   03   FILLER                         INVALID
4162200000 ALPHANUMERIC   03   FILLER                         INVALID
4162300000 ALPHANUMERIC   03   FILLER                         INVALID
4162400000 ALPHANUMERIC   03   FILLER                         INVALID
4162500000 ALPHANUMERIC   03   FILLER                         INVALID
41626
4162700000 GROUP          01   missing-symbols
4162800000 ALPHANUMERIC   03   FILLER                         INVALID
4162900000 ALPHANUMERIC   03   FILLER                         INVALID
4163000000 ALPHANUMERIC   03   FILLER                         INVALID
41631
4163200000 GROUP          01   invalid-constant
4163300000 ALPHANUMERIC   03   FILLER                         INVALID
4163400000 ALPHANUMERIC   03   FILLER                         INVALID
4163500000 ALPHANUMERIC   03   FILLER                         INVALID
4163600000 ALPHANUMERIC   03   FILLER                         INVALID
41637
4163800086 GROUP          01   valid-pics
4163900002 NUMERIC        03   FILLER                         VP9B
4164000002 NUMERIC        03   FILLER                         B9P(3)
4164100004 NUMERIC        03   FILLER                         B$$$
4164200014 NUMERIC        03   FILLER                         0000+B0+++0B,+
4164300005 NUMERIC        03   FILLER                         +(5)P(3)
4164400005 NUMERIC        03   FILLER                         ++.++
4164500005 NUMERIC        03   FILLER                         $(INTEGER-CONSTANT)
4164600049 NUMERIC        03   FILLER                         $$$$$$$$$$$$$$$$$$$$$$$
41647
4164800008 GROUP          01   PC-COLOR-BACKGROUND-TABLE
4164900001 NUMERIC        05   BIT-BACKGROUND-BLACK           1(8)
4165000001 NUMERIC        05   BIT-BACKGROUND-BLUE            1(8)
4165100001 NUMERIC        05   BIT-BACKGROUND-GREEN           1(8)
4165200001 NUMERIC        05   BIT-BACKGROUND-CYAN            1(8)
4165300001 NUMERIC        05   BIT-BACKGROUND-RED             1(8)
4165400001 NUMERIC        05   BIT-BACKGROUND-MAGENTA         1(8)
4165500001 NUMERIC        05   BIT-BACKGROUND-BROWN           1(8)
4165600001 NUMERIC        05   BIT-BACKGROUND-LIGHT-GRAY      1(8)
41657
4165800008 GROUP          01   FILLER, REDEFINES PC-COLOR-BACKGROUND-TABLE
4165900001 BOOLEAN        05   COLOR-BACKGROUND               1(8), OCCURS 8
41660
41661
41662
41663Error/Warning summary:
41664
41665prog.cob:7: error: missing PICTURE string
41666prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
41667prog.cob:16: error: CR or DB may only occur once in a PICTURE string
41668prog.cob:17: error: CR or DB may only occur once in a PICTURE string
41669prog.cob:18: error: S may only occur once in a PICTURE string
41670prog.cob:18: error: S must be at start of PICTURE string
41671prog.cob:19: error: . may only occur once in a PICTURE string
41672prog.cob:20: error: V may only occur once in a PICTURE string
41673prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
41674prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
41675prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
41676prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
41677prog.cob:24: error: invalid PICTURE character 'K'
41678prog.cob:25: error: C must be followed by R
41679prog.cob:26: error: D must be followed by B
41680prog.cob:27: error: numeric field cannot be larger than 38 digits
41681prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
41682prog.cob:29: error: parentheses must be preceded by a picture symbol
41683prog.cob:30: error: unbalanced parentheses
41684prog.cob:31: error: parentheses must be preceded by a picture symbol
41685prog.cob:32: error: parentheses must contain an unsigned integer
41686prog.cob:34: error: . cannot follow a P which is after the decimal point
41687prog.cob:35: error: . cannot follow V
41688prog.cob:36: error: cannot have both Z and * in PICTURE string
41689prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
41690prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
41691prog.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
41692prog.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
41693prog.cob:40: error: A or X cannot follow N
41694prog.cob:41: error: N cannot follow A or X
41695prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
41696prog.cob:43: error: A or X cannot follow .
41697prog.cob:44: error: A or X cannot follow S
41698prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
41699prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
41700prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
41701prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
41702prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
41703prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
41704prog.cob:47: error: CR or DB cannot follow a leading +/- sign
41705prog.cob:48: error: CR or DB cannot follow a leading +/- sign
41706prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
41707prog.cob:51: error: a leading +/- sign cannot follow 9
41708prog.cob:52: error: B, 0 or / cannot follow CR or DB
41709prog.cob:53: error: 9 cannot follow CR or DB
41710prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
41711prog.cob:55: error: a leading currency symbol cannot follow 9
41712prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
41713prog.cob:57: error: P must be at start or end of PICTURE string
41714prog.cob:57: error: V cannot follow a P which is after the decimal point
41715prog.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
41716prog.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
41717prog.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
41718prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
41719prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
41720prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
41721prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
41722prog.cob:81: warning: uncommon parentheses
41723
417241 warning in compilation group
4172557 errors in compilation group
41726_ATEOF
41727
41728
41729{ set +x
41730$as_echo "$at_srcdir/listings.at:3625: \$UNIFY_LISTING prog.lst prog.lis once"
41731at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3625"
41732( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
41733) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41734at_status=$? at_failed=false
41735$at_check_filter
41736at_fn_diff_devnull "$at_stderr" || at_failed=:
41737at_fn_diff_devnull "$at_stdout" || at_failed=:
41738at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3625"
41739$at_failed && at_fn_log_failure  \
41740"prog.lst"
41741$at_traceon; }
41742
41743{ set +x
41744$as_echo "$at_srcdir/listings.at:3626: diff prog19.lst prog.lis"
41745at_fn_check_prepare_trace "listings.at:3626"
41746( $at_check_trace; diff prog19.lst prog.lis
41747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41748at_status=$? at_failed=false
41749$at_check_filter
41750at_fn_diff_devnull "$at_stderr" || at_failed=:
41751at_fn_diff_devnull "$at_stdout" || at_failed=:
41752at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3626"
41753$at_failed && at_fn_log_failure  \
41754"prog.lst"
41755$at_traceon; }
41756
41757
41758  set +x
41759  $at_times_p && times >"$at_times_file"
41760) 5>&1 2>&1 7>&- | eval $at_tee_pipe
41761read at_status <"$at_status_file"
41762#AT_STOP_433
41763#AT_START_434
41764at_fn_group_banner 434 'listings.at:3631' \
41765  "Variable format" "                                " 3
41766at_xfail=no
41767(
41768  $as_echo "434. $at_setup_line: testing $at_desc ..."
41769  $at_traceon
41770
41771
41772
41773
41774
41775cat >prog.cob <<'_ATEOF'
41776000001 $SET SOURCEFORMAT "VARIABLE"
41777000010 IDENTIFICATION DIVISION.
41778000020 PROGRAM-ID. prog.
41779000030* blah blah blah
41780000040 PROCEDURE DIVISION.
41781000050                                                                  DISPLAY "Hello!"
41782000060     .
41783000070 END PROGRAM prog.
41784_ATEOF
41785
41786
41787{ set +x
41788$as_echo "$at_srcdir/listings.at:3647: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
41789at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:3647"
41790( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
41791) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41792at_status=$? at_failed=false
41793$at_check_filter
41794at_fn_diff_devnull "$at_stderr" || at_failed=:
41795at_fn_diff_devnull "$at_stdout" || at_failed=:
41796at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3647"
41797$at_failed && at_fn_log_failure  \
41798"prog.lst"
41799$at_traceon; }
41800
41801
41802cat >prog20.lst <<'_ATEOF'
41803GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
41804
41805LINE    PG/LN  A...B............................................................
41806
41807000001  000001 $SET SOURCEFORMAT "VARIABLE"
41808000002  000010 IDENTIFICATION DIVISION.
41809000003  000020 PROGRAM-ID. prog.
41810000004  000030* blah blah blah
41811000005  000040 PROCEDURE DIVISION.
41812000006  000050
41813000006+ DISPLAY "Hello!"
41814000007  000060     .
41815000008  000070 END PROGRAM prog.
41816
41817
418180 warnings in compilation group
418190 errors in compilation group
41820_ATEOF
41821
41822
41823{ set +x
41824$as_echo "$at_srcdir/listings.at:3669: \$UNIFY_LISTING prog.lst prog.lis once"
41825at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3669"
41826( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
41827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41828at_status=$? at_failed=false
41829$at_check_filter
41830at_fn_diff_devnull "$at_stderr" || at_failed=:
41831at_fn_diff_devnull "$at_stdout" || at_failed=:
41832at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3669"
41833$at_failed && at_fn_log_failure  \
41834"prog.lst"
41835$at_traceon; }
41836
41837{ set +x
41838$as_echo "$at_srcdir/listings.at:3670: diff prog20.lst prog.lis"
41839at_fn_check_prepare_trace "listings.at:3670"
41840( $at_check_trace; diff prog20.lst prog.lis
41841) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41842at_status=$? at_failed=false
41843$at_check_filter
41844at_fn_diff_devnull "$at_stderr" || at_failed=:
41845at_fn_diff_devnull "$at_stdout" || at_failed=:
41846at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3670"
41847$at_failed && at_fn_log_failure  \
41848"prog.lst"
41849$at_traceon; }
41850
41851
41852  set +x
41853  $at_times_p && times >"$at_times_file"
41854) 5>&1 2>&1 7>&- | eval $at_tee_pipe
41855read at_status <"$at_status_file"
41856#AT_STOP_434
41857#AT_START_435
41858at_fn_group_banner 435 'listings.at:3675' \
41859  "LISTING directive" "                              " 3
41860at_xfail=no
41861(
41862  $as_echo "435. $at_setup_line: testing $at_desc ..."
41863  $at_traceon
41864
41865
41866
41867
41868
41869cat >copy.inc <<'_ATEOF'
41870
41871       >>LISTING OFF
41872       01 TEST1-VAR PIC X(2) VALUE "OK".
41873       01 TEST2-VAR PIC X(2) VALUE "OK".
41874       01 TEST3-VAR PIC X(2) VALUE "OK".
41875       01 TEST4-VAR PIC X(2) VALUE "OK".
41876       >>LISTING ON
41877       01 TEST5-VAR PIC X(2) VALUE "OK".
41878       01 TEST6-VAR PIC X(2) VALUE "OK".
41879       01 TEST7-VAR PIC X(2) VALUE "OK".
41880       01 TEST8-VAR PIC X(2) VALUE "OK".
41881_ATEOF
41882
41883
41884cat >copy2.inc <<'_ATEOF'
41885       >> LISTING OFF
41886       01 TEST9-VAR PIC X(2) VALUE "OK".
41887       >>LISTING
41888       01 TESTA-VAR PIC X(2) VALUE "OK".
41889_ATEOF
41890
41891
41892cat >prog.cob <<'_ATEOF'
41893
41894       IDENTIFICATION   DIVISION.
41895       PROGRAM-ID.      prog.
41896       DATA             DIVISION.
41897       WORKING-STORAGE  SECTION.
41898       COPY "copy.inc".
41899       COPY "copy2.inc".
41900       PROCEDURE        DIVISION.
41901           DISPLAY TEST1-VAR NO ADVANCING
41902           END-DISPLAY.
41903           STOP RUN.
41904_ATEOF
41905
41906
41907{ set +x
41908$as_echo "$at_srcdir/listings.at:3712: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
41909at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:3712"
41910( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
41911) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41912at_status=$? at_failed=false
41913$at_check_filter
41914at_fn_diff_devnull "$at_stderr" || at_failed=:
41915at_fn_diff_devnull "$at_stdout" || at_failed=:
41916at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3712"
41917$at_failed && at_fn_log_failure  \
41918"prog.lst"
41919$at_traceon; }
41920
41921
41922cat >prog17.lst <<'_ATEOF'
41923GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
41924
41925LINE    PG/LN  A...B............................................................
41926
41927000001
41928000002         IDENTIFICATION   DIVISION.
41929000003         PROGRAM-ID.      prog.
41930000004         DATA             DIVISION.
41931000005         WORKING-STORAGE  SECTION.
41932000006         COPY "copy.inc".
41933000001C
41934000002C        >>LISTING OFF
41935000007C        >>LISTING ON
41936000008C        01 TEST5-VAR PIC X(2) VALUE "OK".
41937000009C        01 TEST6-VAR PIC X(2) VALUE "OK".
41938000010C        01 TEST7-VAR PIC X(2) VALUE "OK".
41939000011C        01 TEST8-VAR PIC X(2) VALUE "OK".
41940000007         COPY "copy2.inc".
41941000001C        >> LISTING OFF
41942000003C        >>LISTING
41943000004C        01 TESTA-VAR PIC X(2) VALUE "OK".
41944000008         PROCEDURE        DIVISION.
41945000009             DISPLAY TEST1-VAR NO ADVANCING
41946000010             END-DISPLAY.
41947000011             STOP RUN.
41948
41949SIZE  TYPE           LVL  NAME                           PICTURE
41950
41951      WORKING-STORAGE SECTION
41952
4195300002 ALPHANUMERIC   01   TEST1-VAR                      X(2)
41954
4195500002 ALPHANUMERIC   01   TEST2-VAR                      X(2)
41956
4195700002 ALPHANUMERIC   01   TEST3-VAR                      X(2)
41958
4195900002 ALPHANUMERIC   01   TEST4-VAR                      X(2)
41960
4196100002 ALPHANUMERIC   01   TEST5-VAR                      X(2)
41962
4196300002 ALPHANUMERIC   01   TEST6-VAR                      X(2)
41964
4196500002 ALPHANUMERIC   01   TEST7-VAR                      X(2)
41966
4196700002 ALPHANUMERIC   01   TEST8-VAR                      X(2)
41968
4196900002 ALPHANUMERIC   01   TEST9-VAR                      X(2)
41970
4197100002 ALPHANUMERIC   01   TESTA-VAR                      X(2)
41972
41973
419740 warnings in compilation group
419750 errors in compilation group
41976_ATEOF
41977
41978
41979{ set +x
41980$as_echo "$at_srcdir/listings.at:3770: \$UNIFY_LISTING prog.lst prog.lis once"
41981at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3770"
41982( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
41983) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41984at_status=$? at_failed=false
41985$at_check_filter
41986at_fn_diff_devnull "$at_stderr" || at_failed=:
41987at_fn_diff_devnull "$at_stdout" || at_failed=:
41988at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3770"
41989$at_failed && at_fn_log_failure  \
41990"prog.lst"
41991$at_traceon; }
41992
41993{ set +x
41994$as_echo "$at_srcdir/listings.at:3771: diff prog17.lst prog.lis"
41995at_fn_check_prepare_trace "listings.at:3771"
41996( $at_check_trace; diff prog17.lst prog.lis
41997) >>"$at_stdout" 2>>"$at_stderr" 5>&-
41998at_status=$? at_failed=false
41999$at_check_filter
42000at_fn_diff_devnull "$at_stderr" || at_failed=:
42001at_fn_diff_devnull "$at_stdout" || at_failed=:
42002at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3771"
42003$at_failed && at_fn_log_failure  \
42004"prog.lst"
42005$at_traceon; }
42006
42007
42008  set +x
42009  $at_times_p && times >"$at_times_file"
42010) 5>&1 2>&1 7>&- | eval $at_tee_pipe
42011read at_status <"$at_status_file"
42012#AT_STOP_435
42013#AT_START_436
42014at_fn_group_banner 436 'listings.at:3776' \
42015  "Listing-directive statements" "                   " 3
42016at_xfail=no
42017(
42018  $as_echo "436. $at_setup_line: testing $at_desc ..."
42019  $at_traceon
42020
42021
42022
42023
42024
42025cat >prog.cob <<'_ATEOF'
42026           TITLE "GnuCOBOL lists IBM"
42027       IDENTIFICATION   DIVISION.
42028           SKIP1
42029       PROGRAM-ID.      prog.
42030           SKIP2
42031       DATA             DIVISION.
42032           SKIP3
42033       WORKING-STORAGE  SECTION.
42034       01  TITLE-01          PIC X(2).
42035       01  TITLE-02          PIC X(2).
42036           TITLE "here goes the code"
42037       PROCEDURE        DIVISION.
42038       EJECT
42039           MOVE SPACE TO TITLE-01
42040                         TITLE-02.
42041           STOP RUN.
42042_ATEOF
42043
42044
42045{ set +x
42046$as_echo "$at_srcdir/listings.at:3799: \$COMPILE_ONLY -t prog.lst -std=ibm prog.cob"
42047at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -std=ibm prog.cob" "listings.at:3799"
42048( $at_check_trace; $COMPILE_ONLY -t prog.lst -std=ibm prog.cob
42049) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42050at_status=$? at_failed=false
42051$at_check_filter
42052at_fn_diff_devnull "$at_stderr" || at_failed=:
42053at_fn_diff_devnull "$at_stdout" || at_failed=:
42054at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3799"
42055$at_failed && at_fn_log_failure  \
42056"prog.lst"
42057$at_traceon; }
42058
42059
42060cat >expect.lst <<'_ATEOF'
42061GnuCOBOL lists IBM      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
42062
42063LINE    PG/LN  A...B............................................................
42064
42065000002         IDENTIFICATION   DIVISION.
42066
42067
42068000004         PROGRAM-ID.      prog.
42069
42070
42071
42072000006         DATA             DIVISION.
42073
42074
42075
42076
42077000008         WORKING-STORAGE  SECTION.
42078000009         01  TITLE-01          PIC X(2).
42079000010         01  TITLE-02          PIC X(2).
42080here goes the code      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
42081
42082LINE    PG/LN  A...B............................................................
42083
42084000012         PROCEDURE        DIVISION.
42085here goes the code      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0003
42086
42087LINE    PG/LN  A...B............................................................
42088
42089000014             MOVE SPACE TO TITLE-01
42090000015                           TITLE-02.
42091000016             STOP RUN.
42092
42093
420940 warnings in compilation group
420950 errors in compilation group
42096_ATEOF
42097
42098
42099{ set +x
42100$as_echo "$at_srcdir/listings.at:3839: \$UNIFY_LISTING prog.lst prog.lis"
42101at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3839"
42102( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
42103) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42104at_status=$? at_failed=false
42105$at_check_filter
42106at_fn_diff_devnull "$at_stderr" || at_failed=:
42107at_fn_diff_devnull "$at_stdout" || at_failed=:
42108at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3839"
42109$at_failed && at_fn_log_failure  \
42110"prog.lst"
42111$at_traceon; }
42112
42113{ set +x
42114$as_echo "$at_srcdir/listings.at:3840: diff expect.lst prog.lis"
42115at_fn_check_prepare_trace "listings.at:3840"
42116( $at_check_trace; diff expect.lst prog.lis
42117) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42118at_status=$? at_failed=false
42119$at_check_filter
42120at_fn_diff_devnull "$at_stderr" || at_failed=:
42121at_fn_diff_devnull "$at_stdout" || at_failed=:
42122at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3840"
42123$at_failed && at_fn_log_failure  \
42124"prog.lst"
42125$at_traceon; }
42126
42127
42128  set +x
42129  $at_times_p && times >"$at_times_file"
42130) 5>&1 2>&1 7>&- | eval $at_tee_pipe
42131read at_status <"$at_status_file"
42132#AT_STOP_436
42133#AT_START_437
42134at_fn_group_banner 437 'listings.at:3845' \
42135  "Eject page" "                                     " 3
42136at_xfail=no
42137(
42138  $as_echo "437. $at_setup_line: testing $at_desc ..."
42139  $at_traceon
42140
42141
42142
42143
42144
42145cat >prog.cob <<'_ATEOF'
42146
42147       IDENTIFICATION   DIVISION.
42148       PROGRAM-ID.      prog.
42149       DATA             DIVISION.
42150       WORKING-STORAGE  SECTION.
42151      /
42152       PROCEDURE        DIVISION.
42153           STOP RUN.
42154_ATEOF
42155
42156
42157{ set +x
42158$as_echo "$at_srcdir/listings.at:3860: \$COMPILE_ONLY -t prog.lst prog.cob"
42159at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "listings.at:3860"
42160( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob
42161) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42162at_status=$? at_failed=false
42163$at_check_filter
42164at_fn_diff_devnull "$at_stderr" || at_failed=:
42165at_fn_diff_devnull "$at_stdout" || at_failed=:
42166at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3860"
42167$at_failed && at_fn_log_failure  \
42168"prog.lis"
42169$at_traceon; }
42170
42171
42172cat >prog7.lst <<'_ATEOF'
42173GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001
42174
42175LINE    PG/LN  A...B............................................................
42176
42177000001
42178000002         IDENTIFICATION   DIVISION.
42179000003         PROGRAM-ID.      prog.
42180000004         DATA             DIVISION.
42181000005         WORKING-STORAGE  SECTION.
42182GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002
42183
42184LINE    PG/LN  A...B............................................................
42185
42186000006        /
42187000007         PROCEDURE        DIVISION.
42188000008             STOP RUN.
42189
42190
421910 warnings in compilation group
421920 errors in compilation group
42193_ATEOF
42194
42195
42196{ set +x
42197$as_echo "$at_srcdir/listings.at:3885: \$UNIFY_LISTING prog.lst prog.lis"
42198at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3885"
42199( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
42200) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42201at_status=$? at_failed=false
42202$at_check_filter
42203at_fn_diff_devnull "$at_stderr" || at_failed=:
42204at_fn_diff_devnull "$at_stdout" || at_failed=:
42205at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3885"
42206$at_failed && at_fn_log_failure  \
42207"prog.lis"
42208$at_traceon; }
42209
42210{ set +x
42211$as_echo "$at_srcdir/listings.at:3886: diff prog7.lst prog.lis"
42212at_fn_check_prepare_trace "listings.at:3886"
42213( $at_check_trace; diff prog7.lst prog.lis
42214) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42215at_status=$? at_failed=false
42216$at_check_filter
42217at_fn_diff_devnull "$at_stderr" || at_failed=:
42218at_fn_diff_devnull "$at_stdout" || at_failed=:
42219at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3886"
42220$at_failed && at_fn_log_failure  \
42221"prog.lis"
42222$at_traceon; }
42223
42224
42225cat >prog2.cob <<'_ATEOF'
42226
42227  IDENTIFICATION   DIVISION.
42228  PROGRAM-ID.      prog2.
42229  DATA             DIVISION.
42230  WORKING-STORAGE  SECTION.
42231>>PAGE
42232  PROCEDURE        DIVISION.
42233  STOP RUN.
42234_ATEOF
42235
42236
42237
42238{ set +x
42239$as_echo "$at_srcdir/listings.at:3899: \$COMPILE_ONLY -t prog.lst -free prog2.cob"
42240at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -free prog2.cob" "listings.at:3899"
42241( $at_check_trace; $COMPILE_ONLY -t prog.lst -free prog2.cob
42242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42243at_status=$? at_failed=false
42244$at_check_filter
42245at_fn_diff_devnull "$at_stderr" || at_failed=:
42246at_fn_diff_devnull "$at_stdout" || at_failed=:
42247at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3899"
42248$at_failed && at_fn_log_failure  \
42249"prog.lis"
42250$at_traceon; }
42251
42252
42253cat >prog8.lst <<'_ATEOF'
42254GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
42255
42256LINE    .....................SOURCE.............................................
42257
42258000001
42259000002    IDENTIFICATION   DIVISION.
42260000003    PROGRAM-ID.      prog2.
42261000004    DATA             DIVISION.
42262000005    WORKING-STORAGE  SECTION.
42263GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002
42264
42265LINE    .....................SOURCE.............................................
42266
42267000006  >>PAGE
42268000007    PROCEDURE        DIVISION.
42269000008    STOP RUN.
42270
42271
422720 warnings in compilation group
422730 errors in compilation group
42274_ATEOF
42275
42276
42277{ set +x
42278$as_echo "$at_srcdir/listings.at:3924: \$UNIFY_LISTING prog.lst prog.lis"
42279at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3924"
42280( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
42281) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42282at_status=$? at_failed=false
42283$at_check_filter
42284at_fn_diff_devnull "$at_stderr" || at_failed=:
42285at_fn_diff_devnull "$at_stdout" || at_failed=:
42286at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3924"
42287$at_failed && at_fn_log_failure  \
42288"prog.lis"
42289$at_traceon; }
42290
42291{ set +x
42292$as_echo "$at_srcdir/listings.at:3925: diff prog8.lst prog.lis"
42293at_fn_check_prepare_trace "listings.at:3925"
42294( $at_check_trace; diff prog8.lst prog.lis
42295) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42296at_status=$? at_failed=false
42297$at_check_filter
42298at_fn_diff_devnull "$at_stderr" || at_failed=:
42299at_fn_diff_devnull "$at_stdout" || at_failed=:
42300at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3925"
42301$at_failed && at_fn_log_failure  \
42302"prog.lis"
42303$at_traceon; }
42304
42305
42306cat >prog3.cob <<'_ATEOF'
42307
42308       IDENTIFICATION   DIVISION.
42309
42310       PROGRAM-ID.      prog3.
42311
42312
42313       DATA             DIVISION.
42314       WORKING-STORAGE  SECTION.
42315       77 WS-VAR PIC X(2).
42316      /
42317       77 WS-VA2 PIC X(2).
42318
42319
42320       LOCAL-STORAGE  SECTION.
42321       77 LS-VAR PIC 9(2).
42322
42323
42324       PROCEDURE        DIVISION.
42325
42326           DISPLAY WS-VAR
42327           MOVE 99 TO LS-VAR
42328
42329           STOP RUN.
42330_ATEOF
42331
42332
42333{ set +x
42334$as_echo "$at_srcdir/listings.at:3952: \$COMPILE_ONLY -t prog.lst prog3.cob"
42335at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog3.cob" "listings.at:3952"
42336( $at_check_trace; $COMPILE_ONLY -t prog.lst prog3.cob
42337) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42338at_status=$? at_failed=false
42339$at_check_filter
42340at_fn_diff_devnull "$at_stderr" || at_failed=:
42341at_fn_diff_devnull "$at_stdout" || at_failed=:
42342at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3952"
42343$at_failed && at_fn_log_failure  \
42344"prog.lis"
42345$at_traceon; }
42346
42347
42348cat >prog9.lst <<'_ATEOF'
42349GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
42350
42351LINE    PG/LN  A...B............................................................
42352
42353000001
42354000002         IDENTIFICATION   DIVISION.
42355000003
42356000004         PROGRAM-ID.      prog3.
42357000005
42358000006
42359000007         DATA             DIVISION.
42360000008         WORKING-STORAGE  SECTION.
42361000009         77 WS-VAR PIC X(2).
42362GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002
42363
42364LINE    PG/LN  A...B............................................................
42365
42366000010        /
42367000011         77 WS-VA2 PIC X(2).
42368000012
42369000013
42370000014         LOCAL-STORAGE  SECTION.
42371000015         77 LS-VAR PIC 9(2).
42372000016
42373000017
42374000018         PROCEDURE        DIVISION.
42375000019
42376000020             DISPLAY WS-VAR
42377000021             MOVE 99 TO LS-VAR
42378000022
42379000023             STOP RUN.
42380
42381
423820 warnings in compilation group
423830 errors in compilation group
42384_ATEOF
42385
42386
42387{ set +x
42388$as_echo "$at_srcdir/listings.at:3992: \$UNIFY_LISTING prog.lst prog.lis"
42389at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3992"
42390( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
42391) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42392at_status=$? at_failed=false
42393$at_check_filter
42394at_fn_diff_devnull "$at_stderr" || at_failed=:
42395at_fn_diff_devnull "$at_stdout" || at_failed=:
42396at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3992"
42397$at_failed && at_fn_log_failure  \
42398"prog.lis"
42399$at_traceon; }
42400
42401{ set +x
42402$as_echo "$at_srcdir/listings.at:3993: diff prog9.lst prog.lis"
42403at_fn_check_prepare_trace "listings.at:3993"
42404( $at_check_trace; diff prog9.lst prog.lis
42405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42406at_status=$? at_failed=false
42407$at_check_filter
42408at_fn_diff_devnull "$at_stderr" || at_failed=:
42409at_fn_diff_devnull "$at_stdout" || at_failed=:
42410at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3993"
42411$at_failed && at_fn_log_failure  \
42412"prog.lis"
42413$at_traceon; }
42414
42415
42416{ set +x
42417$as_echo "$at_srcdir/listings.at:3995: \$COMPILE_ONLY -t prog.lst -tlines=20 prog3.cob"
42418at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=20 prog3.cob" "listings.at:3995"
42419( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=20 prog3.cob
42420) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42421at_status=$? at_failed=false
42422$at_check_filter
42423at_fn_diff_devnull "$at_stderr" || at_failed=:
42424at_fn_diff_devnull "$at_stdout" || at_failed=:
42425at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3995"
42426$at_failed && at_fn_log_failure  \
42427"prog.lis"
42428$at_traceon; }
42429
42430
42431cat >prog10.lst <<'_ATEOF'
42432GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001
42433
42434LINE    PG/LN  A...B............................................................
42435
42436000001
42437000002         IDENTIFICATION   DIVISION.
42438000003
42439000004         PROGRAM-ID.      prog3.
42440000005
42441000006
42442000007         DATA             DIVISION.
42443000008         WORKING-STORAGE  SECTION.
42444000009         77 WS-VAR PIC X(2).
42445GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002
42446
42447LINE    PG/LN  A...B............................................................
42448
42449000010        /
42450000011         77 WS-VA2 PIC X(2).
42451000012
42452000013
42453000014         LOCAL-STORAGE  SECTION.
42454000015         77 LS-VAR PIC 9(2).
42455000016
42456000017
42457000018         PROCEDURE        DIVISION.
42458000019
42459000020             DISPLAY WS-VAR
42460000021             MOVE 99 TO LS-VAR
42461000022
42462000023             STOP RUN.
42463
42464
424650 warnings in compilation group
42466GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0003
42467
424680 errors in compilation group
42469_ATEOF
42470
42471
42472{ set +x
42473$as_echo "$at_srcdir/listings.at:4037: \$UNIFY_LISTING prog.lst prog.lis"
42474at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:4037"
42475( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
42476) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42477at_status=$? at_failed=false
42478$at_check_filter
42479at_fn_diff_devnull "$at_stderr" || at_failed=:
42480at_fn_diff_devnull "$at_stdout" || at_failed=:
42481at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4037"
42482$at_failed && at_fn_log_failure  \
42483"prog.lis"
42484$at_traceon; }
42485
42486{ set +x
42487$as_echo "$at_srcdir/listings.at:4038: diff prog10.lst prog.lis"
42488at_fn_check_prepare_trace "listings.at:4038"
42489( $at_check_trace; diff prog10.lst prog.lis
42490) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42491at_status=$? at_failed=false
42492$at_check_filter
42493at_fn_diff_devnull "$at_stderr" || at_failed=:
42494at_fn_diff_devnull "$at_stdout" || at_failed=:
42495at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4038"
42496$at_failed && at_fn_log_failure  \
42497"prog.lis"
42498$at_traceon; }
42499
42500
42501  set +x
42502  $at_times_p && times >"$at_times_file"
42503) 5>&1 2>&1 7>&- | eval $at_tee_pipe
42504read at_status <"$at_status_file"
42505#AT_STOP_437
42506#AT_START_438
42507at_fn_group_banner 438 'listings.at:4043' \
42508  "Cross reference" "                                " 3
42509at_xfail=no
42510(
42511  $as_echo "438. $at_setup_line: testing $at_desc ..."
42512  $at_traceon
42513
42514
42515
42516
42517
42518cat >EDITOR.cob <<'_ATEOF'
42519
42520       IDENTIFICATION DIVISION.                                         EDIT0001
42521       PROGRAM-ID.                                                      EDIT0002
42522           EDITOR.                                                      EDIT0003
42523                                                                        EDIT0008
42524      *NOTE.                                                            EDIT0009
42525      *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE        EDIT0010
42526      *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND      EDIT0011
42527      *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND     EDIT0012
42528      *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH     EDIT0013
42529      *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS      EDIT0014
42530      *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.                   EDIT0015
42531      *    CHANGE 1.                                                    EDIT0016
42532      *       MODIFY TO RUN ON TI-990.                                  EDIT0017
42533      *    CHANGE 2.                                                    EDIT0018
42534      *       MODIFY TO RUN ON GNUCOBOL.                                EDIT0019
42535                                                                        EDIT0020
42536       ENVIRONMENT DIVISION.                                            EDIT0021
42537       CONFIGURATION SECTION.                                           EDIT0022
42538       SOURCE-COMPUTER.                                                 EDIT0023
42539           IBM-360.                                                     EDIT0024
42540       OBJECT-COMPUTER.                                                 EDIT0025
42541           IBM-360.                                                     EDIT0026
42542       INPUT-OUTPUT SECTION.                                            EDIT0027
42543       FILE-CONTROL.                                                    EDIT0028
42544           SELECT OLD-VERSION  ASSIGN TO "SYSUT1"                       EDIT0029
42545                               ORGANIZATION LINE SEQUENTIAL.            EDIT0030
42546           SELECT NEW-VERSION  ASSIGN TO "SYSUT2"                       EDIT0031
42547                               ORGANIZATION LINE SEQUENTIAL.            EDIT0032
42548           SELECT PRT-VERSION  ASSIGN TO "SYSUT2"                       EDIT0033
42549                               ORGANIZATION LINE SEQUENTIAL.            EDIT0034
42550           SELECT MODIFICATION ASSIGN TO "SYSIN1"                       EDIT0035
42551                               ORGANIZATION LINE SEQUENTIAL.            EDIT0036
42552           SELECT COMMENTARY   ASSIGN TO "SYSOU1"                       EDIT0037
42553                               ORGANIZATION LINE SEQUENTIAL.            EDIT0038
42554                                                                        EDIT0039
42555       DATA DIVISION.                                                   EDIT0040
42556                                                                        EDIT0041
42557       FILE SECTION.                                                    EDIT0042
42558                                                                        EDIT0043
42559       FD  OLD-VERSION                                                  EDIT0044
42560           LABEL RECORDS ARE STANDARD                                   EDIT0045
42561           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0046
42562           DATA RECORD IS OLD-RECORD.                                   EDIT0047
42563                                                                        EDIT0048
42564       01  OLD-RECORD.                                                  EDIT0049
42565           02 OLD-STATEMENT       PICTURE X(75).                        EDIT0050
42566           02 OLD-NUMBER          PICTURE X(5).                         EDIT0051
42567                                                                        EDIT0052
42568       FD  NEW-VERSION                                                  EDIT0053
42569           LABEL RECORDS ARE STANDARD                                   EDIT0054
42570           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0055
42571           DATA RECORD IS NEW-RECORD.                                   EDIT0056
42572                                                                        EDIT0057
42573       01  NEW-RECORD.                                                  EDIT0058
42574           02 NEW-STATEMENT       PICTURE X(75).                        EDIT0059
42575           02 NEW-NUMBER          PICTURE X(5).                         EDIT0060
42576                                                                        EDIT0061
42577       FD  MODIFICATION                                                 EDIT0062
42578           LABEL RECORDS ARE OMITTED                                    EDIT0063
42579           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0064
42580           DATA RECORD IS UPDATE-ORDER.                                 EDIT0065
42581                                                                        EDIT0066
42582       01  UPDATE-ORDER.                                                EDIT0067
42583           02 INSERTION.                                                EDIT0068
42584              03 COMMAND          PICTURE X(6).                         EDIT0069
42585                 88 ENDJOB        VALUE "ENDJOB".                       EDIT0070
42586                 88 ENDSET        VALUE "ENDSET".                       EDIT0071
42587                 88 REMOVE        VALUE "REMOVE".                       EDIT0072
42588                 88 ADDNEW        VALUE "INSERT".                       EDIT0073
42589                 88 CHANGE        VALUE "CHANGE".                       EDIT0074
42590                 88 DISPLY        VALUE "DISPLY".                       EDIT0075
42591              03 FILLER           PICTURE X.                            EDIT0076
42592              03 A-FIELD          PICTURE 9(5).                         EDIT0077
42593              03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).             EDIT0078
42594                 88 A-BLANK       VALUE SPACES.                         EDIT0079
42595              03 FILLER           PICTURE X(4).                         EDIT0080
42596              03 B-FIELD          PICTURE 9(5).                         EDIT0081
42597              03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).             EDIT0082
42598                 88 B-BLANK       VALUE SPACES.                         EDIT0083
42599              03 FILLER           PICTURE X(54).                        EDIT0084
42600           02 FILLER              PICTURE X(5).                         EDIT0085
42601                                                                        EDIT0086
42602       FD  COMMENTARY                                                   EDIT0087
42603           LABEL RECORDS ARE OMITTED                                    EDIT0088
42604           BLOCK CONTAINS 82 CHARACTERS                                 EDIT0089
42605           DATA RECORD IS COMMENT-LINE.                                 EDIT0090
42606                                                                        EDIT0091
42607       01  COMMENT-LINE.                                                EDIT0092
42608           02 FILLER              PICTURE X(82).                        EDIT0093
42609                                                                        EDIT0094
42610       WORKING-STORAGE SECTION.                                         EDIT0095
42611                                                                        EDIT0096
42612       77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0097
42613       77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0098
42614       77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0099
42615       77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0100
42616       77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.   EDIT0101
42617       77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.   EDIT0102
42618       77  FIELDA                 PICTURE 9(5) VALUE 0.                 EDIT0103
42619       77  FIELDB                 PICTURE 9(5) VALUE 0.                 EDIT0104
42620       77  BLANK-LINE             PICTURE X(82) VALUE SPACES.           EDIT0105
42621                                                                        EDIT0106
42622       01  DATE-FROM-SYS.                                               EDIT0107
42623           02 DFSYS OCCURS 3 TIMES PICTURE 99.                          EDIT0108
42624                                                                        EDIT0109
42625       01  HEADINGS-LINE.                                               EDIT0110
42626           02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION". EDIT0111
42627           02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".   EDIT0112
42628           02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF". EDIT0113
42629           02 MONTH-RUN           PICTURE XX.                           EDIT0114
42630           02 FILLER              PICTURE X VALUE "/".                  EDIT0115
42631           02 DAY-RUN             PICTURE XX.                           EDIT0116
42632           02 FILLER              PICTURE X VALUE "/".                  EDIT0117
42633           02 YEAR-RUN            PICTURE XX.                           EDIT0118
42634           02 FILLER              PICTURE X(8) VALUE SPACES.            EDIT0119
42635           02 FILLER              PICTURE X(8) VALUE "  PAGE: ".        EDIT0120
42636           02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.                 EDIT0121
42637                                                                        EDIT0122
42638       01  COMMAND-LISTING.                                             EDIT0123
42639           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0124
42640           02 COMMAND-IMAGE       PICTURE X(80).                        EDIT0125
42641                                                                        EDIT0126
42642       01  ACTIVITIES-LISTING.                                          EDIT0127
42643           02 DISPOSITION         PICTURE X(2).                         EDIT0128
42644           02 ACTIVE-IMAGE        PICTURE X(80).                        EDIT0129
42645                                                                        EDIT0130
42646       01  UPSI-BYTE.                                                   EDIT0131
42647           02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.                       EDIT0132
42648                                                                        EDIT0133
42649       01  MESSAGE-LOG.                                                 EDIT0134
42650           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0135
42651           02 MESSAGE-TEXT        PICTURE X(80).                        EDIT0136
42652                                                                        EDIT0137
42653       01  DISPLAY-MESSAGE.                                             EDIT0138
42654           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0139
42655           02 DISPLAY-TEMP        PICTURE X(6).                         EDIT0140
42656           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0141
42657           02 DISPLAY-TEXT        PICTURE X(60).                        EDIT0142
42658                                                                        EDIT0143
42659       77  END-JOB-PROCESS        PICTURE 9 VALUE 0.                    EDIT0144
42660       77  DELETE-PROCESS         PICTURE 9 VALUE 1.                    EDIT0145
42661       77  INSERT-PROCESS         PICTURE 9 VALUE 2.                    EDIT0146
42662       77  WRITE-PROCESS          PICTURE 9 VALUE 3.                    EDIT0147
42663                                                                        EDIT0148
42664       01  SELECTORS.                                                   EDIT0149
42665           02 RETURN-SELECT       PICTURE 9 VALUE 0.                    EDIT0150
42666           02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.                    EDIT0151
42667                                                                        EDIT0152
42668       PROCEDURE DIVISION.                                              EDIT0153
42669                                                                        EDIT0154
42670       START-SECTION.                                                   EDIT0155
42671           OPEN INPUT OLD-VERSION, MODIFICATION,                        EDIT0156
42672                OUTPUT NEW-VERSION, COMMENTARY.                         EDIT0157
42673           MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).                      EDIT0158
42674           ACCEPT DATE-FROM-SYS FROM DATE.                              EDIT0159
42675           MOVE DFSYS (1) TO YEAR-RUN.                                  EDIT0160
42676           MOVE DFSYS (2) TO MONTH-RUN.                                 EDIT0161
42677           MOVE DFSYS (3) TO DAY-RUN.                                   EDIT0162
42678           READ OLD-VERSION AT END                                      EDIT0163
42679              MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT               EDIT0164
42680              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0165
42681              GO TO END-JOB.                                            EDIT0166
42682           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0167
42683           PERFORM OUTPUT-A-RECORD.                                     EDIT0168
42684                                                                        EDIT0169
42685       TOP-OF-PAGE-ROUTINE.                                             EDIT0170
42686           ADD 1 TO PAGE-NUMBER.                                        EDIT0171
42687           MOVE ZERO TO LINE-COUNT.                                     EDIT0172
42688           WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.            EDIT0173
42689           WRITE COMMENT-LINE FROM BLANK-LINE.                          EDIT0174
42690                                                                        EDIT0175
42691       READ-A-COMMAND.                                                  EDIT0176
42692           READ MODIFICATION AT END                                     EDIT0177
42693              MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT           EDIT0178
42694              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0179
42695              GO TO FINISH-JOB.                                         EDIT0180
42696           MOVE UPDATE-ORDER TO COMMAND-IMAGE.                          EDIT0181
42697           WRITE COMMENT-LINE FROM COMMAND-LISTING.                     EDIT0182
42698           ADD 2 TO LINE-COUNT.                                         EDIT0183
42699           IF A-BLANK MOVE ZEROES TO A-FIELD.                           EDIT0184
42700           IF B-BLANK MOVE ZEROES TO B-FIELD.                           EDIT0185
42701           MOVE A-FIELD TO FIELDA.                                      EDIT0186
42702           MOVE B-FIELD TO FIELDB.                                      EDIT0187
42703                                                                        EDIT0188
42704       TEST-COMMAND-TYPE.                                               EDIT0189
42705           IF CHANGE GO TO CHANGE-A-RECORD.                             EDIT0190
42706           IF REMOVE GO TO DELETE-A-RECORD.                             EDIT0191
42707           IF DISPLY MOVE "T" TO UPSI-BIT (2)                           EDIT0192
42708              GO TO FINISH-JOB.                                         EDIT0193
42709           IF ENDJOB GO TO FINISH-JOB.                                  EDIT0194
42710           IF ADDNEW GO TO INSERT-A-RECORD.                             EDIT0195
42711           MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.             EDIT0196
42712           WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0197
42713           GO TO READ-A-COMMAND.                                        EDIT0198
42714                                                                        EDIT0199
42715       CHANGE-A-RECORD.                                                 EDIT0200
42716           ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0201
42717           ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.          EDIT0202
42718                                                                        EDIT0205
42719       FIND-FIELDA.                                                     EDIT0206
42720           IF OLD-NUMBER IS GREATER THAN FIELDA                         EDIT0207
42721              MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT              EDIT0208
42722              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0209
42723              GO TO READ-A-COMMAND.                                     EDIT0210
42724           READ OLD-VERSION AT END                                      EDIT0211
42725              MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT           EDIT0212
42726              MOVE FIELDA TO DISPLAY-TEMP                               EDIT0213
42727              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0214
42728              GO TO END-JOB.                                            EDIT0215
42729           IF OLD-NUMBER IS LESS THAN FIELDA                            EDIT0216
42730              MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0217
42731              PERFORM OUTPUT-A-RECORD                                   EDIT0218
42732              GO TO FIND-FIELDA.                                        EDIT0219
42733                                                                        EDIT0220
42734       RETURN-TO-USER.                                                  EDIT0221
42735           GO TO END-JOB.                                               EDIT0223
42736                                                                        EDIT0228
42737       INSERT-A-RECORD.                                                 EDIT0229
42738           ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0230
42739           ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.              EDIT0231
42740           GO TO FIND-FIELDA.                                           EDIT0234
42741                                                                        EDIT0235
42742       INSERTION-PROCESS.                                               EDIT0236
42743           READ MODIFICATION AT END                                     EDIT0237
42744              MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT                    EDIT0238
42745              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0239
42746              GO TO END-JOB.                                            EDIT0240
42747           IF ENDSET                                                    EDIT0241
42748              MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP                    EDIT0242
42749              MOVE "RECORDS INSERTED." TO DISPLAY-TEXT                  EDIT0243
42750              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0244
42751              ADD COMMAND-ADDITIONS TO TOTAL-INSERTED                   EDIT0245
42752              MOVE ZEROES TO COMMAND-ADDITIONS                          EDIT0246
42753              GO TO NEXT-JOB-STEP.                                      EDIT0247
42754           MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.               EDIT0248
42755           MOVE "I " TO DISPOSITION.                                    EDIT0249
42756           PERFORM OUTPUT-A-RECORD.                                     EDIT0250
42757           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0251
42758           ADD 1 TO COMMAND-ADDITIONS.                                  EDIT0252
42759           ADD 1 TO LINE-COUNT.                                         EDIT0253
42760           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0254
42761           GO TO INSERTION-PROCESS.                                     EDIT0255
42762                                                                        EDIT0256
42763       NEXT-JOB-STEP.                                                   EDIT0257
42764           GO TO END-JOB.                                               EDIT0259
42765                                                                        EDIT0264
42766       FORCED-WRITE.                                                    EDIT0265
42767           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0266
42768           PERFORM OUTPUT-A-RECORD.                                     EDIT0267
42769           GO TO READ-A-COMMAND.                                        EDIT0268
42770                                                                        EDIT0269
42771       DELETE-A-RECORD.                                                 EDIT0270
42772           ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.         EDIT0271
42773           GO TO FIND-FIELDA.                                           EDIT0273
42774                                                                        EDIT0274
42775       DELETION-PROCESS.                                                EDIT0275
42776           MOVE OLD-RECORD TO ACTIVE-IMAGE.                             EDIT0276
42777           MOVE "D " TO DISPOSITION.                                    EDIT0277
42778           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0278
42779           ADD 1 TO LINE-COUNT.                                         EDIT0279
42780           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0280
42781           ADD 1 TO COMMAND-SUBTRACTIONS.                               EDIT0281
42782           IF OLD-NUMBER IS NOT LESS THAN FIELDB                        EDIT0282
42783              MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP                 EDIT0283
42784              MOVE "RECORDS DELETED." TO DISPLAY-TEXT                   EDIT0284
42785              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0285
42786              ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED                 EDIT0286
42787              MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0287
42788              MOVE ZEROES TO COMMAND-SUBTRACTIONS                       EDIT0288
42789              GO TO READ-A-COMMAND.                                     EDIT0289
42790           READ OLD-VERSION AT END                                      EDIT0290
42791              MOVE "NOT FOUND IN OLD VERSION DOING DELETE"              EDIT0291
42792                    TO DISPLAY-TEXT                                     EDIT0292
42793              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0293
42794              GO TO END-JOB.                                            EDIT0294
42795           GO TO DELETION-PROCESS.                                      EDIT0295
42796                                                                        EDIT0296
42797       OUTPUT-A-RECORD.                                                 EDIT0297
42798           ADD 1 TO OUTPUT-COUNT.                                       EDIT0298
42799           MOVE OUTPUT-COUNT TO NEW-NUMBER.                             EDIT0299
42800           WRITE NEW-RECORD.                                            EDIT0300
42801                                                                        EDIT0301
42802       FINISH-JOB.                                                      EDIT0302
42803           READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.              EDIT0303
42804           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0304
42805           GO TO OUTPUT-A-RECORD.                                       EDIT0305
42806                                                                        EDIT0306
42807       TEST-FOR-LISTING.                                                EDIT0307
42808           PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0308
42809           MOVE OLD-NUMBER TO DISPLAY-TEMP.                             EDIT0309
42810           MOVE "RECORDS READ." TO DISPLAY-TEXT.                        EDIT0310
42811           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0311
42812           MOVE TOTAL-INSERTED TO DISPLAY-TEMP.                         EDIT0312
42813           MOVE "RECORDS ADDED." TO DISPLAY-TEXT.                       EDIT0313
42814           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0314
42815           MOVE TOTAL-DELETED TO DISPLAY-TEMP.                          EDIT0315
42816           MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.                     EDIT0316
42817           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0317
42818           MOVE OUTPUT-COUNT TO DISPLAY-TEMP.                           EDIT0318
42819           MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.                 EDIT0319
42820           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0320
42821           IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.                     EDIT0321
42822           CLOSE NEW-VERSION.                                           EDIT0322
42823           OPEN INPUT NEW-VERSION.                                      EDIT0323
42824           MOVE "UPDATED LISTING" TO PHASE.                             EDIT0324
42825           MOVE ZEROES TO PAGE-NUMBER.                                  EDIT0325
42826           PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0326
42827           MOVE SPACES TO DISPOSITION.                                  EDIT0327
42828                                                                        EDIT0328
42829       LISTING-LOOP.                                                    EDIT0329
42830           READ NEW-VERSION AT END GO TO END-JOB.                       EDIT0330
42831           MOVE NEW-RECORD TO ACTIVE-IMAGE.                             EDIT0331
42832           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0332
42833           ADD 1 TO LINE-COUNT.                                         EDIT0333
42834           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0334
42835           GO TO LISTING-LOOP.                                          EDIT0335
42836                                                                        EDIT0336
42837       END-JOB.                                                         EDIT0337
42838           MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.                  EDIT0338
42839           WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0339
42840           CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.    EDIT0340
42841           STOP RUN.                                                    EDIT0341
42842                                                                        EDIT0342
42843       END PROGRAM EDITOR.                                              EDIT0343
42844_ATEOF
42845
42846
42847{ set +x
42848$as_echo "$at_srcdir/listings.at:4375: \$COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob"
42849at_fn_check_prepare_dynamic "$COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob" "listings.at:4375"
42850( $at_check_trace; $COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob
42851) >>"$at_stdout" 2>>"$at_stderr" 5>&-
42852at_status=$? at_failed=false
42853$at_check_filter
42854echo >>"$at_stderr"; $as_echo "EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
42855EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
42856EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
42857EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
42858EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
42859EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
42860EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
42861EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
42862EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
42863EDITOR.cob: in paragraph 'CHANGE-A-RECORD':
42864EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
42865EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
42866EDITOR.cob: in paragraph 'INSERT-A-RECORD':
42867EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
42868EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
42869EDITOR.cob: in paragraph 'DELETE-A-RECORD':
42870EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
42871" | \
42872  $at_diff - "$at_stderr" || at_failed=:
42873at_fn_diff_devnull "$at_stdout" || at_failed=:
42874at_fn_check_status 1 $at_status "$at_srcdir/listings.at:4375"
42875$at_failed && at_fn_log_failure  \
42876"prog.lst"
42877$at_traceon; }
42878
42879
42880
42881cat >prog18.lst <<'_ATEOF'
42882GnuCOBOL V.R.P               EDITOR.cob                 DDD MMM dd HH:MM:SS YYYY
42883
42884LINE    PG/LN  A...B............................................................
42885
42886000001
42887000002         IDENTIFICATION DIVISION.
42888000003         PROGRAM-ID.
42889000004             EDITOR.
42890000005
42891000006        *NOTE.
42892000007        *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE
42893000008        *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND
42894000009        *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND
42895000010        *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH
42896000011        *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS
42897000012        *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.
42898000013        *    CHANGE 1.
42899000014        *       MODIFY TO RUN ON TI-990.
42900000015        *    CHANGE 2.
42901000016        *       MODIFY TO RUN ON GNUCOBOL.
42902000017
42903000018         ENVIRONMENT DIVISION.
42904000019         CONFIGURATION SECTION.
42905000020         SOURCE-COMPUTER.
42906000021             IBM-360.
42907000022         OBJECT-COMPUTER.
42908000023             IBM-360.
42909000024         INPUT-OUTPUT SECTION.
42910000025         FILE-CONTROL.
42911000026             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
42912000027                                 ORGANIZATION LINE SEQUENTIAL.
42913000028             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
42914000029                                 ORGANIZATION LINE SEQUENTIAL.
42915000030             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
42916error: missing file description for FILE PRT-VERSION
42917000031                                 ORGANIZATION LINE SEQUENTIAL.
42918000032             SELECT MODIFICATION ASSIGN TO "SYSIN1"
42919000033                                 ORGANIZATION LINE SEQUENTIAL.
42920000034             SELECT COMMENTARY   ASSIGN TO "SYSOU1"
42921000035                                 ORGANIZATION LINE SEQUENTIAL.
42922000036
42923000037         DATA DIVISION.
42924000038
42925000039         FILE SECTION.
42926000040
42927000041         FD  OLD-VERSION
42928000042             LABEL RECORDS ARE STANDARD
42929warning: LABEL RECORDS is obsolete in GnuCOBOL
42930000043             BLOCK CONTAINS 80 CHARACTERS
42931000044             DATA RECORD IS OLD-RECORD.
42932warning: DATA RECORDS is obsolete in GnuCOBOL
42933000045
42934000046         01  OLD-RECORD.
42935000047             02 OLD-STATEMENT       PICTURE X(75).
42936000048             02 OLD-NUMBER          PICTURE X(5).
42937000049
42938000050         FD  NEW-VERSION
42939000051             LABEL RECORDS ARE STANDARD
42940warning: LABEL RECORDS is obsolete in GnuCOBOL
42941000052             BLOCK CONTAINS 80 CHARACTERS
42942000053             DATA RECORD IS NEW-RECORD.
42943warning: DATA RECORDS is obsolete in GnuCOBOL
42944000054
42945000055         01  NEW-RECORD.
42946000056             02 NEW-STATEMENT       PICTURE X(75).
42947000057             02 NEW-NUMBER          PICTURE X(5).
42948000058
42949000059         FD  MODIFICATION
42950000060             LABEL RECORDS ARE OMITTED
42951warning: LABEL RECORDS is obsolete in GnuCOBOL
42952000061             BLOCK CONTAINS 80 CHARACTERS
42953000062             DATA RECORD IS UPDATE-ORDER.
42954warning: DATA RECORDS is obsolete in GnuCOBOL
42955000063
42956000064         01  UPDATE-ORDER.
42957000065             02 INSERTION.
42958000066                03 COMMAND          PICTURE X(6).
42959000067                   88 ENDJOB        VALUE "ENDJOB".
42960000068                   88 ENDSET        VALUE "ENDSET".
42961000069                   88 REMOVE        VALUE "REMOVE".
42962000070                   88 ADDNEW        VALUE "INSERT".
42963000071                   88 CHANGE        VALUE "CHANGE".
42964000072                   88 DISPLY        VALUE "DISPLY".
42965000073                03 FILLER           PICTURE X.
42966000074                03 A-FIELD          PICTURE 9(5).
42967000075                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
42968000076                   88 A-BLANK       VALUE SPACES.
42969000077                03 FILLER           PICTURE X(4).
42970000078                03 B-FIELD          PICTURE 9(5).
42971000079                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
42972000080                   88 B-BLANK       VALUE SPACES.
42973000081                03 FILLER           PICTURE X(54).
42974000082             02 FILLER              PICTURE X(5).
42975000083
42976000084         FD  COMMENTARY
42977000085             LABEL RECORDS ARE OMITTED
42978warning: LABEL RECORDS is obsolete in GnuCOBOL
42979000086             BLOCK CONTAINS 82 CHARACTERS
42980000087             DATA RECORD IS COMMENT-LINE.
42981warning: DATA RECORDS is obsolete in GnuCOBOL
42982000088
42983000089         01  COMMENT-LINE.
42984000090             02 FILLER              PICTURE X(82).
42985000091
42986000092         WORKING-STORAGE SECTION.
42987000093
42988000094         77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.
42989000095         77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.
42990000096         77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.
42991000097         77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.
42992000098         77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.
42993000099         77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.
42994000100         77  FIELDA                 PICTURE 9(5) VALUE 0.
42995000101         77  FIELDB                 PICTURE 9(5) VALUE 0.
42996000102         77  BLANK-LINE             PICTURE X(82) VALUE SPACES.
42997000103
42998000104         01  DATE-FROM-SYS.
42999000105             02 DFSYS OCCURS 3 TIMES PICTURE 99.
43000000106
43001000107         01  HEADINGS-LINE.
43002000108             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
43003000109             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
43004000110             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
43005000111             02 MONTH-RUN           PICTURE XX.
43006000112             02 FILLER              PICTURE X VALUE "/".
43007000113             02 DAY-RUN             PICTURE XX.
43008000114             02 FILLER              PICTURE X VALUE "/".
43009000115             02 YEAR-RUN            PICTURE XX.
43010000116             02 FILLER              PICTURE X(8) VALUE SPACES.
43011000117             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
43012000118             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.
43013000119
43014000120         01  COMMAND-LISTING.
43015000121             02 FILLER              PICTURE X(2) VALUE SPACES.
43016000122             02 COMMAND-IMAGE       PICTURE X(80).
43017000123
43018000124         01  ACTIVITIES-LISTING.
43019000125             02 DISPOSITION         PICTURE X(2).
43020000126             02 ACTIVE-IMAGE        PICTURE X(80).
43021000127
43022000128         01  UPSI-BYTE.
43023000129             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.
43024000130
43025000131         01  MESSAGE-LOG.
43026000132             02 FILLER              PICTURE X(2) VALUE SPACES.
43027000133             02 MESSAGE-TEXT        PICTURE X(80).
43028000134
43029000135         01  DISPLAY-MESSAGE.
43030000136             02 FILLER              PICTURE X(2) VALUE SPACES.
43031000137             02 DISPLAY-TEMP        PICTURE X(6).
43032000138             02 FILLER              PICTURE X(2) VALUE SPACES.
43033000139             02 DISPLAY-TEXT        PICTURE X(60).
43034000140
43035000141         77  END-JOB-PROCESS        PICTURE 9 VALUE 0.
43036000142         77  DELETE-PROCESS         PICTURE 9 VALUE 1.
43037000143         77  INSERT-PROCESS         PICTURE 9 VALUE 2.
43038000144         77  WRITE-PROCESS          PICTURE 9 VALUE 3.
43039000145
43040000146         01  SELECTORS.
43041000147             02 RETURN-SELECT       PICTURE 9 VALUE 0.
43042000148             02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.
43043000149
43044000150         PROCEDURE DIVISION.
43045000151
43046000152         START-SECTION.
43047000153             OPEN INPUT OLD-VERSION, MODIFICATION,
43048000154                  OUTPUT NEW-VERSION, COMMENTARY.
43049000155             MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).
43050000156             ACCEPT DATE-FROM-SYS FROM DATE.
43051000157             MOVE DFSYS (1) TO YEAR-RUN.
43052000158             MOVE DFSYS (2) TO MONTH-RUN.
43053000159             MOVE DFSYS (3) TO DAY-RUN.
43054000160             READ OLD-VERSION AT END
43055000161                MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT
43056000162                WRITE COMMENT-LINE FROM MESSAGE-LOG
43057000163                GO TO END-JOB.
43058000164             MOVE OLD-STATEMENT TO NEW-STATEMENT.
43059000165             PERFORM OUTPUT-A-RECORD.
43060000166
43061000167         TOP-OF-PAGE-ROUTINE.
43062000168             ADD 1 TO PAGE-NUMBER.
43063000169             MOVE ZERO TO LINE-COUNT.
43064000170             WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.
43065000171             WRITE COMMENT-LINE FROM BLANK-LINE.
43066000172
43067000173         READ-A-COMMAND.
43068000174             READ MODIFICATION AT END
43069000175                MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT
43070000176                WRITE COMMENT-LINE FROM MESSAGE-LOG
43071000177                GO TO FINISH-JOB.
43072000178             MOVE UPDATE-ORDER TO COMMAND-IMAGE.
43073000179             WRITE COMMENT-LINE FROM COMMAND-LISTING.
43074000180             ADD 2 TO LINE-COUNT.
43075000181             IF A-BLANK MOVE ZEROES TO A-FIELD.
43076000182             IF B-BLANK MOVE ZEROES TO B-FIELD.
43077000183             MOVE A-FIELD TO FIELDA.
43078000184             MOVE B-FIELD TO FIELDB.
43079000185
43080000186         TEST-COMMAND-TYPE.
43081000187             IF CHANGE GO TO CHANGE-A-RECORD.
43082000188             IF REMOVE GO TO DELETE-A-RECORD.
43083000189             IF DISPLY MOVE "T" TO UPSI-BIT (2)
43084000190                GO TO FINISH-JOB.
43085000191             IF ENDJOB GO TO FINISH-JOB.
43086000192             IF ADDNEW GO TO INSERT-A-RECORD.
43087000193             MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.
43088000194             WRITE COMMENT-LINE FROM MESSAGE-LOG.
43089000195             GO TO READ-A-COMMAND.
43090000196
43091000197         CHANGE-A-RECORD.
43092000198             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.
43093warning: ALTER is obsolete in GnuCOBOL
43094000199             ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.
43095warning: ALTER is obsolete in GnuCOBOL
43096000200
43097000201         FIND-FIELDA.
43098000202             IF OLD-NUMBER IS GREATER THAN FIELDA
43099000203                MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT
43100000204                WRITE COMMENT-LINE FROM MESSAGE-LOG
43101000205                GO TO READ-A-COMMAND.
43102000206             READ OLD-VERSION AT END
43103000207                MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT
43104000208                MOVE FIELDA TO DISPLAY-TEMP
43105000209                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
43106000210                GO TO END-JOB.
43107000211             IF OLD-NUMBER IS LESS THAN FIELDA
43108000212                MOVE OLD-STATEMENT TO NEW-STATEMENT
43109000213                PERFORM OUTPUT-A-RECORD
43110000214                GO TO FIND-FIELDA.
43111000215
43112000216         RETURN-TO-USER.
43113000217             GO TO END-JOB.
43114000218
43115000219         INSERT-A-RECORD.
43116000220             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.
43117warning: ALTER is obsolete in GnuCOBOL
43118000221             ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.
43119warning: ALTER is obsolete in GnuCOBOL
43120000222             GO TO FIND-FIELDA.
43121000223
43122000224         INSERTION-PROCESS.
43123000225             READ MODIFICATION AT END
43124000226                MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT
43125000227                WRITE COMMENT-LINE FROM MESSAGE-LOG
43126000228                GO TO END-JOB.
43127000229             IF ENDSET
43128000230                MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP
43129000231                MOVE "RECORDS INSERTED." TO DISPLAY-TEXT
43130000232                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
43131000233                ADD COMMAND-ADDITIONS TO TOTAL-INSERTED
43132000234                MOVE ZEROES TO COMMAND-ADDITIONS
43133000235                GO TO NEXT-JOB-STEP.
43134000236             MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.
43135000237             MOVE "I " TO DISPOSITION.
43136000238             PERFORM OUTPUT-A-RECORD.
43137000239             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
43138000240             ADD 1 TO COMMAND-ADDITIONS.
43139000241             ADD 1 TO LINE-COUNT.
43140000242             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
43141000243             GO TO INSERTION-PROCESS.
43142000244
43143000245         NEXT-JOB-STEP.
43144000246             GO TO END-JOB.
43145000247
43146000248         FORCED-WRITE.
43147000249             MOVE OLD-STATEMENT TO NEW-STATEMENT.
43148000250             PERFORM OUTPUT-A-RECORD.
43149000251             GO TO READ-A-COMMAND.
43150000252
43151000253         DELETE-A-RECORD.
43152000254             ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.
43153warning: ALTER is obsolete in GnuCOBOL
43154000255             GO TO FIND-FIELDA.
43155000256
43156000257         DELETION-PROCESS.
43157000258             MOVE OLD-RECORD TO ACTIVE-IMAGE.
43158000259             MOVE "D " TO DISPOSITION.
43159000260             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
43160000261             ADD 1 TO LINE-COUNT.
43161000262             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
43162000263             ADD 1 TO COMMAND-SUBTRACTIONS.
43163000264             IF OLD-NUMBER IS NOT LESS THAN FIELDB
43164000265                MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP
43165000266                MOVE "RECORDS DELETED." TO DISPLAY-TEXT
43166000267                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
43167000268                ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED
43168000269                MOVE OLD-STATEMENT TO NEW-STATEMENT
43169000270                MOVE ZEROES TO COMMAND-SUBTRACTIONS
43170000271                GO TO READ-A-COMMAND.
43171000272             READ OLD-VERSION AT END
43172000273                MOVE "NOT FOUND IN OLD VERSION DOING DELETE"
43173000274                      TO DISPLAY-TEXT
43174000275                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
43175000276                GO TO END-JOB.
43176000277             GO TO DELETION-PROCESS.
43177000278
43178000279         OUTPUT-A-RECORD.
43179000280             ADD 1 TO OUTPUT-COUNT.
43180000281             MOVE OUTPUT-COUNT TO NEW-NUMBER.
43181000282             WRITE NEW-RECORD.
43182000283
43183000284         FINISH-JOB.
43184000285             READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.
43185000286             MOVE OLD-STATEMENT TO NEW-STATEMENT.
43186000287             GO TO OUTPUT-A-RECORD.
43187000288
43188000289         TEST-FOR-LISTING.
43189000290             PERFORM TOP-OF-PAGE-ROUTINE.
43190000291             MOVE OLD-NUMBER TO DISPLAY-TEMP.
43191000292             MOVE "RECORDS READ." TO DISPLAY-TEXT.
43192000293             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
43193000294             MOVE TOTAL-INSERTED TO DISPLAY-TEMP.
43194000295             MOVE "RECORDS ADDED." TO DISPLAY-TEXT.
43195000296             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
43196000297             MOVE TOTAL-DELETED TO DISPLAY-TEMP.
43197000298             MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.
43198000299             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
43199000300             MOVE OUTPUT-COUNT TO DISPLAY-TEMP.
43200000301             MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.
43201000302             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
43202000303             IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.
43203000304             CLOSE NEW-VERSION.
43204000305             OPEN INPUT NEW-VERSION.
43205000306             MOVE "UPDATED LISTING" TO PHASE.
43206000307             MOVE ZEROES TO PAGE-NUMBER.
43207000308             PERFORM TOP-OF-PAGE-ROUTINE.
43208000309             MOVE SPACES TO DISPOSITION.
43209000310
43210000311         LISTING-LOOP.
43211000312             READ NEW-VERSION AT END GO TO END-JOB.
43212000313             MOVE NEW-RECORD TO ACTIVE-IMAGE.
43213000314             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
43214000315             ADD 1 TO LINE-COUNT.
43215000316             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
43216000317             GO TO LISTING-LOOP.
43217000318
43218000319         END-JOB.
43219000320             MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.
43220000321             WRITE COMMENT-LINE FROM MESSAGE-LOG.
43221000322             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
43222000323             STOP RUN.
43223000324
43224000325         END PROGRAM EDITOR.
43225
43226SIZE  TYPE           LVL  NAME                           PICTURE
43227
4322800080 FILE                OLD-VERSION
4322900080 GROUP          01   OLD-RECORD
4323000075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
4323100005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)
43232
4323300080 FILE                NEW-VERSION
4323400080 GROUP          01   NEW-RECORD
4323500075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
4323600005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)
43237
4323800032 FILE                PRT-VERSION
43239
4324000080 FILE                MODIFICATION
4324100080 GROUP          01   UPDATE-ORDER
4324200075 GROUP          02   INSERTION
4324300006 ALPHANUMERIC   03   COMMAND                        X(6)
43244      CONDITIONAL    88   ENDJOB
43245      CONDITIONAL    88   ENDSET
43246      CONDITIONAL    88   REMOVE
43247      CONDITIONAL    88   ADDNEW
43248      CONDITIONAL    88   CHANGE
43249      CONDITIONAL    88   DISPLY
4325000001 ALPHANUMERIC   03   FILLER                         X
4325100005 NUMERIC        03   A-FIELD                        9(5)
4325200005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
43253      CONDITIONAL    88   A-BLANK
4325400004 ALPHANUMERIC   03   FILLER                         X(4)
4325500005 NUMERIC        03   B-FIELD                        9(5)
4325600005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
43257      CONDITIONAL    88   B-BLANK
4325800054 ALPHANUMERIC   03   FILLER                         X(54)
4325900005 ALPHANUMERIC   02   FILLER                         X(5)
43260
4326100082 FILE                COMMENTARY
4326200082 GROUP          01   COMMENT-LINE
4326300082 ALPHANUMERIC   02   FILLER                         X(82)
43264
43265      WORKING-STORAGE SECTION
43266
4326700002 NUMERIC        77   COMMAND-ADDITIONS              9(3) COMP
4326800002 NUMERIC        77   COMMAND-SUBTRACTIONS           9(3) COMP
4326900002 NUMERIC        77   TOTAL-INSERTED                 9(3) COMP
4327000002 NUMERIC        77   TOTAL-DELETED                  9(3) COMP
4327100004 NUMERIC        77   OUTPUT-COUNT                   9(5) COMP
4327200001 NUMERIC        77   LINE-COUNT                     9(2) COMP
4327300005 NUMERIC        77   FIELDA                         9(5)
4327400005 NUMERIC        77   FIELDB                         9(5)
4327500082 ALPHANUMERIC   77   BLANK-LINE                     X(82)
43276
4327700006 GROUP          01   DATE-FROM-SYS
4327800002 NUMERIC        02   DFSYS                          99, OCCURS 3
43279
4328000080 GROUP          01   HEADINGS-LINE
4328100015 ALPHANUMERIC   02   FILLER                         X(15)
4328200020 ALPHANUMERIC   02   FILLER                         X(20)
4328300017 ALPHANUMERIC   02   PHASE                          X(17)
4328400002 ALPHANUMERIC   02   MONTH-RUN                      XX
4328500001 ALPHANUMERIC   02   FILLER                         X
4328600002 ALPHANUMERIC   02   DAY-RUN                        XX
4328700001 ALPHANUMERIC   02   FILLER                         X
4328800002 ALPHANUMERIC   02   YEAR-RUN                       XX
4328900008 ALPHANUMERIC   02   FILLER                         X(8)
4329000008 ALPHANUMERIC   02   FILLER                         X(8)
4329100004 NUMERIC        02   PAGE-NUMBER                    9(4)
43292
4329300082 GROUP          01   COMMAND-LISTING
4329400002 ALPHANUMERIC   02   FILLER                         X(2)
4329500080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)
43296
4329700082 GROUP          01   ACTIVITIES-LISTING
4329800002 ALPHANUMERIC   02   DISPOSITION                    X(2)
4329900080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)
43300
4330100008 GROUP          01   UPSI-BYTE
4330200001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8
43303
4330400082 GROUP          01   MESSAGE-LOG
4330500002 ALPHANUMERIC   02   FILLER                         X(2)
4330600080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)
43307
4330800070 GROUP          01   DISPLAY-MESSAGE
4330900002 ALPHANUMERIC   02   FILLER                         X(2)
4331000006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
4331100002 ALPHANUMERIC   02   FILLER                         X(2)
4331200060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)
43313
4331400001 NUMERIC        77   END-JOB-PROCESS                9
4331500001 NUMERIC        77   DELETE-PROCESS                 9
4331600001 NUMERIC        77   INSERT-PROCESS                 9
4331700001 NUMERIC        77   WRITE-PROCESS                  9
43318
4331900002 GROUP          01   SELECTORS
4332000001 NUMERIC        02   RETURN-SELECT                  9
4332100001 NUMERIC        02   NEXT-JOB-SELECT                9
43322
43323
43324NAME                           DEFINED                REFERENCES
43325
43326OLD-VERSION                    26       41      153     160     206     272
43327                                        285     322                    x7
43328OLD-RECORD                     46       44      258                    x2
43329OLD-STATEMENT                  47       164     212     249     269     286
43330                                                                       x5
43331OLD-NUMBER                     48       202     211     264     291    x4
43332
43333NEW-VERSION                    28       50     *154    *282     304     305
43334                                        312     322                    x7
43335NEW-RECORD                     55       53      282     313            x3
43336NEW-STATEMENT                  56      *164    *212    *236    *249    *269
43337                                       *286                            x6
43338NEW-NUMBER                     57      *281                            x1
43339
43340PRT-VERSION                    30     not referenced
43341
43342MODIFICATION                   32       59      153     174     225     322
43343                                                                       x5
43344UPDATE-ORDER                   64       62      178                    x2
43345INSERTION                      65       236                            x1
43346COMMAND                        66     referenced by parent/child
43347ENDJOB                         67       191                            x1
43348ENDSET                         68       229                            x1
43349REMOVE                         69       188                            x1
43350ADDNEW                         70       192                            x1
43351CHANGE                         71       187                            x1
43352DISPLY                         72       189                            x1
43353A-FIELD                        74      *181     183                    x2
43354A-ALPHA                        75     referenced by parent/child
43355A-BLANK                        76       181                            x1
43356B-FIELD                        78      *182     184                    x2
43357B-ALPHA                        79     referenced by parent/child
43358B-BLANK                        80       182                            x1
43359
43360COMMENTARY                     34       84     *154    *162    *170    *171
43361                                       *176    *179    *194    *204    *209
43362                                       *227    *232    *239    *260    *267
43363                                       *275    *293    *296    *299    *302
43364                                       *314    *321     322            x23
43365COMMENT-LINE                   89       87     *162    *170    *171    *176
43366                                       *179    *194    *204    *209    *227
43367                                       *232    *239    *260    *267    *275
43368                                       *293    *296    *299    *302    *314
43369                                       *321                            x21
43370
43371COMMAND-ADDITIONS              94       230     233    *234     240    x4
43372COMMAND-SUBTRACTIONS           95       263     265     268    *270    x4
43373TOTAL-INSERTED                 96       233     294                    x2
43374TOTAL-DELETED                  97       268     297                    x2
43375OUTPUT-COUNT                   98       280     281     300            x3
43376LINE-COUNT                     99      *169     180     241     242     261
43377                                        262     315     316            x8
43378FIELDA                         100     *183     202     208     211    x4
43379FIELDB                         101     *184     264                    x2
43380BLANK-LINE                     102      171                            x1
43381DATE-FROM-SYS                  104     *156                            x1
43382DFSYS                          105      157     158     159            x3
43383HEADINGS-LINE                  107      170                            x1
43384PHASE                          110     *306                            x1
43385MONTH-RUN                      111     *158                            x1
43386DAY-RUN                        113     *159                            x1
43387YEAR-RUN                       115     *157                            x1
43388PAGE-NUMBER                    118      168    *307                    x2
43389COMMAND-LISTING                120      179                            x1
43390COMMAND-IMAGE                  122     *178                            x1
43391ACTIVITIES-LISTING             124      239     260     314            x3
43392DISPOSITION                    125     *237    *259    *309            x3
43393ACTIVE-IMAGE                   126     *236    *258    *313            x3
43394UPSI-BYTE                      128    referenced by child
43395UPSI-BIT                       129     *155    *189     303            x3
43396MESSAGE-LOG                    131      162     176     194     204     227
43397                                        321                            x6
43398MESSAGE-TEXT                   133     *161    *175    *193    *203    *226
43399                                       *320                            x6
43400DISPLAY-MESSAGE                135      209     232     267     275     293
43401                                        296     299     302            x8
43402DISPLAY-TEMP                   137     *208    *230    *265    *291    *294
43403                                       *297    *300                    x7
43404DISPLAY-TEXT                   139     *207    *231    *266    *274    *292
43405                                       *295    *298    *301            x8
43406END-JOB-PROCESS                141    not referenced
43407DELETE-PROCESS                 142    not referenced
43408INSERT-PROCESS                 143    not referenced
43409WRITE-PROCESS                  144    not referenced
43410SELECTORS                      146    not referenced
43411RETURN-SELECT                  147    not referenced
43412NEXT-JOB-SELECT                148    not referenced
43413
43414
43415LABEL                          DEFINED                REFERENCES
43416
43417E EDITOR                       150
43418P START-SECTION                152    not referenced
43419P TOP-OF-PAGE-ROUTINE          167      242     262     290     308     316
43420                                                                       x5
43421P READ-A-COMMAND               173      195     205     251     271    x4
43422P TEST-COMMAND-TYPE            186    not referenced
43423P CHANGE-A-RECORD              197      187                            x1
43424P FIND-FIELDA                  201      214     222     255            x3
43425P RETURN-TO-USER               216      198     220     254            x3
43426P INSERT-A-RECORD              219      192                            x1
43427P INSERTION-PROCESS            224      198     220     243            x3
43428P NEXT-JOB-STEP                245      199     221     235            x3
43429P FORCED-WRITE                 248      221                            x1
43430P DELETE-A-RECORD              253      188                            x1
43431P DELETION-PROCESS             257      199     254     277            x3
43432P OUTPUT-A-RECORD              279      165     213     238     250     287
43433                                                                       x5
43434P FINISH-JOB                   284      177     190     191            x3
43435P TEST-FOR-LISTING             289      285                            x1
43436P LISTING-LOOP                 311      317                            x1
43437P END-JOB                      319      163     210     217     228     246
43438                                        276     303     312            x8
43439
43440
43441Error/Warning summary:
43442
43443EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
43444EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
43445EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
43446EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
43447EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
43448EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
43449EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
43450EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
43451EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
43452EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
43453EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
43454EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
43455EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
43456EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
43457
4345813 warnings in compilation group
434591 error in compilation group
43460_ATEOF
43461
43462
43463{ set +x
43464$as_echo "$at_srcdir/listings.at:4977: \$UNIFY_LISTING prog.lst prog.lis once"
43465at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:4977"
43466( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
43467) >>"$at_stdout" 2>>"$at_stderr" 5>&-
43468at_status=$? at_failed=false
43469$at_check_filter
43470at_fn_diff_devnull "$at_stderr" || at_failed=:
43471at_fn_diff_devnull "$at_stdout" || at_failed=:
43472at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4977"
43473$at_failed && at_fn_log_failure  \
43474"prog.lst"
43475$at_traceon; }
43476
43477{ set +x
43478$as_echo "$at_srcdir/listings.at:4978: diff prog18.lst prog.lis"
43479at_fn_check_prepare_trace "listings.at:4978"
43480( $at_check_trace; diff prog18.lst prog.lis
43481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
43482at_status=$? at_failed=false
43483$at_check_filter
43484at_fn_diff_devnull "$at_stderr" || at_failed=:
43485at_fn_diff_devnull "$at_stdout" || at_failed=:
43486at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4978"
43487$at_failed && at_fn_log_failure  \
43488"prog.lst"
43489$at_traceon; }
43490
43491
43492{ set +x
43493$as_echo "$at_srcdir/listings.at:4980: \$COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob"
43494at_fn_check_prepare_dynamic "$COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob" "listings.at:4980"
43495( $at_check_trace; $COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob
43496) >>"$at_stdout" 2>>"$at_stderr" 5>&-
43497at_status=$? at_failed=false
43498$at_check_filter
43499echo >>"$at_stderr"; $as_echo "EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
43500EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
43501EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
43502EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
43503EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
43504EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
43505EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
43506EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
43507EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
43508EDITOR.cob: in paragraph 'CHANGE-A-RECORD':
43509EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
43510EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
43511EDITOR.cob: in paragraph 'INSERT-A-RECORD':
43512EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
43513EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
43514EDITOR.cob: in paragraph 'DELETE-A-RECORD':
43515EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
43516" | \
43517  $at_diff - "$at_stderr" || at_failed=:
43518at_fn_diff_devnull "$at_stdout" || at_failed=:
43519at_fn_check_status 1 $at_status "$at_srcdir/listings.at:4980"
43520$at_failed && at_fn_log_failure  \
43521"prog.lst"
43522$at_traceon; }
43523
43524
43525
43526cat >prog19.lst <<'_ATEOF'
43527GnuCOBOL V.R.P               EDITOR.cob                                                         DDD MMM dd HH:MM:SS YYYY
43528
43529LINE    PG/LN  A...B............................................................SEQUENCE
43530
43531000001
43532000002         IDENTIFICATION DIVISION.                                         EDIT0001
43533000003         PROGRAM-ID.                                                      EDIT0002
43534000004             EDITOR.                                                      EDIT0003
43535000005                                                                          EDIT0008
43536000006        *NOTE.                                                            EDIT0009
43537000007        *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE        EDIT0010
43538000008        *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND      EDIT0011
43539000009        *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND     EDIT0012
43540000010        *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH     EDIT0013
43541000011        *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS      EDIT0014
43542000012        *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.                   EDIT0015
43543000013        *    CHANGE 1.                                                    EDIT0016
43544000014        *       MODIFY TO RUN ON TI-990.                                  EDIT0017
43545000015        *    CHANGE 2.                                                    EDIT0018
43546000016        *       MODIFY TO RUN ON GNUCOBOL.                                EDIT0019
43547000017                                                                          EDIT0020
43548000018         ENVIRONMENT DIVISION.                                            EDIT0021
43549000019         CONFIGURATION SECTION.                                           EDIT0022
43550000020         SOURCE-COMPUTER.                                                 EDIT0023
43551000021             IBM-360.                                                     EDIT0024
43552000022         OBJECT-COMPUTER.                                                 EDIT0025
43553000023             IBM-360.                                                     EDIT0026
43554000024         INPUT-OUTPUT SECTION.                                            EDIT0027
43555000025         FILE-CONTROL.                                                    EDIT0028
43556000026             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"                       EDIT0029
43557000027                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0030
43558000028             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"                       EDIT0031
43559000029                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0032
43560000030             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"                       EDIT0033
43561error: missing file description for FILE PRT-VERSION
43562000031                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0034
43563000032             SELECT MODIFICATION ASSIGN TO "SYSIN1"                       EDIT0035
43564000033                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0036
43565000034             SELECT COMMENTARY   ASSIGN TO "SYSOU1"                       EDIT0037
43566000035                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0038
43567000036                                                                          EDIT0039
43568000037         DATA DIVISION.                                                   EDIT0040
43569000038                                                                          EDIT0041
43570000039         FILE SECTION.                                                    EDIT0042
43571000040                                                                          EDIT0043
43572000041         FD  OLD-VERSION                                                  EDIT0044
43573000042             LABEL RECORDS ARE STANDARD                                   EDIT0045
43574warning: LABEL RECORDS is obsolete in GnuCOBOL
43575000043             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0046
43576000044             DATA RECORD IS OLD-RECORD.                                   EDIT0047
43577warning: DATA RECORDS is obsolete in GnuCOBOL
43578000045                                                                          EDIT0048
43579000046         01  OLD-RECORD.                                                  EDIT0049
43580000047             02 OLD-STATEMENT       PICTURE X(75).                        EDIT0050
43581000048             02 OLD-NUMBER          PICTURE X(5).                         EDIT0051
43582000049                                                                          EDIT0052
43583000050         FD  NEW-VERSION                                                  EDIT0053
43584000051             LABEL RECORDS ARE STANDARD                                   EDIT0054
43585warning: LABEL RECORDS is obsolete in GnuCOBOL
43586000052             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0055
43587000053             DATA RECORD IS NEW-RECORD.                                   EDIT0056
43588warning: DATA RECORDS is obsolete in GnuCOBOL
43589000054                                                                          EDIT0057
43590000055         01  NEW-RECORD.                                                  EDIT0058
43591000056             02 NEW-STATEMENT       PICTURE X(75).                        EDIT0059
43592000057             02 NEW-NUMBER          PICTURE X(5).                         EDIT0060
43593000058                                                                          EDIT0061
43594000059         FD  MODIFICATION                                                 EDIT0062
43595000060             LABEL RECORDS ARE OMITTED                                    EDIT0063
43596warning: LABEL RECORDS is obsolete in GnuCOBOL
43597000061             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0064
43598000062             DATA RECORD IS UPDATE-ORDER.                                 EDIT0065
43599warning: DATA RECORDS is obsolete in GnuCOBOL
43600000063                                                                          EDIT0066
43601000064         01  UPDATE-ORDER.                                                EDIT0067
43602000065             02 INSERTION.                                                EDIT0068
43603000066                03 COMMAND          PICTURE X(6).                         EDIT0069
43604000067                   88 ENDJOB        VALUE "ENDJOB".                       EDIT0070
43605000068                   88 ENDSET        VALUE "ENDSET".                       EDIT0071
43606000069                   88 REMOVE        VALUE "REMOVE".                       EDIT0072
43607000070                   88 ADDNEW        VALUE "INSERT".                       EDIT0073
43608000071                   88 CHANGE        VALUE "CHANGE".                       EDIT0074
43609000072                   88 DISPLY        VALUE "DISPLY".                       EDIT0075
43610000073                03 FILLER           PICTURE X.                            EDIT0076
43611000074                03 A-FIELD          PICTURE 9(5).                         EDIT0077
43612000075                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).             EDIT0078
43613000076                   88 A-BLANK       VALUE SPACES.                         EDIT0079
43614000077                03 FILLER           PICTURE X(4).                         EDIT0080
43615000078                03 B-FIELD          PICTURE 9(5).                         EDIT0081
43616000079                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).             EDIT0082
43617000080                   88 B-BLANK       VALUE SPACES.                         EDIT0083
43618000081                03 FILLER           PICTURE X(54).                        EDIT0084
43619000082             02 FILLER              PICTURE X(5).                         EDIT0085
43620000083                                                                          EDIT0086
43621000084         FD  COMMENTARY                                                   EDIT0087
43622000085             LABEL RECORDS ARE OMITTED                                    EDIT0088
43623warning: LABEL RECORDS is obsolete in GnuCOBOL
43624000086             BLOCK CONTAINS 82 CHARACTERS                                 EDIT0089
43625000087             DATA RECORD IS COMMENT-LINE.                                 EDIT0090
43626warning: DATA RECORDS is obsolete in GnuCOBOL
43627000088                                                                          EDIT0091
43628000089         01  COMMENT-LINE.                                                EDIT0092
43629000090             02 FILLER              PICTURE X(82).                        EDIT0093
43630000091                                                                          EDIT0094
43631000092         WORKING-STORAGE SECTION.                                         EDIT0095
43632000093                                                                          EDIT0096
43633000094         77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0097
43634000095         77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0098
43635000096         77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0099
43636000097         77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0100
43637000098         77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.   EDIT0101
43638000099         77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.   EDIT0102
43639000100         77  FIELDA                 PICTURE 9(5) VALUE 0.                 EDIT0103
43640000101         77  FIELDB                 PICTURE 9(5) VALUE 0.                 EDIT0104
43641000102         77  BLANK-LINE             PICTURE X(82) VALUE SPACES.           EDIT0105
43642000103                                                                          EDIT0106
43643000104         01  DATE-FROM-SYS.                                               EDIT0107
43644000105             02 DFSYS OCCURS 3 TIMES PICTURE 99.                          EDIT0108
43645000106                                                                          EDIT0109
43646000107         01  HEADINGS-LINE.                                               EDIT0110
43647000108             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION". EDIT0111
43648000109             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".   EDIT0112
43649000110             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF". EDIT0113
43650000111             02 MONTH-RUN           PICTURE XX.                           EDIT0114
43651000112             02 FILLER              PICTURE X VALUE "/".                  EDIT0115
43652000113             02 DAY-RUN             PICTURE XX.                           EDIT0116
43653000114             02 FILLER              PICTURE X VALUE "/".                  EDIT0117
43654000115             02 YEAR-RUN            PICTURE XX.                           EDIT0118
43655000116             02 FILLER              PICTURE X(8) VALUE SPACES.            EDIT0119
43656000117             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".        EDIT0120
43657000118             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.                 EDIT0121
43658000119                                                                          EDIT0122
43659000120         01  COMMAND-LISTING.                                             EDIT0123
43660000121             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0124
43661000122             02 COMMAND-IMAGE       PICTURE X(80).                        EDIT0125
43662000123                                                                          EDIT0126
43663000124         01  ACTIVITIES-LISTING.                                          EDIT0127
43664000125             02 DISPOSITION         PICTURE X(2).                         EDIT0128
43665000126             02 ACTIVE-IMAGE        PICTURE X(80).                        EDIT0129
43666000127                                                                          EDIT0130
43667000128         01  UPSI-BYTE.                                                   EDIT0131
43668000129             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.                       EDIT0132
43669000130                                                                          EDIT0133
43670000131         01  MESSAGE-LOG.                                                 EDIT0134
43671000132             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0135
43672000133             02 MESSAGE-TEXT        PICTURE X(80).                        EDIT0136
43673000134                                                                          EDIT0137
43674000135         01  DISPLAY-MESSAGE.                                             EDIT0138
43675000136             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0139
43676000137             02 DISPLAY-TEMP        PICTURE X(6).                         EDIT0140
43677000138             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0141
43678000139             02 DISPLAY-TEXT        PICTURE X(60).                        EDIT0142
43679000140                                                                          EDIT0143
43680000141         77  END-JOB-PROCESS        PICTURE 9 VALUE 0.                    EDIT0144
43681000142         77  DELETE-PROCESS         PICTURE 9 VALUE 1.                    EDIT0145
43682000143         77  INSERT-PROCESS         PICTURE 9 VALUE 2.                    EDIT0146
43683000144         77  WRITE-PROCESS          PICTURE 9 VALUE 3.                    EDIT0147
43684000145                                                                          EDIT0148
43685000146         01  SELECTORS.                                                   EDIT0149
43686000147             02 RETURN-SELECT       PICTURE 9 VALUE 0.                    EDIT0150
43687000148             02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.                    EDIT0151
43688000149                                                                          EDIT0152
43689000150         PROCEDURE DIVISION.                                              EDIT0153
43690000151                                                                          EDIT0154
43691000152         START-SECTION.                                                   EDIT0155
43692000153             OPEN INPUT OLD-VERSION, MODIFICATION,                        EDIT0156
43693000154                  OUTPUT NEW-VERSION, COMMENTARY.                         EDIT0157
43694000155             MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).                      EDIT0158
43695000156             ACCEPT DATE-FROM-SYS FROM DATE.                              EDIT0159
43696000157             MOVE DFSYS (1) TO YEAR-RUN.                                  EDIT0160
43697000158             MOVE DFSYS (2) TO MONTH-RUN.                                 EDIT0161
43698000159             MOVE DFSYS (3) TO DAY-RUN.                                   EDIT0162
43699000160             READ OLD-VERSION AT END                                      EDIT0163
43700000161                MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT               EDIT0164
43701000162                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0165
43702000163                GO TO END-JOB.                                            EDIT0166
43703000164             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0167
43704000165             PERFORM OUTPUT-A-RECORD.                                     EDIT0168
43705000166                                                                          EDIT0169
43706000167         TOP-OF-PAGE-ROUTINE.                                             EDIT0170
43707000168             ADD 1 TO PAGE-NUMBER.                                        EDIT0171
43708000169             MOVE ZERO TO LINE-COUNT.                                     EDIT0172
43709000170             WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.            EDIT0173
43710000171             WRITE COMMENT-LINE FROM BLANK-LINE.                          EDIT0174
43711000172                                                                          EDIT0175
43712000173         READ-A-COMMAND.                                                  EDIT0176
43713000174             READ MODIFICATION AT END                                     EDIT0177
43714000175                MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT           EDIT0178
43715000176                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0179
43716000177                GO TO FINISH-JOB.                                         EDIT0180
43717000178             MOVE UPDATE-ORDER TO COMMAND-IMAGE.                          EDIT0181
43718000179             WRITE COMMENT-LINE FROM COMMAND-LISTING.                     EDIT0182
43719000180             ADD 2 TO LINE-COUNT.                                         EDIT0183
43720000181             IF A-BLANK MOVE ZEROES TO A-FIELD.                           EDIT0184
43721000182             IF B-BLANK MOVE ZEROES TO B-FIELD.                           EDIT0185
43722000183             MOVE A-FIELD TO FIELDA.                                      EDIT0186
43723000184             MOVE B-FIELD TO FIELDB.                                      EDIT0187
43724000185                                                                          EDIT0188
43725000186         TEST-COMMAND-TYPE.                                               EDIT0189
43726000187             IF CHANGE GO TO CHANGE-A-RECORD.                             EDIT0190
43727000188             IF REMOVE GO TO DELETE-A-RECORD.                             EDIT0191
43728000189             IF DISPLY MOVE "T" TO UPSI-BIT (2)                           EDIT0192
43729000190                GO TO FINISH-JOB.                                         EDIT0193
43730000191             IF ENDJOB GO TO FINISH-JOB.                                  EDIT0194
43731000192             IF ADDNEW GO TO INSERT-A-RECORD.                             EDIT0195
43732000193             MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.             EDIT0196
43733000194             WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0197
43734000195             GO TO READ-A-COMMAND.                                        EDIT0198
43735000196                                                                          EDIT0199
43736000197         CHANGE-A-RECORD.                                                 EDIT0200
43737000198             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0201
43738warning: ALTER is obsolete in GnuCOBOL
43739000199             ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.          EDIT0202
43740warning: ALTER is obsolete in GnuCOBOL
43741000200                                                                          EDIT0205
43742000201         FIND-FIELDA.                                                     EDIT0206
43743000202             IF OLD-NUMBER IS GREATER THAN FIELDA                         EDIT0207
43744000203                MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT              EDIT0208
43745000204                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0209
43746000205                GO TO READ-A-COMMAND.                                     EDIT0210
43747000206             READ OLD-VERSION AT END                                      EDIT0211
43748000207                MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT           EDIT0212
43749000208                MOVE FIELDA TO DISPLAY-TEMP                               EDIT0213
43750000209                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0214
43751000210                GO TO END-JOB.                                            EDIT0215
43752000211             IF OLD-NUMBER IS LESS THAN FIELDA                            EDIT0216
43753000212                MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0217
43754000213                PERFORM OUTPUT-A-RECORD                                   EDIT0218
43755000214                GO TO FIND-FIELDA.                                        EDIT0219
43756000215                                                                          EDIT0220
43757000216         RETURN-TO-USER.                                                  EDIT0221
43758000217             GO TO END-JOB.                                               EDIT0223
43759000218                                                                          EDIT0228
43760000219         INSERT-A-RECORD.                                                 EDIT0229
43761000220             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0230
43762warning: ALTER is obsolete in GnuCOBOL
43763000221             ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.              EDIT0231
43764warning: ALTER is obsolete in GnuCOBOL
43765000222             GO TO FIND-FIELDA.                                           EDIT0234
43766000223                                                                          EDIT0235
43767000224         INSERTION-PROCESS.                                               EDIT0236
43768000225             READ MODIFICATION AT END                                     EDIT0237
43769000226                MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT                    EDIT0238
43770000227                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0239
43771000228                GO TO END-JOB.                                            EDIT0240
43772000229             IF ENDSET                                                    EDIT0241
43773000230                MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP                    EDIT0242
43774000231                MOVE "RECORDS INSERTED." TO DISPLAY-TEXT                  EDIT0243
43775000232                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0244
43776000233                ADD COMMAND-ADDITIONS TO TOTAL-INSERTED                   EDIT0245
43777000234                MOVE ZEROES TO COMMAND-ADDITIONS                          EDIT0246
43778000235                GO TO NEXT-JOB-STEP.                                      EDIT0247
43779000236             MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.               EDIT0248
43780000237             MOVE "I " TO DISPOSITION.                                    EDIT0249
43781000238             PERFORM OUTPUT-A-RECORD.                                     EDIT0250
43782000239             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0251
43783000240             ADD 1 TO COMMAND-ADDITIONS.                                  EDIT0252
43784000241             ADD 1 TO LINE-COUNT.                                         EDIT0253
43785000242             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0254
43786000243             GO TO INSERTION-PROCESS.                                     EDIT0255
43787000244                                                                          EDIT0256
43788000245         NEXT-JOB-STEP.                                                   EDIT0257
43789000246             GO TO END-JOB.                                               EDIT0259
43790000247                                                                          EDIT0264
43791000248         FORCED-WRITE.                                                    EDIT0265
43792000249             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0266
43793000250             PERFORM OUTPUT-A-RECORD.                                     EDIT0267
43794000251             GO TO READ-A-COMMAND.                                        EDIT0268
43795000252                                                                          EDIT0269
43796000253         DELETE-A-RECORD.                                                 EDIT0270
43797000254             ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.         EDIT0271
43798warning: ALTER is obsolete in GnuCOBOL
43799000255             GO TO FIND-FIELDA.                                           EDIT0273
43800000256                                                                          EDIT0274
43801000257         DELETION-PROCESS.                                                EDIT0275
43802000258             MOVE OLD-RECORD TO ACTIVE-IMAGE.                             EDIT0276
43803000259             MOVE "D " TO DISPOSITION.                                    EDIT0277
43804000260             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0278
43805000261             ADD 1 TO LINE-COUNT.                                         EDIT0279
43806000262             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0280
43807000263             ADD 1 TO COMMAND-SUBTRACTIONS.                               EDIT0281
43808000264             IF OLD-NUMBER IS NOT LESS THAN FIELDB                        EDIT0282
43809000265                MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP                 EDIT0283
43810000266                MOVE "RECORDS DELETED." TO DISPLAY-TEXT                   EDIT0284
43811000267                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0285
43812000268                ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED                 EDIT0286
43813000269                MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0287
43814000270                MOVE ZEROES TO COMMAND-SUBTRACTIONS                       EDIT0288
43815000271                GO TO READ-A-COMMAND.                                     EDIT0289
43816000272             READ OLD-VERSION AT END                                      EDIT0290
43817000273                MOVE "NOT FOUND IN OLD VERSION DOING DELETE"              EDIT0291
43818000274                      TO DISPLAY-TEXT                                     EDIT0292
43819000275                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0293
43820000276                GO TO END-JOB.                                            EDIT0294
43821000277             GO TO DELETION-PROCESS.                                      EDIT0295
43822000278                                                                          EDIT0296
43823000279         OUTPUT-A-RECORD.                                                 EDIT0297
43824000280             ADD 1 TO OUTPUT-COUNT.                                       EDIT0298
43825000281             MOVE OUTPUT-COUNT TO NEW-NUMBER.                             EDIT0299
43826000282             WRITE NEW-RECORD.                                            EDIT0300
43827000283                                                                          EDIT0301
43828000284         FINISH-JOB.                                                      EDIT0302
43829000285             READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.              EDIT0303
43830000286             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0304
43831000287             GO TO OUTPUT-A-RECORD.                                       EDIT0305
43832000288                                                                          EDIT0306
43833000289         TEST-FOR-LISTING.                                                EDIT0307
43834000290             PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0308
43835000291             MOVE OLD-NUMBER TO DISPLAY-TEMP.                             EDIT0309
43836000292             MOVE "RECORDS READ." TO DISPLAY-TEXT.                        EDIT0310
43837000293             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0311
43838000294             MOVE TOTAL-INSERTED TO DISPLAY-TEMP.                         EDIT0312
43839000295             MOVE "RECORDS ADDED." TO DISPLAY-TEXT.                       EDIT0313
43840000296             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0314
43841000297             MOVE TOTAL-DELETED TO DISPLAY-TEMP.                          EDIT0315
43842000298             MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.                     EDIT0316
43843000299             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0317
43844000300             MOVE OUTPUT-COUNT TO DISPLAY-TEMP.                           EDIT0318
43845000301             MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.                 EDIT0319
43846000302             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0320
43847000303             IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.                     EDIT0321
43848000304             CLOSE NEW-VERSION.                                           EDIT0322
43849000305             OPEN INPUT NEW-VERSION.                                      EDIT0323
43850000306             MOVE "UPDATED LISTING" TO PHASE.                             EDIT0324
43851000307             MOVE ZEROES TO PAGE-NUMBER.                                  EDIT0325
43852000308             PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0326
43853000309             MOVE SPACES TO DISPOSITION.                                  EDIT0327
43854000310                                                                          EDIT0328
43855000311         LISTING-LOOP.                                                    EDIT0329
43856000312             READ NEW-VERSION AT END GO TO END-JOB.                       EDIT0330
43857000313             MOVE NEW-RECORD TO ACTIVE-IMAGE.                             EDIT0331
43858000314             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0332
43859000315             ADD 1 TO LINE-COUNT.                                         EDIT0333
43860000316             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0334
43861000317             GO TO LISTING-LOOP.                                          EDIT0335
43862000318                                                                          EDIT0336
43863000319         END-JOB.                                                         EDIT0337
43864000320             MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.                  EDIT0338
43865000321             WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0339
43866000322             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.    EDIT0340
43867000323             STOP RUN.                                                    EDIT0341
43868000324                                                                          EDIT0342
43869000325         END PROGRAM EDITOR.                                              EDIT0343
43870
43871SIZE  TYPE           LVL  NAME                           PICTURE
43872
4387300080 FILE                OLD-VERSION
4387400080 GROUP          01   OLD-RECORD
4387500075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
4387600005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)
43877
4387800080 FILE                NEW-VERSION
4387900080 GROUP          01   NEW-RECORD
4388000075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
4388100005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)
43882
4388300032 FILE                PRT-VERSION
43884
4388500080 FILE                MODIFICATION
4388600080 GROUP          01   UPDATE-ORDER
4388700075 GROUP          02   INSERTION
4388800006 ALPHANUMERIC   03   COMMAND                        X(6)
43889      CONDITIONAL    88   ENDJOB
43890      CONDITIONAL    88   ENDSET
43891      CONDITIONAL    88   REMOVE
43892      CONDITIONAL    88   ADDNEW
43893      CONDITIONAL    88   CHANGE
43894      CONDITIONAL    88   DISPLY
4389500001 ALPHANUMERIC   03   FILLER                         X
4389600005 NUMERIC        03   A-FIELD                        9(5)
4389700005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
43898      CONDITIONAL    88   A-BLANK
4389900004 ALPHANUMERIC   03   FILLER                         X(4)
4390000005 NUMERIC        03   B-FIELD                        9(5)
4390100005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
43902      CONDITIONAL    88   B-BLANK
4390300054 ALPHANUMERIC   03   FILLER                         X(54)
4390400005 ALPHANUMERIC   02   FILLER                         X(5)
43905
4390600082 FILE                COMMENTARY
4390700082 GROUP          01   COMMENT-LINE
4390800082 ALPHANUMERIC   02   FILLER                         X(82)
43909
43910      WORKING-STORAGE SECTION
43911
4391200002 NUMERIC        77   COMMAND-ADDITIONS              9(3) COMP
4391300002 NUMERIC        77   COMMAND-SUBTRACTIONS           9(3) COMP
4391400002 NUMERIC        77   TOTAL-INSERTED                 9(3) COMP
4391500002 NUMERIC        77   TOTAL-DELETED                  9(3) COMP
4391600004 NUMERIC        77   OUTPUT-COUNT                   9(5) COMP
4391700001 NUMERIC        77   LINE-COUNT                     9(2) COMP
4391800005 NUMERIC        77   FIELDA                         9(5)
4391900005 NUMERIC        77   FIELDB                         9(5)
4392000082 ALPHANUMERIC   77   BLANK-LINE                     X(82)
43921
4392200006 GROUP          01   DATE-FROM-SYS
4392300002 NUMERIC        02   DFSYS                          99, OCCURS 3
43924
4392500080 GROUP          01   HEADINGS-LINE
4392600015 ALPHANUMERIC   02   FILLER                         X(15)
4392700020 ALPHANUMERIC   02   FILLER                         X(20)
4392800017 ALPHANUMERIC   02   PHASE                          X(17)
4392900002 ALPHANUMERIC   02   MONTH-RUN                      XX
4393000001 ALPHANUMERIC   02   FILLER                         X
4393100002 ALPHANUMERIC   02   DAY-RUN                        XX
4393200001 ALPHANUMERIC   02   FILLER                         X
4393300002 ALPHANUMERIC   02   YEAR-RUN                       XX
4393400008 ALPHANUMERIC   02   FILLER                         X(8)
4393500008 ALPHANUMERIC   02   FILLER                         X(8)
4393600004 NUMERIC        02   PAGE-NUMBER                    9(4)
43937
4393800082 GROUP          01   COMMAND-LISTING
4393900002 ALPHANUMERIC   02   FILLER                         X(2)
4394000080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)
43941
4394200082 GROUP          01   ACTIVITIES-LISTING
4394300002 ALPHANUMERIC   02   DISPOSITION                    X(2)
4394400080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)
43945
4394600008 GROUP          01   UPSI-BYTE
4394700001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8
43948
4394900082 GROUP          01   MESSAGE-LOG
4395000002 ALPHANUMERIC   02   FILLER                         X(2)
4395100080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)
43952
4395300070 GROUP          01   DISPLAY-MESSAGE
4395400002 ALPHANUMERIC   02   FILLER                         X(2)
4395500006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
4395600002 ALPHANUMERIC   02   FILLER                         X(2)
4395700060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)
43958
4395900001 NUMERIC        77   END-JOB-PROCESS                9
4396000001 NUMERIC        77   DELETE-PROCESS                 9
4396100001 NUMERIC        77   INSERT-PROCESS                 9
4396200001 NUMERIC        77   WRITE-PROCESS                  9
43963
4396400002 GROUP          01   SELECTORS
4396500001 NUMERIC        02   RETURN-SELECT                  9
4396600001 NUMERIC        02   NEXT-JOB-SELECT                9
43967
43968
43969NAME                           DEFINED                                    REFERENCES
43970
43971OLD-VERSION                    26       41      153     160     206     272     285     322                    x7
43972OLD-RECORD                     46       44      258                                                            x2
43973OLD-STATEMENT                  47       164     212     249     269     286                                    x5
43974OLD-NUMBER                     48       202     211     264     291                                            x4
43975
43976NEW-VERSION                    28       50     *154    *282     304     305     312     322                    x7
43977NEW-RECORD                     55       53      282     313                                                    x3
43978NEW-STATEMENT                  56      *164    *212    *236    *249    *269    *286                            x6
43979NEW-NUMBER                     57      *281                                                                    x1
43980
43981PRT-VERSION                    30     not referenced
43982
43983MODIFICATION                   32       59      153     174     225     322                                    x5
43984UPDATE-ORDER                   64       62      178                                                            x2
43985INSERTION                      65       236                                                                    x1
43986COMMAND                        66     referenced by parent/child
43987ENDJOB                         67       191                                                                    x1
43988ENDSET                         68       229                                                                    x1
43989REMOVE                         69       188                                                                    x1
43990ADDNEW                         70       192                                                                    x1
43991CHANGE                         71       187                                                                    x1
43992DISPLY                         72       189                                                                    x1
43993A-FIELD                        74      *181     183                                                            x2
43994A-ALPHA                        75     referenced by parent/child
43995A-BLANK                        76       181                                                                    x1
43996B-FIELD                        78      *182     184                                                            x2
43997B-ALPHA                        79     referenced by parent/child
43998B-BLANK                        80       182                                                                    x1
43999
44000COMMENTARY                     34       84     *154    *162    *170    *171    *176    *179    *194    *204    *209
44001                                       *227    *232    *239    *260    *267    *275    *293    *296    *299    *302
44002                                       *314    *321     322                                                    x23
44003COMMENT-LINE                   89       87     *162    *170    *171    *176    *179    *194    *204    *209    *227
44004                                       *232    *239    *260    *267    *275    *293    *296    *299    *302    *314
44005                                       *321                                                                    x21
44006
44007COMMAND-ADDITIONS              94       230     233    *234     240                                            x4
44008COMMAND-SUBTRACTIONS           95       263     265     268    *270                                            x4
44009TOTAL-INSERTED                 96       233     294                                                            x2
44010TOTAL-DELETED                  97       268     297                                                            x2
44011OUTPUT-COUNT                   98       280     281     300                                                    x3
44012LINE-COUNT                     99      *169     180     241     242     261     262     315     316            x8
44013FIELDA                         100     *183     202     208     211                                            x4
44014FIELDB                         101     *184     264                                                            x2
44015BLANK-LINE                     102      171                                                                    x1
44016DATE-FROM-SYS                  104     *156                                                                    x1
44017DFSYS                          105      157     158     159                                                    x3
44018HEADINGS-LINE                  107      170                                                                    x1
44019PHASE                          110     *306                                                                    x1
44020MONTH-RUN                      111     *158                                                                    x1
44021DAY-RUN                        113     *159                                                                    x1
44022YEAR-RUN                       115     *157                                                                    x1
44023PAGE-NUMBER                    118      168    *307                                                            x2
44024COMMAND-LISTING                120      179                                                                    x1
44025COMMAND-IMAGE                  122     *178                                                                    x1
44026ACTIVITIES-LISTING             124      239     260     314                                                    x3
44027DISPOSITION                    125     *237    *259    *309                                                    x3
44028ACTIVE-IMAGE                   126     *236    *258    *313                                                    x3
44029UPSI-BYTE                      128    referenced by child
44030UPSI-BIT                       129     *155    *189     303                                                    x3
44031MESSAGE-LOG                    131      162     176     194     204     227     321                            x6
44032MESSAGE-TEXT                   133     *161    *175    *193    *203    *226    *320                            x6
44033DISPLAY-MESSAGE                135      209     232     267     275     293     296     299     302            x8
44034DISPLAY-TEMP                   137     *208    *230    *265    *291    *294    *297    *300                    x7
44035DISPLAY-TEXT                   139     *207    *231    *266    *274    *292    *295    *298    *301            x8
44036END-JOB-PROCESS                141    not referenced
44037DELETE-PROCESS                 142    not referenced
44038INSERT-PROCESS                 143    not referenced
44039WRITE-PROCESS                  144    not referenced
44040SELECTORS                      146    not referenced
44041RETURN-SELECT                  147    not referenced
44042NEXT-JOB-SELECT                148    not referenced
44043
44044
44045LABEL                          DEFINED                                    REFERENCES
44046
44047E EDITOR                       150
44048P START-SECTION                152    not referenced
44049P TOP-OF-PAGE-ROUTINE          167      242     262     290     308     316                                    x5
44050P READ-A-COMMAND               173      195     205     251     271                                            x4
44051P TEST-COMMAND-TYPE            186    not referenced
44052P CHANGE-A-RECORD              197      187                                                                    x1
44053P FIND-FIELDA                  201      214     222     255                                                    x3
44054P RETURN-TO-USER               216      198     220     254                                                    x3
44055P INSERT-A-RECORD              219      192                                                                    x1
44056P INSERTION-PROCESS            224      198     220     243                                                    x3
44057P NEXT-JOB-STEP                245      199     221     235                                                    x3
44058P FORCED-WRITE                 248      221                                                                    x1
44059P DELETE-A-RECORD              253      188                                                                    x1
44060P DELETION-PROCESS             257      199     254     277                                                    x3
44061P OUTPUT-A-RECORD              279      165     213     238     250     287                                    x5
44062P FINISH-JOB                   284      177     190     191                                                    x3
44063P TEST-FOR-LISTING             289      285                                                                    x1
44064P LISTING-LOOP                 311      317                                                                    x1
44065P END-JOB                      319      163     210     217     228     246     276     303     312            x8
44066
44067
44068Error/Warning summary:
44069
44070EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
44071EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
44072EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
44073EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
44074EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
44075EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
44076EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
44077EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
44078EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
44079EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
44080EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
44081EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
44082EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
44083EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
44084
4408513 warnings in compilation group
440861 error in compilation group
44087_ATEOF
44088
44089
44090{ set +x
44091$as_echo "$at_srcdir/listings.at:5564: \$UNIFY_LISTING prog.lst prog.lis once"
44092at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:5564"
44093( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
44094) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44095at_status=$? at_failed=false
44096$at_check_filter
44097at_fn_diff_devnull "$at_stderr" || at_failed=:
44098at_fn_diff_devnull "$at_stdout" || at_failed=:
44099at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5564"
44100$at_failed && at_fn_log_failure  \
44101"prog.lst"
44102$at_traceon; }
44103
44104{ set +x
44105$as_echo "$at_srcdir/listings.at:5565: diff prog19.lst prog.lis"
44106at_fn_check_prepare_trace "listings.at:5565"
44107( $at_check_trace; diff prog19.lst prog.lis
44108) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44109at_status=$? at_failed=false
44110$at_check_filter
44111at_fn_diff_devnull "$at_stderr" || at_failed=:
44112at_fn_diff_devnull "$at_stdout" || at_failed=:
44113at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5565"
44114$at_failed && at_fn_log_failure  \
44115"prog.lst"
44116$at_traceon; }
44117
44118
44119  set +x
44120  $at_times_p && times >"$at_times_file"
44121) 5>&1 2>&1 7>&- | eval $at_tee_pipe
44122read at_status <"$at_status_file"
44123#AT_STOP_438
44124#AT_START_439
44125at_fn_group_banner 439 'listings.at:5570' \
44126  "Report Writer" "                                  " 3
44127at_xfail=no
44128(
44129  $as_echo "439. $at_setup_line: testing $at_desc ..."
44130  $at_traceon
44131
44132
44133
44134
44135
44136cat >prog.cob <<'_ATEOF'
44137
44138       IDENTIFICATION DIVISION.
44139       PROGRAM-ID. prog.
44140
44141      * ************************************************************* *
44142      * REPORT WRITER EXAMPLE #1.                                     *
44143      * ************************************************************* *
44144
44145       ENVIRONMENT DIVISION.
44146       CONFIGURATION SECTION.
44147
44148       INPUT-OUTPUT SECTION.
44149       FILE-CONTROL.
44150
44151           SELECT TRANSACTION-DATA
44152               ASSIGN TO EXTERNAL DATAIN
44153                         ORGANIZATION IS LINE SEQUENTIAL.
44154
44155           SELECT REPORT-FILE
44156               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
44157
44158       DATA DIVISION.
44159       FILE SECTION.
44160
44161       FD  TRANSACTION-DATA.
44162
44163       01  TRANSACTION-RECORD.
44164           03  TR-CUSTOMER-NUMBER      PIC 9(04).
44165           03  FILLER                  PIC X(01).
44166           03  TR-CUSTOMER-NAME        PIC X(16).
44167           03  FILLER                  PIC X(01).
44168           03  TR-ITEM-NUMBER          PIC 9(05).
44169           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
44170               05  TR-ITEM-DEPARTMENT  PIC 9(01).
44171               05  FILLER              PIC 9(04).
44172           03  FILLER                  PIC X(01).
44173           03  TR-ITEM-COST            PIC 9(03)V99.
44174           03  FILLER                  PIC X(47).
44175
44176       FD  REPORT-FILE
44177           REPORT IS CUSTOMER-REPORT.
44178
44179       WORKING-STORAGE SECTION.
44180       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
44181           88  END-OF-FILE                         VALUE 'Y'.
44182
44183       REPORT SECTION.
44184       RD  CUSTOMER-REPORT
44185           PAGE LIMIT IS 66 LINES
44186           HEADING 1
44187           FIRST DETAIL 5
44188           LAST DETAIL 58.
44189
44190       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
44191           02  LINE 1.
44192               03  COLUMN 27   PIC X(41) VALUE
44193                   'C U S T O M E R  C H A R G E  R E P O R T'.
44194           02  LINE PLUS 2.
44195               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
44196               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
44197               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
44198               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
44199               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
44200
44201       01  CHARGE-DETAIL TYPE DETAIL.
44202           02  LINE PLUS 1.
44203               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
44204               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
44205               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
44206               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
44207               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
44208
44209       PROCEDURE DIVISION.
44210
44211       000-INITIATE.
44212
44213           OPEN INPUT TRANSACTION-DATA,
44214                OUTPUT REPORT-FILE.
44215
44216           INITIATE CUSTOMER-REPORT.
44217
44218           READ TRANSACTION-DATA
44219               AT END
44220                   MOVE 'Y' TO END-OF-FILE-SWITCH.
44221      *    END-READ.
44222
44223           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
44224               UNTIL END-OF-FILE.
44225
44226       000-TERMINATE.
44227           TERMINATE CUSTOMER-REPORT.
44228
44229           CLOSE TRANSACTION-DATA,
44230                 REPORT-FILE.
44231
44232           STOP RUN.
44233
44234       100-PROCESS-TRANSACTION-DATA.
44235           GENERATE CHARGE-DETAIL.
44236           READ TRANSACTION-DATA
44237               AT END
44238                   MOVE 'Y' TO END-OF-FILE-SWITCH.
44239      *    END-READ.
44240
44241       199-EXIT.
44242           EXIT.
44243_ATEOF
44244
44245
44246{ set +x
44247$as_echo "$at_srcdir/listings.at:5683: \$COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 prog.cob"
44248at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 prog.cob" "listings.at:5683"
44249( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 prog.cob
44250) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44251at_status=$? at_failed=false
44252$at_check_filter
44253at_fn_diff_devnull "$at_stderr" || at_failed=:
44254at_fn_diff_devnull "$at_stdout" || at_failed=:
44255at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5683"
44256$at_failed && at_fn_log_failure  \
44257"prog.lst"
44258$at_traceon; }
44259
44260
44261cat >prog1.lst <<'_ATEOF'
44262GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
44263
44264LINE    PG/LN  A...B............................................................
44265
44266000001
44267000002         IDENTIFICATION DIVISION.
44268000003         PROGRAM-ID. prog.
44269000004
44270000005        * ************************************************************* *
44271000006        * REPORT WRITER EXAMPLE #1.                                     *
44272000007        * ************************************************************* *
44273000008
44274000009         ENVIRONMENT DIVISION.
44275000010         CONFIGURATION SECTION.
44276000011
44277000012         INPUT-OUTPUT SECTION.
44278000013         FILE-CONTROL.
44279000014
44280000015             SELECT TRANSACTION-DATA
44281000016                 ASSIGN TO EXTERNAL DATAIN
44282000017                           ORGANIZATION IS LINE SEQUENTIAL.
44283000018
44284000019             SELECT REPORT-FILE
44285000020                 ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
44286000021
44287000022         DATA DIVISION.
44288000023         FILE SECTION.
44289000024
44290000025         FD  TRANSACTION-DATA.
44291000026
44292000027         01  TRANSACTION-RECORD.
44293000028             03  TR-CUSTOMER-NUMBER      PIC 9(04).
44294000029             03  FILLER                  PIC X(01).
44295000030             03  TR-CUSTOMER-NAME        PIC X(16).
44296000031             03  FILLER                  PIC X(01).
44297000032             03  TR-ITEM-NUMBER          PIC 9(05).
44298000033             03  FILLER                  REDEFINES TR-ITEM-NUMBER.
44299000034                 05  TR-ITEM-DEPARTMENT  PIC 9(01).
44300000035                 05  FILLER              PIC 9(04).
44301000036             03  FILLER                  PIC X(01).
44302000037             03  TR-ITEM-COST            PIC 9(03)V99.
44303000038             03  FILLER                  PIC X(47).
44304000039
44305000040         FD  REPORT-FILE
44306000041             REPORT IS CUSTOMER-REPORT.
44307000042
44308000043         WORKING-STORAGE SECTION.
44309000044         77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
44310000045             88  END-OF-FILE                         VALUE 'Y'.
44311000046
44312000047         REPORT SECTION.
44313000048         RD  CUSTOMER-REPORT
44314000049             PAGE LIMIT IS 66 LINES
44315000050             HEADING 1
44316000051             FIRST DETAIL 5
44317000052             LAST DETAIL 58.
44318000053
44319000054         01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
44320000055             02  LINE 1.
44321000056                 03  COLUMN 27   PIC X(41) VALUE
44322000057                     'C U S T O M E R  C H A R G E  R E P O R T'.
44323000058             02  LINE PLUS 2.
44324000059                 03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
44325000060                 03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
44326000061                 03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
44327000062                 03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
44328000063                 03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
44329000064
44330000065         01  CHARGE-DETAIL TYPE DETAIL.
44331000066             02  LINE PLUS 1.
44332000067                 03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
44333000068                 03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
44334000069                 03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
44335000070                 03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
44336000071                 03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
44337000072
44338000073         PROCEDURE DIVISION.
44339000074
44340000075         000-INITIATE.
44341000076
44342000077             OPEN INPUT TRANSACTION-DATA,
44343000078                  OUTPUT REPORT-FILE.
44344000079
44345000080             INITIATE CUSTOMER-REPORT.
44346000081
44347000082             READ TRANSACTION-DATA
44348000083                 AT END
44349000084                     MOVE 'Y' TO END-OF-FILE-SWITCH.
44350000085        *    END-READ.
44351000086
44352000087             PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
44353000088                 UNTIL END-OF-FILE.
44354000089
44355000090         000-TERMINATE.
44356000091             TERMINATE CUSTOMER-REPORT.
44357000092
44358000093             CLOSE TRANSACTION-DATA,
44359000094                   REPORT-FILE.
44360000095
44361000096             STOP RUN.
44362000097
44363000098         100-PROCESS-TRANSACTION-DATA.
44364000099             GENERATE CHARGE-DETAIL.
44365000100             READ TRANSACTION-DATA
44366000101                 AT END
44367000102                     MOVE 'Y' TO END-OF-FILE-SWITCH.
44368000103        *    END-READ.
44369000104
44370000105         199-EXIT.
44371000106             EXIT.
44372
44373SIZE  TYPE           LVL  NAME                           PICTURE
44374
4437500080 FILE                TRANSACTION-DATA
4437600080 GROUP          01   TRANSACTION-RECORD
4437700004 NUMERIC        03   TR-CUSTOMER-NUMBER             9(04)
4437800001 ALPHANUMERIC   03   FILLER                         X(01)
4437900016 ALPHANUMERIC   03   TR-CUSTOMER-NAME               X(16)
4438000001 ALPHANUMERIC   03   FILLER                         X(01)
4438100005 NUMERIC        03   TR-ITEM-NUMBER                 9(05)
4438200005 GROUP          03   FILLER, REDEFINES TR-ITEM-NUMBER
4438300001 NUMERIC        05   TR-ITEM-DEPARTMENT             9(01)
4438400004 NUMERIC        05   FILLER                         9(04)
4438500001 ALPHANUMERIC   03   FILLER                         X(01)
4438600005 NUMERIC        03   TR-ITEM-COST                   9(03)V99
4438700047 ALPHANUMERIC   03   FILLER                         X(47)
44388
4438900126 FILE                REPORT-FILE
44390
44391      WORKING-STORAGE SECTION
44392
4439300001 ALPHANUMERIC   77   END-OF-FILE-SWITCH             X(1)
44394      CONDITIONAL    88   END-OF-FILE
44395
44396      REPORT SECTION
44397
4439800126 GROUP          01   PAGE-HEAD-GROUP
4439900067 GROUP          02   FILLER
4440000041 ALPHANUMERIC   03   FILLER                         X(41)
4440100059 GROUP          02   FILLER
4440200009 ALPHANUMERIC   03   FILLER                         X(09)
4440300010 ALPHANUMERIC   03   FILLER                         X(10)
4440400005 ALPHANUMERIC   03   FILLER                         X(05)
4440500008 ALPHANUMERIC   03   FILLER                         X(08)
4440600009 ALPHANUMERIC   03   FILLER                         X(09)
44407
4440800126 GROUP          01   CHARGE-DETAIL
4440900057 GROUP          02   FILLER
4441000004 NUMERIC        03   FILLER                         Z(04)
4441100016 ALPHANUMERIC   03   FILLER                         X(16)
4441200001 NUMERIC        03   FILLER                         9(01)
4441300005 NUMERIC        03   FILLER                         9(05)
4441400007 NUMERIC        03   FILLER                         $$$$.99
44415
44416
44417NAME                           DEFINED                REFERENCES
44418
44419TRANSACTION-DATA               15       25      77      82      93      100
44420                                                                       x5
44421TRANSACTION-RECORD             27     referenced by child
44422TR-CUSTOMER-NUMBER             28       67                             x1
44423TR-CUSTOMER-NAME               30       68                             x1
44424TR-ITEM-NUMBER                 32       70                             x1
44425TR-ITEM-DEPARTMENT             34       69                             x1
44426TR-ITEM-COST                   37       71                             x1
44427
44428REPORT-FILE                    19       40     *78      94             x3
44429
44430END-OF-FILE-SWITCH             44      *84     *102                    x2
44431END-OF-FILE                    45       88                             x1
44432
44433PAGE-HEAD-GROUP                54     not referenced
44434CHARGE-DETAIL                  65       99                             x1
44435
44436
44437LABEL                          DEFINED                REFERENCES
44438
44439E prog                         73
44440P 000-INITIATE                 75     not referenced
44441P 000-TERMINATE                90     not referenced
44442P 100-PROCESS-TRANSACTION-DATA 98       87                             x1
44443P 199-EXIT                     105      87                             x1
44444
444450 warnings in compilation group
444460 errors in compilation group
44447_ATEOF
44448
44449
44450{ set +x
44451$as_echo "$at_srcdir/listings.at:5873: \$UNIFY_LISTING prog.lst prog.lis once"
44452at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:5873"
44453( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
44454) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44455at_status=$? at_failed=false
44456$at_check_filter
44457at_fn_diff_devnull "$at_stderr" || at_failed=:
44458at_fn_diff_devnull "$at_stdout" || at_failed=:
44459at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5873"
44460$at_failed && at_fn_log_failure  \
44461"prog.lst"
44462$at_traceon; }
44463
44464{ set +x
44465$as_echo "$at_srcdir/listings.at:5874: diff prog1.lst prog.lis"
44466at_fn_check_prepare_trace "listings.at:5874"
44467( $at_check_trace; diff prog1.lst prog.lis
44468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44469at_status=$? at_failed=false
44470$at_check_filter
44471at_fn_diff_devnull "$at_stderr" || at_failed=:
44472at_fn_diff_devnull "$at_stdout" || at_failed=:
44473at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5874"
44474$at_failed && at_fn_log_failure  \
44475"prog.lst"
44476$at_traceon; }
44477
44478
44479  set +x
44480  $at_times_p && times >"$at_times_file"
44481) 5>&1 2>&1 7>&- | eval $at_tee_pipe
44482read at_status <"$at_status_file"
44483#AT_STOP_439
44484#AT_START_440
44485at_fn_group_banner 440 'listings.at:5879' \
44486  "huge REPLACE" "                                   " 3
44487at_xfail=no
44488(
44489  $as_echo "440. $at_setup_line: testing $at_desc ..."
44490  $at_traceon
44491
44492
44493
44494
44495
44496cat >prog.cob <<'_ATEOF'
44497
44498       IDENTIFICATION   DIVISION.
44499       PROGRAM-ID.      prog.
44500       ENVIRONMENT DIVISION.
44501       CONFIGURATION SECTION.
44502       DATA             DIVISION.
44503       WORKING-STORAGE  SECTION.
44504       PROCEDURE        DIVISION.
44505
44506           REPLACE ==111111111111111111111111111111111111111==
44507              BY =='
44508      -    '
44509      -    '
44510      -    '
44511      -    '
44512      -    '
44513      -    '
44514      -    '
44515      -    '
44516      -    '
44517      -    '
44518      -    '
44519      -    '
44520      -    '
44521      -    '
44522      -    '
44523      -    '
44524      -    '
44525      -    '
44526      -    '
44527      -    '
44528      -    '
44529      -    '
44530      -    '
44531      -    '
44532      -    '
44533      -    '
44534      -    '
44535      -    '
44536      -    '
44537      -    '
44538      -    '
44539      -    '
44540      -    '
44541      -    '
44542      -    '
44543      -    '
44544      -    '
44545      -    '
44546      -    '
44547      -    '
44548      -    '
44549      -    '
44550      -    '
44551      -    '
44552      -    '
44553      -    '
44554      -    '
44555      -    '
44556      -    '
44557      -    '
44558      -    '
44559      -    '
44560      -    '
44561      -    '
44562      -    '
44563      -    '
44564      -    '
44565      -    '
44566      -    '
44567      -    '
44568      -    '
44569      -    '
44570      -    '
44571      -    '
44572      -    '
44573      -    '
44574      -    '
44575      -    '
44576      -    '
44577      -    '
44578      -    '
44579      -    '
44580      -    '
44581      -    '
44582      -    '
44583      -    '
44584      -    '
44585      -    '
44586      -    '
44587      -    '
44588      -    '
44589      -    '
44590      -    '
44591      -    '
44592      -    '
44593      -    '
44594      -    '
44595      -    '
44596      -    '
44597      -    '
44598      -    '
44599      -    '
44600      -    '
44601      -    '
44602      -    '
44603      -    '
44604      -    '
44605      -    '
44606      -    '
44607      -    '
44608      -    '
44609      -    ' '==.
44610
44611
44612           DISPLAY 111111111111111111111111111111111111111
44613           DISPLAY 111111111111111111111111111111111111111
44614           DISPLAY 111111111111111111111111111111111111111
44615
44616           STOP RUN.
44617_ATEOF
44618
44619
44620{ set +x
44621$as_echo "$at_srcdir/listings.at:6006: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
44622at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6006"
44623( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
44624) >>"$at_stdout" 2>>"$at_stderr" 5>&-
44625at_status=$? at_failed=false
44626$at_check_filter
44627at_fn_diff_devnull "$at_stderr" || at_failed=:
44628at_fn_diff_devnull "$at_stdout" || at_failed=:
44629at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6006"
44630$at_failed && at_fn_log_failure  \
44631"prog.lst"
44632$at_traceon; }
44633
44634
44635cat >prog1.lst <<'_ATEOF'
44636GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
44637
44638LINE    PG/LN  A...B............................................................
44639
44640000001
44641000002         IDENTIFICATION   DIVISION.
44642000003         PROGRAM-ID.      prog.
44643000004         ENVIRONMENT DIVISION.
44644000005         CONFIGURATION SECTION.
44645000006         DATA             DIVISION.
44646000007         WORKING-STORAGE  SECTION.
44647000008         PROCEDURE        DIVISION.
44648000009
44649000010             REPLACE ==111111111111111111111111111111111111111==
44650000011                BY =='
44651000012        -    '
44652000013        -    '
44653000014        -    '
44654000015        -    '
44655000016        -    '
44656000017        -    '
44657000018        -    '
44658000019        -    '
44659000020        -    '
44660000021        -    '
44661000022        -    '
44662000023        -    '
44663000024        -    '
44664000025        -    '
44665000026        -    '
44666000027        -    '
44667000028        -    '
44668000029        -    '
44669000030        -    '
44670000031        -    '
44671000032        -    '
44672000033        -    '
44673000034        -    '
44674000035        -    '
44675000036        -    '
44676000037        -    '
44677000038        -    '
44678000039        -    '
44679000040        -    '
44680000041        -    '
44681000042        -    '
44682000043        -    '
44683000044        -    '
44684000045        -    '
44685000046        -    '
44686000047        -    '
44687000048        -    '
44688000049        -    '
44689000050        -    '
44690000051        -    '
44691000052        -    '
44692000053        -    '
44693000054        -    '
44694000055        -    '
44695000056        -    '
44696000057        -    '
44697000058        -    '
44698000059        -    '
44699000060        -    '
44700000061        -    '
44701000062        -    '
44702000063        -    '
44703000064        -    '
44704000065        -    '
44705000066        -    '
44706000067        -    '
44707000068        -    '
44708000069        -    '
44709000070        -    '
44710000071        -    '
44711000072        -    '
44712000073        -    '
44713000074        -    '
44714000075        -    '
44715000076        -    '
44716000077        -    '
44717000078        -    '
44718000079        -    '
44719000080        -    '
44720000081        -    '
44721000082        -    '
44722000083        -    '
44723000084        -    '
44724000085        -    '
44725000086        -    '
44726000087        -    '
44727000088        -    '
44728000089        -    '
44729000090        -    '
44730000091        -    '
44731000092        -    '
44732000093        -    '
44733000094        -    '
44734000095        -    '
44735000096        -    '
44736000097        -    '
44737000098        -    '
44738000099        -    '
44739000100        -    '
44740000101        -    '
44741000102        -    '
44742000103        -    '
44743000104        -    '
44744000105        -    '
44745000106        -    '
44746000107        -    '
44747000108        -    '
44748000109        -    '
44749000110        -    '
44750000111        -    '
44751000112        -    '
44752000113        -    ' '==.
44753000114
44754000115
44755000116             DISPLAY '
44756000116+       -
44757000116+       -
44758000116+       -
44759000116+       -
44760000116+       -
44761000116+       -
44762000116+       -
44763000116+       -
44764000116+       -
44765000116+       -
44766000116+       -
44767000116+       -
44768000116+       -
44769000116+       -
44770000116+       -
44771000116+       -
44772000116+       -
44773000116+       -
44774000116+       -
44775000116+       -
44776000116+       -
44777000116+       -
44778000116+       -
44779000116+       -
44780000116+       -
44781000116+       -
44782000116+       -
44783000116+       -
44784000116+       -
44785000116+       -
44786000116+       -
44787000116+       -
44788000116+       -
44789000116+       -
44790000116+       -
44791000116+       -
44792000116+       -
44793000116+       -
44794000116+       -
44795000116+       -
44796000116+       -
44797000116+       -
44798000116+       -
44799000116+       -
44800000116+       -
44801000116+       -
44802000116+       -
44803000116+       -
44804000116+       -
44805000116+       -
44806000116+       -
44807000116+       -
44808000116+       -
44809000116+       -
44810000116+       -
44811000116+       -
44812000116+       -
44813000116+       -
44814000116+       -
44815000116+       -
44816000116+       -
44817000116+       -
44818000116+       -
44819000116+       -
44820000116+       -
44821000116+       -
44822000116+       -
44823000116+       -
44824000116+       -
44825000116+       -
44826000116+       -
44827000116+       -
44828000116+       -
44829000116+       -
44830000116+       -
44831000116+       -
44832000116+       -
44833000116+       -
44834000116+       -
44835000116+       -
44836000116+       -
44837000116+       -
44838000116+       -
44839000116+       -
44840000116+       -
44841000116+       -
44842000116+       -
44843000116+       -
44844000116+       -
44845000116+       -
44846000116+       -
44847000116+       -
44848000116+       -
44849000116+       -
44850000116+       -
44851000116+       -
44852000116+       -
44853000116+       -
44854000116+       -
44855000116+       -                          '
44856000117             DISPLAY '
44857000117+       -
44858000117+       -
44859000117+       -
44860000117+       -
44861000117+       -
44862000117+       -
44863000117+       -
44864000117+       -
44865000117+       -
44866000117+       -
44867000117+       -
44868000117+       -
44869000117+       -
44870000117+       -
44871000117+       -
44872000117+       -
44873000117+       -
44874000117+       -
44875000117+       -
44876000117+       -
44877000117+       -
44878000117+       -
44879000117+       -
44880000117+       -
44881000117+       -
44882000117+       -
44883000117+       -
44884000117+       -
44885000117+       -
44886000117+       -
44887000117+       -
44888000117+       -
44889000117+       -
44890000117+       -
44891000117+       -
44892000117+       -
44893000117+       -
44894000117+       -
44895000117+       -
44896000117+       -
44897000117+       -
44898000117+       -
44899000117+       -
44900000117+       -
44901000117+       -
44902000117+       -
44903000117+       -
44904000117+       -
44905000117+       -
44906000117+       -
44907000117+       -
44908000117+       -
44909000117+       -
44910000117+       -
44911000117+       -
44912000117+       -
44913000117+       -
44914000117+       -
44915000117+       -
44916000117+       -
44917000117+       -
44918000117+       -
44919000117+       -
44920000117+       -
44921000117+       -
44922000117+       -
44923000117+       -
44924000117+       -
44925000117+       -
44926000117+       -
44927000117+       -
44928000117+       -
44929000117+       -
44930000117+       -
44931000117+       -
44932000117+       -
44933000117+       -
44934000117+       -
44935000117+       -
44936000117+       -
44937000117+       -
44938000117+       -
44939000117+       -
44940000117+       -
44941000117+       -
44942000117+       -
44943000117+       -
44944000117+       -
44945000117+       -
44946000117+       -
44947000117+       -
44948000117+       -
44949000117+       -
44950000117+       -
44951000117+       -
44952000117+       -
44953000117+       -
44954000117+       -
44955000117+       -
44956000117+       -                          '
44957000118             DISPLAY '
44958000118+       -
44959000118+       -
44960000118+       -
44961000118+       -
44962000118+       -
44963000118+       -
44964000118+       -
44965000118+       -
44966000118+       -
44967000118+       -
44968000118+       -
44969000118+       -
44970000118+       -
44971000118+       -
44972000118+       -
44973000118+       -
44974000118+       -
44975000118+       -
44976000118+       -
44977000118+       -
44978000118+       -
44979000118+       -
44980000118+       -
44981000118+       -
44982000118+       -
44983000118+       -
44984000118+       -
44985000118+       -
44986000118+       -
44987000118+       -
44988000118+       -
44989000118+       -
44990000118+       -
44991000118+       -
44992000118+       -
44993000118+       -
44994000118+       -
44995000118+       -
44996000118+       -
44997000118+       -
44998000118+       -
44999000118+       -
45000000118+       -
45001000118+       -
45002000118+       -
45003000118+       -
45004000118+       -
45005000118+       -
45006000118+       -
45007000118+       -
45008000118+       -
45009000118+       -
45010000118+       -
45011000118+       -
45012000118+       -
45013000118+       -
45014000118+       -
45015000118+       -
45016000118+       -
45017000118+       -
45018000118+       -
45019000118+       -
45020000118+       -
45021000118+       -
45022000118+       -
45023000118+       -
45024000118+       -
45025000118+       -
45026000118+       -
45027000118+       -
45028000118+       -
45029000118+       -
45030000118+       -
45031000118+       -
45032000118+       -
45033000118+       -
45034000118+       -
45035000118+       -
45036000118+       -
45037000118+       -
45038000118+       -
45039000118+       -
45040000118+       -
45041000118+       -
45042000118+       -
45043000118+       -
45044000118+       -
45045000118+       -
45046000118+       -
45047000118+       -
45048000118+       -
45049000118+       -
45050000118+       -
45051000118+       -
45052000118+       -
45053000118+       -
45054000118+       -
45055000118+       -
45056000118+       -
45057000118+       -                          '
45058000119
45059000120             STOP RUN.
45060
45061
450620 warnings in compilation group
450630 errors in compilation group
45064_ATEOF
45065
45066
45067{ set +x
45068$as_echo "$at_srcdir/listings.at:6439: \$UNIFY_LISTING prog.lst prog.lis once"
45069at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6439"
45070( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
45071) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45072at_status=$? at_failed=false
45073$at_check_filter
45074at_fn_diff_devnull "$at_stderr" || at_failed=:
45075at_fn_diff_devnull "$at_stdout" || at_failed=:
45076at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6439"
45077$at_failed && at_fn_log_failure  \
45078"prog.lst"
45079$at_traceon; }
45080
45081{ set +x
45082$as_echo "$at_srcdir/listings.at:6440: diff prog1.lst prog.lis"
45083at_fn_check_prepare_trace "listings.at:6440"
45084( $at_check_trace; diff prog1.lst prog.lis
45085) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45086at_status=$? at_failed=false
45087$at_check_filter
45088at_fn_diff_devnull "$at_stderr" || at_failed=:
45089at_fn_diff_devnull "$at_stdout" || at_failed=:
45090at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6440"
45091$at_failed && at_fn_log_failure  \
45092"prog.lst"
45093$at_traceon; }
45094
45095
45096cat >display.inc <<'_ATEOF'
45097
45098           DISPLAY 111111111111111111111111111111111111111
45099_ATEOF
45100
45101
45102cat >prog.cob <<'_ATEOF'
45103
45104       IDENTIFICATION   DIVISION.
45105       PROGRAM-ID.      prog.
45106       ENVIRONMENT DIVISION.
45107       CONFIGURATION SECTION.
45108       DATA             DIVISION.
45109       WORKING-STORAGE  SECTION.
45110       PROCEDURE        DIVISION.
45111
45112       COPY "display.inc"
45113           REPLACING ==111111111111111111111111111111111111111==
45114              BY =='
45115      -    '
45116      -    '
45117      -    '
45118      -    '
45119      -    '
45120      -    '
45121      -    '
45122      -    '
45123      -    '
45124      -    '
45125      -    '
45126      -    '
45127      -    '
45128      -    '
45129      -    '
45130      -    '
45131      -    '
45132      -    '
45133      -    '
45134      -    '
45135      -    '
45136      -    '
45137      -    '
45138      -    '
45139      -    '
45140      -    '
45141      -    '
45142      -    '
45143      -    '
45144      -    '
45145      -    '
45146      -    '
45147      -    '
45148      -    '
45149      -    '
45150      -    '
45151      -    '
45152      -    '
45153      -    '
45154      -    '
45155      -    '
45156      -    '
45157      -    '
45158      -    '
45159      -    '
45160      -    '
45161      -    '
45162      -    '
45163      -    '
45164      -    '
45165      -    '
45166      -    '
45167      -    '
45168      -    '
45169      -    '
45170      -    '
45171      -    '
45172      -    '
45173      -    '
45174      -    '
45175      -    '
45176      -    '
45177      -    '
45178      -    '
45179      -    '
45180      -    '
45181      -    '
45182      -    '
45183      -    '
45184      -    '
45185      -    '
45186      -    '
45187      -    '
45188      -    '
45189      -    '
45190      -    '
45191      -    '
45192      -    '
45193      -    '
45194      -    '
45195      -    '
45196      -    '
45197      -    '
45198      -    '
45199      -    '
45200      -    '
45201      -    '
45202      -    '
45203      -    '
45204      -    '
45205      -    '
45206      -    '
45207      -    '
45208      -    '
45209      -    '
45210      -    '
45211      -    '
45212      -    '
45213      -    '
45214      -    '
45215      -    '
45216      -    ' '==.
45217
45218           STOP RUN.
45219_ATEOF
45220
45221
45222{ set +x
45223$as_echo "$at_srcdir/listings.at:6564: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
45224at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6564"
45225( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
45226) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45227at_status=$? at_failed=false
45228$at_check_filter
45229at_fn_diff_devnull "$at_stderr" || at_failed=:
45230at_fn_diff_devnull "$at_stdout" || at_failed=:
45231at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6564"
45232$at_failed && at_fn_log_failure  \
45233"prog.lst"
45234$at_traceon; }
45235
45236
45237cat >prog2.lst <<'_ATEOF'
45238GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
45239
45240LINE    PG/LN  A...B............................................................
45241
45242000001
45243000002         IDENTIFICATION   DIVISION.
45244000003         PROGRAM-ID.      prog.
45245000004         ENVIRONMENT DIVISION.
45246000005         CONFIGURATION SECTION.
45247000006         DATA             DIVISION.
45248000007         WORKING-STORAGE  SECTION.
45249000008         PROCEDURE        DIVISION.
45250000009
45251000010         COPY "display.inc"
45252000011             REPLACING ==111111111111111111111111111111111111111==
45253000012                BY =='
45254000013        -    '
45255000014        -    '
45256000015        -    '
45257000016        -    '
45258000017        -    '
45259000018        -    '
45260000019        -    '
45261000020        -    '
45262000021        -    '
45263000022        -    '
45264000023        -    '
45265000024        -    '
45266000025        -    '
45267000026        -    '
45268000027        -    '
45269000028        -    '
45270000029        -    '
45271000030        -    '
45272000031        -    '
45273000032        -    '
45274000033        -    '
45275000034        -    '
45276000035        -    '
45277000036        -    '
45278000037        -    '
45279000038        -    '
45280000039        -    '
45281000040        -    '
45282000041        -    '
45283000042        -    '
45284000043        -    '
45285000044        -    '
45286000045        -    '
45287000046        -    '
45288000047        -    '
45289000048        -    '
45290000049        -    '
45291000050        -    '
45292000051        -    '
45293000052        -    '
45294000053        -    '
45295000054        -    '
45296000055        -    '
45297000056        -    '
45298000057        -    '
45299000058        -    '
45300000059        -    '
45301000060        -    '
45302000061        -    '
45303000062        -    '
45304000063        -    '
45305000064        -    '
45306000065        -    '
45307000066        -    '
45308000067        -    '
45309000068        -    '
45310000069        -    '
45311000070        -    '
45312000071        -    '
45313000072        -    '
45314000073        -    '
45315000074        -    '
45316000075        -    '
45317000076        -    '
45318000077        -    '
45319000078        -    '
45320000079        -    '
45321000080        -    '
45322000081        -    '
45323000082        -    '
45324000083        -    '
45325000084        -    '
45326000085        -    '
45327000086        -    '
45328000087        -    '
45329000088        -    '
45330000089        -    '
45331000090        -    '
45332000091        -    '
45333000092        -    '
45334000093        -    '
45335000094        -    '
45336000095        -    '
45337000096        -    '
45338000097        -    '
45339000098        -    '
45340000099        -    '
45341000100        -    '
45342000101        -    '
45343000102        -    '
45344000103        -    '
45345000104        -    '
45346000105        -    '
45347000106        -    '
45348000107        -    '
45349000108        -    '
45350000109        -    '
45351000110        -    '
45352000111        -    '
45353000112        -    '
45354000113        -    '
45355000114        -    ' '==.
45356000001C
45357000002C            DISPLAY '
45358000002+       -
45359000002+       -
45360000002+       -
45361000002+       -
45362000002+       -
45363000002+       -
45364000002+       -
45365000002+       -
45366000002+       -
45367000002+       -
45368000002+       -
45369000002+       -
45370000002+       -
45371000002+       -
45372000002+       -
45373000002+       -
45374000002+       -
45375000002+       -
45376000002+       -
45377000002+       -
45378000002+       -
45379000002+       -
45380000002+       -
45381000002+       -
45382000002+       -
45383000002+       -
45384000002+       -
45385000002+       -
45386000002+       -
45387000002+       -
45388000002+       -
45389000002+       -
45390000002+       -
45391000002+       -
45392000002+       -
45393000002+       -
45394000002+       -
45395000002+       -
45396000002+       -
45397000002+       -
45398000002+       -
45399000002+       -
45400000002+       -
45401000002+       -
45402000002+       -
45403000002+       -
45404000002+       -
45405000002+       -
45406000002+       -
45407000002+       -
45408000002+       -
45409000002+       -
45410000002+       -
45411000002+       -
45412000002+       -
45413000002+       -
45414000002+       -
45415000002+       -
45416000002+       -
45417000002+       -
45418000002+       -
45419000002+       -
45420000002+       -
45421000002+       -
45422000002+       -
45423000002+       -
45424000002+       -
45425000002+       -
45426000002+       -
45427000002+       -
45428000002+       -
45429000002+       -
45430000002+       -
45431000002+       -
45432000002+       -
45433000002+       -
45434000002+       -
45435000002+       -
45436000002+       -
45437000002+       -
45438000002+       -
45439000002+       -
45440000002+       -
45441000002+       -
45442000002+       -
45443000002+       -
45444000002+       -
45445000002+       -
45446000002+       -
45447000002+       -
45448000002+       -
45449000002+       -
45450000002+       -
45451000002+       -
45452000002+       -
45453000002+       -
45454000002+       -
45455000002+       -
45456000002+       -
45457000002+       -                          '
45458000115
45459000116             STOP RUN.
45460
45461
454620 warnings in compilation group
454630 errors in compilation group
45464_ATEOF
45465
45466
45467{ set +x
45468$as_echo "$at_srcdir/listings.at:6795: \$UNIFY_LISTING prog.lst prog.lis once"
45469at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6795"
45470( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
45471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45472at_status=$? at_failed=false
45473$at_check_filter
45474at_fn_diff_devnull "$at_stderr" || at_failed=:
45475at_fn_diff_devnull "$at_stdout" || at_failed=:
45476at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6795"
45477$at_failed && at_fn_log_failure  \
45478"prog.lst"
45479$at_traceon; }
45480
45481{ set +x
45482$as_echo "$at_srcdir/listings.at:6796: diff prog2.lst prog.lis"
45483at_fn_check_prepare_trace "listings.at:6796"
45484( $at_check_trace; diff prog2.lst prog.lis
45485) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45486at_status=$? at_failed=false
45487$at_check_filter
45488at_fn_diff_devnull "$at_stderr" || at_failed=:
45489at_fn_diff_devnull "$at_stdout" || at_failed=:
45490at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6796"
45491$at_failed && at_fn_log_failure  \
45492"prog.lst"
45493$at_traceon; }
45494
45495
45496  set +x
45497  $at_times_p && times >"$at_times_file"
45498) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45499read at_status <"$at_status_file"
45500#AT_STOP_440
45501#AT_START_441
45502at_fn_group_banner 441 'listings.at:6801' \
45503  "Long concatenated literal" "                      " 3
45504at_xfail=no
45505(
45506  $as_echo "441. $at_setup_line: testing $at_desc ..."
45507  $at_traceon
45508
45509
45510
45511cat >prog.cob <<'_ATEOF'
45512
45513       >>SOURCE FORMAT IS FREE
45514ID DIVISION.
45515PROGRAM-ID. ED000MAIN IS INITIAL.
45516DATA DIVISION.
45517WORKING-STORAGE SECTION.
4551801 WCOVER PIC X(1280) VALUE
45519      "          _________             ____________________________________            " &
45520      "          __  ____/__________  ___  ____/_  __ \__  __ )_  __ \__  /            " &
45521      "          _  / __ __  __ \  / / /  /    _  / / /_  __  |  / / /_  /             " &
45522      "          / /_/ / _  / / / /_/ // /___  / /_/ /_  /_/ // /_/ /_  /___           " &
45523      "          \____/  /_/ /_/\__,_/ \____/  \____/ /_____/ \____/ /_____/           " &
45524      "                           _________________________                            " &
45525      "                           ___  ____/__  __ \__  __ \                           " &
45526      "                           __  __/  __  /_/ /_  /_/ /                           " &
45527      "                           _  /___  _  _, _/_  ____/                            " &
45528      "                           /_____/  /_/ |_| /_/                                 " &
45529      "     /_/  |_|  .___/_  .___//_/  /_/  \___/ \__,_/ \__/ /_/  \____//_/ /_/      " &
45530      "    /_/     /_/                                                                 " &
45531      "1234567890123456789012".
45532PROCEDURE DIVISION.
45533    EXIT.
45534_ATEOF
45535
45536
45537{ set +x
45538$as_echo "$at_srcdir/listings.at:6828: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
45539at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6828"
45540( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 prog.cob
45541) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45542at_status=$? at_failed=false
45543$at_check_filter
45544at_fn_diff_devnull "$at_stderr" || at_failed=:
45545at_fn_diff_devnull "$at_stdout" || at_failed=:
45546at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6828"
45547$at_failed && at_fn_log_failure
45548$at_traceon; }
45549
45550
45551cat >prog2.lst <<'_ATEOF'
45552GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY
45553
45554LINE    PG/LN  A...B............................................................
45555
45556000001
45557000002         >>SOURCE FORMAT IS FREE
45558000003  ID DIVISION.
45559000004  PROGRAM-ID. ED000MAIN IS INITIAL.
45560000005  DATA DIVISION.
45561000006  WORKING-STORAGE SECTION.
45562000007  01 WCOVER PIC X(1280) VALUE
45563000008        "          _________             _________________________________
45564000008+ ___            " &
45565000009        "          __  ____/__________  ___  ____/_  __ \__  __ )_  __ \__
45566000009+   /            " &
45567000010        "          _  / __ __  __ \  / / /  /    _  / / /_  __  |  / / /_
45568000010+  /             " &
45569000011        "          / /_/ / _  / / / /_/ // /___  / /_/ /_  /_/ // /_/ /_
45570000011+ /___           " &
45571000012        "          \____/  /_/ /_/\__,_/ \____/  \____/ /_____/ \____/ /__
45572000012+ ___/           " &
45573000013        "                           _________________________
45574000013+                " &
45575000014        "                           ___  ____/__  __ \__  __ \
45576000014+                " &
45577000015        "                           __  __/  __  /_/ /_  /_/ /
45578000015+                " &
45579000016        "                           _  /___  _  _, _/_  ____/
45580000016+                " &
45581000017        "                           /_____/  /_/ |_| /_/
45582000017+                " &
45583000018        "     /_/  |_|  .___/_  .___//_/  /_/  \___/ \__,_/ \__/ /_/  \___
45584000018+ _//_/ /_/      " &
45585000019        "    /_/     /_/
45586000019+                " &
45587000020        "1234567890123456789012".
45588000021  PROCEDURE DIVISION.
45589000022      EXIT.
45590
45591
455920 warnings in compilation group
455930 errors in compilation group
45594_ATEOF
45595
45596
45597{ set +x
45598$as_echo "$at_srcdir/listings.at:6875: \$UNIFY_LISTING prog.lst prog.lis once"
45599at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6875"
45600( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
45601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45602at_status=$? at_failed=false
45603$at_check_filter
45604at_fn_diff_devnull "$at_stderr" || at_failed=:
45605at_fn_diff_devnull "$at_stdout" || at_failed=:
45606at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6875"
45607$at_failed && at_fn_log_failure
45608$at_traceon; }
45609
45610{ set +x
45611$as_echo "$at_srcdir/listings.at:6876: diff prog2.lst prog.lis"
45612at_fn_check_prepare_trace "listings.at:6876"
45613( $at_check_trace; diff prog2.lst prog.lis
45614) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45615at_status=$? at_failed=false
45616$at_check_filter
45617at_fn_diff_devnull "$at_stderr" || at_failed=:
45618at_fn_diff_devnull "$at_stdout" || at_failed=:
45619at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6876"
45620$at_failed && at_fn_log_failure
45621$at_traceon; }
45622
45623
45624  set +x
45625  $at_times_p && times >"$at_times_file"
45626) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45627read at_status <"$at_status_file"
45628#AT_STOP_441
45629#AT_START_442
45630at_fn_group_banner 442 'run_fundamental.at:24' \
45631  "DISPLAY literals" "                               " 4
45632at_xfail=no
45633(
45634  $as_echo "442. $at_setup_line: testing $at_desc ..."
45635  $at_traceon
45636
45637
45638
45639cat >prog.cob <<'_ATEOF'
45640
45641       IDENTIFICATION   DIVISION.
45642       PROGRAM-ID.      prog.
45643       PROCEDURE        DIVISION.
45644           DISPLAY "abc"
45645           END-DISPLAY.
45646           DISPLAY  123
45647           END-DISPLAY.
45648           DISPLAY +123
45649           END-DISPLAY.
45650           DISPLAY -123
45651           END-DISPLAY.
45652           DISPLAY  12.3
45653           END-DISPLAY.
45654           DISPLAY +12.3
45655           END-DISPLAY.
45656           DISPLAY -12.3
45657           END-DISPLAY.
45658           DISPLAY 1.23E0
45659           END-DISPLAY.
45660           DISPLAY +1.23E0
45661           END-DISPLAY.
45662           DISPLAY -1.23E0
45663           END-DISPLAY.
45664           DISPLAY 12.3E-2
45665           END-DISPLAY.
45666           DISPLAY +12.3E-2
45667           END-DISPLAY.
45668           DISPLAY -12.3E-2
45669           END-DISPLAY.
45670           DISPLAY B'0101'
45671           END-DISPLAY.
45672           DISPLAY BX'EC'
45673           END-DISPLAY.
45674           STOP RUN.
45675_ATEOF
45676
45677
45678{ set +x
45679$as_echo "$at_srcdir/run_fundamental.at:64: \$COMPILE prog.cob"
45680at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:64"
45681( $at_check_trace; $COMPILE prog.cob
45682) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45683at_status=$? at_failed=false
45684$at_check_filter
45685at_fn_diff_devnull "$at_stderr" || at_failed=:
45686at_fn_diff_devnull "$at_stdout" || at_failed=:
45687at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:64"
45688$at_failed && at_fn_log_failure
45689$at_traceon; }
45690
45691{ set +x
45692$as_echo "$at_srcdir/run_fundamental.at:65: \$COBCRUN_DIRECT ./prog"
45693at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:65"
45694( $at_check_trace; $COBCRUN_DIRECT ./prog
45695) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45696at_status=$? at_failed=false
45697$at_check_filter
45698at_fn_diff_devnull "$at_stderr" || at_failed=:
45699echo >>"$at_stdout"; $as_echo "abc
45700123
45701+123
45702-123
4570312.3
45704+12.3
45705-12.3
457061.23
45707+1.23
45708-1.23
45709.123
45710+.123
45711-.123
457125
45713236
45714" | \
45715  $at_diff - "$at_stdout" || at_failed=:
45716at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:65"
45717$at_failed && at_fn_log_failure
45718$at_traceon; }
45719
45720
45721  set +x
45722  $at_times_p && times >"$at_times_file"
45723) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45724read at_status <"$at_status_file"
45725#AT_STOP_442
45726#AT_START_443
45727at_fn_group_banner 443 'run_fundamental.at:86' \
45728  "DISPLAY literals, DECIMAL-POINT is COMMA" "       " 4
45729at_xfail=no
45730(
45731  $as_echo "443. $at_setup_line: testing $at_desc ..."
45732  $at_traceon
45733
45734
45735
45736cat >prog.cob <<'_ATEOF'
45737
45738       IDENTIFICATION   DIVISION.
45739       PROGRAM-ID.      prog.
45740       ENVIRONMENT      DIVISION.
45741       CONFIGURATION    SECTION.
45742       SPECIAL-NAMES.
45743           DECIMAL-POINT    IS COMMA.
45744       PROCEDURE        DIVISION.
45745           DISPLAY  12,3
45746           END-DISPLAY.
45747           DISPLAY +12,3
45748           END-DISPLAY.
45749           DISPLAY -12,3
45750           END-DISPLAY.
45751           DISPLAY 1,23E0
45752           END-DISPLAY.
45753           DISPLAY +1,23E0
45754           END-DISPLAY.
45755           DISPLAY -1,23E0
45756           END-DISPLAY.
45757           STOP RUN.
45758_ATEOF
45759
45760
45761{ set +x
45762$as_echo "$at_srcdir/run_fundamental.at:112: \$COMPILE prog.cob"
45763at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:112"
45764( $at_check_trace; $COMPILE prog.cob
45765) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45766at_status=$? at_failed=false
45767$at_check_filter
45768at_fn_diff_devnull "$at_stderr" || at_failed=:
45769at_fn_diff_devnull "$at_stdout" || at_failed=:
45770at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:112"
45771$at_failed && at_fn_log_failure
45772$at_traceon; }
45773
45774{ set +x
45775$as_echo "$at_srcdir/run_fundamental.at:113: \$COBCRUN_DIRECT ./prog"
45776at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:113"
45777( $at_check_trace; $COBCRUN_DIRECT ./prog
45778) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45779at_status=$? at_failed=false
45780$at_check_filter
45781at_fn_diff_devnull "$at_stderr" || at_failed=:
45782echo >>"$at_stdout"; $as_echo "12,3
45783+12,3
45784-12,3
457851,23
45786+1,23
45787-1,23
45788" | \
45789  $at_diff - "$at_stdout" || at_failed=:
45790at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:113"
45791$at_failed && at_fn_log_failure
45792$at_traceon; }
45793
45794
45795  set +x
45796  $at_times_p && times >"$at_times_file"
45797) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45798read at_status <"$at_status_file"
45799#AT_STOP_443
45800#AT_START_444
45801at_fn_group_banner 444 'run_fundamental.at:125' \
45802  "Hexadecimal literal" "                            " 4
45803at_xfail=no
45804(
45805  $as_echo "444. $at_setup_line: testing $at_desc ..."
45806  $at_traceon
45807
45808
45809
45810cat >dump.c <<'_ATEOF'
45811
45812#include <stdio.h>
45813#include <libcob.h>
45814
45815COB_EXT_EXPORT int
45816dump (unsigned char *data)
45817{
45818  int i;
45819  for (i = 0; i < 4; i++)
45820    printf ("%02x", data[i]);
45821  return 0;
45822}
45823_ATEOF
45824
45825
45826cat >prog.cob <<'_ATEOF'
45827
45828       IDENTIFICATION   DIVISION.
45829       PROGRAM-ID.      prog.
45830       PROCEDURE        DIVISION.
45831       >>IF CHARSET = 'EBCDIC'
45832           DISPLAY X"F1F2F3"
45833       >>ELSE
45834           DISPLAY X"313233"
45835       >>END-IF
45836           END-DISPLAY.
45837           CALL "dump" USING X"000102"
45838           END-CALL.
45839           STOP RUN.
45840_ATEOF
45841
45842
45843{ set +x
45844$as_echo "$at_srcdir/run_fundamental.at:157: \$COMPILE_MODULE dump.c"
45845at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_fundamental.at:157"
45846( $at_check_trace; $COMPILE_MODULE dump.c
45847) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45848at_status=$? at_failed=false
45849$at_check_filter
45850at_fn_diff_devnull "$at_stderr" || at_failed=:
45851at_fn_diff_devnull "$at_stdout" || at_failed=:
45852at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:157"
45853$at_failed && at_fn_log_failure
45854$at_traceon; }
45855
45856{ set +x
45857$as_echo "$at_srcdir/run_fundamental.at:158: \$COMPILE prog.cob"
45858at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:158"
45859( $at_check_trace; $COMPILE prog.cob
45860) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45861at_status=$? at_failed=false
45862$at_check_filter
45863at_fn_diff_devnull "$at_stderr" || at_failed=:
45864at_fn_diff_devnull "$at_stdout" || at_failed=:
45865at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:158"
45866$at_failed && at_fn_log_failure
45867$at_traceon; }
45868
45869{ set +x
45870$as_echo "$at_srcdir/run_fundamental.at:159: \$COBCRUN_DIRECT ./prog"
45871at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:159"
45872( $at_check_trace; $COBCRUN_DIRECT ./prog
45873) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45874at_status=$? at_failed=false
45875$at_check_filter
45876at_fn_diff_devnull "$at_stderr" || at_failed=:
45877echo >>"$at_stdout"; $as_echo "123
4587800010200" | \
45879  $at_diff - "$at_stdout" || at_failed=:
45880at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:159"
45881$at_failed && at_fn_log_failure
45882$at_traceon; }
45883
45884
45885  set +x
45886  $at_times_p && times >"$at_times_file"
45887) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45888read at_status <"$at_status_file"
45889#AT_STOP_444
45890#AT_START_445
45891at_fn_group_banner 445 'run_fundamental.at:166' \
45892  "DISPLAY data items with VALUE clause" "           " 4
45893at_xfail=no
45894(
45895  $as_echo "445. $at_setup_line: testing $at_desc ..."
45896  $at_traceon
45897
45898
45899
45900cat >prog.cob <<'_ATEOF'
45901
45902       IDENTIFICATION   DIVISION.
45903       PROGRAM-ID.      prog.
45904       DATA             DIVISION.
45905       WORKING-STORAGE  SECTION.
45906       01 X-ABC         PIC XXX   VALUE "abc".
45907       01 X-123         PIC 999   VALUE  123.
45908       01 X-P123        PIC S999  VALUE +123.
45909       01 X-N123        PIC S999  VALUE -123.
45910       01 X-12-3        PIC 99V9  VALUE  12.3.
45911       01 X-P12-3       PIC S99V9 VALUE +12.3.
45912       01 X-N12-3       PIC S99V9 VALUE -12.3.
45913       PROCEDURE        DIVISION.
45914           DISPLAY X-ABC
45915           END-DISPLAY.
45916           DISPLAY X-123
45917           END-DISPLAY.
45918           DISPLAY X-P123
45919           END-DISPLAY.
45920           DISPLAY X-N123
45921           END-DISPLAY.
45922           DISPLAY X-12-3
45923           END-DISPLAY.
45924           DISPLAY X-P12-3
45925           END-DISPLAY.
45926           DISPLAY X-N12-3
45927           END-DISPLAY.
45928           STOP RUN.
45929_ATEOF
45930
45931
45932{ set +x
45933$as_echo "$at_srcdir/run_fundamental.at:199: \$COMPILE prog.cob"
45934at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:199"
45935( $at_check_trace; $COMPILE prog.cob
45936) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45937at_status=$? at_failed=false
45938$at_check_filter
45939at_fn_diff_devnull "$at_stderr" || at_failed=:
45940at_fn_diff_devnull "$at_stdout" || at_failed=:
45941at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:199"
45942$at_failed && at_fn_log_failure
45943$at_traceon; }
45944
45945{ set +x
45946$as_echo "$at_srcdir/run_fundamental.at:200: \$COBCRUN_DIRECT ./prog"
45947at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:200"
45948( $at_check_trace; $COBCRUN_DIRECT ./prog
45949) >>"$at_stdout" 2>>"$at_stderr" 5>&-
45950at_status=$? at_failed=false
45951$at_check_filter
45952at_fn_diff_devnull "$at_stderr" || at_failed=:
45953echo >>"$at_stdout"; $as_echo "abc
45954123
45955+123
45956-123
4595712.3
45958+12.3
45959-12.3
45960" | \
45961  $at_diff - "$at_stdout" || at_failed=:
45962at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:200"
45963$at_failed && at_fn_log_failure
45964$at_traceon; }
45965
45966
45967  set +x
45968  $at_times_p && times >"$at_times_file"
45969) 5>&1 2>&1 7>&- | eval $at_tee_pipe
45970read at_status <"$at_status_file"
45971#AT_STOP_445
45972#AT_START_446
45973at_fn_group_banner 446 'run_fundamental.at:213' \
45974  "DISPLAY data items with MOVE statement" "         " 4
45975at_xfail=no
45976(
45977  $as_echo "446. $at_setup_line: testing $at_desc ..."
45978  $at_traceon
45979
45980
45981
45982cat >prog.cob <<'_ATEOF'
45983
45984       IDENTIFICATION   DIVISION.
45985       PROGRAM-ID.      prog.
45986       DATA             DIVISION.
45987       WORKING-STORAGE  SECTION.
45988       01 X-ABC         PIC XXX   VALUE "abc".
45989       01 X-123         PIC 999   VALUE  123.
45990       01 X-P123        PIC S999  VALUE +123.
45991       01 X-N123        PIC S999  VALUE -123.
45992       01 X-12-3        PIC 99V9  VALUE  12.3.
45993       01 X-P12-3       PIC S99V9 VALUE +12.3.
45994       01 X-N12-3       PIC S99V9 VALUE -12.3.
45995       PROCEDURE        DIVISION.
45996           MOVE "abc" TO X-ABC.
45997           DISPLAY X-ABC
45998           END-DISPLAY.
45999           MOVE  123  TO X-123.
46000           DISPLAY X-123
46001           END-DISPLAY.
46002           MOVE +123  TO X-P123.
46003           DISPLAY X-P123
46004           END-DISPLAY.
46005           MOVE -123  TO X-N123.
46006           DISPLAY X-N123
46007           END-DISPLAY.
46008           MOVE  12.3 TO X-12-3.
46009           DISPLAY X-12-3
46010           END-DISPLAY.
46011           MOVE +12.3 TO X-P12-3.
46012           DISPLAY X-P12-3
46013           END-DISPLAY.
46014           MOVE -12.3 TO X-N12-3.
46015           DISPLAY X-N12-3
46016           END-DISPLAY.
46017           STOP RUN.
46018_ATEOF
46019
46020
46021{ set +x
46022$as_echo "$at_srcdir/run_fundamental.at:253: \$COMPILE prog.cob"
46023at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:253"
46024( $at_check_trace; $COMPILE prog.cob
46025) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46026at_status=$? at_failed=false
46027$at_check_filter
46028at_fn_diff_devnull "$at_stderr" || at_failed=:
46029at_fn_diff_devnull "$at_stdout" || at_failed=:
46030at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:253"
46031$at_failed && at_fn_log_failure
46032$at_traceon; }
46033
46034{ set +x
46035$as_echo "$at_srcdir/run_fundamental.at:254: \$COBCRUN_DIRECT ./prog"
46036at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:254"
46037( $at_check_trace; $COBCRUN_DIRECT ./prog
46038) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46039at_status=$? at_failed=false
46040$at_check_filter
46041at_fn_diff_devnull "$at_stderr" || at_failed=:
46042echo >>"$at_stdout"; $as_echo "abc
46043123
46044+123
46045-123
4604612.3
46047+12.3
46048-12.3
46049" | \
46050  $at_diff - "$at_stdout" || at_failed=:
46051at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:254"
46052$at_failed && at_fn_log_failure
46053$at_traceon; }
46054
46055
46056  set +x
46057  $at_times_p && times >"$at_times_file"
46058) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46059read at_status <"$at_status_file"
46060#AT_STOP_446
46061#AT_START_447
46062at_fn_group_banner 447 'run_fundamental.at:267' \
46063  "MOVE to edited item (1)" "                        " 4
46064at_xfail=no
46065(
46066  $as_echo "447. $at_setup_line: testing $at_desc ..."
46067  $at_traceon
46068
46069
46070
46071cat >prog.cob <<'_ATEOF'
46072
46073       IDENTIFICATION   DIVISION.
46074       PROGRAM-ID.      prog.
46075       DATA             DIVISION.
46076       WORKING-STORAGE  SECTION.
46077       01  SRC-1        PIC S99V99  VALUE   1.10.
46078       01  SRC-2        PIC S99V99  VALUE   0.02.
46079       01  SRC-3        PIC S99V99  VALUE  -0.03.
46080       01  SRC-4        PIC S99V99  VALUE  -0.04.
46081       01  SRC-5        PIC S99V99  VALUE  -0.05.
46082       01  EDT-1        PIC -(04)9.
46083       01  EDT-2        PIC -(04)9.
46084       01  EDT-3        PIC -(04)9.
46085       01  EDT-4        PIC +(04)9.
46086       01  EDT-5        PIC -(05).
46087       PROCEDURE        DIVISION.
46088           MOVE SRC-1   TO EDT-1.
46089           MOVE SRC-2   TO EDT-2.
46090           MOVE SRC-3   TO EDT-3.
46091           MOVE SRC-4   TO EDT-4.
46092           MOVE SRC-5   TO EDT-5.
46093           DISPLAY '>' EDT-1 '<'
46094           END-DISPLAY.
46095           DISPLAY '>' EDT-2 '<'
46096           END-DISPLAY.
46097           DISPLAY '>' EDT-3 '<'
46098           END-DISPLAY.
46099           DISPLAY '>' EDT-4 '<'
46100           END-DISPLAY.
46101           DISPLAY '>' EDT-5 '<'
46102           END-DISPLAY.
46103           STOP RUN.
46104_ATEOF
46105
46106
46107{ set +x
46108$as_echo "$at_srcdir/run_fundamental.at:304: \$COMPILE prog.cob"
46109at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:304"
46110( $at_check_trace; $COMPILE prog.cob
46111) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46112at_status=$? at_failed=false
46113$at_check_filter
46114at_fn_diff_devnull "$at_stderr" || at_failed=:
46115at_fn_diff_devnull "$at_stdout" || at_failed=:
46116at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:304"
46117$at_failed && at_fn_log_failure
46118$at_traceon; }
46119
46120{ set +x
46121$as_echo "$at_srcdir/run_fundamental.at:305: \$COBCRUN_DIRECT ./prog"
46122at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:305"
46123( $at_check_trace; $COBCRUN_DIRECT ./prog
46124) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46125at_status=$? at_failed=false
46126$at_check_filter
46127at_fn_diff_devnull "$at_stderr" || at_failed=:
46128echo >>"$at_stdout"; $as_echo ">    1<
46129>    0<
46130>    0<
46131>   +0<
46132>     <
46133" | \
46134  $at_diff - "$at_stdout" || at_failed=:
46135at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:305"
46136$at_failed && at_fn_log_failure
46137$at_traceon; }
46138
46139
46140  set +x
46141  $at_times_p && times >"$at_times_file"
46142) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46143read at_status <"$at_status_file"
46144#AT_STOP_447
46145#AT_START_448
46146at_fn_group_banner 448 'run_fundamental.at:316' \
46147  "MOVE to edited item (2)" "                        " 4
46148at_xfail=no
46149(
46150  $as_echo "448. $at_setup_line: testing $at_desc ..."
46151  $at_traceon
46152
46153
46154
46155cat >prog.cob <<'_ATEOF'
46156
46157       IDENTIFICATION   DIVISION.
46158       PROGRAM-ID.      prog.
46159       DATA             DIVISION.
46160       WORKING-STORAGE  SECTION.
46161       01  SRC-1        PIC S99V99  VALUE  -0.06.
46162       01  SRC-2        PIC S99V99  VALUE  -0.07.
46163       01  SRC-3        PIC S99V99  VALUE  -0.08.
46164       01  SRC-4        PIC S99V99  VALUE  -0.09.
46165       01  SRC-5        PIC S99V99  VALUE  -1.10.
46166       01  EDT-1        PIC 9(04)-.
46167       01  EDT-2        PIC 9(04)+.
46168       01  EDT-3        PIC Z(04)+.
46169       01  EDT-4        PIC 9(04)DB.
46170       01  EDT-5        PIC 9(04)DB.
46171       PROCEDURE        DIVISION.
46172           MOVE SRC-1   TO EDT-1.
46173           MOVE SRC-2   TO EDT-2.
46174           MOVE SRC-3   TO EDT-3.
46175           MOVE SRC-4   TO EDT-4.
46176           MOVE SRC-5   TO EDT-5.
46177           DISPLAY '>' EDT-1 '<'
46178           END-DISPLAY.
46179           DISPLAY '>' EDT-2 '<'
46180           END-DISPLAY.
46181           DISPLAY '>' EDT-3 '<'
46182           END-DISPLAY.
46183           DISPLAY '>' EDT-4 '<'
46184           END-DISPLAY.
46185           DISPLAY '>' EDT-5 '<'
46186           END-DISPLAY.
46187           STOP RUN.
46188_ATEOF
46189
46190
46191{ set +x
46192$as_echo "$at_srcdir/run_fundamental.at:353: \$COMPILE prog.cob"
46193at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:353"
46194( $at_check_trace; $COMPILE prog.cob
46195) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46196at_status=$? at_failed=false
46197$at_check_filter
46198at_fn_diff_devnull "$at_stderr" || at_failed=:
46199at_fn_diff_devnull "$at_stdout" || at_failed=:
46200at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:353"
46201$at_failed && at_fn_log_failure
46202$at_traceon; }
46203
46204{ set +x
46205$as_echo "$at_srcdir/run_fundamental.at:354: \$COBCRUN_DIRECT ./prog"
46206at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:354"
46207( $at_check_trace; $COBCRUN_DIRECT ./prog
46208) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46209at_status=$? at_failed=false
46210$at_check_filter
46211at_fn_diff_devnull "$at_stderr" || at_failed=:
46212echo >>"$at_stdout"; $as_echo ">0000 <
46213>0000+<
46214>     <
46215>0000  <
46216>0001DB<
46217" | \
46218  $at_diff - "$at_stdout" || at_failed=:
46219at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:354"
46220$at_failed && at_fn_log_failure
46221$at_traceon; }
46222
46223
46224  set +x
46225  $at_times_p && times >"$at_times_file"
46226) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46227read at_status <"$at_status_file"
46228#AT_STOP_448
46229#AT_START_449
46230at_fn_group_banner 449 'run_fundamental.at:365' \
46231  "MOVE to item with simple and floating insertion" "" 4
46232at_xfail=no
46233(
46234  $as_echo "449. $at_setup_line: testing $at_desc ..."
46235  $at_traceon
46236
46237
46238
46239cat >prog.cob <<'_ATEOF'
46240
46241       IDENTIFICATION DIVISION.
46242       PROGRAM-ID. prog.
46243
46244       DATA DIVISION.
46245       WORKING-STORAGE SECTION.
46246       01  num-1 PIC -*B*99.
46247       01  num-2 PIC $BB**,***.**.
46248       01  num-3 PIC $BB--,---.--.
46249
46250       PROCEDURE DIVISION.
46251           MOVE -123 TO num-1
46252           DISPLAY ">" num-1 "<"
46253
46254           MOVE 1234.56 TO num-2
46255           DISPLAY ">" num-2 "<"
46256
46257           MOVE 1234.56 TO num-3
46258           DISPLAY ">" num-3 "<"
46259           .
46260_ATEOF
46261
46262
46263{ set +x
46264$as_echo "$at_srcdir/run_fundamental.at:390: \$COMPILE prog.cob"
46265at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:390"
46266( $at_check_trace; $COMPILE prog.cob
46267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46268at_status=$? at_failed=false
46269$at_check_filter
46270at_fn_diff_devnull "$at_stderr" || at_failed=:
46271at_fn_diff_devnull "$at_stdout" || at_failed=:
46272at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:390"
46273$at_failed && at_fn_log_failure
46274$at_traceon; }
46275
46276{ set +x
46277$as_echo "$at_srcdir/run_fundamental.at:391: \$COBCRUN_DIRECT ./prog"
46278at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:391"
46279( $at_check_trace; $COBCRUN_DIRECT ./prog
46280) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46281at_status=$? at_failed=false
46282$at_check_filter
46283at_fn_diff_devnull "$at_stderr" || at_failed=:
46284echo >>"$at_stdout"; $as_echo ">-**123<
46285>\$  *1,234.56<
46286>\$   1,234.56<
46287" | \
46288  $at_diff - "$at_stdout" || at_failed=:
46289at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:391"
46290$at_failed && at_fn_log_failure
46291$at_traceon; }
46292
46293
46294  set +x
46295  $at_times_p && times >"$at_times_file"
46296) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46297read at_status <"$at_status_file"
46298#AT_STOP_449
46299#AT_START_450
46300at_fn_group_banner 450 'run_fundamental.at:400' \
46301  "MOVE to JUSTIFIED item" "                         " 4
46302at_xfail=no
46303(
46304  $as_echo "450. $at_setup_line: testing $at_desc ..."
46305  $at_traceon
46306
46307
46308
46309cat >prog.cob <<'_ATEOF'
46310
46311       IDENTIFICATION   DIVISION.
46312       PROGRAM-ID.      prog.
46313       DATA             DIVISION.
46314       WORKING-STORAGE  SECTION.
46315       01  SRC-1        PIC S9(04)          VALUE  11.
46316       01  SRC-2        PIC S9(04) COMP     VALUE  22.
46317       01  SRC-3        PIC S9(04) COMP-5   VALUE  33.
46318       01  SRC-4        PIC S9(04)PP        VALUE  4400.
46319       01  SRC-5        PIC S9(04)PPPPP     VALUE  55500000.
46320       01  EDT-FLD      PIC X(07)           JUSTIFIED RIGHT.
46321       PROCEDURE        DIVISION.
46322           MOVE SRC-1   TO EDT-FLD.
46323           DISPLAY '>' EDT-FLD '<'
46324           END-DISPLAY.
46325           MOVE SRC-2   TO EDT-FLD.
46326           DISPLAY '>' EDT-FLD '<'
46327           END-DISPLAY.
46328           MOVE SRC-3   TO EDT-FLD.
46329           DISPLAY '>' EDT-FLD '<'
46330           END-DISPLAY.
46331           MOVE SRC-4   TO EDT-FLD.
46332           DISPLAY '>' EDT-FLD '<'
46333           END-DISPLAY.
46334           MOVE SRC-5   TO EDT-FLD.
46335           DISPLAY '>' EDT-FLD '<'
46336           END-DISPLAY.
46337           STOP RUN.
46338_ATEOF
46339
46340
46341{ set +x
46342$as_echo "$at_srcdir/run_fundamental.at:433: \$COMPILE prog.cob"
46343at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:433"
46344( $at_check_trace; $COMPILE prog.cob
46345) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46346at_status=$? at_failed=false
46347$at_check_filter
46348at_fn_diff_devnull "$at_stderr" || at_failed=:
46349at_fn_diff_devnull "$at_stdout" || at_failed=:
46350at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:433"
46351$at_failed && at_fn_log_failure
46352$at_traceon; }
46353
46354{ set +x
46355$as_echo "$at_srcdir/run_fundamental.at:434: \$COBCRUN_DIRECT ./prog"
46356at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:434"
46357( $at_check_trace; $COBCRUN_DIRECT ./prog
46358) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46359at_status=$? at_failed=false
46360$at_check_filter
46361at_fn_diff_devnull "$at_stderr" || at_failed=:
46362echo >>"$at_stdout"; $as_echo ">   0011<
46363>   0022<
46364>   0033<
46365> 004400<
46366>5500000<
46367" | \
46368  $at_diff - "$at_stdout" || at_failed=:
46369at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:434"
46370$at_failed && at_fn_log_failure
46371$at_traceon; }
46372
46373
46374  set +x
46375  $at_times_p && times >"$at_times_file"
46376) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46377read at_status <"$at_status_file"
46378#AT_STOP_450
46379#AT_START_451
46380at_fn_group_banner 451 'run_fundamental.at:445' \
46381  "MOVE integer literal to alphanumeric" "           " 4
46382at_xfail=no
46383(
46384  $as_echo "451. $at_setup_line: testing $at_desc ..."
46385  $at_traceon
46386
46387
46388
46389cat >prog.cob <<'_ATEOF'
46390
46391       IDENTIFICATION   DIVISION.
46392       PROGRAM-ID.      prog.
46393       DATA             DIVISION.
46394       WORKING-STORAGE  SECTION.
46395       01  X            PIC X(04) VALUE SPACES.
46396       PROCEDURE        DIVISION.
46397           MOVE 0 TO X.
46398           DISPLAY X NO ADVANCING
46399           END-DISPLAY.
46400           STOP RUN.
46401_ATEOF
46402
46403
46404{ set +x
46405$as_echo "$at_srcdir/run_fundamental.at:461: \$COMPILE prog.cob"
46406at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:461"
46407( $at_check_trace; $COMPILE prog.cob
46408) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46409at_status=$? at_failed=false
46410$at_check_filter
46411echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: alphanumeric value is expected
46412prog.cob:6: note: 'X' defined here as PIC X(04)
46413" | \
46414  $at_diff - "$at_stderr" || at_failed=:
46415at_fn_diff_devnull "$at_stdout" || at_failed=:
46416at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:461"
46417$at_failed && at_fn_log_failure
46418$at_traceon; }
46419
46420{ set +x
46421$as_echo "$at_srcdir/run_fundamental.at:465: \$COBCRUN_DIRECT ./prog"
46422at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:465"
46423( $at_check_trace; $COBCRUN_DIRECT ./prog
46424) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46425at_status=$? at_failed=false
46426$at_check_filter
46427at_fn_diff_devnull "$at_stderr" || at_failed=:
46428echo >>"$at_stdout"; $as_echo "0   " | \
46429  $at_diff - "$at_stdout" || at_failed=:
46430at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:465"
46431$at_failed && at_fn_log_failure
46432$at_traceon; }
46433
46434
46435  set +x
46436  $at_times_p && times >"$at_times_file"
46437) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46438read at_status <"$at_status_file"
46439#AT_STOP_451
46440#AT_START_452
46441at_fn_group_banner 452 'run_fundamental.at:470' \
46442  "Compare FLOAT-LONG with floating-point literal" " " 4
46443at_xfail=no
46444(
46445  $as_echo "452. $at_setup_line: testing $at_desc ..."
46446  $at_traceon
46447
46448
46449
46450cat >prog.cob <<'_ATEOF'
46451
46452       IDENTIFICATION   DIVISION.
46453       PROGRAM-ID.      prog.
46454       DATA             DIVISION.
46455       WORKING-STORAGE  SECTION.
46456       01  VAR          FLOAT-LONG VALUE 0.0.
46457
46458       PROCEDURE        DIVISION.
46459           MOVE 9.899999999999E+304 TO VAR
46460           IF VAR < 0
46461               DISPLAY 'error: compare ' VAR ' < ' 0
46462                       ' failed!'
46463               END-DISPLAY
46464           END-IF.
46465           IF VAR < 9.799999999999E+304
46466               DISPLAY 'error: compare ' VAR ' < ' 9.799999999999E+304
46467                       ' failed!'
46468               END-DISPLAY
46469           END-IF.
46470           IF VAR > 9.999999999999E+304
46471               DISPLAY 'error: compare ' VAR ' > ' 9.999999999999E+304
46472                       ' failed!'
46473               END-DISPLAY
46474           END-IF.
46475           MOVE -9.899999999999E+304 TO VAR
46476           IF VAR > 0
46477               DISPLAY 'error: compare ' VAR ' > ' 0
46478                       ' failed!'
46479               END-DISPLAY
46480           END-IF.
46481           IF VAR < -9.999999999999E+304
46482               DISPLAY 'error: compare ' VAR ' < ' -9.999999999999E+304
46483                       ' failed!'
46484               END-DISPLAY
46485           END-IF.
46486           IF VAR > -9.799999999999E+304
46487               DISPLAY 'error: compare ' VAR ' > ' -9.799999999999E+304
46488                       ' failed!'
46489               END-DISPLAY
46490           END-IF.
46491
46492           STOP RUN.
46493_ATEOF
46494
46495
46496{ set +x
46497$as_echo "$at_srcdir/run_fundamental.at:517: \$COMPILE prog.cob"
46498at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:517"
46499( $at_check_trace; $COMPILE prog.cob
46500) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46501at_status=$? at_failed=false
46502$at_check_filter
46503at_fn_diff_devnull "$at_stderr" || at_failed=:
46504at_fn_diff_devnull "$at_stdout" || at_failed=:
46505at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:517"
46506$at_failed && at_fn_log_failure
46507$at_traceon; }
46508
46509{ set +x
46510$as_echo "$at_srcdir/run_fundamental.at:518: \$COBCRUN_DIRECT ./prog"
46511at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:518"
46512( $at_check_trace; $COBCRUN_DIRECT ./prog
46513) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46514at_status=$? at_failed=false
46515$at_check_filter
46516at_fn_diff_devnull "$at_stderr" || at_failed=:
46517at_fn_diff_devnull "$at_stdout" || at_failed=:
46518at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:518"
46519$at_failed && at_fn_log_failure
46520$at_traceon; }
46521
46522
46523  set +x
46524  $at_times_p && times >"$at_times_file"
46525) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46526read at_status <"$at_status_file"
46527#AT_STOP_452
46528#AT_START_453
46529at_fn_group_banner 453 'run_fundamental.at:523' \
46530  "Check for equality of FLOAT-SHORT / FLOAT-LONG" " " 4
46531at_xfail=no
46532(
46533  $as_echo "453. $at_setup_line: testing $at_desc ..."
46534  $at_traceon
46535
46536
46537
46538cat >prog.cob <<'_ATEOF'
46539
46540       IDENTIFICATION   DIVISION.
46541       PROGRAM-ID.      prog.
46542       DATA             DIVISION.
46543       WORKING-STORAGE  SECTION.
46544       01  SRC1          FLOAT-LONG VALUE 11.55.
46545       01  DST1          FLOAT-SHORT.
46546       01  SRC2          FLOAT-SHORT VALUE 11.55.
46547       01  DST2          FLOAT-LONG.
46548
46549       PROCEDURE        DIVISION.
46550           MOVE SRC1 TO DST1.
46551           IF DST1 not = 11.55
46552               DISPLAY 'error: move/compare FLOAT-LONG to FLOAT-SHORT fa
46553      -                'iled ' DST1
46554               END-DISPLAY
46555           END-IF.
46556
46557           MOVE SRC1 TO DST2.
46558           IF DST1 not = 11.55
46559               DISPLAY 'error: move/compare FLOAT-LONG to FLOAT-LONG fai
46560      -                'led ' DST2
46561               END-DISPLAY
46562           END-IF.
46563
46564           MOVE ZERO TO DST1.
46565           MOVE ZERO TO DST2.
46566
46567           MOVE SRC2 TO DST1.
46568           IF DST1 not = 11.55
46569               DISPLAY 'error: move/compare FLOAT-SHORT to FLOAT-SHORT f
46570      -                'ailed: ' DST1
46571               END-DISPLAY
46572           END-IF.
46573
46574           MOVE SRC2 TO DST2.
46575           IF DST2 not = 11.55
46576               DISPLAY 'error: move/compare FLOAT-SHORT to FLOAT-LONG fa
46577      -                'iled: ' DST2
46578               END-DISPLAY
46579           END-IF.
46580
46581           MOVE ZERO TO DST1.
46582           IF not (DST1 = 0 AND 0.0)
46583               DISPLAY "Zero compare failed: " DST1 END-DISPLAY
46584           END-IF.
46585
46586           MOVE -0.0 TO DST1.
46587           IF not (DST1 = 0 AND 0.0)
46588               DISPLAY "Negative Zero compare failed: " DST1
46589               END-DISPLAY
46590           END-IF.
46591
46592           MOVE 1.1234567 TO DST1.
46593           MOVE DST1 TO DST2.
46594           IF DST2 not = 1.1234567
46595               DISPLAY "move/compare number to FLOAT to DOUBLE failed: "
46596                       DST1 " - " DST2
46597               END-DISPLAY
46598           END-IF.
46599
46600      * Check for Tolerance
46601           MOVE 1.1234567 TO DST1.
46602           MOVE 1.1234568 TO DST2.
46603           IF DST1 not = DST2 THEN
46604               DISPLAY 'move/compare of very near numbers failed (not id
46605      -                'entical): ' DST1 " - " DST2
46606               END-DISPLAY
46607           END-IF.
46608
46609      * Within tolerance by definition, therefore not checked
46610      *     MULTIPLY 10000000000 BY DST1 DST2 END-MULTIPLY.
46611      *     IF DST1 = DST2 THEN
46612      *         DISPLAY "compare of very near numbers computed failed (id
46613      *-                "entical): " DST1 " - " DST2
46614      *         END-DISPLAY
46615      *     END-IF.
46616
46617           MOVE 1.1234567 TO DST1.
46618           MOVE 1.1234569 TO DST2.
46619           IF DST1 = DST2 THEN
46620               DISPLAY 'move/compare of near equal numbers failed (ident
46621      -                'ical): ' DST1 " - " DST2
46622               END-DISPLAY
46623           END-IF.
46624
46625           MOVE 0.0001 TO DST1.
46626           MOVE 0.0000 TO DST2.
46627           IF DST1 = DST2 THEN
46628               DISPLAY 'move/compare of nearly equal very small numbers
46629      -                'failed  (identical): ' DST1 " - " DST2
46630               END-DISPLAY
46631           END-IF.
46632
46633           MOVE 1000001.0 TO DST1.
46634           MOVE 1000000.0 TO DST2.
46635           IF DST1 = DST2 THEN
46636               DISPLAY 'move/compare of nearly equal big numbers failed
46637      -                '(identical): ' DST1 " - " DST2
46638               END-DISPLAY
46639           END-IF.
46640
46641      * Within tolerance by definition, therefore not checked
46642      *     MOVE 1000000000.0 TO DST1.
46643      *     MOVE 1000000001.0 TO DST2.
46644      *     IF DST1 = DST2 THEN
46645      *         DISPLAY 'move/compare of nearly equal very big numbers fa
46646      *-                'iled (identical): ' DST1 " - " DST2
46647      *         END-DISPLAY
46648      *     END-IF.
46649
46650           STOP RUN.
46651_ATEOF
46652
46653
46654{ set +x
46655$as_echo "$at_srcdir/run_fundamental.at:640: \$COMPILE prog.cob"
46656at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:640"
46657( $at_check_trace; $COMPILE prog.cob
46658) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46659at_status=$? at_failed=false
46660$at_check_filter
46661at_fn_diff_devnull "$at_stderr" || at_failed=:
46662at_fn_diff_devnull "$at_stdout" || at_failed=:
46663at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:640"
46664$at_failed && at_fn_log_failure
46665$at_traceon; }
46666
46667{ set +x
46668$as_echo "$at_srcdir/run_fundamental.at:641: \$COBCRUN_DIRECT ./prog"
46669at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:641"
46670( $at_check_trace; $COBCRUN_DIRECT ./prog
46671) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46672at_status=$? at_failed=false
46673$at_check_filter
46674at_fn_diff_devnull "$at_stderr" || at_failed=:
46675at_fn_diff_devnull "$at_stdout" || at_failed=:
46676at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:641"
46677$at_failed && at_fn_log_failure
46678$at_traceon; }
46679
46680
46681  set +x
46682  $at_times_p && times >"$at_times_file"
46683) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46684read at_status <"$at_status_file"
46685#AT_STOP_453
46686#AT_START_454
46687at_fn_group_banner 454 'run_fundamental.at:646' \
46688  "Overlapping MOVE" "                               " 4
46689at_xfail=no
46690(
46691  $as_echo "454. $at_setup_line: testing $at_desc ..."
46692  $at_traceon
46693
46694
46695
46696cat >subprog.cob <<'_ATEOF'
46697
46698        IDENTIFICATION DIVISION.
46699        PROGRAM-ID. subprog.
46700        DATA DIVISION.
46701        WORKING-STORAGE SECTION.
46702        LINKAGE SECTION.
46703        01 F1 PIC X(10).
46704        01 F2 PIC X(15).
46705
46706        PROCEDURE DIVISION USING F1 F2.
46707        MOVE F2(1:6) TO F1 (1:8).
46708        IF F1 not = "Hallo1  90"
46709           DISPLAY "error:3: " F1
46710           END-DISPLAY
46711        END-IF
46712
46713        GOBACK.
46714_ATEOF
46715
46716
46717cat >prog.cob <<'_ATEOF'
46718
46719        IDENTIFICATION DIVISION.
46720        PROGRAM-ID. prog.
46721
46722        DATA DIVISION.
46723        WORKING-STORAGE SECTION.
46724        01 STRUCTURE.
46725            05 FIELD1 PIC X(5).
46726            05 FIELD2 PIC X(10).
46727
46728        PROCEDURE DIVISION.
46729           MOVE "Hallo" TO FIELD1.
46730           MOVE "1234567890" TO FIELD2.
46731
46732           MOVE FIELD2 TO STRUCTURE.
46733           IF FIELD1 not = "12345"
46734              DISPLAY "error:1: " FIELD1
46735              END-DISPLAY
46736           END-IF
46737           IF FIELD2 not = "67890     "
46738              DISPLAY "error:2: " FIELD2
46739              END-DISPLAY
46740           END-IF
46741
46742
46743           MOVE "Hallo" TO FIELD1.
46744           MOVE "1234567890" TO FIELD2.
46745
46746           CALL "subprog" USING BY REFERENCE FIELD2 STRUCTURE
46747           END-CALL
46748
46749           STOP RUN.
46750_ATEOF
46751
46752
46753{ set +x
46754$as_echo "$at_srcdir/run_fundamental.at:702: \$COMPILE_MODULE subprog.cob"
46755at_fn_check_prepare_dynamic "$COMPILE_MODULE subprog.cob" "run_fundamental.at:702"
46756( $at_check_trace; $COMPILE_MODULE subprog.cob
46757) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46758at_status=$? at_failed=false
46759$at_check_filter
46760at_fn_diff_devnull "$at_stderr" || at_failed=:
46761at_fn_diff_devnull "$at_stdout" || at_failed=:
46762at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:702"
46763$at_failed && at_fn_log_failure
46764$at_traceon; }
46765
46766{ set +x
46767$as_echo "$at_srcdir/run_fundamental.at:703: \$COMPILE prog.cob"
46768at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:703"
46769( $at_check_trace; $COMPILE prog.cob
46770) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46771at_status=$? at_failed=false
46772$at_check_filter
46773echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: overlapping MOVE may produce unpredictable results
46774" | \
46775  $at_diff - "$at_stderr" || at_failed=:
46776at_fn_diff_devnull "$at_stdout" || at_failed=:
46777at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:703"
46778$at_failed && at_fn_log_failure
46779$at_traceon; }
46780
46781{ set +x
46782$as_echo "$at_srcdir/run_fundamental.at:706: \$COBCRUN_DIRECT ./prog"
46783at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:706"
46784( $at_check_trace; $COBCRUN_DIRECT ./prog
46785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46786at_status=$? at_failed=false
46787$at_check_filter
46788at_fn_diff_devnull "$at_stderr" || at_failed=:
46789at_fn_diff_devnull "$at_stdout" || at_failed=:
46790at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:706"
46791$at_failed && at_fn_log_failure
46792$at_traceon; }
46793
46794
46795cat >prog2.cob <<'_ATEOF'
46796
46797       IDENTIFICATION DIVISION.
46798       PROGRAM-ID. prog2.
46799       DATA  DIVISION.
46800       WORKING-STORAGE SECTION.
46801       01  FILLER.
46802         05  TSTMOV1 PIC X(479).
46803         05  TSTMOV2 PIC X(10).
46804       PROCEDURE DIVISION.
46805           MOVE "0123456789" TO TSTMOV2.
46806           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
46807           IF TSTMOV2 NOT = "1234567899"
46808              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46809           ELSE
46810              DISPLAY "  OK with MOVE: " TSTMOV2.
46811           MOVE "0123456789" TO TSTMOV2.
46812           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
46813           IF TSTMOV2 = "0000000009"
46814              DISPLAY "IBM style MOVE: " TSTMOV2
46815           ELSE IF TSTMOV2 NOT = "0012345679"
46816              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46817           ELSE
46818              DISPLAY "  OK with MOVE: " TSTMOV2.
46819           STOP RUN.
46820_ATEOF
46821
46822
46823{ set +x
46824$as_echo "$at_srcdir/run_fundamental.at:734: \$COMPILE prog2.cob"
46825at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_fundamental.at:734"
46826( $at_check_trace; $COMPILE prog2.cob
46827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46828at_status=$? at_failed=false
46829$at_check_filter
46830echo >>"$at_stderr"; $as_echo "prog2.cob:11: warning: overlapping MOVE may produce unpredictable results
46831prog2.cob:17: warning: overlapping MOVE may produce unpredictable results
46832" | \
46833  $at_diff - "$at_stderr" || at_failed=:
46834at_fn_diff_devnull "$at_stdout" || at_failed=:
46835at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:734"
46836$at_failed && at_fn_log_failure
46837$at_traceon; }
46838
46839
46840{ set +x
46841$as_echo "$at_srcdir/run_fundamental.at:739: \$COBCRUN_DIRECT ./prog2"
46842at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_fundamental.at:739"
46843( $at_check_trace; $COBCRUN_DIRECT ./prog2
46844) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46845at_status=$? at_failed=false
46846$at_check_filter
46847at_fn_diff_devnull "$at_stderr" || at_failed=:
46848echo >>"$at_stdout"; $as_echo "  OK with MOVE: 1234567899
46849  OK with MOVE: 0012345679
46850" | \
46851  $at_diff - "$at_stdout" || at_failed=:
46852at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:739"
46853$at_failed && at_fn_log_failure
46854$at_traceon; }
46855
46856
46857  set +x
46858  $at_times_p && times >"$at_times_file"
46859) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46860read at_status <"$at_status_file"
46861#AT_STOP_454
46862#AT_START_455
46863at_fn_group_banner 455 'run_fundamental.at:747' \
46864  "Overlapping MOVE" "                               " 4
46865at_xfail=no
46866(
46867  $as_echo "455. $at_setup_line: testing $at_desc ..."
46868  $at_traceon
46869
46870
46871
46872cat >prog.cob <<'_ATEOF'
46873
46874       IDENTIFICATION DIVISION.
46875       PROGRAM-ID. prog.
46876       DATA  DIVISION.
46877       WORKING-STORAGE SECTION.
46878       01  FILLER.
46879         05  TSTMOV1 PIC X(479).
46880         05  TSTMOV2 PIC X(10).
46881       PROCEDURE DIVISION.
46882           MOVE "0123456789" TO TSTMOV2.
46883           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
46884           IF TSTMOV2 NOT = "1234567899"
46885              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46886           ELSE
46887              DISPLAY "  OK with MOVE: " TSTMOV2.
46888           MOVE "0123456789" TO TSTMOV2.
46889           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
46890           IF TSTMOV2 = "0000000009"
46891              DISPLAY "IBM style MOVE: " TSTMOV2
46892           ELSE IF TSTMOV2 NOT = "0012345679"
46893              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46894           ELSE
46895              DISPLAY "  OK with MOVE: " TSTMOV2.
46896           STOP RUN.
46897_ATEOF
46898
46899
46900{ set +x
46901$as_echo "$at_srcdir/run_fundamental.at:776: \$COMPILE prog.cob"
46902at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:776"
46903( $at_check_trace; $COMPILE prog.cob
46904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46905at_status=$? at_failed=false
46906$at_check_filter
46907echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: overlapping MOVE may produce unpredictable results
46908prog.cob:17: warning: overlapping MOVE may produce unpredictable results
46909" | \
46910  $at_diff - "$at_stderr" || at_failed=:
46911at_fn_diff_devnull "$at_stdout" || at_failed=:
46912at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:776"
46913$at_failed && at_fn_log_failure
46914$at_traceon; }
46915
46916
46917{ set +x
46918$as_echo "$at_srcdir/run_fundamental.at:781: \$COBCRUN_DIRECT ./prog"
46919at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:781"
46920( $at_check_trace; $COBCRUN_DIRECT ./prog
46921) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46922at_status=$? at_failed=false
46923$at_check_filter
46924at_fn_diff_devnull "$at_stderr" || at_failed=:
46925echo >>"$at_stdout"; $as_echo "  OK with MOVE: 1234567899
46926  OK with MOVE: 0012345679
46927" | \
46928  $at_diff - "$at_stdout" || at_failed=:
46929at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:781"
46930$at_failed && at_fn_log_failure
46931$at_traceon; }
46932
46933
46934  set +x
46935  $at_times_p && times >"$at_times_file"
46936) 5>&1 2>&1 7>&- | eval $at_tee_pipe
46937read at_status <"$at_status_file"
46938#AT_STOP_455
46939#AT_START_456
46940at_fn_group_banner 456 'run_fundamental.at:789' \
46941  "IBM MOVE" "                                       " 4
46942at_xfail=no
46943(
46944  $as_echo "456. $at_setup_line: testing $at_desc ..."
46945  $at_traceon
46946
46947
46948
46949cat >prog.cob <<'_ATEOF'
46950
46951       IDENTIFICATION DIVISION.
46952       PROGRAM-ID. prog.
46953       DATA  DIVISION.
46954       WORKING-STORAGE SECTION.
46955       01  FILLER.
46956         05  TSTMOV1 PIC X(479).
46957         05  TSTMOV2 PIC X(10).
46958       PROCEDURE DIVISION.
46959           MOVE "0123456789" TO TSTMOV2.
46960           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
46961           IF TSTMOV2 NOT = "1234567899"
46962              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46963           ELSE
46964              DISPLAY "  OK with MOVE: " TSTMOV2.
46965           MOVE "0123456789" TO TSTMOV2.
46966           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
46967           IF TSTMOV2 = "0000000009"
46968              DISPLAY "IBM style MOVE: " TSTMOV2
46969           ELSE IF TSTMOV2 NOT = "0012345679"
46970              DISPLAY "  PROBLEM MOVE: " TSTMOV2
46971           ELSE
46972              DISPLAY "  OK with MOVE: " TSTMOV2.
46973           STOP RUN.
46974_ATEOF
46975
46976
46977{ set +x
46978$as_echo "$at_srcdir/run_fundamental.at:818: \$COMPILE -fmove-ibm prog.cob"
46979at_fn_check_prepare_dynamic "$COMPILE -fmove-ibm prog.cob" "run_fundamental.at:818"
46980( $at_check_trace; $COMPILE -fmove-ibm prog.cob
46981) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46982at_status=$? at_failed=false
46983$at_check_filter
46984at_fn_diff_devnull "$at_stderr" || at_failed=:
46985at_fn_diff_devnull "$at_stdout" || at_failed=:
46986at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:818"
46987$at_failed && at_fn_log_failure
46988$at_traceon; }
46989
46990
46991{ set +x
46992$as_echo "$at_srcdir/run_fundamental.at:820: \$COBCRUN_DIRECT ./prog"
46993at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:820"
46994( $at_check_trace; $COBCRUN_DIRECT ./prog
46995) >>"$at_stdout" 2>>"$at_stderr" 5>&-
46996at_status=$? at_failed=false
46997$at_check_filter
46998at_fn_diff_devnull "$at_stderr" || at_failed=:
46999echo >>"$at_stdout"; $as_echo "  OK with MOVE: 1234567899
47000IBM style MOVE: 0000000009
47001" | \
47002  $at_diff - "$at_stdout" || at_failed=:
47003at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:820"
47004$at_failed && at_fn_log_failure
47005$at_traceon; }
47006
47007
47008  set +x
47009  $at_times_p && times >"$at_times_file"
47010) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47011read at_status <"$at_status_file"
47012#AT_STOP_456
47013#AT_START_457
47014at_fn_group_banner 457 'run_fundamental.at:828' \
47015  "ALPHABETIC test" "                                " 4
47016at_xfail=no
47017(
47018  $as_echo "457. $at_setup_line: testing $at_desc ..."
47019  $at_traceon
47020
47021
47022
47023cat >prog.cob <<'_ATEOF'
47024
47025       IDENTIFICATION   DIVISION.
47026       PROGRAM-ID.      prog.
47027       DATA             DIVISION.
47028       WORKING-STORAGE  SECTION.
47029       01  X            PIC X(04) VALUE "AAAA".
47030       01  FILLER REDEFINES X.
47031           03  XBYTE    PIC X.
47032           03  FILLER   PIC XXX.
47033       PROCEDURE        DIVISION.
47034           MOVE X"0D"   TO XBYTE.
47035           IF X ALPHABETIC
47036              DISPLAY "Fail - Alphabetic"
47037              END-DISPLAY
47038           END-IF.
47039           MOVE "A"     TO XBYTE.
47040           IF X NOT ALPHABETIC
47041              DISPLAY "Fail - Not Alphabetic"
47042              END-DISPLAY
47043           END-IF.
47044           STOP RUN.
47045_ATEOF
47046
47047
47048{ set +x
47049$as_echo "$at_srcdir/run_fundamental.at:854: \$COMPILE prog.cob"
47050at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:854"
47051( $at_check_trace; $COMPILE prog.cob
47052) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47053at_status=$? at_failed=false
47054$at_check_filter
47055at_fn_diff_devnull "$at_stderr" || at_failed=:
47056at_fn_diff_devnull "$at_stdout" || at_failed=:
47057at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:854"
47058$at_failed && at_fn_log_failure
47059$at_traceon; }
47060
47061{ set +x
47062$as_echo "$at_srcdir/run_fundamental.at:855: \$COBCRUN_DIRECT ./prog"
47063at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:855"
47064( $at_check_trace; $COBCRUN_DIRECT ./prog
47065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47066at_status=$? at_failed=false
47067$at_check_filter
47068at_fn_diff_devnull "$at_stderr" || at_failed=:
47069at_fn_diff_devnull "$at_stdout" || at_failed=:
47070at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:855"
47071$at_failed && at_fn_log_failure
47072$at_traceon; }
47073
47074
47075  set +x
47076  $at_times_p && times >"$at_times_file"
47077) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47078read at_status <"$at_status_file"
47079#AT_STOP_457
47080#AT_START_458
47081at_fn_group_banner 458 'run_fundamental.at:860' \
47082  "ALPHABETIC-UPPER test" "                          " 4
47083at_xfail=no
47084(
47085  $as_echo "458. $at_setup_line: testing $at_desc ..."
47086  $at_traceon
47087
47088
47089
47090cat >prog.cob <<'_ATEOF'
47091
47092       IDENTIFICATION   DIVISION.
47093       PROGRAM-ID.      prog.
47094       DATA             DIVISION.
47095       WORKING-STORAGE  SECTION.
47096       01  X            PIC X(04) VALUE "AAAA".
47097       01  FILLER REDEFINES X.
47098           03  XBYTE    PIC X.
47099           03  FILLER   PIC XXX.
47100       PROCEDURE        DIVISION.
47101           MOVE X"0D"   TO XBYTE.
47102           IF X ALPHABETIC-UPPER
47103              DISPLAY "Fail - Not alphabetic upper"
47104              END-DISPLAY
47105           END-IF.
47106           MOVE "A"     TO XBYTE.
47107           IF X NOT ALPHABETIC-UPPER
47108              DISPLAY "Fail - Alphabetic upper"
47109              END-DISPLAY
47110           END-IF.
47111           STOP RUN.
47112_ATEOF
47113
47114
47115{ set +x
47116$as_echo "$at_srcdir/run_fundamental.at:886: \$COMPILE prog.cob"
47117at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:886"
47118( $at_check_trace; $COMPILE prog.cob
47119) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47120at_status=$? at_failed=false
47121$at_check_filter
47122at_fn_diff_devnull "$at_stderr" || at_failed=:
47123at_fn_diff_devnull "$at_stdout" || at_failed=:
47124at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:886"
47125$at_failed && at_fn_log_failure
47126$at_traceon; }
47127
47128{ set +x
47129$as_echo "$at_srcdir/run_fundamental.at:887: \$COBCRUN_DIRECT ./prog"
47130at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:887"
47131( $at_check_trace; $COBCRUN_DIRECT ./prog
47132) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47133at_status=$? at_failed=false
47134$at_check_filter
47135at_fn_diff_devnull "$at_stderr" || at_failed=:
47136at_fn_diff_devnull "$at_stdout" || at_failed=:
47137at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:887"
47138$at_failed && at_fn_log_failure
47139$at_traceon; }
47140
47141
47142  set +x
47143  $at_times_p && times >"$at_times_file"
47144) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47145read at_status <"$at_status_file"
47146#AT_STOP_458
47147#AT_START_459
47148at_fn_group_banner 459 'run_fundamental.at:892' \
47149  "ALPHABETIC-LOWER test" "                          " 4
47150at_xfail=no
47151(
47152  $as_echo "459. $at_setup_line: testing $at_desc ..."
47153  $at_traceon
47154
47155
47156
47157cat >prog.cob <<'_ATEOF'
47158
47159       IDENTIFICATION   DIVISION.
47160       PROGRAM-ID.      prog.
47161       DATA             DIVISION.
47162       WORKING-STORAGE  SECTION.
47163       01  X            PIC X(04) VALUE "aaaa".
47164       01  FILLER REDEFINES X.
47165           03  XBYTE    PIC X.
47166           03  FILLER   PIC XXX.
47167       PROCEDURE        DIVISION.
47168           MOVE X"0D"   TO XBYTE.
47169           IF X ALPHABETIC-LOWER
47170              DISPLAY "Fail - Not alphabetic lower"
47171              END-DISPLAY
47172           END-IF.
47173           MOVE "a"     TO XBYTE.
47174           IF X NOT ALPHABETIC-LOWER
47175              DISPLAY "Fail - Alphabetic lower"
47176              END-DISPLAY
47177           END-IF.
47178           STOP RUN.
47179_ATEOF
47180
47181
47182{ set +x
47183$as_echo "$at_srcdir/run_fundamental.at:918: \$COMPILE prog.cob"
47184at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:918"
47185( $at_check_trace; $COMPILE prog.cob
47186) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47187at_status=$? at_failed=false
47188$at_check_filter
47189at_fn_diff_devnull "$at_stderr" || at_failed=:
47190at_fn_diff_devnull "$at_stdout" || at_failed=:
47191at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:918"
47192$at_failed && at_fn_log_failure
47193$at_traceon; }
47194
47195{ set +x
47196$as_echo "$at_srcdir/run_fundamental.at:919: \$COBCRUN_DIRECT ./prog"
47197at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:919"
47198( $at_check_trace; $COBCRUN_DIRECT ./prog
47199) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47200at_status=$? at_failed=false
47201$at_check_filter
47202at_fn_diff_devnull "$at_stderr" || at_failed=:
47203at_fn_diff_devnull "$at_stdout" || at_failed=:
47204at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:919"
47205$at_failed && at_fn_log_failure
47206$at_traceon; }
47207
47208
47209  set +x
47210  $at_times_p && times >"$at_times_file"
47211) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47212read at_status <"$at_status_file"
47213#AT_STOP_459
47214#AT_START_460
47215at_fn_group_banner 460 'run_fundamental.at:924' \
47216  "GLOBAL at same level" "                           " 4
47217at_xfail=no
47218(
47219  $as_echo "460. $at_setup_line: testing $at_desc ..."
47220  $at_traceon
47221
47222
47223
47224cat >prog.cob <<'_ATEOF'
47225
47226       IDENTIFICATION   DIVISION.
47227       PROGRAM-ID.      prog.
47228       DATA DIVISION.
47229       WORKING-STORAGE SECTION.
47230       01  X   PIC X(5) GLOBAL  VALUE "prog1".
47231       PROCEDURE        DIVISION.
47232           DISPLAY X
47233           END-DISPLAY.
47234           CALL "prog2"
47235           END-CALL
47236           CALL "prog3"
47237           END-CALL
47238           STOP RUN.
47239        IDENTIFICATION   DIVISION.
47240        PROGRAM-ID.      prog2.
47241        DATA DIVISION.
47242        WORKING-STORAGE SECTION.
47243        01  X   PIC X(5) GLOBAL  VALUE "prog2".
47244        PROCEDURE        DIVISION.
47245            DISPLAY X
47246            END-DISPLAY.
47247            EXIT PROGRAM.
47248        END PROGRAM prog2.
47249        IDENTIFICATION   DIVISION.
47250        PROGRAM-ID.      prog3.
47251        DATA DIVISION.
47252        WORKING-STORAGE SECTION.
47253        PROCEDURE        DIVISION.
47254            DISPLAY X
47255            END-DISPLAY.
47256            EXIT PROGRAM.
47257        END PROGRAM prog3.
47258       END PROGRAM prog.
47259_ATEOF
47260
47261
47262{ set +x
47263$as_echo "$at_srcdir/run_fundamental.at:963: \$COMPILE prog.cob"
47264at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:963"
47265( $at_check_trace; $COMPILE prog.cob
47266) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47267at_status=$? at_failed=false
47268$at_check_filter
47269at_fn_diff_devnull "$at_stderr" || at_failed=:
47270at_fn_diff_devnull "$at_stdout" || at_failed=:
47271at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:963"
47272$at_failed && at_fn_log_failure
47273$at_traceon; }
47274
47275{ set +x
47276$as_echo "$at_srcdir/run_fundamental.at:964: \$COBCRUN_DIRECT ./prog"
47277at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:964"
47278( $at_check_trace; $COBCRUN_DIRECT ./prog
47279) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47280at_status=$? at_failed=false
47281$at_check_filter
47282at_fn_diff_devnull "$at_stderr" || at_failed=:
47283echo >>"$at_stdout"; $as_echo "prog1
47284prog2
47285prog1
47286" | \
47287  $at_diff - "$at_stdout" || at_failed=:
47288at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:964"
47289$at_failed && at_fn_log_failure
47290$at_traceon; }
47291
47292
47293  set +x
47294  $at_times_p && times >"$at_times_file"
47295) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47296read at_status <"$at_status_file"
47297#AT_STOP_460
47298#AT_START_461
47299at_fn_group_banner 461 'run_fundamental.at:973' \
47300  "GLOBAL at lower level" "                          " 4
47301at_xfail=no
47302(
47303  $as_echo "461. $at_setup_line: testing $at_desc ..."
47304  $at_traceon
47305
47306
47307
47308cat >prog.cob <<'_ATEOF'
47309
47310       IDENTIFICATION   DIVISION.
47311       PROGRAM-ID.      prog.
47312       DATA DIVISION.
47313       WORKING-STORAGE SECTION.
47314       01  X   PIC X(5) GLOBAL  VALUE "prog1".
47315       PROCEDURE        DIVISION.
47316           DISPLAY X
47317           END-DISPLAY.
47318           CALL "prog2"
47319           END-CALL
47320           STOP RUN.
47321        IDENTIFICATION   DIVISION.
47322        PROGRAM-ID.      prog2.
47323        DATA DIVISION.
47324        WORKING-STORAGE SECTION.
47325        01  X   PIC X(5) GLOBAL  VALUE "prog2".
47326        PROCEDURE        DIVISION.
47327            DISPLAY X
47328            END-DISPLAY.
47329            CALL "prog3"
47330            END-CALL
47331            EXIT PROGRAM.
47332         IDENTIFICATION   DIVISION.
47333         PROGRAM-ID.      prog3.
47334         DATA DIVISION.
47335         WORKING-STORAGE SECTION.
47336         PROCEDURE        DIVISION.
47337             DISPLAY X
47338             END-DISPLAY.
47339             EXIT PROGRAM.
47340         END PROGRAM prog3.
47341        END PROGRAM prog2.
47342       END PROGRAM prog.
47343_ATEOF
47344
47345
47346{ set +x
47347$as_echo "$at_srcdir/run_fundamental.at:1012: \$COMPILE prog.cob"
47348at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1012"
47349( $at_check_trace; $COMPILE prog.cob
47350) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47351at_status=$? at_failed=false
47352$at_check_filter
47353at_fn_diff_devnull "$at_stderr" || at_failed=:
47354at_fn_diff_devnull "$at_stdout" || at_failed=:
47355at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1012"
47356$at_failed && at_fn_log_failure
47357$at_traceon; }
47358
47359{ set +x
47360$as_echo "$at_srcdir/run_fundamental.at:1013: \$COBCRUN_DIRECT ./prog"
47361at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1013"
47362( $at_check_trace; $COBCRUN_DIRECT ./prog
47363) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47364at_status=$? at_failed=false
47365$at_check_filter
47366at_fn_diff_devnull "$at_stderr" || at_failed=:
47367echo >>"$at_stdout"; $as_echo "prog1
47368prog2
47369prog2
47370" | \
47371  $at_diff - "$at_stdout" || at_failed=:
47372at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1013"
47373$at_failed && at_fn_log_failure
47374$at_traceon; }
47375
47376
47377  set +x
47378  $at_times_p && times >"$at_times_file"
47379) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47380read at_status <"$at_status_file"
47381#AT_STOP_461
47382#AT_START_462
47383at_fn_group_banner 462 'run_fundamental.at:1022' \
47384  "GLOBAL CONSTANT" "                                " 4
47385at_xfail=no
47386(
47387  $as_echo "462. $at_setup_line: testing $at_desc ..."
47388  $at_traceon
47389
47390
47391
47392cat >prog.cob <<'_ATEOF'
47393
47394       IDENTIFICATION   DIVISION.
47395       PROGRAM-ID.      prog.
47396       ENVIRONMENT      DIVISION.
47397       INPUT-OUTPUT     SECTION.
47398       FILE-CONTROL.
47399       SELECT TEST-FILE
47400              ASSIGN    GLOB-PATH
47401       .
47402       DATA             DIVISION.
47403       FILE             SECTION.
47404       FD  TEST-FILE    GLOBAL.
47405       01  TEST-REC     PIC X(4).
47406       WORKING-STORAGE  SECTION.
47407       78  GLOB-PATH           GLOBAL VALUE "GLOBP1".
47408       01  GLOB-PATH2 CONSTANT GLOBAL       "GLOBP2".
47409      * Test global vars because of implicitly defined ASSIGN var, too.
47410       78  GLOB-VAR            GLOBAL VALUE "GLOBV1".
47411       01  GLOB-VAR2  CONSTANT GLOBAL       "GLOBV2".
47412       PROCEDURE        DIVISION.
47413           DISPLAY GLOB-PATH GLOB-VAR
47414           END-DISPLAY.
47415           CALL "prog2"
47416           END-CALL.
47417           CALL "prog3"
47418           END-CALL.
47419           STOP RUN.
47420        IDENTIFICATION   DIVISION.
47421        PROGRAM-ID.      prog2.
47422        ENVIRONMENT      DIVISION.
47423        INPUT-OUTPUT     SECTION.
47424        FILE-CONTROL.
47425        SELECT TEST2-FILE
47426               ASSIGN    GLOB-PATH2
47427        .
47428        DATA             DIVISION.
47429        FILE             SECTION.
47430        FD  TEST2-FILE   GLOBAL.
47431        01  TEST2-REC    PIC X(4).
47432        WORKING-STORAGE  SECTION.
47433        PROCEDURE        DIVISION.
47434            DISPLAY GLOB-PATH2 GLOB-VAR2
47435            END-DISPLAY.
47436            EXIT PROGRAM.
47437        END PROGRAM prog2.
47438       END PROGRAM prog.
47439       IDENTIFICATION   DIVISION.
47440       PROGRAM-ID.      prog3.
47441       ENVIRONMENT      DIVISION.
47442       INPUT-OUTPUT     SECTION.
47443       FILE-CONTROL.
47444       SELECT TEST3-FILE
47445              ASSIGN    GLOB-PATH
47446       .
47447       DATA             DIVISION.
47448       FILE             SECTION.
47449       FD  TEST3-FILE   GLOBAL.
47450       01  TEST3-REC    PIC X(4).
47451       WORKING-STORAGE  SECTION.
47452       PROCEDURE        DIVISION.
47453           DISPLAY 'in prog3'
47454           END-DISPLAY
47455           IF GLOB-PATH NOT = SPACES
47456              DISPLAY FUNCTION TRIM (GLOB-PATH TRAILING)
47457              END-DISPLAY
47458           END-IF
47459           EXIT PROGRAM.
47460       END PROGRAM prog3.
47461_ATEOF
47462
47463
47464{ set +x
47465$as_echo "$at_srcdir/run_fundamental.at:1095: \$COMPILE prog.cob"
47466at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1095"
47467( $at_check_trace; $COMPILE prog.cob
47468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47469at_status=$? at_failed=false
47470$at_check_filter
47471at_fn_diff_devnull "$at_stderr" || at_failed=:
47472at_fn_diff_devnull "$at_stdout" || at_failed=:
47473at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1095"
47474$at_failed && at_fn_log_failure
47475$at_traceon; }
47476
47477{ set +x
47478$as_echo "$at_srcdir/run_fundamental.at:1096: \$COBCRUN_DIRECT ./prog"
47479at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1096"
47480( $at_check_trace; $COBCRUN_DIRECT ./prog
47481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47482at_status=$? at_failed=false
47483$at_check_filter
47484at_fn_diff_devnull "$at_stderr" || at_failed=:
47485echo >>"$at_stdout"; $as_echo "GLOBP1GLOBV1
47486GLOBP2GLOBV2
47487in prog3
47488GLOB-PATH
47489" | \
47490  $at_diff - "$at_stdout" || at_failed=:
47491at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1096"
47492$at_failed && at_fn_log_failure
47493$at_traceon; }
47494
47495
47496  set +x
47497  $at_times_p && times >"$at_times_file"
47498) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47499read at_status <"$at_status_file"
47500#AT_STOP_462
47501#AT_START_463
47502at_fn_group_banner 463 'run_fundamental.at:1106' \
47503  "GLOBAL identifiers from ENVIRONMENT DIVISION" "   " 4
47504at_xfail=no
47505(
47506  $as_echo "463. $at_setup_line: testing $at_desc ..."
47507  $at_traceon
47508
47509
47510
47511cat >prog.cob <<'_ATEOF'
47512
47513       FUNCTION-ID. f1.
47514       DATA DIVISION.
47515       LINKAGE SECTION.
47516       01 r BINARY-LONG.
47517       PROCEDURE DIVISION RETURNING r.
47518           move 1 to r
47519           GOBACK
47520           .
47521       END FUNCTION f1.
47522       FUNCTION-ID. f2.
47523       DATA DIVISION.
47524       LINKAGE SECTION.
47525       01 i BINARY-LONG.
47526       01 r BINARY-LONG.
47527       PROCEDURE DIVISION USING i RETURNING r.
47528           add i to i giving r
47529           GOBACK
47530           .
47531       END FUNCTION f2.
47532
47533       PROGRAM-ID.   prog.
47534
47535       ENVIRONMENT DIVISION.
47536       CONFIGURATION SECTION.
47537       REPOSITORY.
47538           FUNCTION f1
47539           FUNCTION f2.
47540       SPECIAL-NAMES.
47541           CURRENCY SIGN IS "Y"
47542           DECIMAL-POINT IS COMMA.
47543
47544       PROCEDURE DIVISION.
47545           CALL "prog-nested"
47546           .
47547
47548       PROGRAM-ID. prog-nested.
47549
47550       DATA DIVISION.
47551       WORKING-STORAGE SECTION.
47552       77  n1    BINARY-LONG VALUE 0.
47553       77  curr  PIC 9.9999,99Y.
47554
47555       PROCEDURE DIVISION.
47556           MOVE f1()   TO n1
47557           IF n1 NOT = 1
47558             DISPLAY "ERROR 1" GOBACK
47559           END-IF
47560           MOVE f2(n1) TO n1
47561           IF n1 NOT = 2
47562             DISPLAY "ERROR 2" GOBACK
47563           END-IF
47564           MOVE f1()   TO n1
47565           IF n1 NOT = 1
47566             DISPLAY "ERROR 1 2nd" GOBACK
47567           END-IF
47568           MOVE f2(f2(n1)) TO n1
47569           IF n1 NOT = 4
47570             DISPLAY "ERROR 4" GOBACK
47571           END-IF
47572           MOVE n1 TO curr
47573           DISPLAY curr
47574
47575           GOBACK
47576           .
47577       END PROGRAM prog-nested.
47578       END PROGRAM prog.
47579
47580_ATEOF
47581
47582
47583{ set +x
47584$as_echo "$at_srcdir/run_fundamental.at:1179: \$COMPILE prog.cob"
47585at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1179"
47586( $at_check_trace; $COMPILE prog.cob
47587) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47588at_status=$? at_failed=false
47589$at_check_filter
47590at_fn_diff_devnull "$at_stderr" || at_failed=:
47591at_fn_diff_devnull "$at_stdout" || at_failed=:
47592at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1179"
47593$at_failed && at_fn_log_failure
47594$at_traceon; }
47595
47596{ set +x
47597$as_echo "$at_srcdir/run_fundamental.at:1180: \$COBCRUN_DIRECT ./prog"
47598at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1180"
47599( $at_check_trace; $COBCRUN_DIRECT ./prog
47600) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47601at_status=$? at_failed=false
47602$at_check_filter
47603at_fn_diff_devnull "$at_stderr" || at_failed=:
47604echo >>"$at_stdout"; $as_echo "0.0004,00Y
47605" | \
47606  $at_diff - "$at_stdout" || at_failed=:
47607at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1180"
47608$at_failed && at_fn_log_failure
47609$at_traceon; }
47610
47611
47612  set +x
47613  $at_times_p && times >"$at_times_file"
47614) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47615read at_status <"$at_status_file"
47616#AT_STOP_463
47617#AT_START_464
47618at_fn_group_banner 464 'run_fundamental.at:1187' \
47619  "function with variable-length RETURNING item" "   " 4
47620at_xfail=no
47621(
47622  $as_echo "464. $at_setup_line: testing $at_desc ..."
47623  $at_traceon
47624
47625
47626
47627# see Bug #641
47628
47629
47630# Skipped in 3.1.1 as the codegen is not safe (returning local variable address)
47631# codegen adjusted in 4.x
47632
47633$as_echo "run_fundamental.at:1196" >"$at_check_line_file"
47634at_fn_check_skip 77 "$at_srcdir/run_fundamental.at:1196"
47635
47636cat >prog.cob <<'_ATEOF'
47637
47638       IDENTIFICATION DIVISION.
47639       FUNCTION-ID. reply.
47640       DATA DIVISION.
47641       WORKING-STORAGE SECTION.
47642       77 arg-len   USAGE BINARY-LONG.
47643       LINKAGE SECTION.
47644       01 argument  PIC X ANY LENGTH.
47645       01 result.
47646          05 filler PIC X OCCURS 0 to 999 DEPENDING ON arg-len.
47647       PROCEDURE DIVISION USING BY REFERENCE argument RETURNING result.
47648           MOVE FUNCTION LENGTH (argument) TO arg-len
47649           MOVE argument TO result.
47650       END FUNCTION reply.
47651
47652       IDENTIFICATION DIVISION.
47653       PROGRAM-ID. prog.
47654
47655       ENVIRONMENT DIVISION.
47656       CONFIGURATION SECTION.
47657       REPOSITORY.
47658           FUNCTION reply.
47659
47660       DATA DIVISION.
47661       WORKING-STORAGE SECTION.
47662       77  arg   pic x(100).
47663
47664       PROCEDURE DIVISION.
47665      *>
47666           IF not (FUNCTION         REPLY ("test")  = "test"
47667               and FUNCTION LENGTH (REPLY ("test")) = 4     )
47668              DISPLAY "'test' failed: "
47669                     FUNCTION LENGTH (REPLY ("test")) " #"
47670                     FUNCTION         REPLY ("test")  "#".
47671      *>
47672           IF not (FUNCTION         REPLY ("test   ")  = "test"
47673               and FUNCTION LENGTH (REPLY ("test   ")) = 7     )
47674              DISPLAY "'test   ' failed: "
47675                     FUNCTION LENGTH (REPLY ("test   ")) " #"
47676                     FUNCTION         REPLY ("test   ")  "#".
47677      *>
47678           IF not (FUNCTION         REPLY (arg)  = spaces
47679               and FUNCTION LENGTH (REPLY (arg)) = 100 )
47680              DISPLAY "empty arg failed: "
47681                     FUNCTION LENGTH (REPLY (arg)) " #"
47682                     FUNCTION         REPLY (arg)  "#".
47683      *>
47684           MOVE "echo this" to arg
47685           IF not (FUNCTION         REPLY (arg)  = arg
47686               and FUNCTION LENGTH (REPLY (arg)) = 100 )
47687              DISPLAY "echo arg failed: "
47688                     FUNCTION LENGTH (REPLY (arg)) " #"
47689                     FUNCTION         REPLY (arg)  "#".
47690      *>
47691           MOVE z"echo this" to arg
47692           IF not (FUNCTION         REPLY (arg)  = arg
47693               and FUNCTION LENGTH (REPLY (arg)) = 100 )
47694              DISPLAY "z'echo arg failed: "
47695                     FUNCTION LENGTH (REPLY (arg)) " #"
47696                     FUNCTION         REPLY (arg)  "#".
47697      *>
47698           GOBACK
47699           .
47700       END PROGRAM prog.
47701_ATEOF
47702
47703
47704{ set +x
47705$as_echo "$at_srcdir/run_fundamental.at:1264: \$COMPILE prog.cob"
47706at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1264"
47707( $at_check_trace; $COMPILE prog.cob
47708) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47709at_status=$? at_failed=false
47710$at_check_filter
47711at_fn_diff_devnull "$at_stderr" || at_failed=:
47712at_fn_diff_devnull "$at_stdout" || at_failed=:
47713at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1264"
47714$at_failed && at_fn_log_failure
47715$at_traceon; }
47716
47717{ set +x
47718$as_echo "$at_srcdir/run_fundamental.at:1265: \$COBCRUN_DIRECT ./prog"
47719at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1265"
47720( $at_check_trace; $COBCRUN_DIRECT ./prog
47721) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47722at_status=$? at_failed=false
47723$at_check_filter
47724at_fn_diff_devnull "$at_stderr" || at_failed=:
47725at_fn_diff_devnull "$at_stdout" || at_failed=:
47726at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1265"
47727$at_failed && at_fn_log_failure
47728$at_traceon; }
47729
47730
47731  set +x
47732  $at_times_p && times >"$at_times_file"
47733) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47734read at_status <"$at_status_file"
47735#AT_STOP_464
47736#AT_START_465
47737at_fn_group_banner 465 'run_fundamental.at:1270' \
47738  "Entry point visibility (1)" "                     " 4
47739at_xfail=no
47740(
47741  $as_echo "465. $at_setup_line: testing $at_desc ..."
47742  $at_traceon
47743
47744
47745
47746cat >prog.cob <<'_ATEOF'
47747
47748       IDENTIFICATION   DIVISION.
47749       PROGRAM-ID.      prog.
47750       DATA DIVISION.
47751       PROCEDURE        DIVISION.
47752           CALL 'module'
47753           CALL 'modulepart'
47754           STOP RUN.
47755_ATEOF
47756
47757
47758cat >module.cob <<'_ATEOF'
47759
47760       IDENTIFICATION   DIVISION.
47761       PROGRAM-ID.      module.
47762       DATA DIVISION.
47763       PROCEDURE        DIVISION.
47764           DISPLAY 'A' WITH NO ADVANCING
47765           GOBACK.
47766       ENTRY 'modulepart'.
47767           DISPLAY 'B' WITH NO ADVANCING
47768           GOBACK.
47769_ATEOF
47770
47771
47772{ set +x
47773$as_echo "$at_srcdir/run_fundamental.at:1295: \$COMPILE prog.cob"
47774at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1295"
47775( $at_check_trace; $COMPILE prog.cob
47776) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47777at_status=$? at_failed=false
47778$at_check_filter
47779at_fn_diff_devnull "$at_stderr" || at_failed=:
47780at_fn_diff_devnull "$at_stdout" || at_failed=:
47781at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1295"
47782$at_failed && at_fn_log_failure
47783$at_traceon; }
47784
47785{ set +x
47786$as_echo "$at_srcdir/run_fundamental.at:1296: \$COMPILE_MODULE module.cob"
47787at_fn_check_prepare_dynamic "$COMPILE_MODULE module.cob" "run_fundamental.at:1296"
47788( $at_check_trace; $COMPILE_MODULE module.cob
47789) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47790at_status=$? at_failed=false
47791$at_check_filter
47792at_fn_diff_devnull "$at_stderr" || at_failed=:
47793at_fn_diff_devnull "$at_stdout" || at_failed=:
47794at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1296"
47795$at_failed && at_fn_log_failure
47796$at_traceon; }
47797
47798{ set +x
47799$as_echo "$at_srcdir/run_fundamental.at:1297: \$COBCRUN_DIRECT ./prog"
47800at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1297"
47801( $at_check_trace; $COBCRUN_DIRECT ./prog
47802) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47803at_status=$? at_failed=false
47804$at_check_filter
47805at_fn_diff_devnull "$at_stderr" || at_failed=:
47806echo >>"$at_stdout"; $as_echo "AB" | \
47807  $at_diff - "$at_stdout" || at_failed=:
47808at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1297"
47809$at_failed && at_fn_log_failure
47810$at_traceon; }
47811
47812
47813  set +x
47814  $at_times_p && times >"$at_times_file"
47815) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47816read at_status <"$at_status_file"
47817#AT_STOP_465
47818#AT_START_466
47819at_fn_group_banner 466 'run_fundamental.at:1302' \
47820  "Entry point visibility (2)" "                     " 4
47821at_xfail=no
47822(
47823  $as_echo "466. $at_setup_line: testing $at_desc ..."
47824  $at_traceon
47825
47826
47827
47828# TODO: skip on __OS400__
47829
47830cat >prog.cob <<'_ATEOF'
47831
47832       IDENTIFICATION   DIVISION.
47833       PROGRAM-ID.      prog.
47834       DATA DIVISION.
47835       PROCEDURE        DIVISION.
47836       CALL 'module'
47837       STOP RUN.
47838_ATEOF
47839
47840
47841cat >module.c <<'_ATEOF'
47842
47843#include <stdio.h>
47844#include <libcob.h>
47845
47846COB_EXT_EXPORT int
47847some (void)
47848{
47849  return 0;
47850}
47851_ATEOF
47852
47853
47854{ set +x
47855$as_echo "$at_srcdir/run_fundamental.at:1327: \$COMPILE prog.cob"
47856at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1327"
47857( $at_check_trace; $COMPILE prog.cob
47858) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47859at_status=$? at_failed=false
47860$at_check_filter
47861at_fn_diff_devnull "$at_stderr" || at_failed=:
47862at_fn_diff_devnull "$at_stdout" || at_failed=:
47863at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1327"
47864$at_failed && at_fn_log_failure
47865$at_traceon; }
47866
47867{ set +x
47868$as_echo "$at_srcdir/run_fundamental.at:1328: \$COMPILE_MODULE module.c"
47869at_fn_check_prepare_dynamic "$COMPILE_MODULE module.c" "run_fundamental.at:1328"
47870( $at_check_trace; $COMPILE_MODULE module.c
47871) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47872at_status=$? at_failed=false
47873$at_check_filter
47874at_fn_diff_devnull "$at_stderr" || at_failed=:
47875at_fn_diff_devnull "$at_stdout" || at_failed=:
47876at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1328"
47877$at_failed && at_fn_log_failure
47878$at_traceon; }
47879
47880{ set +x
47881$as_echo "$at_srcdir/run_fundamental.at:1329: \$COBCRUN_DIRECT ./prog"
47882at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1329"
47883( $at_check_trace; $COBCRUN_DIRECT ./prog
47884) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47885at_status=$? at_failed=false
47886$at_check_filter
47887echo >>"$at_stderr"; $as_echo "libcob: prog.cob:6: error: entry point 'module' not found
47888" | \
47889  $at_diff - "$at_stderr" || at_failed=:
47890at_fn_diff_devnull "$at_stdout" || at_failed=:
47891at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1329"
47892$at_failed && at_fn_log_failure
47893$at_traceon; }
47894
47895
47896  set +x
47897  $at_times_p && times >"$at_times_file"
47898) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47899read at_status <"$at_status_file"
47900#AT_STOP_466
47901#AT_START_467
47902at_fn_group_banner 467 'run_fundamental.at:1336' \
47903  "Contained program visibility (1)" "               " 4
47904at_xfail=no
47905(
47906  $as_echo "467. $at_setup_line: testing $at_desc ..."
47907  $at_traceon
47908
47909
47910
47911cat >prog.cob <<'_ATEOF'
47912
47913       IDENTIFICATION   DIVISION.
47914       PROGRAM-ID.      prog.
47915       DATA DIVISION.
47916       WORKING-STORAGE SECTION.
47917       01  X   PIC X(5) GLOBAL  VALUE "prog1".
47918       PROCEDURE        DIVISION.
47919           IF X NOT = "prog1"
47920              DISPLAY X
47921              END-DISPLAY
47922           END-IF.
47923           CALL "prog2"
47924           END-CALL.
47925           CALL "prog3"
47926           END-CALL.
47927           STOP RUN.
47928        IDENTIFICATION   DIVISION.
47929        PROGRAM-ID.      prog2.
47930        DATA DIVISION.
47931        WORKING-STORAGE SECTION.
47932        01  X   PIC X(5) GLOBAL  VALUE "prog2".
47933        PROCEDURE        DIVISION.
47934            IF X NOT = "prog2"
47935               DISPLAY X
47936               END-DISPLAY
47937            END-IF.
47938            CALL "prog3"
47939            END-CALL.
47940            EXIT PROGRAM.
47941         IDENTIFICATION   DIVISION.
47942         PROGRAM-ID.      prog3.
47943         DATA DIVISION.
47944         WORKING-STORAGE SECTION.
47945         PROCEDURE        DIVISION.
47946             IF X NOT = "prog2"
47947                DISPLAY X
47948                END-DISPLAY
47949             END-IF
47950             EXIT PROGRAM.
47951         END PROGRAM prog3.
47952        END PROGRAM prog2.
47953       END PROGRAM prog.
47954_ATEOF
47955
47956
47957{ set +x
47958$as_echo "$at_srcdir/run_fundamental.at:1383: \$COMPILE prog.cob"
47959at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1383"
47960( $at_check_trace; $COMPILE prog.cob
47961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47962at_status=$? at_failed=false
47963$at_check_filter
47964at_fn_diff_devnull "$at_stderr" || at_failed=:
47965at_fn_diff_devnull "$at_stdout" || at_failed=:
47966at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1383"
47967$at_failed && at_fn_log_failure
47968$at_traceon; }
47969
47970{ set +x
47971$as_echo "$at_srcdir/run_fundamental.at:1384: \$COBCRUN_DIRECT ./prog"
47972at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1384"
47973( $at_check_trace; $COBCRUN_DIRECT ./prog
47974) >>"$at_stdout" 2>>"$at_stderr" 5>&-
47975at_status=$? at_failed=false
47976$at_check_filter
47977echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: module 'prog3' not found
47978" | \
47979  $at_diff - "$at_stderr" || at_failed=:
47980at_fn_diff_devnull "$at_stdout" || at_failed=:
47981at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1384"
47982$at_failed && at_fn_log_failure
47983$at_traceon; }
47984
47985
47986  set +x
47987  $at_times_p && times >"$at_times_file"
47988) 5>&1 2>&1 7>&- | eval $at_tee_pipe
47989read at_status <"$at_status_file"
47990#AT_STOP_467
47991#AT_START_468
47992at_fn_group_banner 468 'run_fundamental.at:1391' \
47993  "Contained program visibility (2)" "               " 4
47994at_xfail=no
47995(
47996  $as_echo "468. $at_setup_line: testing $at_desc ..."
47997  $at_traceon
47998
47999
48000
48001cat >prog.cob <<'_ATEOF'
48002
48003       IDENTIFICATION   DIVISION.
48004       PROGRAM-ID.      prog.
48005       DATA DIVISION.
48006       WORKING-STORAGE SECTION.
48007       01  X   PIC X(5) GLOBAL  VALUE "prog1".
48008       PROCEDURE        DIVISION.
48009           IF X NOT = "prog1"
48010              DISPLAY X
48011              END-DISPLAY
48012           END-IF.
48013           CALL "prog2"
48014           END-CALL.
48015           STOP RUN.
48016        IDENTIFICATION   DIVISION.
48017        PROGRAM-ID.      prog2.
48018        DATA DIVISION.
48019        WORKING-STORAGE SECTION.
48020        01  X   PIC X(5) GLOBAL  VALUE "prog2".
48021        PROCEDURE        DIVISION.
48022            IF X NOT = "prog2"
48023               DISPLAY X
48024               END-DISPLAY
48025            END-IF.
48026            CALL "prog3"
48027            END-CALL.
48028            EXIT PROGRAM.
48029        END PROGRAM prog2.
48030        IDENTIFICATION   DIVISION.
48031        PROGRAM-ID.      prog3.
48032        DATA DIVISION.
48033        WORKING-STORAGE SECTION.
48034        PROCEDURE        DIVISION.
48035            IF X NOT = "prog2"
48036               DISPLAY X
48037               END-DISPLAY
48038            END-IF.
48039            EXIT PROGRAM.
48040        END PROGRAM prog3.
48041       END PROGRAM prog.
48042_ATEOF
48043
48044
48045{ set +x
48046$as_echo "$at_srcdir/run_fundamental.at:1436: \$COMPILE prog.cob"
48047at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1436"
48048( $at_check_trace; $COMPILE prog.cob
48049) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48050at_status=$? at_failed=false
48051$at_check_filter
48052at_fn_diff_devnull "$at_stderr" || at_failed=:
48053at_fn_diff_devnull "$at_stdout" || at_failed=:
48054at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1436"
48055$at_failed && at_fn_log_failure
48056$at_traceon; }
48057
48058{ set +x
48059$as_echo "$at_srcdir/run_fundamental.at:1437: \$COBCRUN_DIRECT ./prog"
48060at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1437"
48061( $at_check_trace; $COBCRUN_DIRECT ./prog
48062) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48063at_status=$? at_failed=false
48064$at_check_filter
48065echo >>"$at_stderr"; $as_echo "libcob: prog.cob:25: error: module 'prog3' not found
48066" | \
48067  $at_diff - "$at_stderr" || at_failed=:
48068at_fn_diff_devnull "$at_stdout" || at_failed=:
48069at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1437"
48070$at_failed && at_fn_log_failure
48071$at_traceon; }
48072
48073
48074  set +x
48075  $at_times_p && times >"$at_times_file"
48076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48077read at_status <"$at_status_file"
48078#AT_STOP_468
48079#AT_START_469
48080at_fn_group_banner 469 'run_fundamental.at:1444' \
48081  "Contained program visibility (3)" "               " 4
48082at_xfail=no
48083(
48084  $as_echo "469. $at_setup_line: testing $at_desc ..."
48085  $at_traceon
48086
48087
48088
48089cat >prog.cob <<'_ATEOF'
48090
48091       IDENTIFICATION   DIVISION.
48092       PROGRAM-ID.      prog.
48093       DATA DIVISION.
48094       WORKING-STORAGE SECTION.
48095       01  X   PIC X(5) GLOBAL  VALUE "prog1".
48096       PROCEDURE        DIVISION.
48097           IF X NOT = "prog1"
48098              DISPLAY X
48099              END-DISPLAY
48100           END-IF.
48101           CALL "prog2"
48102           END-CALL.
48103           STOP RUN.
48104        IDENTIFICATION   DIVISION.
48105        PROGRAM-ID.      prog2.
48106        DATA DIVISION.
48107        WORKING-STORAGE SECTION.
48108        01  X   PIC X(5) GLOBAL  VALUE "prog2".
48109        PROCEDURE        DIVISION.
48110            IF X NOT = "prog2"
48111               DISPLAY X
48112               END-DISPLAY
48113            END-IF.
48114            CALL "prog3"
48115            END-CALL.
48116            EXIT PROGRAM.
48117        END PROGRAM prog2.
48118        IDENTIFICATION   DIVISION.
48119        PROGRAM-ID.      prog3 COMMON.
48120        DATA DIVISION.
48121        WORKING-STORAGE SECTION.
48122        PROCEDURE        DIVISION.
48123            IF X NOT = "prog1"
48124               DISPLAY X
48125               END-DISPLAY
48126            END-IF.
48127            EXIT PROGRAM.
48128        END PROGRAM prog3.
48129       END PROGRAM prog.
48130_ATEOF
48131
48132
48133{ set +x
48134$as_echo "$at_srcdir/run_fundamental.at:1489: \$COMPILE prog.cob"
48135at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1489"
48136( $at_check_trace; $COMPILE prog.cob
48137) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48138at_status=$? at_failed=false
48139$at_check_filter
48140at_fn_diff_devnull "$at_stderr" || at_failed=:
48141at_fn_diff_devnull "$at_stdout" || at_failed=:
48142at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1489"
48143$at_failed && at_fn_log_failure
48144$at_traceon; }
48145
48146{ set +x
48147$as_echo "$at_srcdir/run_fundamental.at:1490: \$COBCRUN_DIRECT ./prog"
48148at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1490"
48149( $at_check_trace; $COBCRUN_DIRECT ./prog
48150) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48151at_status=$? at_failed=false
48152$at_check_filter
48153at_fn_diff_devnull "$at_stderr" || at_failed=:
48154at_fn_diff_devnull "$at_stdout" || at_failed=:
48155at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1490"
48156$at_failed && at_fn_log_failure
48157$at_traceon; }
48158
48159
48160  set +x
48161  $at_times_p && times >"$at_times_file"
48162) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48163read at_status <"$at_status_file"
48164#AT_STOP_469
48165#AT_START_470
48166at_fn_group_banner 470 'run_fundamental.at:1495' \
48167  "Contained program visibility (4)" "               " 4
48168at_xfail=no
48169(
48170  $as_echo "470. $at_setup_line: testing $at_desc ..."
48171  $at_traceon
48172
48173
48174
48175cat >prog.cob <<'_ATEOF'
48176
48177       IDENTIFICATION   DIVISION.
48178       PROGRAM-ID.      prog.
48179       DATA DIVISION.
48180       WORKING-STORAGE SECTION.
48181       PROCEDURE        DIVISION.
48182           DISPLAY "P1" NO ADVANCING
48183           END-DISPLAY.
48184           CALL "prog2"
48185           END-CALL
48186           CALL "prog3"
48187           END-CALL
48188           STOP RUN.
48189        IDENTIFICATION   DIVISION.
48190        PROGRAM-ID.      prog2.
48191        DATA DIVISION.
48192        WORKING-STORAGE SECTION.
48193        PROCEDURE        DIVISION.
48194            DISPLAY "P2" NO ADVANCING
48195            END-DISPLAY.
48196            EXIT PROGRAM.
48197        END PROGRAM prog2.
48198       END PROGRAM prog.
48199       IDENTIFICATION   DIVISION.
48200       PROGRAM-ID.      prog3.
48201       DATA DIVISION.
48202       WORKING-STORAGE SECTION.
48203       PROCEDURE        DIVISION.
48204           DISPLAY "P3" NO ADVANCING
48205           END-DISPLAY.
48206           CALL "prog2"
48207           END-CALL.
48208           EXIT PROGRAM.
48209        IDENTIFICATION   DIVISION.
48210        PROGRAM-ID.      prog2.
48211        DATA DIVISION.
48212        WORKING-STORAGE SECTION.
48213        PROCEDURE        DIVISION.
48214            DISPLAY "P4" NO ADVANCING
48215            END-DISPLAY.
48216            EXIT PROGRAM.
48217        END PROGRAM prog2.
48218       END PROGRAM prog3.
48219_ATEOF
48220
48221
48222{ set +x
48223$as_echo "$at_srcdir/run_fundamental.at:1543: \$COMPILE prog.cob"
48224at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1543"
48225( $at_check_trace; $COMPILE prog.cob
48226) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48227at_status=$? at_failed=false
48228$at_check_filter
48229at_fn_diff_devnull "$at_stderr" || at_failed=:
48230at_fn_diff_devnull "$at_stdout" || at_failed=:
48231at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1543"
48232$at_failed && at_fn_log_failure
48233$at_traceon; }
48234
48235{ set +x
48236$as_echo "$at_srcdir/run_fundamental.at:1544: \$COBCRUN_DIRECT ./prog"
48237at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1544"
48238( $at_check_trace; $COBCRUN_DIRECT ./prog
48239) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48240at_status=$? at_failed=false
48241$at_check_filter
48242at_fn_diff_devnull "$at_stderr" || at_failed=:
48243echo >>"$at_stdout"; $as_echo "P1P2P3P4" | \
48244  $at_diff - "$at_stdout" || at_failed=:
48245at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1544"
48246$at_failed && at_fn_log_failure
48247$at_traceon; }
48248
48249
48250  set +x
48251  $at_times_p && times >"$at_times_file"
48252) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48253read at_status <"$at_status_file"
48254#AT_STOP_470
48255#AT_START_471
48256at_fn_group_banner 471 'run_fundamental.at:1550' \
48257  "CALL/CANCEL with program-prototype-name" "        " 4
48258at_xfail=no
48259(
48260  $as_echo "471. $at_setup_line: testing $at_desc ..."
48261  $at_traceon
48262
48263
48264
48265cat >prog.cob <<'_ATEOF'
48266
48267       IDENTIFICATION  DIVISION.
48268       PROGRAM-ID.     prog.
48269
48270       ENVIRONMENT     DIVISION.
48271       CONFIGURATION   SECTION.
48272       REPOSITORY.
48273           PROGRAM recursion-test
48274           PROGRAM cancel-test
48275           .
48276       DATA            DIVISION.
48277       WORKING-STORAGE SECTION.
48278       01  num         PIC 9 VALUE 0.
48279
48280       PROCEDURE       DIVISION.
48281           CALL recursion-test USING num
48282           DISPLAY "<"
48283
48284           CALL cancel-test
48285           CALL cancel-test
48286           CANCEL cancel-test
48287           CALL cancel-test
48288           DISPLAY "<"
48289           .
48290       END PROGRAM     prog.
48291
48292
48293       IDENTIFICATION  DIVISION.
48294       PROGRAM-ID.     recursion-test RECURSIVE.
48295
48296       DATA            DIVISION.
48297       LINKAGE         SECTION.
48298       01  x           PIC 9.
48299
48300       PROCEDURE       DIVISION USING x.
48301           ADD 1 TO x
48302           DISPLAY x NO ADVANCING
48303           IF x = 1
48304               CALL recursion-test USING x
48305           END-IF
48306           .
48307       END PROGRAM     recursion-test.
48308
48309
48310       IDENTIFICATION  DIVISION.
48311       PROGRAM-ID.     cancel-test.
48312
48313       DATA            DIVISION.
48314       WORKING-STORAGE SECTION.
48315       01  x           PIC 9 VALUE 1.
48316
48317       PROCEDURE       DIVISION.
48318           DISPLAY x NO ADVANCING
48319           ADD 1 TO x
48320           .
48321       END PROGRAM     cancel-test.
48322_ATEOF
48323
48324
48325# TO-DO: Fix these warnings when program prototypes are added.
48326{ set +x
48327$as_echo "$at_srcdir/run_fundamental.at:1612: \$COMPILE -fno-program-name-redefinition prog.cob"
48328at_fn_check_prepare_dynamic "$COMPILE -fno-program-name-redefinition prog.cob" "run_fundamental.at:1612"
48329( $at_check_trace; $COMPILE -fno-program-name-redefinition prog.cob
48330) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48331at_status=$? at_failed=false
48332$at_check_filter
48333echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: no definition/prototype seen for PROGRAM 'recursion-test'
48334prog.cob:9: warning: no definition/prototype seen for PROGRAM 'cancel-test'
48335" | \
48336  $at_diff - "$at_stderr" || at_failed=:
48337at_fn_diff_devnull "$at_stdout" || at_failed=:
48338at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1612"
48339$at_failed && at_fn_log_failure
48340$at_traceon; }
48341
48342{ set +x
48343$as_echo "$at_srcdir/run_fundamental.at:1616: \$COBCRUN_DIRECT ./prog"
48344at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1616"
48345( $at_check_trace; $COBCRUN_DIRECT ./prog
48346) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48347at_status=$? at_failed=false
48348$at_check_filter
48349at_fn_diff_devnull "$at_stderr" || at_failed=:
48350echo >>"$at_stdout"; $as_echo "12<
48351121<
48352" | \
48353  $at_diff - "$at_stdout" || at_failed=:
48354at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1616"
48355$at_failed && at_fn_log_failure
48356$at_traceon; }
48357
48358  set +x
48359  $at_times_p && times >"$at_times_file"
48360) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48361read at_status <"$at_status_file"
48362#AT_STOP_471
48363#AT_START_472
48364at_fn_group_banner 472 'run_fundamental.at:1623' \
48365  "GLOBAL FD (1)" "                                  " 4
48366at_xfail=no
48367(
48368  $as_echo "472. $at_setup_line: testing $at_desc ..."
48369  $at_traceon
48370
48371
48372
48373cat >prog.cob <<'_ATEOF'
48374
48375       IDENTIFICATION   DIVISION.
48376       PROGRAM-ID.      prog.
48377       ENVIRONMENT      DIVISION.
48378       INPUT-OUTPUT     SECTION.
48379       FILE-CONTROL.
48380       SELECT TEST-FILE
48381              ASSIGN      "TESTFILE"
48382              ACCESS       DYNAMIC
48383              ORGANIZATION RELATIVE
48384              STATUS       TESTSTAT
48385              RELATIVE KEY TESTKEY
48386       .
48387       DATA             DIVISION.
48388       FILE             SECTION.
48389       FD  TEST-FILE    GLOBAL.
48390       01  TEST-REC     PIC X(4).
48391       WORKING-STORAGE  SECTION.
48392       01  GLOBVALS.
48393           03  TESTKEY  PIC 9(4).
48394           03  TESTSTAT PIC XX.
48395       PROCEDURE        DIVISION.
48396           OPEN  INPUT TEST-FILE.
48397           CALL  "prog2"
48398           END-CALL.
48399           CLOSE TEST-FILE.
48400           STOP RUN.
48401        IDENTIFICATION   DIVISION.
48402        PROGRAM-ID.      prog2.
48403        DATA DIVISION.
48404        WORKING-STORAGE SECTION.
48405        PROCEDURE        DIVISION.
48406            READ TEST-FILE
48407                 INVALID KEY
48408                 DISPLAY "NOK"
48409                 END-DISPLAY
48410            END-READ.
48411            EXIT PROGRAM.
48412        END PROGRAM prog2.
48413       END PROGRAM prog.
48414_ATEOF
48415
48416
48417{ set +x
48418$as_echo "$at_srcdir/run_fundamental.at:1668: \$COMPILE prog.cob"
48419at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1668"
48420( $at_check_trace; $COMPILE prog.cob
48421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48422at_status=$? at_failed=false
48423$at_check_filter
48424at_fn_diff_devnull "$at_stderr" || at_failed=:
48425at_fn_diff_devnull "$at_stdout" || at_failed=:
48426at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1668"
48427$at_failed && at_fn_log_failure
48428$at_traceon; }
48429
48430
48431  set +x
48432  $at_times_p && times >"$at_times_file"
48433) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48434read at_status <"$at_status_file"
48435#AT_STOP_472
48436#AT_START_473
48437at_fn_group_banner 473 'run_fundamental.at:1673' \
48438  "GLOBAL FD (2)" "                                  " 4
48439at_xfail=no
48440(
48441  $as_echo "473. $at_setup_line: testing $at_desc ..."
48442  $at_traceon
48443
48444
48445
48446cat >prog.cob <<'_ATEOF'
48447
48448       IDENTIFICATION   DIVISION.
48449       PROGRAM-ID.      prog.
48450       ENVIRONMENT      DIVISION.
48451       INPUT-OUTPUT     SECTION.
48452       FILE-CONTROL.
48453       SELECT TEST-FILE
48454              ASSIGN      "TESTFILE"
48455              ACCESS       DYNAMIC
48456              ORGANIZATION INDEXED
48457              STATUS       TESTSTAT
48458              RECORD KEY   TESTKEY
48459       .
48460       DATA             DIVISION.
48461       FILE             SECTION.
48462       FD  TEST-FILE    GLOBAL.
48463       01  TEST-REC.
48464           03  TESTKEY  PIC X(4).
48465       WORKING-STORAGE  SECTION.
48466       01  GLOBVALS.
48467           03  TESTSTAT PIC XX.
48468       PROCEDURE        DIVISION.
48469           OPEN  INPUT TEST-FILE.
48470           CALL  "prog2"
48471           END-CALL.
48472           CLOSE TEST-FILE.
48473           STOP RUN.
48474        IDENTIFICATION   DIVISION.
48475        PROGRAM-ID.      prog2.
48476        DATA DIVISION.
48477        WORKING-STORAGE SECTION.
48478        PROCEDURE        DIVISION.
48479            READ TEST-FILE
48480                 INVALID KEY
48481                 DISPLAY "NOK"
48482                 END-DISPLAY
48483            END-READ.
48484            EXIT PROGRAM.
48485        END PROGRAM prog2.
48486       END PROGRAM prog.
48487_ATEOF
48488
48489
48490{ set +x
48491$as_echo "$at_srcdir/run_fundamental.at:1718: \$COMPILE prog.cob"
48492at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1718"
48493( $at_check_trace; $COMPILE prog.cob
48494) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48495at_status=$? at_failed=false
48496$at_check_filter
48497at_fn_diff_devnull "$at_stderr" || at_failed=:
48498at_fn_diff_devnull "$at_stdout" || at_failed=:
48499at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1718"
48500$at_failed && at_fn_log_failure
48501$at_traceon; }
48502
48503
48504  set +x
48505  $at_times_p && times >"$at_times_file"
48506) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48507read at_status <"$at_status_file"
48508#AT_STOP_473
48509#AT_START_474
48510at_fn_group_banner 474 'run_fundamental.at:1723' \
48511  "GLOBAL FD (3)" "                                  " 4
48512at_xfail=no
48513(
48514  $as_echo "474. $at_setup_line: testing $at_desc ..."
48515  $at_traceon
48516
48517
48518
48519cat >prog.cob <<'_ATEOF'
48520
48521       IDENTIFICATION   DIVISION.
48522       PROGRAM-ID.      prog.
48523       ENVIRONMENT      DIVISION.
48524       INPUT-OUTPUT     SECTION.
48525       FILE-CONTROL.
48526       SELECT TEST-FILE
48527              ASSIGN      "TESTFILE"
48528              ACCESS       DYNAMIC
48529              ORGANIZATION RELATIVE
48530              STATUS       TESTSTAT
48531              RELATIVE KEY TESTKEY
48532       .
48533       DATA             DIVISION.
48534       FILE             SECTION.
48535       FD  TEST-FILE    GLOBAL.
48536       01  TEST-REC     PIC X(4).
48537       WORKING-STORAGE  SECTION.
48538       01  GLOBVALS.
48539           03  TESTKEY  PIC 9(4).
48540           03  TESTSTAT PIC XX.
48541       PROCEDURE        DIVISION.
48542           MOVE "00"    TO TESTSTAT.
48543           CALL  "prog2"
48544           END-CALL.
48545           IF TESTSTAT = "00"
48546              DISPLAY "Not OK"
48547              END-DISPLAY
48548           END-IF.
48549           STOP RUN.
48550        IDENTIFICATION   DIVISION.
48551        PROGRAM-ID.      prog2.
48552        DATA DIVISION.
48553        WORKING-STORAGE SECTION.
48554        PROCEDURE        DIVISION.
48555            OPEN  INPUT TEST-FILE.
48556            EXIT PROGRAM.
48557        END PROGRAM prog2.
48558       END PROGRAM prog.
48559_ATEOF
48560
48561
48562{ set +x
48563$as_echo "$at_srcdir/run_fundamental.at:1767: \$COMPILE prog.cob"
48564at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1767"
48565( $at_check_trace; $COMPILE prog.cob
48566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48567at_status=$? at_failed=false
48568$at_check_filter
48569at_fn_diff_devnull "$at_stderr" || at_failed=:
48570at_fn_diff_devnull "$at_stdout" || at_failed=:
48571at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1767"
48572$at_failed && at_fn_log_failure
48573$at_traceon; }
48574
48575{ set +x
48576$as_echo "$at_srcdir/run_fundamental.at:1768: \$COBCRUN_DIRECT ./prog"
48577at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1768"
48578( $at_check_trace; $COBCRUN_DIRECT ./prog
48579) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48580at_status=$? at_failed=false
48581$at_check_filter
48582at_fn_diff_devnull "$at_stderr" || at_failed=:
48583at_fn_diff_devnull "$at_stdout" || at_failed=:
48584at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1768"
48585$at_failed && at_fn_log_failure
48586$at_traceon; }
48587
48588
48589  set +x
48590  $at_times_p && times >"$at_times_file"
48591) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48592read at_status <"$at_status_file"
48593#AT_STOP_474
48594#AT_START_475
48595at_fn_group_banner 475 'run_fundamental.at:1773' \
48596  "GLOBAL FD (4)" "                                  " 4
48597at_xfail=no
48598(
48599  $as_echo "475. $at_setup_line: testing $at_desc ..."
48600  $at_traceon
48601
48602
48603
48604cat >prog.cob <<'_ATEOF'
48605
48606       IDENTIFICATION   DIVISION.
48607       PROGRAM-ID.      prog.
48608       ENVIRONMENT      DIVISION.
48609       INPUT-OUTPUT     SECTION.
48610       FILE-CONTROL.
48611       SELECT TEST-FILE
48612              ASSIGN      "TESTFILE"
48613              ACCESS       DYNAMIC
48614              ORGANIZATION INDEXED
48615              STATUS       TESTSTAT
48616              RECORD KEY   TESTKEY
48617       .
48618       DATA             DIVISION.
48619       FILE             SECTION.
48620       FD  TEST-FILE    GLOBAL.
48621       01  TEST-REC.
48622           03  TESTKEY  PIC X(4).
48623       WORKING-STORAGE  SECTION.
48624       01  GLOBVALS.
48625           03  TESTSTAT PIC XX.
48626       PROCEDURE        DIVISION.
48627           MOVE "00"    TO TESTSTAT.
48628           CALL  "prog2"
48629           END-CALL.
48630           IF TESTSTAT = "00"
48631              DISPLAY "Not OK"
48632              END-DISPLAY
48633           END-IF.
48634           STOP RUN.
48635        IDENTIFICATION   DIVISION.
48636        PROGRAM-ID.      prog2.
48637        DATA DIVISION.
48638        WORKING-STORAGE SECTION.
48639        PROCEDURE        DIVISION.
48640            OPEN  INPUT TEST-FILE.
48641            EXIT PROGRAM.
48642        END PROGRAM prog2.
48643       END PROGRAM prog.
48644_ATEOF
48645
48646
48647{ set +x
48648$as_echo "$at_srcdir/run_fundamental.at:1817: \$COMPILE prog.cob"
48649at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1817"
48650( $at_check_trace; $COMPILE prog.cob
48651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48652at_status=$? at_failed=false
48653$at_check_filter
48654at_fn_diff_devnull "$at_stderr" || at_failed=:
48655at_fn_diff_devnull "$at_stdout" || at_failed=:
48656at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1817"
48657$at_failed && at_fn_log_failure
48658$at_traceon; }
48659
48660{ set +x
48661$as_echo "$at_srcdir/run_fundamental.at:1818: \$COBCRUN_DIRECT ./prog"
48662at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1818"
48663( $at_check_trace; $COBCRUN_DIRECT ./prog
48664) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48665at_status=$? at_failed=false
48666$at_check_filter
48667at_fn_diff_devnull "$at_stderr" || at_failed=:
48668at_fn_diff_devnull "$at_stdout" || at_failed=:
48669at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1818"
48670$at_failed && at_fn_log_failure
48671$at_traceon; }
48672
48673
48674  set +x
48675  $at_times_p && times >"$at_times_file"
48676) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48677read at_status <"$at_status_file"
48678#AT_STOP_475
48679#AT_START_476
48680at_fn_group_banner 476 'run_fundamental.at:1823' \
48681  "CANCEL test (1)" "                                " 4
48682at_xfail=no
48683(
48684  $as_echo "476. $at_setup_line: testing $at_desc ..."
48685  $at_traceon
48686
48687
48688
48689cat >prog.cob <<'_ATEOF'
48690
48691       IDENTIFICATION   DIVISION.
48692       PROGRAM-ID.      prog.
48693       DATA DIVISION.
48694       WORKING-STORAGE SECTION.
48695       PROCEDURE        DIVISION.
48696           CANCEL "notthere".
48697           CANCEL "prog".
48698           DISPLAY "NG" NO ADVANCING
48699           END-DISPLAY.
48700           STOP RUN.
48701_ATEOF
48702
48703
48704{ set +x
48705$as_echo "$at_srcdir/run_fundamental.at:1839: \$COMPILE prog.cob"
48706at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1839"
48707( $at_check_trace; $COMPILE prog.cob
48708) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48709at_status=$? at_failed=false
48710$at_check_filter
48711at_fn_diff_devnull "$at_stderr" || at_failed=:
48712at_fn_diff_devnull "$at_stdout" || at_failed=:
48713at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1839"
48714$at_failed && at_fn_log_failure
48715$at_traceon; }
48716
48717{ set +x
48718$as_echo "$at_srcdir/run_fundamental.at:1840: \$COBCRUN_DIRECT ./prog"
48719at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1840"
48720( $at_check_trace; $COBCRUN_DIRECT ./prog
48721) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48722at_status=$? at_failed=false
48723$at_check_filter
48724echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: attempt to CANCEL active program
48725" | \
48726  $at_diff - "$at_stderr" || at_failed=:
48727at_fn_diff_devnull "$at_stdout" || at_failed=:
48728at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1840"
48729$at_failed && at_fn_log_failure
48730$at_traceon; }
48731
48732{ set +x
48733$as_echo "$at_srcdir/run_fundamental.at:1843: COB_PHYSICAL_CANCEL=1 ./prog"
48734at_fn_check_prepare_trace "run_fundamental.at:1843"
48735( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./prog
48736) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48737at_status=$? at_failed=false
48738$at_check_filter
48739echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: attempt to CANCEL active program
48740" | \
48741  $at_diff - "$at_stderr" || at_failed=:
48742at_fn_diff_devnull "$at_stdout" || at_failed=:
48743at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1843"
48744$at_failed && at_fn_log_failure
48745$at_traceon; }
48746
48747
48748  set +x
48749  $at_times_p && times >"$at_times_file"
48750) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48751read at_status <"$at_status_file"
48752#AT_STOP_476
48753#AT_START_477
48754at_fn_group_banner 477 'run_fundamental.at:1850' \
48755  "CANCEL test (2)" "                                " 4
48756at_xfail=no
48757(
48758  $as_echo "477. $at_setup_line: testing $at_desc ..."
48759  $at_traceon
48760
48761
48762
48763cat >prog.cob <<'_ATEOF'
48764
48765       IDENTIFICATION   DIVISION.
48766       PROGRAM-ID.      prog.
48767       DATA DIVISION.
48768       WORKING-STORAGE SECTION.
48769       PROCEDURE        DIVISION.
48770           CALL "prog2"
48771           END-CALL.
48772           DISPLAY "NG" NO ADVANCING
48773           END-DISPLAY.
48774           STOP RUN.
48775_ATEOF
48776
48777
48778cat >prog2.cob <<'_ATEOF'
48779
48780       IDENTIFICATION   DIVISION.
48781       PROGRAM-ID.      prog2.
48782       DATA DIVISION.
48783       WORKING-STORAGE SECTION.
48784       PROCEDURE        DIVISION.
48785           CANCEL "prog".
48786           DISPLAY "NG" NO ADVANCING
48787           END-DISPLAY.
48788           STOP RUN.
48789_ATEOF
48790
48791
48792{ set +x
48793$as_echo "$at_srcdir/run_fundamental.at:1878: \$COMPILE prog.cob"
48794at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1878"
48795( $at_check_trace; $COMPILE prog.cob
48796) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48797at_status=$? at_failed=false
48798$at_check_filter
48799at_fn_diff_devnull "$at_stderr" || at_failed=:
48800at_fn_diff_devnull "$at_stdout" || at_failed=:
48801at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1878"
48802$at_failed && at_fn_log_failure
48803$at_traceon; }
48804
48805{ set +x
48806$as_echo "$at_srcdir/run_fundamental.at:1879: \$COMPILE_MODULE prog2.cob"
48807at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_fundamental.at:1879"
48808( $at_check_trace; $COMPILE_MODULE prog2.cob
48809) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48810at_status=$? at_failed=false
48811$at_check_filter
48812at_fn_diff_devnull "$at_stderr" || at_failed=:
48813at_fn_diff_devnull "$at_stdout" || at_failed=:
48814at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1879"
48815$at_failed && at_fn_log_failure
48816$at_traceon; }
48817
48818{ set +x
48819$as_echo "$at_srcdir/run_fundamental.at:1880: \$COBCRUN_DIRECT ./prog"
48820at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1880"
48821( $at_check_trace; $COBCRUN_DIRECT ./prog
48822) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48823at_status=$? at_failed=false
48824$at_check_filter
48825echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:7: error: attempt to CANCEL active program
48826" | \
48827  $at_diff - "$at_stderr" || at_failed=:
48828at_fn_diff_devnull "$at_stdout" || at_failed=:
48829at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1880"
48830$at_failed && at_fn_log_failure
48831$at_traceon; }
48832
48833{ set +x
48834$as_echo "$at_srcdir/run_fundamental.at:1883: COB_PHYSICAL_CANCEL=1 ./prog"
48835at_fn_check_prepare_trace "run_fundamental.at:1883"
48836( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./prog
48837) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48838at_status=$? at_failed=false
48839$at_check_filter
48840echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:7: error: attempt to CANCEL active program
48841" | \
48842  $at_diff - "$at_stderr" || at_failed=:
48843at_fn_diff_devnull "$at_stdout" || at_failed=:
48844at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1883"
48845$at_failed && at_fn_log_failure
48846$at_traceon; }
48847
48848
48849  set +x
48850  $at_times_p && times >"$at_times_file"
48851) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48852read at_status <"$at_status_file"
48853#AT_STOP_477
48854#AT_START_478
48855at_fn_group_banner 478 'run_fundamental.at:1890' \
48856  "CANCEL test (3)" "                                " 4
48857at_xfail=no
48858(
48859  $as_echo "478. $at_setup_line: testing $at_desc ..."
48860  $at_traceon
48861
48862
48863
48864cat >prog.cob <<'_ATEOF'
48865
48866       IDENTIFICATION   DIVISION.
48867       PROGRAM-ID.      prog.
48868       DATA DIVISION.
48869       WORKING-STORAGE SECTION.
48870       PROCEDURE        DIVISION.
48871           CALL "prog2"
48872           END-CALL.
48873           CALL "prog2"
48874           END-CALL.
48875           CANCEL "prog2".
48876           CALL "prog2"
48877           END-CALL.
48878           CANCEL "prog2".
48879           DISPLAY "NG" NO ADVANCING
48880           END-DISPLAY.
48881           STOP RUN.
48882_ATEOF
48883
48884
48885cat >prog2.cob <<'_ATEOF'
48886
48887       IDENTIFICATION   DIVISION.
48888       PROGRAM-ID.      prog2.
48889       DATA DIVISION.
48890       WORKING-STORAGE SECTION.
48891       77  VAR          PIC 9(01) value 1.
48892       PROCEDURE        DIVISION.
48893           DISPLAY VAR NO ADVANCING
48894           END-DISPLAY.
48895           ADD  1 TO VAR END-ADD.
48896           GOBACK.
48897_ATEOF
48898
48899
48900{ set +x
48901$as_echo "$at_srcdir/run_fundamental.at:1925: \$COMPILE prog.cob"
48902at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1925"
48903( $at_check_trace; $COMPILE prog.cob
48904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48905at_status=$? at_failed=false
48906$at_check_filter
48907at_fn_diff_devnull "$at_stderr" || at_failed=:
48908at_fn_diff_devnull "$at_stdout" || at_failed=:
48909at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1925"
48910$at_failed && at_fn_log_failure
48911$at_traceon; }
48912
48913{ set +x
48914$as_echo "$at_srcdir/run_fundamental.at:1926: \$COMPILE_MODULE prog2.cob"
48915at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_fundamental.at:1926"
48916( $at_check_trace; $COMPILE_MODULE prog2.cob
48917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48918at_status=$? at_failed=false
48919$at_check_filter
48920at_fn_diff_devnull "$at_stderr" || at_failed=:
48921at_fn_diff_devnull "$at_stdout" || at_failed=:
48922at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1926"
48923$at_failed && at_fn_log_failure
48924$at_traceon; }
48925
48926{ set +x
48927$as_echo "$at_srcdir/run_fundamental.at:1927: \$COBCRUN_DIRECT ./prog"
48928at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1927"
48929( $at_check_trace; $COBCRUN_DIRECT ./prog
48930) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48931at_status=$? at_failed=false
48932$at_check_filter
48933at_fn_diff_devnull "$at_stderr" || at_failed=:
48934echo >>"$at_stdout"; $as_echo "121NG" | \
48935  $at_diff - "$at_stdout" || at_failed=:
48936at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1927"
48937$at_failed && at_fn_log_failure
48938$at_traceon; }
48939
48940{ set +x
48941$as_echo "$at_srcdir/run_fundamental.at:1928: COB_PHYSICAL_CANCEL=1 ./prog"
48942at_fn_check_prepare_trace "run_fundamental.at:1928"
48943( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./prog
48944) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48945at_status=$? at_failed=false
48946$at_check_filter
48947at_fn_diff_devnull "$at_stderr" || at_failed=:
48948echo >>"$at_stdout"; $as_echo "121NG" | \
48949  $at_diff - "$at_stdout" || at_failed=:
48950at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1928"
48951$at_failed && at_fn_log_failure
48952$at_traceon; }
48953
48954
48955  set +x
48956  $at_times_p && times >"$at_times_file"
48957) 5>&1 2>&1 7>&- | eval $at_tee_pipe
48958read at_status <"$at_status_file"
48959#AT_STOP_478
48960#AT_START_479
48961at_fn_group_banner 479 'run_fundamental.at:1933' \
48962  "Separate sign positions (1)" "                    " 4
48963at_xfail=no
48964(
48965  $as_echo "479. $at_setup_line: testing $at_desc ..."
48966  $at_traceon
48967
48968
48969
48970cat >prog.cob <<'_ATEOF'
48971
48972       IDENTIFICATION   DIVISION.
48973       PROGRAM-ID.      prog.
48974       DATA             DIVISION.
48975       WORKING-STORAGE  SECTION.
48976       01  X            PIC S9 VALUE -1 SIGN LEADING SEPARATE.
48977       01  Y            PIC S9 VALUE -1 SIGN TRAILING SEPARATE.
48978       PROCEDURE        DIVISION.
48979           DISPLAY X(1:1) X(2:1) NO ADVANCING
48980           END-DISPLAY.
48981           DISPLAY Y(1:1) Y(2:1) NO ADVANCING
48982           END-DISPLAY.
48983           STOP RUN.
48984_ATEOF
48985
48986
48987{ set +x
48988$as_echo "$at_srcdir/run_fundamental.at:1951: \$COMPILE prog.cob"
48989at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1951"
48990( $at_check_trace; $COMPILE prog.cob
48991) >>"$at_stdout" 2>>"$at_stderr" 5>&-
48992at_status=$? at_failed=false
48993$at_check_filter
48994at_fn_diff_devnull "$at_stderr" || at_failed=:
48995at_fn_diff_devnull "$at_stdout" || at_failed=:
48996at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1951"
48997$at_failed && at_fn_log_failure
48998$at_traceon; }
48999
49000{ set +x
49001$as_echo "$at_srcdir/run_fundamental.at:1952: \$COBCRUN_DIRECT ./prog"
49002at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1952"
49003( $at_check_trace; $COBCRUN_DIRECT ./prog
49004) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49005at_status=$? at_failed=false
49006$at_check_filter
49007at_fn_diff_devnull "$at_stderr" || at_failed=:
49008echo >>"$at_stdout"; $as_echo "-11-" | \
49009  $at_diff - "$at_stdout" || at_failed=:
49010at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1952"
49011$at_failed && at_fn_log_failure
49012$at_traceon; }
49013
49014
49015  set +x
49016  $at_times_p && times >"$at_times_file"
49017) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49018read at_status <"$at_status_file"
49019#AT_STOP_479
49020#AT_START_480
49021at_fn_group_banner 480 'run_fundamental.at:1957' \
49022  "Separate sign positions (2)" "                    " 4
49023at_xfail=no
49024(
49025  $as_echo "480. $at_setup_line: testing $at_desc ..."
49026  $at_traceon
49027
49028
49029
49030cat >prog.cob <<'_ATEOF'
49031
49032       IDENTIFICATION   DIVISION.
49033       PROGRAM-ID.      prog.
49034       DATA             DIVISION.
49035       WORKING-STORAGE  SECTION.
49036       01  X            PIC S9 SIGN LEADING SEPARATE.
49037       01  Y            PIC S9 SIGN TRAILING SEPARATE.
49038       PROCEDURE        DIVISION.
49039           MOVE 0 TO X.
49040           DISPLAY X NO ADVANCING
49041           END-DISPLAY.
49042           MOVE ZERO TO X.
49043           DISPLAY X NO ADVANCING
49044           END-DISPLAY.
49045           MOVE 0 TO Y.
49046           DISPLAY Y NO ADVANCING
49047           END-DISPLAY.
49048           MOVE ZERO TO Y.
49049           DISPLAY Y NO ADVANCING
49050           END-DISPLAY.
49051           STOP RUN.
49052_ATEOF
49053
49054{ set +x
49055$as_echo "$at_srcdir/run_fundamental.at:1982: \$COMPILE prog.cob"
49056at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1982"
49057( $at_check_trace; $COMPILE prog.cob
49058) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49059at_status=$? at_failed=false
49060$at_check_filter
49061at_fn_diff_devnull "$at_stderr" || at_failed=:
49062at_fn_diff_devnull "$at_stdout" || at_failed=:
49063at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1982"
49064$at_failed && at_fn_log_failure
49065$at_traceon; }
49066
49067{ set +x
49068$as_echo "$at_srcdir/run_fundamental.at:1983: \$COMPILE_MODULE -fpretty-display prog.cob"
49069at_fn_check_prepare_dynamic "$COMPILE_MODULE -fpretty-display prog.cob" "run_fundamental.at:1983"
49070( $at_check_trace; $COMPILE_MODULE -fpretty-display prog.cob
49071) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49072at_status=$? at_failed=false
49073$at_check_filter
49074at_fn_diff_devnull "$at_stderr" || at_failed=:
49075at_fn_diff_devnull "$at_stdout" || at_failed=:
49076at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1983"
49077$at_failed && at_fn_log_failure
49078$at_traceon; }
49079
49080{ set +x
49081$as_echo "$at_srcdir/run_fundamental.at:1984: \$COBCRUN_DIRECT ./prog"
49082at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1984"
49083( $at_check_trace; $COBCRUN_DIRECT ./prog
49084) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49085at_status=$? at_failed=false
49086$at_check_filter
49087at_fn_diff_devnull "$at_stderr" || at_failed=:
49088echo >>"$at_stdout"; $as_echo "+0+00+0+" | \
49089  $at_diff - "$at_stdout" || at_failed=:
49090at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1984"
49091$at_failed && at_fn_log_failure
49092$at_traceon; }
49093
49094{ set +x
49095$as_echo "$at_srcdir/run_fundamental.at:1985: \$COBCRUN prog"
49096at_fn_check_prepare_dynamic "$COBCRUN prog" "run_fundamental.at:1985"
49097( $at_check_trace; $COBCRUN prog
49098) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49099at_status=$? at_failed=false
49100$at_check_filter
49101at_fn_diff_devnull "$at_stderr" || at_failed=:
49102echo >>"$at_stdout"; $as_echo "+0+00+0+" | \
49103  $at_diff - "$at_stdout" || at_failed=:
49104at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1985"
49105$at_failed && at_fn_log_failure
49106$at_traceon; }
49107
49108
49109  set +x
49110  $at_times_p && times >"$at_times_file"
49111) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49112read at_status <"$at_status_file"
49113#AT_STOP_480
49114#AT_START_481
49115at_fn_group_banner 481 'run_fundamental.at:1990' \
49116  "Context sensitive words (1)" "                    " 4
49117at_xfail=no
49118(
49119  $as_echo "481. $at_setup_line: testing $at_desc ..."
49120  $at_traceon
49121
49122
49123
49124cat >prog.cob <<'_ATEOF'
49125
49126       IDENTIFICATION   DIVISION.
49127       PROGRAM-ID.      prog.
49128       DATA             DIVISION.
49129       WORKING-STORAGE  SECTION.
49130       01  BYTE-LENGTH  PIC 9.
49131       01  X            CONSTANT AS BYTE-LENGTH OF BYTE-LENGTH.
49132       PROCEDURE        DIVISION.
49133           MOVE X TO BYTE-LENGTH.
49134           DISPLAY BYTE-LENGTH NO ADVANCING
49135           END-DISPLAY.
49136           STOP RUN.
49137_ATEOF
49138
49139
49140{ set +x
49141$as_echo "$at_srcdir/run_fundamental.at:2007: \$COMPILE prog.cob"
49142at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2007"
49143( $at_check_trace; $COMPILE prog.cob
49144) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49145at_status=$? at_failed=false
49146$at_check_filter
49147at_fn_diff_devnull "$at_stderr" || at_failed=:
49148at_fn_diff_devnull "$at_stdout" || at_failed=:
49149at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2007"
49150$at_failed && at_fn_log_failure
49151$at_traceon; }
49152
49153{ set +x
49154$as_echo "$at_srcdir/run_fundamental.at:2008: \$COBCRUN_DIRECT ./prog"
49155at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2008"
49156( $at_check_trace; $COBCRUN_DIRECT ./prog
49157) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49158at_status=$? at_failed=false
49159$at_check_filter
49160at_fn_diff_devnull "$at_stderr" || at_failed=:
49161echo >>"$at_stdout"; $as_echo "1" | \
49162  $at_diff - "$at_stdout" || at_failed=:
49163at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2008"
49164$at_failed && at_fn_log_failure
49165$at_traceon; }
49166
49167
49168  set +x
49169  $at_times_p && times >"$at_times_file"
49170) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49171read at_status <"$at_status_file"
49172#AT_STOP_481
49173#AT_START_482
49174at_fn_group_banner 482 'run_fundamental.at:2013' \
49175  "Context sensitive words (2)" "                    " 4
49176at_xfail=no
49177(
49178  $as_echo "482. $at_setup_line: testing $at_desc ..."
49179  $at_traceon
49180
49181
49182
49183cat >prog.cob <<'_ATEOF'
49184
49185       IDENTIFICATION   DIVISION.
49186       PROGRAM-ID.      prog.
49187       DATA             DIVISION.
49188       WORKING-STORAGE  SECTION.
49189       01  YYYYMMDD     PIC 9 VALUE 0.
49190       01  X            PIC X(16).
49191       PROCEDURE        DIVISION.
49192           ACCEPT X FROM DATE YYYYMMDD
49193           END-ACCEPT.
49194           DISPLAY YYYYMMDD NO ADVANCING
49195           END-DISPLAY.
49196           STOP RUN.
49197_ATEOF
49198
49199
49200{ set +x
49201$as_echo "$at_srcdir/run_fundamental.at:2031: \$COMPILE prog.cob"
49202at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2031"
49203( $at_check_trace; $COMPILE prog.cob
49204) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49205at_status=$? at_failed=false
49206$at_check_filter
49207at_fn_diff_devnull "$at_stderr" || at_failed=:
49208at_fn_diff_devnull "$at_stdout" || at_failed=:
49209at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2031"
49210$at_failed && at_fn_log_failure
49211$at_traceon; }
49212
49213{ set +x
49214$as_echo "$at_srcdir/run_fundamental.at:2032: \$COBCRUN_DIRECT ./prog"
49215at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2032"
49216( $at_check_trace; $COBCRUN_DIRECT ./prog
49217) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49218at_status=$? at_failed=false
49219$at_check_filter
49220at_fn_diff_devnull "$at_stderr" || at_failed=:
49221echo >>"$at_stdout"; $as_echo "0" | \
49222  $at_diff - "$at_stdout" || at_failed=:
49223at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2032"
49224$at_failed && at_fn_log_failure
49225$at_traceon; }
49226
49227
49228  set +x
49229  $at_times_p && times >"$at_times_file"
49230) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49231read at_status <"$at_status_file"
49232#AT_STOP_482
49233#AT_START_483
49234at_fn_group_banner 483 'run_fundamental.at:2037' \
49235  "Context sensitive words (3)" "                    " 4
49236at_xfail=no
49237(
49238  $as_echo "483. $at_setup_line: testing $at_desc ..."
49239  $at_traceon
49240
49241
49242
49243cat >prog.cob <<'_ATEOF'
49244
49245       IDENTIFICATION   DIVISION.
49246       PROGRAM-ID.      prog.
49247       DATA             DIVISION.
49248       WORKING-STORAGE  SECTION.
49249       01  YYYYDDD      PIC 9 VALUE 0.
49250       01  X            PIC X(16).
49251       PROCEDURE        DIVISION.
49252           ACCEPT X FROM DAY YYYYDDD
49253           END-ACCEPT.
49254           DISPLAY YYYYDDD NO ADVANCING
49255           END-DISPLAY.
49256           STOP RUN.
49257_ATEOF
49258
49259
49260{ set +x
49261$as_echo "$at_srcdir/run_fundamental.at:2055: \$COMPILE prog.cob"
49262at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2055"
49263( $at_check_trace; $COMPILE prog.cob
49264) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49265at_status=$? at_failed=false
49266$at_check_filter
49267at_fn_diff_devnull "$at_stderr" || at_failed=:
49268at_fn_diff_devnull "$at_stdout" || at_failed=:
49269at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2055"
49270$at_failed && at_fn_log_failure
49271$at_traceon; }
49272
49273{ set +x
49274$as_echo "$at_srcdir/run_fundamental.at:2056: \$COBCRUN_DIRECT ./prog"
49275at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2056"
49276( $at_check_trace; $COBCRUN_DIRECT ./prog
49277) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49278at_status=$? at_failed=false
49279$at_check_filter
49280at_fn_diff_devnull "$at_stderr" || at_failed=:
49281echo >>"$at_stdout"; $as_echo "0" | \
49282  $at_diff - "$at_stdout" || at_failed=:
49283at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2056"
49284$at_failed && at_fn_log_failure
49285$at_traceon; }
49286
49287
49288  set +x
49289  $at_times_p && times >"$at_times_file"
49290) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49291read at_status <"$at_status_file"
49292#AT_STOP_483
49293#AT_START_484
49294at_fn_group_banner 484 'run_fundamental.at:2061' \
49295  "Context sensitive words (4)" "                    " 4
49296at_xfail=no
49297(
49298  $as_echo "484. $at_setup_line: testing $at_desc ..."
49299  $at_traceon
49300
49301
49302
49303cat >prog.cob <<'_ATEOF'
49304
49305       IDENTIFICATION   DIVISION.
49306       PROGRAM-ID.      prog.
49307       ENVIRONMENT      DIVISION.
49308       CONFIGURATION    SECTION.
49309       REPOSITORY.
49310           FUNCTION ALL INTRINSIC.
49311       DATA             DIVISION.
49312       WORKING-STORAGE  SECTION.
49313       01  INTRINSIC    PIC 9 VALUE 0.
49314       PROCEDURE        DIVISION.
49315           DISPLAY INTRINSIC NO ADVANCING
49316           END-DISPLAY.
49317           STOP RUN.
49318_ATEOF
49319
49320
49321{ set +x
49322$as_echo "$at_srcdir/run_fundamental.at:2080: \$COMPILE prog.cob"
49323at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2080"
49324( $at_check_trace; $COMPILE prog.cob
49325) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49326at_status=$? at_failed=false
49327$at_check_filter
49328at_fn_diff_devnull "$at_stderr" || at_failed=:
49329at_fn_diff_devnull "$at_stdout" || at_failed=:
49330at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2080"
49331$at_failed && at_fn_log_failure
49332$at_traceon; }
49333
49334{ set +x
49335$as_echo "$at_srcdir/run_fundamental.at:2081: \$COBCRUN_DIRECT ./prog"
49336at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2081"
49337( $at_check_trace; $COBCRUN_DIRECT ./prog
49338) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49339at_status=$? at_failed=false
49340$at_check_filter
49341at_fn_diff_devnull "$at_stderr" || at_failed=:
49342echo >>"$at_stdout"; $as_echo "0" | \
49343  $at_diff - "$at_stdout" || at_failed=:
49344at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2081"
49345$at_failed && at_fn_log_failure
49346$at_traceon; }
49347
49348
49349  set +x
49350  $at_times_p && times >"$at_times_file"
49351) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49352read at_status <"$at_status_file"
49353#AT_STOP_484
49354#AT_START_485
49355at_fn_group_banner 485 'run_fundamental.at:2086' \
49356  "Context sensitive words (5)" "                    " 4
49357at_xfail=no
49358(
49359  $as_echo "485. $at_setup_line: testing $at_desc ..."
49360  $at_traceon
49361
49362
49363
49364cat >prog.cob <<'_ATEOF'
49365
49366       IDENTIFICATION   DIVISION.
49367       PROGRAM-ID.      prog RECURSIVE.
49368       ENVIRONMENT      DIVISION.
49369       CONFIGURATION    SECTION.
49370       DATA             DIVISION.
49371       WORKING-STORAGE  SECTION.
49372       01  RECURSIVE    PIC 9 VALUE 0.
49373       PROCEDURE        DIVISION.
49374           DISPLAY RECURSIVE NO ADVANCING
49375           END-DISPLAY.
49376           STOP RUN.
49377_ATEOF
49378
49379
49380{ set +x
49381$as_echo "$at_srcdir/run_fundamental.at:2103: \$COMPILE prog.cob"
49382at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2103"
49383( $at_check_trace; $COMPILE prog.cob
49384) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49385at_status=$? at_failed=false
49386$at_check_filter
49387at_fn_diff_devnull "$at_stderr" || at_failed=:
49388at_fn_diff_devnull "$at_stdout" || at_failed=:
49389at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2103"
49390$at_failed && at_fn_log_failure
49391$at_traceon; }
49392
49393{ set +x
49394$as_echo "$at_srcdir/run_fundamental.at:2104: \$COBCRUN_DIRECT ./prog"
49395at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2104"
49396( $at_check_trace; $COBCRUN_DIRECT ./prog
49397) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49398at_status=$? at_failed=false
49399$at_check_filter
49400at_fn_diff_devnull "$at_stderr" || at_failed=:
49401echo >>"$at_stdout"; $as_echo "0" | \
49402  $at_diff - "$at_stdout" || at_failed=:
49403at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2104"
49404$at_failed && at_fn_log_failure
49405$at_traceon; }
49406
49407
49408  set +x
49409  $at_times_p && times >"$at_times_file"
49410) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49411read at_status <"$at_status_file"
49412#AT_STOP_485
49413#AT_START_486
49414at_fn_group_banner 486 'run_fundamental.at:2109' \
49415  "Context sensitive words (6)" "                    " 4
49416at_xfail=no
49417(
49418  $as_echo "486. $at_setup_line: testing $at_desc ..."
49419  $at_traceon
49420
49421
49422
49423cat >prog.cob <<'_ATEOF'
49424
49425       IDENTIFICATION   DIVISION.
49426       PROGRAM-ID.      prog.
49427       ENVIRONMENT      DIVISION.
49428       CONFIGURATION    SECTION.
49429       DATA             DIVISION.
49430       WORKING-STORAGE  SECTION.
49431       01  NORMAL       PIC 9 VALUE 0.
49432       PROCEDURE        DIVISION.
49433           DISPLAY NORMAL NO ADVANCING *> Intentionally no period or END-DISPLAY
49434           STOP RUN NORMAL.
49435_ATEOF
49436
49437
49438{ set +x
49439$as_echo "$at_srcdir/run_fundamental.at:2125: \$COMPILE prog.cob"
49440at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2125"
49441( $at_check_trace; $COMPILE prog.cob
49442) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49443at_status=$? at_failed=false
49444$at_check_filter
49445at_fn_diff_devnull "$at_stderr" || at_failed=:
49446at_fn_diff_devnull "$at_stdout" || at_failed=:
49447at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2125"
49448$at_failed && at_fn_log_failure
49449$at_traceon; }
49450
49451{ set +x
49452$as_echo "$at_srcdir/run_fundamental.at:2126: \$COBCRUN_DIRECT ./prog"
49453at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2126"
49454( $at_check_trace; $COBCRUN_DIRECT ./prog
49455) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49456at_status=$? at_failed=false
49457$at_check_filter
49458at_fn_diff_devnull "$at_stderr" || at_failed=:
49459echo >>"$at_stdout"; $as_echo "0" | \
49460  $at_diff - "$at_stdout" || at_failed=:
49461at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2126"
49462$at_failed && at_fn_log_failure
49463$at_traceon; }
49464
49465
49466  set +x
49467  $at_times_p && times >"$at_times_file"
49468) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49469read at_status <"$at_status_file"
49470#AT_STOP_486
49471#AT_START_487
49472at_fn_group_banner 487 'run_fundamental.at:2131' \
49473  "Context sensitive words (7)" "                    " 4
49474at_xfail=no
49475(
49476  $as_echo "487. $at_setup_line: testing $at_desc ..."
49477  $at_traceon
49478
49479
49480
49481cat >prog.cob <<'_ATEOF'
49482
49483       IDENTIFICATION   DIVISION.
49484       PROGRAM-ID.      prog.
49485       ENVIRONMENT      DIVISION.
49486       CONFIGURATION    SECTION.
49487       DATA             DIVISION.
49488       WORKING-STORAGE  SECTION.
49489       01  X               PIC 9 VALUE 0.
49490       01  AWAY-FROM-ZERO  PIC 9 VALUE 0.
49491       PROCEDURE        DIVISION.
49492           COMPUTE X ROUNDED MODE AWAY-FROM-ZERO
49493                   AWAY-FROM-ZERO = 1.1
49494           END-COMPUTE
49495           DISPLAY X AWAY-FROM-ZERO NO ADVANCING
49496           END-DISPLAY.
49497           STOP RUN.
49498_ATEOF
49499
49500
49501{ set +x
49502$as_echo "$at_srcdir/run_fundamental.at:2152: \$COMPILE prog.cob"
49503at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2152"
49504( $at_check_trace; $COMPILE prog.cob
49505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49506at_status=$? at_failed=false
49507$at_check_filter
49508at_fn_diff_devnull "$at_stderr" || at_failed=:
49509at_fn_diff_devnull "$at_stdout" || at_failed=:
49510at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2152"
49511$at_failed && at_fn_log_failure
49512$at_traceon; }
49513
49514{ set +x
49515$as_echo "$at_srcdir/run_fundamental.at:2153: \$COBCRUN_DIRECT ./prog"
49516at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2153"
49517( $at_check_trace; $COBCRUN_DIRECT ./prog
49518) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49519at_status=$? at_failed=false
49520$at_check_filter
49521at_fn_diff_devnull "$at_stderr" || at_failed=:
49522echo >>"$at_stdout"; $as_echo "21" | \
49523  $at_diff - "$at_stdout" || at_failed=:
49524at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2153"
49525$at_failed && at_fn_log_failure
49526$at_traceon; }
49527
49528
49529  set +x
49530  $at_times_p && times >"$at_times_file"
49531) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49532read at_status <"$at_status_file"
49533#AT_STOP_487
49534#AT_START_488
49535at_fn_group_banner 488 'run_fundamental.at:2158' \
49536  "Context sensitive words (8)" "                    " 4
49537at_xfail=no
49538(
49539  $as_echo "488. $at_setup_line: testing $at_desc ..."
49540  $at_traceon
49541
49542
49543
49544cat >prog.cob <<'_ATEOF'
49545
49546       IDENTIFICATION   DIVISION.
49547       PROGRAM-ID.      prog.
49548       ENVIRONMENT      DIVISION.
49549       CONFIGURATION    SECTION.
49550       DATA             DIVISION.
49551       WORKING-STORAGE  SECTION.
49552       01  UNBOUNDED.
49553           03 ATTRIBUTES  PIC 9 VALUE 0.
49554       01  LOC.
49555           03 NAMESPACE   PIC 9 VALUE 1.
49556       PROCEDURE        DIVISION.
49557           DISPLAY UNBOUNDED ATTRIBUTES
49558                   NAMESPACE IN LOC
49559                   NO ADVANCING.
49560           STOP RUN.
49561_ATEOF
49562
49563
49564{ set +x
49565$as_echo "$at_srcdir/run_fundamental.at:2179: \$COMPILE -std=ibm-strict prog.cob"
49566at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict prog.cob" "run_fundamental.at:2179"
49567( $at_check_trace; $COMPILE -std=ibm-strict prog.cob
49568) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49569at_status=$? at_failed=false
49570$at_check_filter
49571at_fn_diff_devnull "$at_stderr" || at_failed=:
49572at_fn_diff_devnull "$at_stdout" || at_failed=:
49573at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2179"
49574$at_failed && at_fn_log_failure
49575$at_traceon; }
49576
49577{ set +x
49578$as_echo "$at_srcdir/run_fundamental.at:2180: \$COBCRUN_DIRECT ./prog"
49579at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2180"
49580( $at_check_trace; $COBCRUN_DIRECT ./prog
49581) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49582at_status=$? at_failed=false
49583$at_check_filter
49584at_fn_diff_devnull "$at_stderr" || at_failed=:
49585echo >>"$at_stdout"; $as_echo "001" | \
49586  $at_diff - "$at_stdout" || at_failed=:
49587at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2180"
49588$at_failed && at_fn_log_failure
49589$at_traceon; }
49590
49591
49592  set +x
49593  $at_times_p && times >"$at_times_file"
49594) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49595read at_status <"$at_status_file"
49596#AT_STOP_488
49597#AT_START_489
49598at_fn_group_banner 489 'run_fundamental.at:2185' \
49599  "ROUNDED AWAY-FROM-ZERO" "                         " 4
49600at_xfail=no
49601(
49602  $as_echo "489. $at_setup_line: testing $at_desc ..."
49603  $at_traceon
49604
49605
49606
49607cat >prog.cob <<'_ATEOF'
49608
49609       IDENTIFICATION DIVISION.
49610       PROGRAM-ID. prog.
49611       ENVIRONMENT DIVISION.
49612       DATA DIVISION.
49613       WORKING-STORAGE SECTION.
49614       01  M                PIC S9.
49615       01  N                PIC S9.
49616       01  O                PIC S9.
49617       01  P                PIC S9.
49618       01  Q                PIC S9.
49619       01  R                PIC S9.
49620       01  S                PIC S9.
49621       01  T                PIC S9.
49622       01  U                PIC S9.
49623       01  V                PIC S9.
49624       PROCEDURE DIVISION.
49625           COMPUTE M ROUNDED MODE AWAY-FROM-ZERO
49626                   = 2.49
49627           END-COMPUTE
49628           COMPUTE N ROUNDED MODE AWAY-FROM-ZERO
49629                   = -2.49
49630           END-COMPUTE
49631           COMPUTE O ROUNDED MODE AWAY-FROM-ZERO
49632                   = 2.50
49633           END-COMPUTE
49634           COMPUTE P ROUNDED MODE AWAY-FROM-ZERO
49635                   = -2.50
49636           END-COMPUTE
49637           COMPUTE Q ROUNDED MODE AWAY-FROM-ZERO
49638                   = 3.49
49639           END-COMPUTE
49640           COMPUTE R ROUNDED MODE AWAY-FROM-ZERO
49641                   = -3.49
49642           END-COMPUTE
49643           COMPUTE S ROUNDED MODE AWAY-FROM-ZERO
49644                   = 3.50
49645           END-COMPUTE
49646           COMPUTE T ROUNDED MODE AWAY-FROM-ZERO
49647                   = -3.50
49648           END-COMPUTE
49649           COMPUTE U ROUNDED MODE AWAY-FROM-ZERO
49650                   = 3.510
49651           END-COMPUTE
49652           COMPUTE V ROUNDED MODE AWAY-FROM-ZERO
49653                   = -3.510
49654           END-COMPUTE
49655           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
49656                   " " U " " V
49657               NO ADVANCING
49658           END-DISPLAY
49659           STOP RUN.
49660_ATEOF
49661
49662
49663{ set +x
49664$as_echo "$at_srcdir/run_fundamental.at:2242: \$COMPILE prog.cob"
49665at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2242"
49666( $at_check_trace; $COMPILE prog.cob
49667) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49668at_status=$? at_failed=false
49669$at_check_filter
49670at_fn_diff_devnull "$at_stderr" || at_failed=:
49671at_fn_diff_devnull "$at_stdout" || at_failed=:
49672at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2242"
49673$at_failed && at_fn_log_failure
49674$at_traceon; }
49675
49676{ set +x
49677$as_echo "$at_srcdir/run_fundamental.at:2243: \$COBCRUN_DIRECT ./prog"
49678at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2243"
49679( $at_check_trace; $COBCRUN_DIRECT ./prog
49680) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49681at_status=$? at_failed=false
49682$at_check_filter
49683at_fn_diff_devnull "$at_stderr" || at_failed=:
49684echo >>"$at_stdout"; $as_echo "+3 -3 +3 -3 +4 -4 +4 -4 +4 -4" | \
49685  $at_diff - "$at_stdout" || at_failed=:
49686at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2243"
49687$at_failed && at_fn_log_failure
49688$at_traceon; }
49689
49690
49691  set +x
49692  $at_times_p && times >"$at_times_file"
49693) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49694read at_status <"$at_status_file"
49695#AT_STOP_489
49696#AT_START_490
49697at_fn_group_banner 490 'run_fundamental.at:2248' \
49698  "ROUNDED NEAREST-AWAY-FROM-ZERO" "                 " 4
49699at_xfail=no
49700(
49701  $as_echo "490. $at_setup_line: testing $at_desc ..."
49702  $at_traceon
49703
49704
49705
49706cat >prog.cob <<'_ATEOF'
49707
49708       IDENTIFICATION DIVISION.
49709       PROGRAM-ID. prog.
49710       ENVIRONMENT DIVISION.
49711       DATA DIVISION.
49712       WORKING-STORAGE SECTION.
49713       01  M                PIC S9.
49714       01  N                PIC S9.
49715       01  O                PIC S9.
49716       01  P                PIC S9.
49717       01  Q                PIC S9.
49718       01  R                PIC S9.
49719       01  S                PIC S9.
49720       01  T                PIC S9.
49721       01  U                PIC S9.
49722       01  V                PIC S9.
49723       PROCEDURE DIVISION.
49724           COMPUTE M ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49725                   = 2.49
49726           END-COMPUTE
49727           COMPUTE N ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49728                   = -2.49
49729           END-COMPUTE
49730           COMPUTE O ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49731                   = 2.50
49732           END-COMPUTE
49733           COMPUTE P ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49734                   = -2.50
49735           END-COMPUTE
49736           COMPUTE Q ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49737                   = 3.49
49738           END-COMPUTE
49739           COMPUTE R ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49740                   = -3.49
49741           END-COMPUTE
49742           COMPUTE S ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49743                   = 3.50
49744           END-COMPUTE
49745           COMPUTE T ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49746                   = -3.50
49747           END-COMPUTE
49748           COMPUTE U ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49749                   = 3.510
49750           END-COMPUTE
49751           COMPUTE V ROUNDED MODE NEAREST-AWAY-FROM-ZERO
49752                   = -3.510
49753           END-COMPUTE
49754           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
49755                   " " U " " V
49756               NO ADVANCING
49757           END-DISPLAY
49758           STOP RUN.
49759_ATEOF
49760
49761
49762{ set +x
49763$as_echo "$at_srcdir/run_fundamental.at:2305: \$COMPILE prog.cob"
49764at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2305"
49765( $at_check_trace; $COMPILE prog.cob
49766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49767at_status=$? at_failed=false
49768$at_check_filter
49769at_fn_diff_devnull "$at_stderr" || at_failed=:
49770at_fn_diff_devnull "$at_stdout" || at_failed=:
49771at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2305"
49772$at_failed && at_fn_log_failure
49773$at_traceon; }
49774
49775{ set +x
49776$as_echo "$at_srcdir/run_fundamental.at:2306: \$COBCRUN_DIRECT ./prog"
49777at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2306"
49778( $at_check_trace; $COBCRUN_DIRECT ./prog
49779) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49780at_status=$? at_failed=false
49781$at_check_filter
49782at_fn_diff_devnull "$at_stderr" || at_failed=:
49783echo >>"$at_stdout"; $as_echo "+2 -2 +3 -3 +3 -3 +4 -4 +4 -4" | \
49784  $at_diff - "$at_stdout" || at_failed=:
49785at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2306"
49786$at_failed && at_fn_log_failure
49787$at_traceon; }
49788
49789
49790  set +x
49791  $at_times_p && times >"$at_times_file"
49792) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49793read at_status <"$at_status_file"
49794#AT_STOP_490
49795#AT_START_491
49796at_fn_group_banner 491 'run_fundamental.at:2311' \
49797  "ROUNDED NEAREST-EVEN" "                           " 4
49798at_xfail=no
49799(
49800  $as_echo "491. $at_setup_line: testing $at_desc ..."
49801  $at_traceon
49802
49803
49804
49805cat >prog.cob <<'_ATEOF'
49806
49807       IDENTIFICATION DIVISION.
49808       PROGRAM-ID. prog.
49809       ENVIRONMENT DIVISION.
49810       DATA DIVISION.
49811       WORKING-STORAGE SECTION.
49812       01  M                PIC S9.
49813       01  N                PIC S9.
49814       01  O                PIC S9.
49815       01  P                PIC S9.
49816       01  Q                PIC S9.
49817       01  R                PIC S9.
49818       01  S                PIC S9.
49819       01  T                PIC S9.
49820       01  U                PIC S9.
49821       01  V                PIC S9.
49822       PROCEDURE DIVISION.
49823           COMPUTE M ROUNDED MODE NEAREST-EVEN
49824                   = 2.49
49825           END-COMPUTE
49826           COMPUTE N ROUNDED MODE NEAREST-EVEN
49827                   = -2.49
49828           END-COMPUTE
49829           COMPUTE O ROUNDED MODE NEAREST-EVEN
49830                   = 2.50
49831           END-COMPUTE
49832           COMPUTE P ROUNDED MODE NEAREST-EVEN
49833                   = -2.50
49834           END-COMPUTE
49835           COMPUTE Q ROUNDED MODE NEAREST-EVEN
49836                   = 3.49
49837           END-COMPUTE
49838           COMPUTE R ROUNDED MODE NEAREST-EVEN
49839                   = -3.49
49840           END-COMPUTE
49841           COMPUTE S ROUNDED MODE NEAREST-EVEN
49842                   = 3.50
49843           END-COMPUTE
49844           COMPUTE T ROUNDED MODE NEAREST-EVEN
49845                   = -3.50
49846           END-COMPUTE
49847           COMPUTE U ROUNDED MODE NEAREST-EVEN
49848                   = 3.510
49849           END-COMPUTE
49850           COMPUTE V ROUNDED MODE NEAREST-EVEN
49851                   = -3.510
49852           END-COMPUTE
49853           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
49854                   " " U " " V
49855               NO ADVANCING
49856           END-DISPLAY
49857           STOP RUN.
49858_ATEOF
49859
49860
49861{ set +x
49862$as_echo "$at_srcdir/run_fundamental.at:2368: \$COMPILE prog.cob"
49863at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2368"
49864( $at_check_trace; $COMPILE prog.cob
49865) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49866at_status=$? at_failed=false
49867$at_check_filter
49868at_fn_diff_devnull "$at_stderr" || at_failed=:
49869at_fn_diff_devnull "$at_stdout" || at_failed=:
49870at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2368"
49871$at_failed && at_fn_log_failure
49872$at_traceon; }
49873
49874{ set +x
49875$as_echo "$at_srcdir/run_fundamental.at:2369: \$COBCRUN_DIRECT ./prog"
49876at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2369"
49877( $at_check_trace; $COBCRUN_DIRECT ./prog
49878) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49879at_status=$? at_failed=false
49880$at_check_filter
49881at_fn_diff_devnull "$at_stderr" || at_failed=:
49882echo >>"$at_stdout"; $as_echo "+2 -2 +2 -2 +3 -3 +4 -4 +4 -4" | \
49883  $at_diff - "$at_stdout" || at_failed=:
49884at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2369"
49885$at_failed && at_fn_log_failure
49886$at_traceon; }
49887
49888
49889  set +x
49890  $at_times_p && times >"$at_times_file"
49891) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49892read at_status <"$at_status_file"
49893#AT_STOP_491
49894#AT_START_492
49895at_fn_group_banner 492 'run_fundamental.at:2374' \
49896  "ROUNDED NEAREST-TOWARD-ZERO" "                    " 4
49897at_xfail=no
49898(
49899  $as_echo "492. $at_setup_line: testing $at_desc ..."
49900  $at_traceon
49901
49902
49903
49904cat >prog.cob <<'_ATEOF'
49905
49906       IDENTIFICATION DIVISION.
49907       PROGRAM-ID. prog.
49908       ENVIRONMENT DIVISION.
49909       DATA DIVISION.
49910       WORKING-STORAGE SECTION.
49911       01  M                PIC S9.
49912       01  N                PIC S9.
49913       01  O                PIC S9.
49914       01  P                PIC S9.
49915       01  Q                PIC S9.
49916       01  R                PIC S9.
49917       01  S                PIC S9.
49918       01  T                PIC S9.
49919       01  U                PIC S9.
49920       01  V                PIC S9.
49921       PROCEDURE DIVISION.
49922           COMPUTE M ROUNDED MODE NEAREST-TOWARD-ZERO
49923                   = 2.49
49924           END-COMPUTE
49925           COMPUTE N ROUNDED MODE NEAREST-TOWARD-ZERO
49926                   = -2.49
49927           END-COMPUTE
49928           COMPUTE O ROUNDED MODE NEAREST-TOWARD-ZERO
49929                   = 2.50
49930           END-COMPUTE
49931           COMPUTE P ROUNDED MODE NEAREST-TOWARD-ZERO
49932                   = -2.50
49933           END-COMPUTE
49934           COMPUTE Q ROUNDED MODE NEAREST-TOWARD-ZERO
49935                   = 3.49
49936           END-COMPUTE
49937           COMPUTE R ROUNDED MODE NEAREST-TOWARD-ZERO
49938                   = -3.49
49939           END-COMPUTE
49940           COMPUTE S ROUNDED MODE NEAREST-TOWARD-ZERO
49941                   = 3.50
49942           END-COMPUTE
49943           COMPUTE T ROUNDED MODE NEAREST-TOWARD-ZERO
49944                   = -3.50
49945           END-COMPUTE
49946           COMPUTE U ROUNDED MODE NEAREST-TOWARD-ZERO
49947                   = 3.510
49948           END-COMPUTE
49949           COMPUTE V ROUNDED MODE NEAREST-TOWARD-ZERO
49950                   = -3.510
49951           END-COMPUTE
49952           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
49953                   " " U " " V
49954               NO ADVANCING
49955           END-DISPLAY
49956           STOP RUN.
49957_ATEOF
49958
49959
49960{ set +x
49961$as_echo "$at_srcdir/run_fundamental.at:2431: \$COMPILE prog.cob"
49962at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2431"
49963( $at_check_trace; $COMPILE prog.cob
49964) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49965at_status=$? at_failed=false
49966$at_check_filter
49967at_fn_diff_devnull "$at_stderr" || at_failed=:
49968at_fn_diff_devnull "$at_stdout" || at_failed=:
49969at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2431"
49970$at_failed && at_fn_log_failure
49971$at_traceon; }
49972
49973{ set +x
49974$as_echo "$at_srcdir/run_fundamental.at:2432: \$COBCRUN_DIRECT ./prog"
49975at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2432"
49976( $at_check_trace; $COBCRUN_DIRECT ./prog
49977) >>"$at_stdout" 2>>"$at_stderr" 5>&-
49978at_status=$? at_failed=false
49979$at_check_filter
49980at_fn_diff_devnull "$at_stderr" || at_failed=:
49981echo >>"$at_stdout"; $as_echo "+2 -2 +2 -2 +3 -3 +3 -3 +4 -4" | \
49982  $at_diff - "$at_stdout" || at_failed=:
49983at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2432"
49984$at_failed && at_fn_log_failure
49985$at_traceon; }
49986
49987
49988  set +x
49989  $at_times_p && times >"$at_times_file"
49990) 5>&1 2>&1 7>&- | eval $at_tee_pipe
49991read at_status <"$at_status_file"
49992#AT_STOP_492
49993#AT_START_493
49994at_fn_group_banner 493 'run_fundamental.at:2437' \
49995  "ROUNDED TOWARD-GREATER" "                         " 4
49996at_xfail=no
49997(
49998  $as_echo "493. $at_setup_line: testing $at_desc ..."
49999  $at_traceon
50000
50001
50002
50003cat >prog.cob <<'_ATEOF'
50004
50005       IDENTIFICATION DIVISION.
50006       PROGRAM-ID. prog.
50007       ENVIRONMENT DIVISION.
50008       DATA DIVISION.
50009       WORKING-STORAGE SECTION.
50010       01  M                PIC S9.
50011       01  N                PIC S9.
50012       01  O                PIC S9.
50013       01  P                PIC S9.
50014       01  Q                PIC S9.
50015       01  R                PIC S9.
50016       01  S                PIC S9.
50017       01  T                PIC S9.
50018       01  U                PIC S9.
50019       01  V                PIC S9.
50020       PROCEDURE DIVISION.
50021           COMPUTE M ROUNDED MODE TOWARD-GREATER
50022                   = 2.49
50023           END-COMPUTE
50024           COMPUTE N ROUNDED MODE TOWARD-GREATER
50025                   = -2.49
50026           END-COMPUTE
50027           COMPUTE O ROUNDED MODE TOWARD-GREATER
50028                   = 2.50
50029           END-COMPUTE
50030           COMPUTE P ROUNDED MODE TOWARD-GREATER
50031                   = -2.50
50032           END-COMPUTE
50033           COMPUTE Q ROUNDED MODE TOWARD-GREATER
50034                   = 3.49
50035           END-COMPUTE
50036           COMPUTE R ROUNDED MODE TOWARD-GREATER
50037                   = -3.49
50038           END-COMPUTE
50039           COMPUTE S ROUNDED MODE TOWARD-GREATER
50040                   = 3.50
50041           END-COMPUTE
50042           COMPUTE T ROUNDED MODE TOWARD-GREATER
50043                   = -3.50
50044           END-COMPUTE
50045           COMPUTE U ROUNDED MODE TOWARD-GREATER
50046                   = 3.510
50047           END-COMPUTE
50048           COMPUTE V ROUNDED MODE TOWARD-GREATER
50049                   = -3.510
50050           END-COMPUTE
50051           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
50052                   " " U " " V
50053               NO ADVANCING
50054           END-DISPLAY
50055           STOP RUN.
50056_ATEOF
50057
50058
50059{ set +x
50060$as_echo "$at_srcdir/run_fundamental.at:2494: \$COMPILE prog.cob"
50061at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2494"
50062( $at_check_trace; $COMPILE prog.cob
50063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50064at_status=$? at_failed=false
50065$at_check_filter
50066at_fn_diff_devnull "$at_stderr" || at_failed=:
50067at_fn_diff_devnull "$at_stdout" || at_failed=:
50068at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2494"
50069$at_failed && at_fn_log_failure
50070$at_traceon; }
50071
50072{ set +x
50073$as_echo "$at_srcdir/run_fundamental.at:2495: \$COBCRUN_DIRECT ./prog"
50074at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2495"
50075( $at_check_trace; $COBCRUN_DIRECT ./prog
50076) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50077at_status=$? at_failed=false
50078$at_check_filter
50079at_fn_diff_devnull "$at_stderr" || at_failed=:
50080echo >>"$at_stdout"; $as_echo "+3 -2 +3 -2 +4 -3 +4 -3 +4 -3" | \
50081  $at_diff - "$at_stdout" || at_failed=:
50082at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2495"
50083$at_failed && at_fn_log_failure
50084$at_traceon; }
50085
50086
50087  set +x
50088  $at_times_p && times >"$at_times_file"
50089) 5>&1 2>&1 7>&- | eval $at_tee_pipe
50090read at_status <"$at_status_file"
50091#AT_STOP_493
50092#AT_START_494
50093at_fn_group_banner 494 'run_fundamental.at:2500' \
50094  "ROUNDED TOWARD-LESSER" "                          " 4
50095at_xfail=no
50096(
50097  $as_echo "494. $at_setup_line: testing $at_desc ..."
50098  $at_traceon
50099
50100
50101
50102cat >prog.cob <<'_ATEOF'
50103
50104       IDENTIFICATION DIVISION.
50105       PROGRAM-ID. prog.
50106       ENVIRONMENT DIVISION.
50107       DATA DIVISION.
50108       WORKING-STORAGE SECTION.
50109       01  M                PIC S9.
50110       01  N                PIC S9.
50111       01  O                PIC S9.
50112       01  P                PIC S9.
50113       01  Q                PIC S9.
50114       01  R                PIC S9.
50115       01  S                PIC S9.
50116       01  T                PIC S9.
50117       01  U                PIC S9.
50118       01  V                PIC S9.
50119       PROCEDURE DIVISION.
50120           COMPUTE M ROUNDED MODE TOWARD-LESSER
50121                   = 2.49
50122           END-COMPUTE
50123           COMPUTE N ROUNDED MODE TOWARD-LESSER
50124                   = -2.49
50125           END-COMPUTE
50126           COMPUTE O ROUNDED MODE TOWARD-LESSER
50127                   = 2.50
50128           END-COMPUTE
50129           COMPUTE P ROUNDED MODE TOWARD-LESSER
50130                   = -2.50
50131           END-COMPUTE
50132           COMPUTE Q ROUNDED MODE TOWARD-LESSER
50133                   = 3.49
50134           END-COMPUTE
50135           COMPUTE R ROUNDED MODE TOWARD-LESSER
50136                   = -3.49
50137           END-COMPUTE
50138           COMPUTE S ROUNDED MODE TOWARD-LESSER
50139                   = 3.50
50140           END-COMPUTE
50141           COMPUTE T ROUNDED MODE TOWARD-LESSER
50142                   = -3.50
50143           END-COMPUTE
50144           COMPUTE U ROUNDED MODE TOWARD-LESSER
50145                   = 3.510
50146           END-COMPUTE
50147           COMPUTE V ROUNDED MODE TOWARD-LESSER
50148                   = -3.510
50149           END-COMPUTE
50150           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
50151                   " " U " " V
50152               NO ADVANCING
50153           END-DISPLAY
50154           STOP RUN.
50155_ATEOF
50156
50157
50158{ set +x
50159$as_echo "$at_srcdir/run_fundamental.at:2557: \$COMPILE prog.cob"
50160at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2557"
50161( $at_check_trace; $COMPILE prog.cob
50162) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50163at_status=$? at_failed=false
50164$at_check_filter
50165at_fn_diff_devnull "$at_stderr" || at_failed=:
50166at_fn_diff_devnull "$at_stdout" || at_failed=:
50167at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2557"
50168$at_failed && at_fn_log_failure
50169$at_traceon; }
50170
50171{ set +x
50172$as_echo "$at_srcdir/run_fundamental.at:2558: \$COBCRUN_DIRECT ./prog"
50173at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2558"
50174( $at_check_trace; $COBCRUN_DIRECT ./prog
50175) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50176at_status=$? at_failed=false
50177$at_check_filter
50178at_fn_diff_devnull "$at_stderr" || at_failed=:
50179echo >>"$at_stdout"; $as_echo "+2 -3 +2 -3 +3 -4 +3 -4 +3 -4" | \
50180  $at_diff - "$at_stdout" || at_failed=:
50181at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2558"
50182$at_failed && at_fn_log_failure
50183$at_traceon; }
50184
50185
50186  set +x
50187  $at_times_p && times >"$at_times_file"
50188) 5>&1 2>&1 7>&- | eval $at_tee_pipe
50189read at_status <"$at_status_file"
50190#AT_STOP_494
50191#AT_START_495
50192at_fn_group_banner 495 'run_fundamental.at:2563' \
50193  "ROUNDED TRUNCATION" "                             " 4
50194at_xfail=no
50195(
50196  $as_echo "495. $at_setup_line: testing $at_desc ..."
50197  $at_traceon
50198
50199
50200
50201cat >prog.cob <<'_ATEOF'
50202
50203       IDENTIFICATION DIVISION.
50204       PROGRAM-ID. prog.
50205       ENVIRONMENT DIVISION.
50206       DATA DIVISION.
50207       WORKING-STORAGE SECTION.
50208       01  M                PIC S9.
50209       01  N                PIC S9.
50210       01  O                PIC S9.
50211       01  P                PIC S9.
50212       01  Q                PIC S9.
50213       01  R                PIC S9.
50214       01  S                PIC S9.
50215       01  T                PIC S9.
50216       01  U                PIC S9.
50217       01  V                PIC S9.
50218       PROCEDURE DIVISION.
50219           COMPUTE M ROUNDED MODE TRUNCATION
50220                   = 2.49
50221           END-COMPUTE
50222           COMPUTE N ROUNDED MODE TRUNCATION
50223                   = -2.49
50224           END-COMPUTE
50225           COMPUTE O ROUNDED MODE TRUNCATION
50226                   = 2.50
50227           END-COMPUTE
50228           COMPUTE P ROUNDED MODE TRUNCATION
50229                   = -2.50
50230           END-COMPUTE
50231           COMPUTE Q ROUNDED MODE TRUNCATION
50232                   = 3.49
50233           END-COMPUTE
50234           COMPUTE R ROUNDED MODE TRUNCATION
50235                   = -3.49
50236           END-COMPUTE
50237           COMPUTE S ROUNDED MODE TRUNCATION
50238                   = 3.50
50239           END-COMPUTE
50240           COMPUTE T ROUNDED MODE TRUNCATION
50241                   = -3.50
50242           END-COMPUTE
50243           COMPUTE U ROUNDED MODE TRUNCATION
50244                   = 3.510
50245           END-COMPUTE
50246           COMPUTE V ROUNDED MODE TRUNCATION
50247                   = -3.510
50248           END-COMPUTE
50249           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
50250                   " " U " " V
50251               NO ADVANCING
50252           END-DISPLAY
50253           STOP RUN.
50254_ATEOF
50255
50256
50257{ set +x
50258$as_echo "$at_srcdir/run_fundamental.at:2620: \$COMPILE prog.cob"
50259at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2620"
50260( $at_check_trace; $COMPILE prog.cob
50261) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50262at_status=$? at_failed=false
50263$at_check_filter
50264at_fn_diff_devnull "$at_stderr" || at_failed=:
50265at_fn_diff_devnull "$at_stdout" || at_failed=:
50266at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2620"
50267$at_failed && at_fn_log_failure
50268$at_traceon; }
50269
50270{ set +x
50271$as_echo "$at_srcdir/run_fundamental.at:2621: \$COBCRUN_DIRECT ./prog"
50272at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2621"
50273( $at_check_trace; $COBCRUN_DIRECT ./prog
50274) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50275at_status=$? at_failed=false
50276$at_check_filter
50277at_fn_diff_devnull "$at_stderr" || at_failed=:
50278echo >>"$at_stdout"; $as_echo "+2 -2 +2 -2 +3 -3 +3 -3 +3 -3" | \
50279  $at_diff - "$at_stdout" || at_failed=:
50280at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2621"
50281$at_failed && at_fn_log_failure
50282$at_traceon; }
50283
50284
50285  set +x
50286  $at_times_p && times >"$at_times_file"
50287) 5>&1 2>&1 7>&- | eval $at_tee_pipe
50288read at_status <"$at_status_file"
50289#AT_STOP_495
50290#AT_START_496
50291at_fn_group_banner 496 'run_fundamental.at:2626' \
50292  "Numeric operations (1)" "                         " 4
50293at_xfail=no
50294(
50295  $as_echo "496. $at_setup_line: testing $at_desc ..."
50296  $at_traceon
50297
50298
50299
50300cat >prog.cob <<'_ATEOF'
50301
50302       IDENTIFICATION   DIVISION.
50303       PROGRAM-ID.      prog.
50304       DATA             DIVISION.
50305       WORKING-STORAGE  SECTION.
50306       01  X            PIC S9V9.
50307       01  Y            PIC S9V9 COMP-3.
50308       PROCEDURE        DIVISION.
50309           MOVE -0.1  TO X.
50310           ADD 1      TO X.
50311           IF X NOT = 0.9
50312              DISPLAY X
50313              END-DISPLAY
50314           END-IF.
50315           MOVE  0.1  TO X.
50316           SUBTRACT 1 FROM X.
50317           IF X NOT = -0.9
50318              DISPLAY X
50319              END-DISPLAY
50320           END-IF.
50321           MOVE -0.1 TO Y.
50322           ADD 1     TO Y.
50323           IF Y NOT = 0.9
50324              DISPLAY Y
50325              END-DISPLAY
50326           END-IF.
50327           MOVE  0.1  TO Y.
50328           SUBTRACT 1 FROM Y.
50329           IF Y NOT = -0.9
50330              DISPLAY Y
50331              END-DISPLAY
50332           END-IF.
50333           STOP RUN.
50334_ATEOF
50335
50336
50337{ set +x
50338$as_echo "$at_srcdir/run_fundamental.at:2664: \$COMPILE prog.cob"
50339at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2664"
50340( $at_check_trace; $COMPILE prog.cob
50341) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50342at_status=$? at_failed=false
50343$at_check_filter
50344at_fn_diff_devnull "$at_stderr" || at_failed=:
50345at_fn_diff_devnull "$at_stdout" || at_failed=:
50346at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2664"
50347$at_failed && at_fn_log_failure
50348$at_traceon; }
50349
50350{ set +x
50351$as_echo "$at_srcdir/run_fundamental.at:2665: \$COBCRUN_DIRECT ./prog"
50352at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2665"
50353( $at_check_trace; $COBCRUN_DIRECT ./prog
50354) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50355at_status=$? at_failed=false
50356$at_check_filter
50357at_fn_diff_devnull "$at_stderr" || at_failed=:
50358at_fn_diff_devnull "$at_stdout" || at_failed=:
50359at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2665"
50360$at_failed && at_fn_log_failure
50361$at_traceon; }
50362
50363
50364  set +x
50365  $at_times_p && times >"$at_times_file"
50366) 5>&1 2>&1 7>&- | eval $at_tee_pipe
50367read at_status <"$at_status_file"
50368#AT_STOP_496
50369#AT_START_497
50370at_fn_group_banner 497 'run_fundamental.at:2670' \
50371  "Numeric operations (2)" "                         " 4
50372at_xfail=no
50373(
50374  $as_echo "497. $at_setup_line: testing $at_desc ..."
50375  $at_traceon
50376
50377
50378
50379cat >prog.cob <<'_ATEOF'
50380
50381       IDENTIFICATION   DIVISION.
50382       PROGRAM-ID.      prog.
50383       DATA             DIVISION.
50384       WORKING-STORAGE  SECTION.
50385       01  FIELD        PIC S9(1)V9(1).
50386       01  FELD2        PIC S9(5)V9(5).
50387       01  FELD3        PIC 9(1)V9(1).
50388       01  FELD4        PIC S9(1).
50389       PROCEDURE        DIVISION.
50390           MOVE 0.2 TO FIELD
50391           ADD 1 TO FIELD
50392           IF FIELD  NOT = 1.2
50393              DISPLAY "Test  1 " FIELD
50394              END-DISPLAY
50395           END-IF.
50396
50397           MOVE 0.2 TO FIELD
50398           ADD -1 TO FIELD
50399           IF FIELD  NOT = -0.8
50400              DISPLAY "Test  2 " FIELD
50401              END-DISPLAY
50402           END-IF.
50403
50404           MOVE -0.2 TO FIELD
50405           ADD 1 TO FIELD
50406           IF FIELD  NOT = 0.8
50407              DISPLAY "Test  3 " FIELD
50408              END-DISPLAY
50409           END-IF.
50410
50411           MOVE -0.2 TO FIELD
50412           ADD -1 TO FIELD
50413           IF FIELD  NOT = -1.2
50414              DISPLAY "Test  4 " FIELD
50415              END-DISPLAY
50416           END-IF.
50417
50418           MOVE 0.2 TO FIELD
50419           SUBTRACT 1 FROM FIELD
50420           IF FIELD  NOT = -0.8
50421              DISPLAY "Test  5 " FIELD
50422              END-DISPLAY
50423           END-IF.
50424
50425           MOVE 0.2 TO FIELD
50426           SUBTRACT -1 FROM FIELD
50427           IF FIELD  NOT = 1.2
50428              DISPLAY "Test  6 " FIELD
50429              END-DISPLAY
50430           END-IF.
50431
50432           MOVE -0.2 TO FIELD
50433           SUBTRACT 1 FROM FIELD
50434           IF FIELD  NOT = -1.2
50435              DISPLAY "Test  7 " FIELD
50436              END-DISPLAY
50437           END-IF.
50438
50439           MOVE -0.2 TO FIELD
50440           SUBTRACT -1 FROM FIELD
50441           IF FIELD  NOT = 0.8
50442              DISPLAY "Test  8 " FIELD
50443              END-DISPLAY
50444           END-IF.
50445
50446           MOVE 0.2 TO FELD2
50447           ADD 1 TO FELD2
50448           IF FELD2  NOT = 1.2
50449              DISPLAY "Test  9 " FELD2
50450              END-DISPLAY
50451           END-IF.
50452
50453           MOVE 0.2 TO FELD2
50454           ADD -1 TO FELD2
50455           IF FELD2  NOT = -0.8
50456              DISPLAY "Test 10 " FELD2
50457              END-DISPLAY
50458           END-IF.
50459
50460           MOVE -0.2 TO FELD2
50461           ADD 1 TO FELD2
50462           IF FELD2  NOT = 0.8
50463              DISPLAY "Test 11 " FELD2
50464              END-DISPLAY
50465           END-IF.
50466
50467           MOVE -0.2 TO FELD2
50468           ADD -1 TO FELD2
50469           IF FELD2  NOT = -1.2
50470              DISPLAY "Test 12 " FELD2
50471              END-DISPLAY
50472           END-IF.
50473
50474           MOVE 0.2 TO FELD2
50475           SUBTRACT 1 FROM FELD2
50476           IF FELD2  NOT = -0.8
50477              DISPLAY "Test 13 " FELD2
50478              END-DISPLAY
50479           END-IF.
50480
50481           MOVE 0.2 TO FELD2
50482           SUBTRACT -1 FROM FELD2
50483           IF FELD2  NOT = 1.2
50484              DISPLAY "Test 14 " FELD2
50485              END-DISPLAY
50486           END-IF.
50487
50488           MOVE -0.2 TO FELD2
50489           SUBTRACT 1 FROM FELD2
50490           IF FELD2  NOT = -1.2
50491              DISPLAY "Test 15 " FELD2
50492              END-DISPLAY
50493           END-IF.
50494
50495           MOVE -0.2 TO FELD2
50496           SUBTRACT -1 FROM FELD2
50497           IF FELD2  NOT = 0.8
50498              DISPLAY "Test 16 " FELD2
50499              END-DISPLAY
50500           END-IF.
50501
50502           MOVE 0.2 TO FELD3
50503           ADD 1 TO FELD3
50504           IF FELD3  NOT = 1.2
50505              DISPLAY "Test 17 " FELD3
50506              END-DISPLAY
50507           END-IF.
50508
50509           MOVE 0.2 TO FELD3
50510           ADD -1 TO FELD3
50511           IF FELD3  NOT = 0.8
50512              DISPLAY "Test 18 " FELD3
50513              END-DISPLAY
50514           END-IF.
50515
50516           MOVE -0.2 TO FELD3
50517           ADD 1 TO FELD3
50518           IF FELD3  NOT = 1.2
50519              DISPLAY "Test 19 " FELD3
50520              END-DISPLAY
50521           END-IF.
50522
50523           MOVE -0.2 TO FELD3
50524           ADD -1 TO FELD3
50525           IF FELD3  NOT = 0.8
50526              DISPLAY "Test 20 " FELD3
50527              END-DISPLAY
50528           END-IF.
50529
50530           MOVE 0.2 TO FELD3
50531           SUBTRACT 1 FROM FELD3
50532           IF FELD3  NOT = 0.8
50533              DISPLAY "Test 21 " FELD3
50534              END-DISPLAY
50535           END-IF.
50536
50537           MOVE 0.2 TO FELD3
50538           SUBTRACT -1 FROM FELD3
50539           IF FELD3  NOT = 1.2
50540              DISPLAY "Test 22 " FELD3
50541              END-DISPLAY
50542           END-IF.
50543
50544           MOVE -0.2 TO FELD3
50545           SUBTRACT 1 FROM FELD3
50546           IF FELD3  NOT = 0.8
50547              DISPLAY "Test 23 " FELD3
50548              END-DISPLAY
50549           END-IF.
50550
50551           MOVE -0.2 TO FELD3
50552           SUBTRACT -1 FROM FELD3
50553           IF FELD3  NOT = 1.2
50554              DISPLAY "Test 24 " FELD3
50555              END-DISPLAY
50556           END-IF.
50557
50558           MOVE 2 TO FELD4
50559           ADD 1 TO FELD4
50560           IF FELD4  NOT = 3
50561              DISPLAY "Test 25 " FELD4
50562              END-DISPLAY
50563           END-IF.
50564
50565           MOVE 2 TO FELD4
50566           ADD -1 TO FELD4
50567           IF FELD4  NOT = 1
50568              DISPLAY "Test 26 " FELD4
50569              END-DISPLAY
50570           END-IF.
50571
50572           MOVE -2 TO FELD4
50573           ADD 1 TO FELD4
50574           IF FELD4  NOT = -1
50575              DISPLAY "Test 27 " FELD4
50576              END-DISPLAY
50577           END-IF.
50578
50579           MOVE -2 TO FELD4
50580           ADD -1 TO FELD4
50581           IF FELD4  NOT = -3
50582              DISPLAY "Test 28 " FELD4
50583              END-DISPLAY
50584           END-IF.
50585
50586           MOVE 2 TO FELD4
50587           SUBTRACT 1 FROM FELD4
50588           IF FELD4  NOT = 1
50589              DISPLAY "Test 29 " FELD4
50590              END-DISPLAY
50591           END-IF.
50592
50593           MOVE 2 TO FELD4
50594           SUBTRACT -1 FROM FELD4
50595           IF FELD4  NOT = 3
50596              DISPLAY "Test 30 " FELD4
50597              END-DISPLAY
50598           END-IF.
50599
50600           MOVE -2 TO FELD4
50601           SUBTRACT 1 FROM FELD4
50602           IF FELD4  NOT = -3
50603              DISPLAY "Test 31 " FELD4
50604              END-DISPLAY
50605           END-IF.
50606
50607           MOVE -2 TO FELD4
50608           SUBTRACT -1 FROM FELD4
50609           IF FELD4  NOT = -1
50610              DISPLAY "Test 32 " FELD4
50611              END-DISPLAY
50612           END-IF.
50613
50614           MOVE 1 TO FELD4
50615           ADD 2 TO FELD4
50616           IF FELD4  NOT = 3
50617              DISPLAY "Test 33 " FELD4
50618              END-DISPLAY
50619           END-IF.
50620
50621           MOVE 1 TO FELD4
50622           ADD -2 TO FELD4
50623           IF FELD4  NOT = -1
50624              DISPLAY "Test 34 " FELD4
50625              END-DISPLAY
50626           END-IF.
50627
50628           MOVE -1 TO FELD4
50629           ADD 2 TO FELD4
50630           IF FELD4  NOT = 1
50631              DISPLAY "Test 35 " FELD4
50632              END-DISPLAY
50633           END-IF.
50634
50635           MOVE -1 TO FELD4
50636           ADD -2 TO FELD4
50637           IF FELD4  NOT = -3
50638              DISPLAY "Test 36 " FELD4
50639              END-DISPLAY
50640           END-IF.
50641
50642           MOVE 1 TO FELD4
50643           SUBTRACT 2 FROM FELD4
50644           IF FELD4  NOT = -1
50645              DISPLAY "Test 37 " FELD4
50646              END-DISPLAY
50647           END-IF.
50648
50649           MOVE 1 TO FELD4
50650           SUBTRACT -2 FROM FELD4
50651           IF FELD4  NOT = 3
50652              DISPLAY "Test 38 " FELD4
50653              END-DISPLAY
50654           END-IF.
50655
50656           MOVE -1 TO FELD4
50657           SUBTRACT 2 FROM FELD4
50658           IF FELD4  NOT = -3
50659              DISPLAY "Test 39 " FELD4
50660              END-DISPLAY
50661           END-IF.
50662
50663           MOVE -1 TO FELD4
50664           SUBTRACT -2 FROM FELD4
50665           IF FELD4  NOT = 1
50666              DISPLAY "Test 40 " FELD4
50667              END-DISPLAY
50668           END-IF.
50669           GOBACK.
50670_ATEOF
50671
50672
50673{ set +x
50674$as_echo "$at_srcdir/run_fundamental.at:2965: \$COMPILE prog.cob"
50675at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2965"
50676( $at_check_trace; $COMPILE prog.cob
50677) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50678at_status=$? at_failed=false
50679$at_check_filter
50680echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
50681prog.cob:144: warning: ignoring sign
50682prog.cob:165: warning: ignoring sign
50683prog.cob:172: warning: ignoring sign
50684" | \
50685  $at_diff - "$at_stderr" || at_failed=:
50686at_fn_diff_devnull "$at_stdout" || at_failed=:
50687at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2965"
50688$at_failed && at_fn_log_failure
50689$at_traceon; }
50690
50691{ set +x
50692$as_echo "$at_srcdir/run_fundamental.at:2971: \$COBCRUN_DIRECT ./prog"
50693at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2971"
50694( $at_check_trace; $COBCRUN_DIRECT ./prog
50695) >>"$at_stdout" 2>>"$at_stderr" 5>&-
50696at_status=$? at_failed=false
50697$at_check_filter
50698at_fn_diff_devnull "$at_stderr" || at_failed=:
50699at_fn_diff_devnull "$at_stdout" || at_failed=:
50700at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2971"
50701$at_failed && at_fn_log_failure
50702$at_traceon; }
50703
50704
50705  set +x
50706  $at_times_p && times >"$at_times_file"
50707) 5>&1 2>&1 7>&- | eval $at_tee_pipe
50708read at_status <"$at_status_file"
50709#AT_STOP_497
50710#AT_START_498
50711at_fn_group_banner 498 'run_fundamental.at:2976' \
50712  "Numeric operations (3)" "                         " 4
50713at_xfail=no
50714(
50715  $as_echo "498. $at_setup_line: testing $at_desc ..."
50716  $at_traceon
50717
50718
50719
50720cat >prog.cob <<'_ATEOF'
50721
50722       IDENTIFICATION   DIVISION.
50723       PROGRAM-ID.      prog.
50724       DATA             DIVISION.
50725       WORKING-STORAGE  SECTION.
50726       01  FIELD        PIC S9(1)V9(1) COMP-3.
50727       01  FELD2        PIC S9(5)V9(5) COMP-3.
50728       01  FELD3        PIC 9(1)V9(1)  COMP-3.
50729       01  FELD4        PIC S9(1)      COMP-3.
50730       PROCEDURE        DIVISION.
50731           MOVE 0.2 TO FIELD
50732           ADD 1 TO FIELD
50733           IF FIELD  NOT = 1.2
50734              DISPLAY "Test  1 " FIELD
50735              END-DISPLAY
50736           END-IF.
50737
50738           MOVE 0.2 TO FIELD
50739           ADD -1 TO FIELD
50740           IF FIELD  NOT = -0.8
50741              DISPLAY "Test  2 " FIELD
50742              END-DISPLAY
50743           END-IF.
50744
50745           MOVE -0.2 TO FIELD
50746           ADD 1 TO FIELD
50747           IF FIELD  NOT = 0.8
50748              DISPLAY "Test  3 " FIELD
50749              END-DISPLAY
50750           END-IF.
50751
50752           MOVE -0.2 TO FIELD
50753           ADD -1 TO FIELD
50754           IF FIELD  NOT = -1.2
50755              DISPLAY "Test  4 " FIELD
50756              END-DISPLAY
50757           END-IF.
50758
50759           MOVE 0.2 TO FIELD
50760           SUBTRACT 1 FROM FIELD
50761           IF FIELD  NOT = -0.8
50762              DISPLAY "Test  5 " FIELD
50763              END-DISPLAY
50764           END-IF.
50765
50766           MOVE 0.2 TO FIELD
50767           SUBTRACT -1 FROM FIELD
50768           IF FIELD  NOT = 1.2
50769              DISPLAY "Test  6 " FIELD
50770              END-DISPLAY
50771           END-IF.
50772
50773           MOVE -0.2 TO FIELD
50774           SUBTRACT 1 FROM FIELD
50775           IF FIELD  NOT = -1.2
50776              DISPLAY "Test  7 " FIELD
50777              END-DISPLAY
50778           END-IF.
50779
50780           MOVE -0.2 TO FIELD
50781           SUBTRACT -1 FROM FIELD
50782           IF FIELD  NOT = 0.8
50783              DISPLAY "Test  8 " FIELD
50784              END-DISPLAY
50785           END-IF.
50786
50787           MOVE 0.2 TO FELD2
50788           ADD 1 TO FELD2
50789           IF FELD2  NOT = 1.2
50790              DISPLAY "Test  9 " FELD2
50791              END-DISPLAY
50792           END-IF.
50793
50794           MOVE 0.2 TO FELD2
50795           ADD -1 TO FELD2
50796           IF FELD2  NOT = -0.8
50797              DISPLAY "Test 10 " FELD2
50798              END-DISPLAY
50799           END-IF.
50800
50801           MOVE -0.2 TO FELD2
50802           ADD 1 TO FELD2
50803           IF FELD2  NOT = 0.8
50804              DISPLAY "Test 11 " FELD2
50805              END-DISPLAY
50806           END-IF.
50807
50808           MOVE -0.2 TO FELD2
50809           ADD -1 TO FELD2
50810           IF FELD2  NOT = -1.2
50811              DISPLAY "Test 12 " FELD2
50812              END-DISPLAY
50813           END-IF.
50814
50815           MOVE 0.2 TO FELD2
50816           SUBTRACT 1 FROM FELD2
50817           IF FELD2  NOT = -0.8
50818              DISPLAY "Test 13 " FELD2
50819              END-DISPLAY
50820           END-IF.
50821
50822           MOVE 0.2 TO FELD2
50823           SUBTRACT -1 FROM FELD2
50824           IF FELD2  NOT = 1.2
50825              DISPLAY "Test 14 " FELD2
50826              END-DISPLAY
50827           END-IF.
50828
50829           MOVE -0.2 TO FELD2
50830           SUBTRACT 1 FROM FELD2
50831           IF FELD2  NOT = -1.2
50832              DISPLAY "Test 15 " FELD2
50833              END-DISPLAY
50834           END-IF.
50835
50836           MOVE -0.2 TO FELD2
50837           SUBTRACT -1 FROM FELD2
50838           IF FELD2  NOT = 0.8
50839              DISPLAY "Test 16 " FELD2
50840              END-DISPLAY
50841           END-IF.
50842
50843           MOVE 0.2 TO FELD3
50844           ADD 1 TO FELD3
50845           IF FELD3  NOT = 1.2
50846              DISPLAY "Test 17 " FELD3
50847              END-DISPLAY
50848           END-IF.
50849
50850           MOVE 0.2 TO FELD3
50851           ADD -1 TO FELD3
50852           IF FELD3  NOT = 0.8
50853              DISPLAY "Test 18 " FELD3
50854              END-DISPLAY
50855           END-IF.
50856
50857           MOVE -0.2 TO FELD3
50858           ADD 1 TO FELD3
50859           IF FELD3  NOT = 1.2
50860              DISPLAY "Test 19 " FELD3
50861              END-DISPLAY
50862           END-IF.
50863
50864           MOVE -0.2 TO FELD3
50865           ADD -1 TO FELD3
50866           IF FELD3  NOT = 0.8
50867              DISPLAY "Test 20 " FELD3
50868              END-DISPLAY
50869           END-IF.
50870
50871           MOVE 0.2 TO FELD3
50872           SUBTRACT 1 FROM FELD3
50873           IF FELD3  NOT = 0.8
50874              DISPLAY "Test 21 " FELD3
50875              END-DISPLAY
50876           END-IF.
50877
50878           MOVE 0.2 TO FELD3
50879           SUBTRACT -1 FROM FELD3
50880           IF FELD3  NOT = 1.2
50881              DISPLAY "Test 22 " FELD3
50882              END-DISPLAY
50883           END-IF.
50884
50885           MOVE -0.2 TO FELD3
50886           SUBTRACT 1 FROM FELD3
50887           IF FELD3  NOT = 0.8
50888              DISPLAY "Test 23 " FELD3
50889              END-DISPLAY
50890           END-IF.
50891
50892           MOVE -0.2 TO FELD3
50893           SUBTRACT -1 FROM FELD3
50894           IF FELD3  NOT = 1.2
50895              DISPLAY "Test 24 " FELD3
50896              END-DISPLAY
50897           END-IF.
50898
50899           MOVE 2 TO FELD4
50900           ADD 1 TO FELD4
50901           IF FELD4  NOT = 3
50902              DISPLAY "Test 25 " FELD4
50903              END-DISPLAY
50904           END-IF.
50905
50906           MOVE 2 TO FELD4
50907           ADD -1 TO FELD4
50908           IF FELD4  NOT = 1
50909              DISPLAY "Test 26 " FELD4
50910              END-DISPLAY
50911           END-IF.
50912
50913           MOVE -2 TO FELD4
50914           ADD 1 TO FELD4
50915           IF FELD4  NOT = -1
50916              DISPLAY "Test 27 " FELD4
50917              END-DISPLAY
50918           END-IF.
50919
50920           MOVE -2 TO FELD4
50921           ADD -1 TO FELD4
50922           IF FELD4  NOT = -3
50923              DISPLAY "Test 28 " FELD4
50924              END-DISPLAY
50925           END-IF.
50926
50927           MOVE 2 TO FELD4
50928           SUBTRACT 1 FROM FELD4
50929           IF FELD4  NOT = 1
50930              DISPLAY "Test 29 " FELD4
50931              END-DISPLAY
50932           END-IF.
50933
50934           MOVE 2 TO FELD4
50935           SUBTRACT -1 FROM FELD4
50936           IF FELD4  NOT = 3
50937              DISPLAY "Test 30 " FELD4
50938              END-DISPLAY
50939           END-IF.
50940
50941           MOVE -2 TO FELD4
50942           SUBTRACT 1 FROM FELD4
50943           IF FELD4  NOT = -3
50944              DISPLAY "Test 31 " FELD4
50945              END-DISPLAY
50946           END-IF.
50947
50948           MOVE -2 TO FELD4
50949           SUBTRACT -1 FROM FELD4
50950           IF FELD4  NOT = -1
50951              DISPLAY "Test 32 " FELD4
50952              END-DISPLAY
50953           END-IF.
50954
50955           MOVE 1 TO FELD4
50956           ADD 2 TO FELD4
50957           IF FELD4  NOT = 3
50958              DISPLAY "Test 33 " FELD4
50959              END-DISPLAY
50960           END-IF.
50961
50962           MOVE 1 TO FELD4
50963           ADD -2 TO FELD4
50964           IF FELD4  NOT = -1
50965              DISPLAY "Test 34 " FELD4
50966              END-DISPLAY
50967           END-IF.
50968
50969           MOVE -1 TO FELD4
50970           ADD 2 TO FELD4
50971           IF FELD4  NOT = 1
50972              DISPLAY "Test 35 " FELD4
50973              END-DISPLAY
50974           END-IF.
50975
50976           MOVE -1 TO FELD4
50977           ADD -2 TO FELD4
50978           IF FELD4  NOT = -3
50979              DISPLAY "Test 36 " FELD4
50980              END-DISPLAY
50981           END-IF.
50982
50983           MOVE 1 TO FELD4
50984           SUBTRACT 2 FROM FELD4
50985           IF FELD4  NOT = -1
50986              DISPLAY "Test 37 " FELD4
50987              END-DISPLAY
50988           END-IF.
50989
50990           MOVE 1 TO FELD4
50991           SUBTRACT -2 FROM FELD4
50992           IF FELD4  NOT = 3
50993              DISPLAY "Test 38 " FELD4
50994              END-DISPLAY
50995           END-IF.
50996
50997           MOVE -1 TO FELD4
50998           SUBTRACT 2 FROM FELD4
50999           IF FELD4  NOT = -3
51000              DISPLAY "Test 39 " FELD4
51001              END-DISPLAY
51002           END-IF.
51003
51004           MOVE -1 TO FELD4
51005           SUBTRACT -2 FROM FELD4
51006           IF FELD4  NOT = 1
51007              DISPLAY "Test 40 " FELD4
51008              END-DISPLAY
51009           END-IF.
51010           GOBACK.
51011_ATEOF
51012
51013
51014{ set +x
51015$as_echo "$at_srcdir/run_fundamental.at:3271: \$COMPILE prog.cob"
51016at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3271"
51017( $at_check_trace; $COMPILE prog.cob
51018) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51019at_status=$? at_failed=false
51020$at_check_filter
51021echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
51022prog.cob:144: warning: ignoring sign
51023prog.cob:165: warning: ignoring sign
51024prog.cob:172: warning: ignoring sign
51025" | \
51026  $at_diff - "$at_stderr" || at_failed=:
51027at_fn_diff_devnull "$at_stdout" || at_failed=:
51028at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3271"
51029$at_failed && at_fn_log_failure
51030$at_traceon; }
51031
51032{ set +x
51033$as_echo "$at_srcdir/run_fundamental.at:3277: \$COBCRUN_DIRECT ./prog"
51034at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3277"
51035( $at_check_trace; $COBCRUN_DIRECT ./prog
51036) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51037at_status=$? at_failed=false
51038$at_check_filter
51039at_fn_diff_devnull "$at_stderr" || at_failed=:
51040at_fn_diff_devnull "$at_stdout" || at_failed=:
51041at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3277"
51042$at_failed && at_fn_log_failure
51043$at_traceon; }
51044
51045
51046  set +x
51047  $at_times_p && times >"$at_times_file"
51048) 5>&1 2>&1 7>&- | eval $at_tee_pipe
51049read at_status <"$at_status_file"
51050#AT_STOP_498
51051#AT_START_499
51052at_fn_group_banner 499 'run_fundamental.at:3282' \
51053  "Numeric operations (4)" "                         " 4
51054at_xfail=no
51055(
51056  $as_echo "499. $at_setup_line: testing $at_desc ..."
51057  $at_traceon
51058
51059
51060
51061cat >prog.cob <<'_ATEOF'
51062
51063       IDENTIFICATION   DIVISION.
51064       PROGRAM-ID.      prog.
51065       DATA             DIVISION.
51066       WORKING-STORAGE  SECTION.
51067       01  FIELD        PIC S9(1)V9(1) COMP.
51068       01  FELD2        PIC S9(5)V9(5) COMP.
51069       01  FELD3        PIC 9(1)V9(1)  COMP.
51070       01  FELD4        PIC S9(1)      COMP.
51071       PROCEDURE        DIVISION.
51072           MOVE 0.2 TO FIELD
51073           ADD 1 TO FIELD
51074           IF FIELD  NOT = 1.2
51075              DISPLAY "Test  1 " FIELD
51076              END-DISPLAY
51077           END-IF.
51078
51079           MOVE 0.2 TO FIELD
51080           ADD -1 TO FIELD
51081           IF FIELD  NOT = -0.8
51082              DISPLAY "Test  2 " FIELD
51083              END-DISPLAY
51084           END-IF.
51085
51086           MOVE -0.2 TO FIELD
51087           ADD 1 TO FIELD
51088           IF FIELD  NOT = 0.8
51089              DISPLAY "Test  3 " FIELD
51090              END-DISPLAY
51091           END-IF.
51092
51093           MOVE -0.2 TO FIELD
51094           ADD -1 TO FIELD
51095           IF FIELD  NOT = -1.2
51096              DISPLAY "Test  4 " FIELD
51097              END-DISPLAY
51098           END-IF.
51099
51100           MOVE 0.2 TO FIELD
51101           SUBTRACT 1 FROM FIELD
51102           IF FIELD  NOT = -0.8
51103              DISPLAY "Test  5 " FIELD
51104              END-DISPLAY
51105           END-IF.
51106
51107           MOVE 0.2 TO FIELD
51108           SUBTRACT -1 FROM FIELD
51109           IF FIELD  NOT = 1.2
51110              DISPLAY "Test  6 " FIELD
51111              END-DISPLAY
51112           END-IF.
51113
51114           MOVE -0.2 TO FIELD
51115           SUBTRACT 1 FROM FIELD
51116           IF FIELD  NOT = -1.2
51117              DISPLAY "Test  7 " FIELD
51118              END-DISPLAY
51119           END-IF.
51120
51121           MOVE -0.2 TO FIELD
51122           SUBTRACT -1 FROM FIELD
51123           IF FIELD  NOT = 0.8
51124              DISPLAY "Test  8 " FIELD
51125              END-DISPLAY
51126           END-IF.
51127
51128           MOVE 0.2 TO FELD2
51129           ADD 1 TO FELD2
51130           IF FELD2  NOT = 1.2
51131              DISPLAY "Test  9 " FELD2
51132              END-DISPLAY
51133           END-IF.
51134
51135           MOVE 0.2 TO FELD2
51136           ADD -1 TO FELD2
51137           IF FELD2  NOT = -0.8
51138              DISPLAY "Test 10 " FELD2
51139              END-DISPLAY
51140           END-IF.
51141
51142           MOVE -0.2 TO FELD2
51143           ADD 1 TO FELD2
51144           IF FELD2  NOT = 0.8
51145              DISPLAY "Test 11 " FELD2
51146              END-DISPLAY
51147           END-IF.
51148
51149           MOVE -0.2 TO FELD2
51150           ADD -1 TO FELD2
51151           IF FELD2  NOT = -1.2
51152              DISPLAY "Test 12 " FELD2
51153              END-DISPLAY
51154           END-IF.
51155
51156           MOVE 0.2 TO FELD2
51157           SUBTRACT 1 FROM FELD2
51158           IF FELD2  NOT = -0.8
51159              DISPLAY "Test 13 " FELD2
51160              END-DISPLAY
51161           END-IF.
51162
51163           MOVE 0.2 TO FELD2
51164           SUBTRACT -1 FROM FELD2
51165           IF FELD2  NOT = 1.2
51166              DISPLAY "Test 14 " FELD2
51167              END-DISPLAY
51168           END-IF.
51169
51170           MOVE -0.2 TO FELD2
51171           SUBTRACT 1 FROM FELD2
51172           IF FELD2  NOT = -1.2
51173              DISPLAY "Test 15 " FELD2
51174              END-DISPLAY
51175           END-IF.
51176
51177           MOVE -0.2 TO FELD2
51178           SUBTRACT -1 FROM FELD2
51179           IF FELD2  NOT = 0.8
51180              DISPLAY "Test 16 " FELD2
51181              END-DISPLAY
51182           END-IF.
51183
51184           MOVE 0.2 TO FELD3
51185           ADD 1 TO FELD3
51186           IF FELD3  NOT = 1.2
51187              DISPLAY "Test 17 " FELD3
51188              END-DISPLAY
51189           END-IF.
51190
51191           MOVE 0.2 TO FELD3
51192           ADD -1 TO FELD3
51193           IF FELD3  NOT = 0.8
51194              DISPLAY "Test 18 " FELD3
51195              END-DISPLAY
51196           END-IF.
51197
51198           MOVE -0.2 TO FELD3
51199           ADD 1 TO FELD3
51200           IF FELD3  NOT = 1.2
51201              DISPLAY "Test 19 " FELD3
51202              END-DISPLAY
51203           END-IF.
51204
51205           MOVE -0.2 TO FELD3
51206           ADD -1 TO FELD3
51207           IF FELD3  NOT = 0.8
51208              DISPLAY "Test 20 " FELD3
51209              END-DISPLAY
51210           END-IF.
51211
51212           MOVE 0.2 TO FELD3
51213           SUBTRACT 1 FROM FELD3
51214           IF FELD3  NOT = 0.8
51215              DISPLAY "Test 21 " FELD3
51216              END-DISPLAY
51217           END-IF.
51218
51219           MOVE 0.2 TO FELD3
51220           SUBTRACT -1 FROM FELD3
51221           IF FELD3  NOT = 1.2
51222              DISPLAY "Test 22 " FELD3
51223              END-DISPLAY
51224           END-IF.
51225
51226           MOVE -0.2 TO FELD3
51227           SUBTRACT 1 FROM FELD3
51228           IF FELD3  NOT = 0.8
51229              DISPLAY "Test 23 " FELD3
51230              END-DISPLAY
51231           END-IF.
51232
51233           MOVE -0.2 TO FELD3
51234           SUBTRACT -1 FROM FELD3
51235           IF FELD3  NOT = 1.2
51236              DISPLAY "Test 24 " FELD3
51237              END-DISPLAY
51238           END-IF.
51239
51240           MOVE 2 TO FELD4
51241           ADD 1 TO FELD4
51242           IF FELD4  NOT = 3
51243              DISPLAY "Test 25 " FELD4
51244              END-DISPLAY
51245           END-IF.
51246
51247           MOVE 2 TO FELD4
51248           ADD -1 TO FELD4
51249           IF FELD4  NOT = 1
51250              DISPLAY "Test 26 " FELD4
51251              END-DISPLAY
51252           END-IF.
51253
51254           MOVE -2 TO FELD4
51255           ADD 1 TO FELD4
51256           IF FELD4  NOT = -1
51257              DISPLAY "Test 27 " FELD4
51258              END-DISPLAY
51259           END-IF.
51260
51261           MOVE -2 TO FELD4
51262           ADD -1 TO FELD4
51263           IF FELD4  NOT = -3
51264              DISPLAY "Test 28 " FELD4
51265              END-DISPLAY
51266           END-IF.
51267
51268           MOVE 2 TO FELD4
51269           SUBTRACT 1 FROM FELD4
51270           IF FELD4  NOT = 1
51271              DISPLAY "Test 29 " FELD4
51272              END-DISPLAY
51273           END-IF.
51274
51275           MOVE 2 TO FELD4
51276           SUBTRACT -1 FROM FELD4
51277           IF FELD4  NOT = 3
51278              DISPLAY "Test 30 " FELD4
51279              END-DISPLAY
51280           END-IF.
51281
51282           MOVE -2 TO FELD4
51283           SUBTRACT 1 FROM FELD4
51284           IF FELD4  NOT = -3
51285              DISPLAY "Test 31 " FELD4
51286              END-DISPLAY
51287           END-IF.
51288
51289           MOVE -2 TO FELD4
51290           SUBTRACT -1 FROM FELD4
51291           IF FELD4  NOT = -1
51292              DISPLAY "Test 32 " FELD4
51293              END-DISPLAY
51294           END-IF.
51295
51296           MOVE 1 TO FELD4
51297           ADD 2 TO FELD4
51298           IF FELD4  NOT = 3
51299              DISPLAY "Test 33 " FELD4
51300              END-DISPLAY
51301           END-IF.
51302
51303           MOVE 1 TO FELD4
51304           ADD -2 TO FELD4
51305           IF FELD4  NOT = -1
51306              DISPLAY "Test 34 " FELD4
51307              END-DISPLAY
51308           END-IF.
51309
51310           MOVE -1 TO FELD4
51311           ADD 2 TO FELD4
51312           IF FELD4  NOT = 1
51313              DISPLAY "Test 35 " FELD4
51314              END-DISPLAY
51315           END-IF.
51316
51317           MOVE -1 TO FELD4
51318           ADD -2 TO FELD4
51319           IF FELD4  NOT = -3
51320              DISPLAY "Test 36 " FELD4
51321              END-DISPLAY
51322           END-IF.
51323
51324           MOVE 1 TO FELD4
51325           SUBTRACT 2 FROM FELD4
51326           IF FELD4  NOT = -1
51327              DISPLAY "Test 37 " FELD4
51328              END-DISPLAY
51329           END-IF.
51330
51331           MOVE 1 TO FELD4
51332           SUBTRACT -2 FROM FELD4
51333           IF FELD4  NOT = 3
51334              DISPLAY "Test 38 " FELD4
51335              END-DISPLAY
51336           END-IF.
51337
51338           MOVE -1 TO FELD4
51339           SUBTRACT 2 FROM FELD4
51340           IF FELD4  NOT = -3
51341              DISPLAY "Test 39 " FELD4
51342              END-DISPLAY
51343           END-IF.
51344
51345           MOVE -1 TO FELD4
51346           SUBTRACT -2 FROM FELD4
51347           IF FELD4  NOT = 1
51348              DISPLAY "Test 40 " FELD4
51349              END-DISPLAY
51350           END-IF.
51351           GOBACK.
51352_ATEOF
51353
51354
51355{ set +x
51356$as_echo "$at_srcdir/run_fundamental.at:3577: \$COMPILE prog.cob"
51357at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3577"
51358( $at_check_trace; $COMPILE prog.cob
51359) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51360at_status=$? at_failed=false
51361$at_check_filter
51362echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
51363prog.cob:144: warning: ignoring sign
51364prog.cob:165: warning: ignoring sign
51365prog.cob:172: warning: ignoring sign
51366" | \
51367  $at_diff - "$at_stderr" || at_failed=:
51368at_fn_diff_devnull "$at_stdout" || at_failed=:
51369at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3577"
51370$at_failed && at_fn_log_failure
51371$at_traceon; }
51372
51373{ set +x
51374$as_echo "$at_srcdir/run_fundamental.at:3583: \$COBCRUN_DIRECT ./prog"
51375at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3583"
51376( $at_check_trace; $COBCRUN_DIRECT ./prog
51377) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51378at_status=$? at_failed=false
51379$at_check_filter
51380at_fn_diff_devnull "$at_stderr" || at_failed=:
51381at_fn_diff_devnull "$at_stdout" || at_failed=:
51382at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3583"
51383$at_failed && at_fn_log_failure
51384$at_traceon; }
51385
51386
51387  set +x
51388  $at_times_p && times >"$at_times_file"
51389) 5>&1 2>&1 7>&- | eval $at_tee_pipe
51390read at_status <"$at_status_file"
51391#AT_STOP_499
51392#AT_START_500
51393at_fn_group_banner 500 'run_fundamental.at:3588' \
51394  "Numeric operations (5)" "                         " 4
51395at_xfail=no
51396(
51397  $as_echo "500. $at_setup_line: testing $at_desc ..."
51398  $at_traceon
51399
51400
51401
51402cat >prog.cob <<'_ATEOF'
51403
51404       IDENTIFICATION   DIVISION.
51405       PROGRAM-ID.      prog.
51406       DATA             DIVISION.
51407       WORKING-STORAGE  SECTION.
51408       01  FIELD        PIC S9(1)V9(1) COMP-5.
51409       01  FELD2        PIC S9(5)V9(5) COMP-5.
51410       01  FELD3        PIC 9(1)V9(1)  COMP-5.
51411       01  FELD4        PIC S9(1)      COMP-5.
51412       PROCEDURE        DIVISION.
51413           MOVE 0.2 TO FIELD
51414           ADD 1 TO FIELD
51415           IF FIELD  NOT = 1.2
51416              DISPLAY "Test  1 " FIELD
51417              END-DISPLAY
51418           END-IF.
51419
51420           MOVE 0.2 TO FIELD
51421           ADD -1 TO FIELD
51422           IF FIELD  NOT = -0.8
51423              DISPLAY "Test  2 " FIELD
51424              END-DISPLAY
51425           END-IF.
51426
51427           MOVE -0.2 TO FIELD
51428           ADD 1 TO FIELD
51429           IF FIELD  NOT = 0.8
51430              DISPLAY "Test  3 " FIELD
51431              END-DISPLAY
51432           END-IF.
51433
51434           MOVE -0.2 TO FIELD
51435           ADD -1 TO FIELD
51436           IF FIELD  NOT = -1.2
51437              DISPLAY "Test  4 " FIELD
51438              END-DISPLAY
51439           END-IF.
51440
51441           MOVE 0.2 TO FIELD
51442           SUBTRACT 1 FROM FIELD
51443           IF FIELD  NOT = -0.8
51444              DISPLAY "Test  5 " FIELD
51445              END-DISPLAY
51446           END-IF.
51447
51448           MOVE 0.2 TO FIELD
51449           SUBTRACT -1 FROM FIELD
51450           IF FIELD  NOT = 1.2
51451              DISPLAY "Test  6 " FIELD
51452              END-DISPLAY
51453           END-IF.
51454
51455           MOVE -0.2 TO FIELD
51456           SUBTRACT 1 FROM FIELD
51457           IF FIELD  NOT = -1.2
51458              DISPLAY "Test  7 " FIELD
51459              END-DISPLAY
51460           END-IF.
51461
51462           MOVE -0.2 TO FIELD
51463           SUBTRACT -1 FROM FIELD
51464           IF FIELD  NOT = 0.8
51465              DISPLAY "Test  8 " FIELD
51466              END-DISPLAY
51467           END-IF.
51468
51469           MOVE 0.2 TO FELD2
51470           ADD 1 TO FELD2
51471           IF FELD2  NOT = 1.2
51472              DISPLAY "Test  9 " FELD2
51473              END-DISPLAY
51474           END-IF.
51475
51476           MOVE 0.2 TO FELD2
51477           ADD -1 TO FELD2
51478           IF FELD2  NOT = -0.8
51479              DISPLAY "Test 10 " FELD2
51480              END-DISPLAY
51481           END-IF.
51482
51483           MOVE -0.2 TO FELD2
51484           ADD 1 TO FELD2
51485           IF FELD2  NOT = 0.8
51486              DISPLAY "Test 11 " FELD2
51487              END-DISPLAY
51488           END-IF.
51489
51490           MOVE -0.2 TO FELD2
51491           ADD -1 TO FELD2
51492           IF FELD2  NOT = -1.2
51493              DISPLAY "Test 12 " FELD2
51494              END-DISPLAY
51495           END-IF.
51496
51497           MOVE 0.2 TO FELD2
51498           SUBTRACT 1 FROM FELD2
51499           IF FELD2  NOT = -0.8
51500              DISPLAY "Test 13 " FELD2
51501              END-DISPLAY
51502           END-IF.
51503
51504           MOVE 0.2 TO FELD2
51505           SUBTRACT -1 FROM FELD2
51506           IF FELD2  NOT = 1.2
51507              DISPLAY "Test 14 " FELD2
51508              END-DISPLAY
51509           END-IF.
51510
51511           MOVE -0.2 TO FELD2
51512           SUBTRACT 1 FROM FELD2
51513           IF FELD2  NOT = -1.2
51514              DISPLAY "Test 15 " FELD2
51515              END-DISPLAY
51516           END-IF.
51517
51518           MOVE -0.2 TO FELD2
51519           SUBTRACT -1 FROM FELD2
51520           IF FELD2  NOT = 0.8
51521              DISPLAY "Test 16 " FELD2
51522              END-DISPLAY
51523           END-IF.
51524
51525           MOVE 0.2 TO FELD3
51526           ADD 1 TO FELD3
51527           IF FELD3  NOT = 1.2
51528              DISPLAY "Test 17 " FELD3
51529              END-DISPLAY
51530           END-IF.
51531
51532           MOVE 0.2 TO FELD3
51533           ADD -1 TO FELD3
51534           IF FELD3  NOT = 0.8
51535              DISPLAY "Test 18 " FELD3
51536              END-DISPLAY
51537           END-IF.
51538
51539           MOVE -0.2 TO FELD3
51540           ADD 1 TO FELD3
51541           IF FELD3  NOT = 1.2
51542              DISPLAY "Test 19 " FELD3
51543              END-DISPLAY
51544           END-IF.
51545
51546           MOVE -0.2 TO FELD3
51547           ADD -1 TO FELD3
51548           IF FELD3  NOT = 0.8
51549              DISPLAY "Test 20 " FELD3
51550              END-DISPLAY
51551           END-IF.
51552
51553           MOVE 0.2 TO FELD3
51554           SUBTRACT 1 FROM FELD3
51555           IF FELD3  NOT = 0.8
51556              DISPLAY "Test 21 " FELD3
51557              END-DISPLAY
51558           END-IF.
51559
51560           MOVE 0.2 TO FELD3
51561           SUBTRACT -1 FROM FELD3
51562           IF FELD3  NOT = 1.2
51563              DISPLAY "Test 22 " FELD3
51564              END-DISPLAY
51565           END-IF.
51566
51567           MOVE -0.2 TO FELD3
51568           SUBTRACT 1 FROM FELD3
51569           IF FELD3  NOT = 0.8
51570              DISPLAY "Test 23 " FELD3
51571              END-DISPLAY
51572           END-IF.
51573
51574           MOVE -0.2 TO FELD3
51575           SUBTRACT -1 FROM FELD3
51576           IF FELD3  NOT = 1.2
51577              DISPLAY "Test 24 " FELD3
51578              END-DISPLAY
51579           END-IF.
51580
51581           MOVE 2 TO FELD4
51582           ADD 1 TO FELD4
51583           IF FELD4  NOT = 3
51584              DISPLAY "Test 25 " FELD4
51585              END-DISPLAY
51586           END-IF.
51587
51588           MOVE 2 TO FELD4
51589           ADD -1 TO FELD4
51590           IF FELD4  NOT = 1
51591              DISPLAY "Test 26 " FELD4
51592              END-DISPLAY
51593           END-IF.
51594
51595           MOVE -2 TO FELD4
51596           ADD 1 TO FELD4
51597           IF FELD4  NOT = -1
51598              DISPLAY "Test 27 " FELD4
51599              END-DISPLAY
51600           END-IF.
51601
51602           MOVE -2 TO FELD4
51603           ADD -1 TO FELD4
51604           IF FELD4  NOT = -3
51605              DISPLAY "Test 28 " FELD4
51606              END-DISPLAY
51607           END-IF.
51608
51609           MOVE 2 TO FELD4
51610           SUBTRACT 1 FROM FELD4
51611           IF FELD4  NOT = 1
51612              DISPLAY "Test 29 " FELD4
51613              END-DISPLAY
51614           END-IF.
51615
51616           MOVE 2 TO FELD4
51617           SUBTRACT -1 FROM FELD4
51618           IF FELD4  NOT = 3
51619              DISPLAY "Test 30 " FELD4
51620              END-DISPLAY
51621           END-IF.
51622
51623           MOVE -2 TO FELD4
51624           SUBTRACT 1 FROM FELD4
51625           IF FELD4  NOT = -3
51626              DISPLAY "Test 31 " FELD4
51627              END-DISPLAY
51628           END-IF.
51629
51630           MOVE -2 TO FELD4
51631           SUBTRACT -1 FROM FELD4
51632           IF FELD4  NOT = -1
51633              DISPLAY "Test 32 " FELD4
51634              END-DISPLAY
51635           END-IF.
51636
51637           MOVE 1 TO FELD4
51638           ADD 2 TO FELD4
51639           IF FELD4  NOT = 3
51640              DISPLAY "Test 33 " FELD4
51641              END-DISPLAY
51642           END-IF.
51643
51644           MOVE 1 TO FELD4
51645           ADD -2 TO FELD4
51646           IF FELD4  NOT = -1
51647              DISPLAY "Test 34 " FELD4
51648              END-DISPLAY
51649           END-IF.
51650
51651           MOVE -1 TO FELD4
51652           ADD 2 TO FELD4
51653           IF FELD4  NOT = 1
51654              DISPLAY "Test 35 " FELD4
51655              END-DISPLAY
51656           END-IF.
51657
51658           MOVE -1 TO FELD4
51659           ADD -2 TO FELD4
51660           IF FELD4  NOT = -3
51661              DISPLAY "Test 36 " FELD4
51662              END-DISPLAY
51663           END-IF.
51664
51665           MOVE 1 TO FELD4
51666           SUBTRACT 2 FROM FELD4
51667           IF FELD4  NOT = -1
51668              DISPLAY "Test 37 " FELD4
51669              END-DISPLAY
51670           END-IF.
51671
51672           MOVE 1 TO FELD4
51673           SUBTRACT -2 FROM FELD4
51674           IF FELD4  NOT = 3
51675              DISPLAY "Test 38 " FELD4
51676              END-DISPLAY
51677           END-IF.
51678
51679           MOVE -1 TO FELD4
51680           SUBTRACT 2 FROM FELD4
51681           IF FELD4  NOT = -3
51682              DISPLAY "Test 39 " FELD4
51683              END-DISPLAY
51684           END-IF.
51685
51686           MOVE -1 TO FELD4
51687           SUBTRACT -2 FROM FELD4
51688           IF FELD4  NOT = 1
51689              DISPLAY "Test 40 " FELD4
51690              END-DISPLAY
51691           END-IF.
51692           GOBACK.
51693_ATEOF
51694
51695
51696{ set +x
51697$as_echo "$at_srcdir/run_fundamental.at:3883: \$COMPILE prog.cob"
51698at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3883"
51699( $at_check_trace; $COMPILE prog.cob
51700) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51701at_status=$? at_failed=false
51702$at_check_filter
51703echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
51704prog.cob:144: warning: ignoring sign
51705prog.cob:165: warning: ignoring sign
51706prog.cob:172: warning: ignoring sign
51707" | \
51708  $at_diff - "$at_stderr" || at_failed=:
51709at_fn_diff_devnull "$at_stdout" || at_failed=:
51710at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3883"
51711$at_failed && at_fn_log_failure
51712$at_traceon; }
51713
51714{ set +x
51715$as_echo "$at_srcdir/run_fundamental.at:3889: \$COBCRUN_DIRECT ./prog"
51716at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3889"
51717( $at_check_trace; $COBCRUN_DIRECT ./prog
51718) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51719at_status=$? at_failed=false
51720$at_check_filter
51721at_fn_diff_devnull "$at_stderr" || at_failed=:
51722at_fn_diff_devnull "$at_stdout" || at_failed=:
51723at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3889"
51724$at_failed && at_fn_log_failure
51725$at_traceon; }
51726
51727
51728  set +x
51729  $at_times_p && times >"$at_times_file"
51730) 5>&1 2>&1 7>&- | eval $at_tee_pipe
51731read at_status <"$at_status_file"
51732#AT_STOP_500
51733#AT_START_501
51734at_fn_group_banner 501 'run_fundamental.at:3894' \
51735  "Numeric operations (6)" "                         " 4
51736at_xfail=no
51737(
51738  $as_echo "501. $at_setup_line: testing $at_desc ..."
51739  $at_traceon
51740
51741
51742
51743cat >dump.c <<'_ATEOF'
51744
51745#include <stdio.h>
51746#include <libcob.h>
51747
51748COB_EXT_EXPORT int
51749dump (char *p)
51750{
51751  printf ("%c%c", p[0], p[1]);
51752  return 0;
51753}
51754_ATEOF
51755
51756
51757cat >prog.cob <<'_ATEOF'
51758
51759        IDENTIFICATION DIVISION.
51760        PROGRAM-ID. prog.
51761
51762        DATA DIVISION.
51763        WORKING-STORAGE SECTION.
51764
51765        01 P-FIELD1 PIC 99PPP.
51766        01 P-FIELD2 PIC PPP99.
51767
51768        PROCEDURE DIVISION.
51769
51770        MOVE 5000 TO P-FIELD1.
51771        ADD 5 TO P-FIELD1 END-ADD
51772        IF P-FIELD1 NOT = 5000
51773            DISPLAY "Error: Add 5 to PIC 99PPP."
51774            END-DISPLAY
51775        END-IF
51776        CALL "dump" USING P-FIELD1 END-CALL
51777
51778        ADD 5000 TO P-FIELD1 END-ADD
51779        IF P-FIELD1 NOT = 10000
51780            DISPLAY "Error: Add 5000 to PIC 99PPP."
51781            END-DISPLAY
51782        END-IF
51783        CALL "dump" USING P-FIELD1 END-CALL
51784
51785        MOVE 0.00055 TO P-FIELD2.
51786        ADD 0.00033 TO P-FIELD2 END-ADD
51787        IF P-FIELD2 NOT = 0.00088
51788            DISPLAY "Error: Add 0.00033 to PIC PPP99."
51789            END-DISPLAY
51790        END-IF
51791        CALL "dump" USING P-FIELD2 END-CALL
51792
51793        MOVE 0.00055 TO P-FIELD2.
51794        ADD 0.00300 TO P-FIELD2 END-ADD
51795        IF P-FIELD2 NOT = 0.00055
51796            DISPLAY "Error: Add 0.00300 to PIC PPP99."
51797            END-DISPLAY
51798        END-IF
51799        CALL "dump" USING P-FIELD2 END-CALL
51800
51801        STOP RUN.
51802
51803_ATEOF
51804
51805
51806{ set +x
51807$as_echo "$at_srcdir/run_fundamental.at:3956: \$COMPILE_MODULE dump.c"
51808at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_fundamental.at:3956"
51809( $at_check_trace; $COMPILE_MODULE dump.c
51810) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51811at_status=$? at_failed=false
51812$at_check_filter
51813at_fn_diff_devnull "$at_stderr" || at_failed=:
51814at_fn_diff_devnull "$at_stdout" || at_failed=:
51815at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3956"
51816$at_failed && at_fn_log_failure
51817$at_traceon; }
51818
51819{ set +x
51820$as_echo "$at_srcdir/run_fundamental.at:3957: \$COMPILE prog.cob"
51821at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3957"
51822( $at_check_trace; $COMPILE prog.cob
51823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51824at_status=$? at_failed=false
51825$at_check_filter
51826at_fn_diff_devnull "$at_stderr" || at_failed=:
51827at_fn_diff_devnull "$at_stdout" || at_failed=:
51828at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3957"
51829$at_failed && at_fn_log_failure
51830$at_traceon; }
51831
51832{ set +x
51833$as_echo "$at_srcdir/run_fundamental.at:3958: \$COBCRUN_DIRECT ./prog"
51834at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3958"
51835( $at_check_trace; $COBCRUN_DIRECT ./prog
51836) >>"$at_stdout" 2>>"$at_stderr" 5>&-
51837at_status=$? at_failed=false
51838$at_check_filter
51839at_fn_diff_devnull "$at_stderr" || at_failed=:
51840echo >>"$at_stdout"; $as_echo "05108855" | \
51841  $at_diff - "$at_stdout" || at_failed=:
51842at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3958"
51843$at_failed && at_fn_log_failure
51844$at_traceon; }
51845
51846
51847  set +x
51848  $at_times_p && times >"$at_times_file"
51849) 5>&1 2>&1 7>&- | eval $at_tee_pipe
51850read at_status <"$at_status_file"
51851#AT_STOP_501
51852#AT_START_502
51853at_fn_group_banner 502 'run_fundamental.at:3963' \
51854  "Numeric operations (7)" "                         " 4
51855at_xfail=no
51856(
51857  $as_echo "502. $at_setup_line: testing $at_desc ..."
51858  $at_traceon
51859
51860
51861
51862cat >prog.cob <<'_ATEOF'
51863
51864       IDENTIFICATION   DIVISION.
51865       PROGRAM-ID.      prog.
51866       DATA             DIVISION.
51867       WORKING-STORAGE  SECTION.
51868       01  FIELD         PIC S9(4)V9(2) COMP-5.
51869       01  FIELD-DISP    PIC S9(4)V9(2) DISPLAY.
51870       PROCEDURE        DIVISION.
51871           MOVE 0.2 TO FIELD.
51872           ADD 1
51873               2
51874               3
51875               4
51876               5
51877               6
51878               7
51879               8
51880               9
51881               10
51882               11
51883               12
51884               13
51885               14
51886               15
51887               16
51888               17
51889               18
51890               19
51891               20
51892               21
51893               22
51894               23
51895               24
51896               25
51897               26
51898               27
51899               28
51900               29
51901               30
51902               31
51903               32
51904               33
51905               34
51906               35
51907               36
51908               37
51909               38
51910               39
51911               40
51912               41
51913               42
51914               43
51915               44
51916               45
51917               46
51918               47
51919               48
51920               49
51921               50
51922               51
51923               52
51924               53
51925               54
51926               55
51927               56
51928               57
51929               58
51930               59
51931               60
51932               61
51933               62
51934               63
51935               64
51936               65
51937               66
51938               67
51939               68
51940               69
51941               70
51942               71
51943               72
51944               73
51945               74
51946               75
51947               76
51948               77
51949               78
51950               79
51951               80
51952               81
51953               82
51954               83
51955               84
51956               85
51957               86
51958               87
51959               88
51960               89
51961               90
51962               91
51963               92
51964               93
51965               94
51966               95
51967               96
51968               97
51969               98
51970               99
51971               100
51972               101
51973               102
51974               103
51975               104
51976               105
51977               106
51978               107
51979               108
51980               109
51981               110
51982               111
51983               112
51984               113
51985               114
51986               115
51987               116
51988               117
51989               118
51990               119
51991               120
51992               121
51993               122
51994               123
51995               124
51996               125
51997               126
51998               127
51999               128
52000               129
52001               TO FIELD
52002           END-ADD.
52003           IF FIELD NOT = 8385.2
52004              MOVE FIELD TO FIELD-DISP
52005              DISPLAY 'ADD with wrong result: ' FIELD-DISP
52006              END-DISPLAY
52007           END-IF.
52008           COMPUTE FIELD = (0.2
52009                         + 2
52010                         + 3
52011                         + 4
52012                         + 5
52013                         + 6
52014                         + 7
52015                         + 8
52016                         + 9
52017                         + 10
52018                         + 11
52019                         + 12
52020                         + 13
52021                         + 14
52022                         + 15
52023                         + 16
52024                         + 17
52025                         + 18
52026                         + 19
52027                         + 20
52028                         + 21
52029                         + 22
52030                         + 23
52031                         + 24
52032                         + 25
52033                         + 26
52034                         + 27
52035                         + 28
52036                         + 29
52037                         + 30
52038                         + 31
52039                         + 32
52040                         + 33
52041                         + 34
52042                         + 35
52043                         + 36
52044                         + 37
52045                         + 38
52046                         + 39
52047                         + 40
52048                         + 41
52049                         + 42
52050                         + 43
52051                         + 44
52052                         + 45
52053                         + 46
52054                         + 47
52055                         + 48
52056                         + 49
52057                         + 50
52058                         + 51
52059                         + 52
52060                         + 53
52061                         + 54
52062                         + 55
52063                         + 56
52064                         + 57
52065                         + 58
52066                         - 59
52067                         - 60
52068                         - 61
52069                         - 62
52070                         - 63
52071                         - 64
52072                         - 65
52073                         - 66
52074                         - 67
52075                         - 68
52076                         - 69
52077                         - 70
52078                         - 71
52079                         - 72
52080                         - 73
52081                         - 74
52082                         - 75
52083                         - 76
52084                         - 77
52085                         - 78
52086                         - 79
52087                         - 80
52088                         - 81
52089                         - 82
52090                         - 83
52091                         - 84
52092                         - 85
52093                         - 86
52094                         - 87
52095                         - 88
52096                         - 89
52097                         - 90
52098                         - 91
52099                         - 92
52100                         - 93
52101                         - 94
52102                         - 95
52103                         - 96
52104                         - 97
52105                         - 98
52106                         - 99
52107                         - 100
52108                         - 101
52109                         - 102
52110                         - 103
52111                         - 104
52112                         - 105
52113                         - 106
52114                         - 107
52115                         - 108
52116                         - 109
52117                         - 110
52118                         - 111
52119                         - 112
52120                         - 113
52121                         - 114
52122                         - 115
52123                         - 116
52124                         - 117
52125                         - 118
52126                         - 119
52127                         - 120
52128                         - 121
52129                         - 122
52130                         - 123
52131                         - 124
52132                         - 125
52133                         - 126
52134                         - 127)
52135                         * 12800000000
52136                         / 12900000000
52137           END-COMPUTE.
52138           IF FIELD NOT = -4670.31
52139              MOVE FIELD TO FIELD-DISP
52140              DISPLAY 'COMPUTE with wrong result: ' FIELD-DISP
52141              END-DISPLAY
52142           END-IF.
52143           GOBACK.
52144_ATEOF
52145
52146
52147{ set +x
52148$as_echo "$at_srcdir/run_fundamental.at:4249: \$COMPILE prog.cob"
52149at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4249"
52150( $at_check_trace; $COMPILE prog.cob
52151) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52152at_status=$? at_failed=false
52153$at_check_filter
52154at_fn_diff_devnull "$at_stderr" || at_failed=:
52155at_fn_diff_devnull "$at_stdout" || at_failed=:
52156at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4249"
52157$at_failed && at_fn_log_failure
52158$at_traceon; }
52159
52160{ set +x
52161$as_echo "$at_srcdir/run_fundamental.at:4250: \$COBCRUN_DIRECT ./prog"
52162at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4250"
52163( $at_check_trace; $COBCRUN_DIRECT ./prog
52164) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52165at_status=$? at_failed=false
52166$at_check_filter
52167at_fn_diff_devnull "$at_stderr" || at_failed=:
52168at_fn_diff_devnull "$at_stdout" || at_failed=:
52169at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4250"
52170$at_failed && at_fn_log_failure
52171$at_traceon; }
52172
52173
52174  set +x
52175  $at_times_p && times >"$at_times_file"
52176) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52177read at_status <"$at_status_file"
52178#AT_STOP_502
52179#AT_START_503
52180at_fn_group_banner 503 'run_fundamental.at:4255' \
52181  "Numeric operations (8)" "                         " 4
52182at_xfail=no
52183(
52184  $as_echo "503. $at_setup_line: testing $at_desc ..."
52185  $at_traceon
52186
52187
52188
52189cat >prog.cob <<'_ATEOF'
52190
52191       IDENTIFICATION   DIVISION.
52192       PROGRAM-ID.      prog.
52193       DATA             DIVISION.
52194       WORKING-STORAGE  SECTION.
52195          1 COMPUTE-DATA.
52196           2 COMPUTE-8             PICTURE 999       VALUE ZERO.
52197       PROCEDURE        DIVISION.
52198           COMPUTE COMPUTE-8 = (((24.0 + 1) * (60 - 10)) / 125) ** 2
52199           IF COMPUTE-8 NOT = 100
52200              DISPLAY 'COMPUTE with wrong result: ' COMPUTE-8
52201              END-DISPLAY
52202           END-IF
52203           COMPUTE COMPUTE-8 = 55 / (1 - 2 + 1)
52204              NOT ON SIZE ERROR
52205                 DISPLAY 'SIZE ERROR not set from divide by zero!'
52206                 END-DISPLAY
52207           END-COMPUTE
52208           COMPUTE COMPUTE-8 = 0 ** 1
52209           IF COMPUTE-8 NOT = 0
52210              DISPLAY '0 ** 1 <> 0: ' COMPUTE-8
52211              END-DISPLAY
52212           END-IF
52213           COMPUTE COMPUTE-8 = 55 ** 0
52214           IF COMPUTE-8 NOT = 1
52215              DISPLAY '55 ** 0 <> 1: ' COMPUTE-8
52216              END-DISPLAY
52217           END-IF
52218           COMPUTE COMPUTE-8 = 1 ** 55
52219           IF COMPUTE-8 NOT = 1
52220              DISPLAY '11 ** 55 <> 1: ' COMPUTE-8
52221              END-DISPLAY
52222           END-IF
52223
52224           GOBACK.
52225_ATEOF
52226
52227
52228{ set +x
52229$as_echo "$at_srcdir/run_fundamental.at:4295: \$COMPILE prog.cob"
52230at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4295"
52231( $at_check_trace; $COMPILE prog.cob
52232) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52233at_status=$? at_failed=false
52234$at_check_filter
52235echo >>"$at_stderr"; $as_echo "prog.cob:14: warning: divide by constant ZERO
52236" | \
52237  $at_diff - "$at_stderr" || at_failed=:
52238at_fn_diff_devnull "$at_stdout" || at_failed=:
52239at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4295"
52240$at_failed && at_fn_log_failure
52241$at_traceon; }
52242
52243{ set +x
52244$as_echo "$at_srcdir/run_fundamental.at:4298: \$COBCRUN_DIRECT ./prog"
52245at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4298"
52246( $at_check_trace; $COBCRUN_DIRECT ./prog
52247) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52248at_status=$? at_failed=false
52249$at_check_filter
52250at_fn_diff_devnull "$at_stderr" || at_failed=:
52251at_fn_diff_devnull "$at_stdout" || at_failed=:
52252at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4298"
52253$at_failed && at_fn_log_failure
52254$at_traceon; }
52255
52256
52257  set +x
52258  $at_times_p && times >"$at_times_file"
52259) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52260read at_status <"$at_status_file"
52261#AT_STOP_503
52262#AT_START_504
52263at_fn_group_banner 504 'run_fundamental.at:4305' \
52264  "ADD CORRESPONDING" "                              " 4
52265at_xfail=no
52266(
52267  $as_echo "504. $at_setup_line: testing $at_desc ..."
52268  $at_traceon
52269
52270
52271
52272cat >prog.cob <<'_ATEOF'
52273
52274       IDENTIFICATION   DIVISION.
52275       PROGRAM-ID.      prog.
52276       DATA             DIVISION.
52277       WORKING-STORAGE  SECTION.
52278       01 GROUP-1.
52279          05 FIELD-A           PIC 9 VALUE 1.
52280          05 FIELD-B           USAGE BINARY-CHAR VALUE 2.
52281          05 INNER-GROUP.
52282             10 FIELD-C        USAGE FLOAT-SHORT VALUE 3.
52283          05 FIELD-D           PIC X VALUE "A".
52284       01 GROUP-2.
52285          05 FIELD-A           PIC 9.
52286          05 FIELD-B           USAGE BINARY-LONG.
52287          05 INNER-GROUP.
52288             10 FIELD-C        PIC 9.
52289          05 FIELD-D           PIC 9.
52290
52291       PROCEDURE DIVISION.
52292       ADD CORRESPONDING GROUP-1 TO GROUP-2.
52293       IF FIELD-A IN GROUP-2 NOT EQUAL 1 THEN
52294           DISPLAY "BAD FIELD-A " FIELD-A IN GROUP-2
52295           END-DISPLAY
52296       END-IF.
52297       IF FIELD-B IN GROUP-2 NOT EQUAL 2 THEN
52298           DISPLAY "BAD FIELD-B " FIELD-B IN GROUP-2
52299           END-DISPLAY
52300       END-IF.
52301       IF FIELD-C IN GROUP-2 NOT EQUAL 3 THEN
52302           DISPLAY "BAD FIELD-C " FIELD-C IN GROUP-2
52303           END-DISPLAY
52304       END-IF.
52305       IF FIELD-D IN GROUP-2 NOT EQUAL 0 THEN
52306           DISPLAY "BAD FIELD-D " FIELD-D IN GROUP-2
52307           END-DISPLAY
52308       END-IF.
52309       STOP RUN.
52310_ATEOF
52311
52312
52313{ set +x
52314$as_echo "$at_srcdir/run_fundamental.at:4347: \$COMPILE prog.cob"
52315at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4347"
52316( $at_check_trace; $COMPILE prog.cob
52317) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52318at_status=$? at_failed=false
52319$at_check_filter
52320at_fn_diff_devnull "$at_stderr" || at_failed=:
52321at_fn_diff_devnull "$at_stdout" || at_failed=:
52322at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4347"
52323$at_failed && at_fn_log_failure
52324$at_traceon; }
52325
52326{ set +x
52327$as_echo "$at_srcdir/run_fundamental.at:4348: \$COBCRUN_DIRECT ./prog"
52328at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4348"
52329( $at_check_trace; $COBCRUN_DIRECT ./prog
52330) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52331at_status=$? at_failed=false
52332$at_check_filter
52333at_fn_diff_devnull "$at_stderr" || at_failed=:
52334at_fn_diff_devnull "$at_stdout" || at_failed=:
52335at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4348"
52336$at_failed && at_fn_log_failure
52337$at_traceon; }
52338
52339
52340  set +x
52341  $at_times_p && times >"$at_times_file"
52342) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52343read at_status <"$at_status_file"
52344#AT_STOP_504
52345#AT_START_505
52346at_fn_group_banner 505 'run_fundamental.at:4353' \
52347  "ADD CORRESPONDING no match" "                     " 4
52348at_xfail=no
52349(
52350  $as_echo "505. $at_setup_line: testing $at_desc ..."
52351  $at_traceon
52352
52353
52354
52355cat >prog.cob <<'_ATEOF'
52356
52357       IDENTIFICATION   DIVISION.
52358       PROGRAM-ID.      prog.
52359       DATA             DIVISION.
52360       WORKING-STORAGE  SECTION.
52361       01 GROUP-1.
52362          05 FIELD-A           PIC X.
52363          05 FIELD-B           PIC Z9.
52364          05 INNER-GROUP.
52365             10 FIELD-C        PIC X.
52366          05 FIELD-D           PIC 9.
52367       01 GROUP-2.
52368          05 FIELD-A           PIC 9 VALUE 1.
52369          05 FIELD-B           USAGE BINARY-CHAR VALUE 2.
52370          05 INNER-GROUP.
52371             10 FIELD-C        USAGE FLOAT-SHORT VALUE 3.
52372          05 FIELD-D           PIC X VALUE "A".
52373
52374       PROCEDURE DIVISION.
52375       SUBTRACT CORRESPONDING GROUP-2 FROM GROUP-1.
52376       IF FIELD-A IN GROUP-2 NOT EQUAL 1 THEN
52377           DISPLAY "BAD FIELD-A " FIELD-A IN GROUP-2
52378           END-DISPLAY
52379       END-IF.
52380       IF FIELD-B IN GROUP-2 NOT EQUAL 2 THEN
52381           DISPLAY "BAD FIELD-B " FIELD-B IN GROUP-2
52382           END-DISPLAY
52383       END-IF.
52384       IF FIELD-C IN GROUP-2 NOT EQUAL 3 THEN
52385           DISPLAY "BAD FIELD-C " FIELD-C IN GROUP-2
52386           END-DISPLAY
52387       END-IF.
52388       IF FIELD-D IN GROUP-2 NOT EQUAL "A" THEN
52389           DISPLAY "BAD FIELD-D " FIELD-D IN GROUP-2
52390           END-DISPLAY
52391       END-IF.
52392       STOP RUN.
52393_ATEOF
52394
52395
52396{ set +x
52397$as_echo "$at_srcdir/run_fundamental.at:4395: \$COMPILE prog.cob"
52398at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4395"
52399( $at_check_trace; $COMPILE prog.cob
52400) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52401at_status=$? at_failed=false
52402$at_check_filter
52403echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: no CORRESPONDING items found
52404" | \
52405  $at_diff - "$at_stderr" || at_failed=:
52406at_fn_diff_devnull "$at_stdout" || at_failed=:
52407at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4395"
52408$at_failed && at_fn_log_failure
52409$at_traceon; }
52410
52411{ set +x
52412$as_echo "$at_srcdir/run_fundamental.at:4398: \$COBCRUN_DIRECT ./prog"
52413at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4398"
52414( $at_check_trace; $COBCRUN_DIRECT ./prog
52415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52416at_status=$? at_failed=false
52417$at_check_filter
52418at_fn_diff_devnull "$at_stderr" || at_failed=:
52419at_fn_diff_devnull "$at_stdout" || at_failed=:
52420at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4398"
52421$at_failed && at_fn_log_failure
52422$at_traceon; }
52423
52424
52425  set +x
52426  $at_times_p && times >"$at_times_file"
52427) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52428read at_status <"$at_status_file"
52429#AT_STOP_505
52430#AT_START_506
52431at_fn_group_banner 506 'run_fundamental.at:4403' \
52432  "SYNC in OCCURS" "                                 " 4
52433at_xfail=no
52434(
52435  $as_echo "506. $at_setup_line: testing $at_desc ..."
52436  $at_traceon
52437
52438
52439
52440cat >prog.cob <<'_ATEOF'
52441
52442       IDENTIFICATION  DIVISION.
52443       PROGRAM-ID.     prog.
52444
52445       DATA            DIVISION.
52446       WORKING-STORAGE SECTION.
52447       01 x.
52448           03  ptrs                     OCCURS 5 TIMES.
52449               05  misalign-1           PIC X.
52450               05  ptr                  POINTER, SYNC.
52451               05  ptr-num              REDEFINES ptr,
52452       >>IF P64 SET
52453                                        USAGE BINARY-DOUBLE UNSIGNED.
52454       >>ELSE
52455                                        USAGE BINARY-LONG UNSIGNED.
52456       >>END-IF
52457               05  misalign-2           PIC X.
52458
52459       01  num                          BINARY-LONG.
52460
52461       PROCEDURE       DIVISION.
52462           SET ptr (2) TO ADDRESS OF ptr (2)
52463           SET ptr (3) TO ADDRESS OF ptr (3)
52464
52465           SUBTRACT ptr-num (2) FROM ptr-num (3) GIVING num
52466           DISPLAY FUNCTION MOD (num, FUNCTION LENGTH (ptr (1)))
52467           .
52468_ATEOF
52469
52470
52471{ set +x
52472$as_echo "$at_srcdir/run_fundamental.at:4435: \$COMPILE prog.cob"
52473at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4435"
52474( $at_check_trace; $COMPILE prog.cob
52475) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52476at_status=$? at_failed=false
52477$at_check_filter
52478at_fn_diff_devnull "$at_stderr" || at_failed=:
52479at_fn_diff_devnull "$at_stdout" || at_failed=:
52480at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4435"
52481$at_failed && at_fn_log_failure
52482$at_traceon; }
52483
52484{ set +x
52485$as_echo "$at_srcdir/run_fundamental.at:4436: \$COBCRUN_DIRECT ./prog"
52486at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4436"
52487( $at_check_trace; $COBCRUN_DIRECT ./prog
52488) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52489at_status=$? at_failed=false
52490$at_check_filter
52491at_fn_diff_devnull "$at_stderr" || at_failed=:
52492echo >>"$at_stdout"; $as_echo "000000000
52493" | \
52494  $at_diff - "$at_stdout" || at_failed=:
52495at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4436"
52496$at_failed && at_fn_log_failure
52497$at_traceon; }
52498
52499
52500  set +x
52501  $at_times_p && times >"$at_times_file"
52502) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52503read at_status <"$at_status_file"
52504#AT_STOP_506
52505#AT_START_507
52506at_fn_group_banner 507 'run_fundamental.at:4443' \
52507  "88 level with THRU" "                             " 4
52508at_xfail=no
52509(
52510  $as_echo "507. $at_setup_line: testing $at_desc ..."
52511  $at_traceon
52512
52513
52514
52515cat >prog.cob <<'_ATEOF'
52516
52517       IDENTIFICATION   DIVISION.
52518       PROGRAM-ID.      prog.
52519       DATA             DIVISION.
52520       WORKING-STORAGE  SECTION.
52521       01  VAR-X        PIC X VALUE SPACE.
52522           88 X         VALUE "X".
52523           88 T-Y       VALUE "T" THRU "Y".
52524       01  VAR-9        PIC 9 VALUE ZERO.
52525           88 V9        VALUE 9.
52526           88 V2-4      VALUE 2 THRU 4.
52527       PROCEDURE        DIVISION.
52528           IF X
52529               DISPLAY "NOT OK '" VAR-X "' IS X"
52530               END-DISPLAY
52531           END-IF
52532           SET X TO TRUE
52533           IF NOT X
52534               DISPLAY "NOT OK '" VAR-X "' IS NOT X"
52535               END-DISPLAY
52536           END-IF
52537           IF NOT T-Y
52538               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
52539               END-DISPLAY
52540           END-IF
52541           SET T-Y TO TRUE
52542           IF NOT T-Y
52543               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
52544               END-DISPLAY
52545           END-IF
52546           MOVE 'Y' TO VAR-X
52547           IF NOT T-Y
52548               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
52549               END-DISPLAY
52550           END-IF
52551           MOVE 'Z' TO VAR-X
52552           IF T-Y
52553               DISPLAY "NOT OK '" VAR-X "' IS T-Y"
52554               END-DISPLAY
52555           END-IF
52556           MOVE 'A' TO VAR-X
52557           IF T-Y
52558               DISPLAY "NOT OK '" VAR-X "' IS T-Y"
52559               END-DISPLAY
52560           END-IF
52561           IF V9
52562               DISPLAY "NOT OK '" VAR-9 "' IS V9"
52563               END-DISPLAY
52564           END-IF
52565           SET V9 TO TRUE
52566           IF NOT V9
52567               DISPLAY "NOT OK '" VAR-9 "' IS NOT V9"
52568               END-DISPLAY
52569           END-IF
52570           SET V2-4 TO TRUE
52571           IF V9
52572               DISPLAY "NOT OK '" VAR-9 "' IS V9"
52573               END-DISPLAY
52574           END-IF
52575           IF NOT V2-4
52576               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
52577               END-DISPLAY
52578           END-IF
52579           MOVE 3 TO VAR-9
52580           IF NOT V2-4
52581               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
52582               END-DISPLAY
52583           END-IF
52584           MOVE 4 TO VAR-9
52585           IF NOT V2-4
52586               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
52587               END-DISPLAY
52588           END-IF
52589           MOVE 5 TO VAR-9
52590           IF V2-4
52591               DISPLAY "NOT OK '" VAR-9 "' IS V2-4"
52592               END-DISPLAY
52593           END-IF
52594           MOVE 1 TO VAR-9
52595           IF V2-4
52596               DISPLAY "NOT OK '" VAR-9 "' IS V2-4"
52597               END-DISPLAY
52598           END-IF
52599           STOP RUN.
52600_ATEOF
52601
52602
52603{ set +x
52604$as_echo "$at_srcdir/run_fundamental.at:4532: \$COMPILE prog.cob"
52605at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4532"
52606( $at_check_trace; $COMPILE prog.cob
52607) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52608at_status=$? at_failed=false
52609$at_check_filter
52610at_fn_diff_devnull "$at_stderr" || at_failed=:
52611at_fn_diff_devnull "$at_stdout" || at_failed=:
52612at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4532"
52613$at_failed && at_fn_log_failure
52614$at_traceon; }
52615
52616{ set +x
52617$as_echo "$at_srcdir/run_fundamental.at:4533: \$COBCRUN_DIRECT ./prog"
52618at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4533"
52619( $at_check_trace; $COBCRUN_DIRECT ./prog
52620) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52621at_status=$? at_failed=false
52622$at_check_filter
52623at_fn_diff_devnull "$at_stderr" || at_failed=:
52624at_fn_diff_devnull "$at_stdout" || at_failed=:
52625at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4533"
52626$at_failed && at_fn_log_failure
52627$at_traceon; }
52628
52629
52630  set +x
52631  $at_times_p && times >"$at_times_file"
52632) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52633read at_status <"$at_status_file"
52634#AT_STOP_507
52635#AT_START_508
52636at_fn_group_banner 508 'run_fundamental.at:4538' \
52637  "88 level with FILLER" "                           " 4
52638at_xfail=no
52639(
52640  $as_echo "508. $at_setup_line: testing $at_desc ..."
52641  $at_traceon
52642
52643
52644
52645cat >prog.cob <<'_ATEOF'
52646
52647       IDENTIFICATION   DIVISION.
52648       PROGRAM-ID.      prog.
52649       DATA             DIVISION.
52650       WORKING-STORAGE  SECTION.
52651       01  FILLER       PIC X VALUE SPACE.
52652           88 X         VALUE "X".
52653       PROCEDURE        DIVISION.
52654           IF X
52655               DISPLAY "NOT OK"
52656               END-DISPLAY
52657           END-IF
52658           SET X TO TRUE.
52659           IF NOT X
52660               DISPLAY "NOT OK"
52661               END-DISPLAY
52662           END-IF
52663           STOP RUN.
52664_ATEOF
52665
52666
52667{ set +x
52668$as_echo "$at_srcdir/run_fundamental.at:4561: \$COMPILE prog.cob"
52669at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4561"
52670( $at_check_trace; $COMPILE prog.cob
52671) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52672at_status=$? at_failed=false
52673$at_check_filter
52674at_fn_diff_devnull "$at_stderr" || at_failed=:
52675at_fn_diff_devnull "$at_stdout" || at_failed=:
52676at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4561"
52677$at_failed && at_fn_log_failure
52678$at_traceon; }
52679
52680{ set +x
52681$as_echo "$at_srcdir/run_fundamental.at:4562: \$COBCRUN_DIRECT ./prog"
52682at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4562"
52683( $at_check_trace; $COBCRUN_DIRECT ./prog
52684) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52685at_status=$? at_failed=false
52686$at_check_filter
52687at_fn_diff_devnull "$at_stderr" || at_failed=:
52688at_fn_diff_devnull "$at_stdout" || at_failed=:
52689at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4562"
52690$at_failed && at_fn_log_failure
52691$at_traceon; }
52692
52693
52694  set +x
52695  $at_times_p && times >"$at_times_file"
52696) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52697read at_status <"$at_status_file"
52698#AT_STOP_508
52699#AT_START_509
52700at_fn_group_banner 509 'run_fundamental.at:4567' \
52701  "88 level with FALSE IS clause" "                  " 4
52702at_xfail=no
52703(
52704  $as_echo "509. $at_setup_line: testing $at_desc ..."
52705  $at_traceon
52706
52707
52708
52709cat >prog.cob <<'_ATEOF'
52710
52711       IDENTIFICATION   DIVISION.
52712       PROGRAM-ID.      prog.
52713       DATA             DIVISION.
52714       WORKING-STORAGE  SECTION.
52715       01  MYFLD        PIC X(6) VALUE "ABCDEF".
52716           88  MYFLD88  VALUE "ABCDEF"
52717               FALSE IS "OKOKOK".
52718       PROCEDURE        DIVISION.
52719       ASTART SECTION.
52720       A01.
52721           SET MYFLD88 TO FALSE
52722           IF MYFLD NOT = "OKOKOK"
52723              DISPLAY MYFLD
52724              END-DISPLAY
52725           END-IF
52726           STOP RUN.
52727_ATEOF
52728
52729
52730{ set +x
52731$as_echo "$at_srcdir/run_fundamental.at:4589: \$COMPILE prog.cob"
52732at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4589"
52733( $at_check_trace; $COMPILE prog.cob
52734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52735at_status=$? at_failed=false
52736$at_check_filter
52737at_fn_diff_devnull "$at_stderr" || at_failed=:
52738at_fn_diff_devnull "$at_stdout" || at_failed=:
52739at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4589"
52740$at_failed && at_fn_log_failure
52741$at_traceon; }
52742
52743{ set +x
52744$as_echo "$at_srcdir/run_fundamental.at:4590: \$COBCRUN_DIRECT ./prog"
52745at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4590"
52746( $at_check_trace; $COBCRUN_DIRECT ./prog
52747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52748at_status=$? at_failed=false
52749$at_check_filter
52750at_fn_diff_devnull "$at_stderr" || at_failed=:
52751at_fn_diff_devnull "$at_stdout" || at_failed=:
52752at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4590"
52753$at_failed && at_fn_log_failure
52754$at_traceon; }
52755
52756
52757  set +x
52758  $at_times_p && times >"$at_times_file"
52759) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52760read at_status <"$at_status_file"
52761#AT_STOP_509
52762#AT_START_510
52763at_fn_group_banner 510 'run_fundamental.at:4595' \
52764  "BLANK WHEN ZERO" "                                " 4
52765at_xfail=no
52766(
52767  $as_echo "510. $at_setup_line: testing $at_desc ..."
52768  $at_traceon
52769
52770
52771
52772cat >prog.cob <<'_ATEOF'
52773
52774       IDENTIFICATION   DIVISION.
52775       PROGRAM-ID.      prog.
52776
52777       DATA             DIVISION.
52778       WORKING-STORAGE  SECTION.
52779       01  x            PIC 9, BLANK WHEN ZERO, VALUE 1.
52780
52781       PROCEDURE        DIVISION.
52782           DISPLAY x
52783           MOVE 0 TO x
52784           DISPLAY FUNCTION TRIM(x)
52785           MOVE ZERO TO x
52786           DISPLAY FUNCTION TRIM(x)
52787           .
52788_ATEOF
52789
52790
52791{ set +x
52792$as_echo "$at_srcdir/run_fundamental.at:4615: \$COMPILE prog.cob"
52793at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4615"
52794( $at_check_trace; $COMPILE prog.cob
52795) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52796at_status=$? at_failed=false
52797$at_check_filter
52798at_fn_diff_devnull "$at_stderr" || at_failed=:
52799at_fn_diff_devnull "$at_stdout" || at_failed=:
52800at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4615"
52801$at_failed && at_fn_log_failure
52802$at_traceon; }
52803
52804{ set +x
52805$as_echo "$at_srcdir/run_fundamental.at:4616: \$COBCRUN_DIRECT ./prog"
52806at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4616"
52807( $at_check_trace; $COBCRUN_DIRECT ./prog
52808) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52809at_status=$? at_failed=false
52810$at_check_filter
52811at_fn_diff_devnull "$at_stderr" || at_failed=:
52812echo >>"$at_stdout"; $as_echo "1
52813
52814
52815" | \
52816  $at_diff - "$at_stdout" || at_failed=:
52817at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4616"
52818$at_failed && at_fn_log_failure
52819$at_traceon; }
52820
52821
52822  set +x
52823  $at_times_p && times >"$at_times_file"
52824) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52825read at_status <"$at_status_file"
52826#AT_STOP_510
52827#AT_START_511
52828at_fn_group_banner 511 'run_fundamental.at:4625' \
52829  "MULTIPLY BY literal in INITIAL program" "         " 4
52830at_xfail=no
52831(
52832  $as_echo "511. $at_setup_line: testing $at_desc ..."
52833  $at_traceon
52834
52835
52836
52837cat >prog.cob <<'_ATEOF'
52838
52839       IDENTIFICATION   DIVISION.
52840       PROGRAM-ID.      prog INITIAL.
52841       DATA             DIVISION.
52842       WORKING-STORAGE  SECTION.
52843       01  num          PIC 9(4)    VALUE 5.
52844       01  result       PIC 9(4).
52845       01  ws-temp      PIC 9(8)V99.
52846       01  ws-temp2     PIC 9(3)V99 VALUE 10.50.
52847       PROCEDURE        DIVISION.
52848           MULTIPLY num BY 4 GIVING result
52849           MOVE 1.10          TO WS-TEMP.
52850           MULTIPLY WS-TEMP2  BY WS-TEMP GIVING WS-TEMP.
52851_ATEOF
52852
52853
52854{ set +x
52855$as_echo "$at_srcdir/run_fundamental.at:4643: \$COMPILE prog.cob"
52856at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4643"
52857( $at_check_trace; $COMPILE prog.cob
52858) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52859at_status=$? at_failed=false
52860$at_check_filter
52861at_fn_diff_devnull "$at_stderr" || at_failed=:
52862at_fn_diff_devnull "$at_stdout" || at_failed=:
52863at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4643"
52864$at_failed && at_fn_log_failure
52865$at_traceon; }
52866
52867{ set +x
52868$as_echo "$at_srcdir/run_fundamental.at:4644: \$COBCRUN_DIRECT ./prog"
52869at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4644"
52870( $at_check_trace; $COBCRUN_DIRECT ./prog
52871) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52872at_status=$? at_failed=false
52873$at_check_filter
52874at_fn_diff_devnull "$at_stderr" || at_failed=:
52875at_fn_diff_devnull "$at_stdout" || at_failed=:
52876at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4644"
52877$at_failed && at_fn_log_failure
52878$at_traceon; }
52879
52880
52881  set +x
52882  $at_times_p && times >"$at_times_file"
52883) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52884read at_status <"$at_status_file"
52885#AT_STOP_511
52886#AT_START_512
52887at_fn_group_banner 512 'run_fundamental.at:4649' \
52888  "debugging lines (not active)" "                   " 4
52889at_xfail=no
52890(
52891  $as_echo "512. $at_setup_line: testing $at_desc ..."
52892  $at_traceon
52893
52894
52895
52896cat >prog.cob <<'_ATEOF'
52897
52898       IDENTIFICATION   DIVISION.
52899       PROGRAM-ID.      prog.
52900       DATA             DIVISION.
52901       WORKING-STORAGE  SECTION.
52902       PROCEDURE        DIVISION.
52903           DISPLAY "OK" NO ADVANCING
52904           END-DISPLAY.
52905      D    DISPLAY "KO" NO ADVANCING
52906      D    END-DISPLAY.
52907           STOP RUN.
52908_ATEOF
52909
52910
52911{ set +x
52912$as_echo "$at_srcdir/run_fundamental.at:4665: \$COMPILE prog.cob"
52913at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4665"
52914( $at_check_trace; $COMPILE prog.cob
52915) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52916at_status=$? at_failed=false
52917$at_check_filter
52918at_fn_diff_devnull "$at_stderr" || at_failed=:
52919at_fn_diff_devnull "$at_stdout" || at_failed=:
52920at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4665"
52921$at_failed && at_fn_log_failure
52922$at_traceon; }
52923
52924{ set +x
52925$as_echo "$at_srcdir/run_fundamental.at:4666: \$COBCRUN_DIRECT ./prog"
52926at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4666"
52927( $at_check_trace; $COBCRUN_DIRECT ./prog
52928) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52929at_status=$? at_failed=false
52930$at_check_filter
52931at_fn_diff_devnull "$at_stderr" || at_failed=:
52932echo >>"$at_stdout"; $as_echo "OK" | \
52933  $at_diff - "$at_stdout" || at_failed=:
52934at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4666"
52935$at_failed && at_fn_log_failure
52936$at_traceon; }
52937
52938
52939  set +x
52940  $at_times_p && times >"$at_times_file"
52941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
52942read at_status <"$at_status_file"
52943#AT_STOP_512
52944#AT_START_513
52945at_fn_group_banner 513 'run_fundamental.at:4672' \
52946  "debugging lines (-fdebugging-line)" "             " 4
52947at_xfail=no
52948(
52949  $as_echo "513. $at_setup_line: testing $at_desc ..."
52950  $at_traceon
52951
52952
52953
52954cat >prog.cob <<'_ATEOF'
52955
52956       IDENTIFICATION   DIVISION.
52957       PROGRAM-ID.      prog.
52958       DATA             DIVISION.
52959       WORKING-STORAGE  SECTION.
52960       PROCEDURE        DIVISION.
52961           DISPLAY "OK" NO ADVANCING
52962           END-DISPLAY.
52963      D    DISPLAY "KO" NO ADVANCING
52964      D    END-DISPLAY.
52965           STOP RUN.
52966_ATEOF
52967
52968
52969{ set +x
52970$as_echo "$at_srcdir/run_fundamental.at:4688: \$COMPILE -fdebugging-line prog.cob"
52971at_fn_check_prepare_dynamic "$COMPILE -fdebugging-line prog.cob" "run_fundamental.at:4688"
52972( $at_check_trace; $COMPILE -fdebugging-line prog.cob
52973) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52974at_status=$? at_failed=false
52975$at_check_filter
52976at_fn_diff_devnull "$at_stderr" || at_failed=:
52977at_fn_diff_devnull "$at_stdout" || at_failed=:
52978at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4688"
52979$at_failed && at_fn_log_failure
52980$at_traceon; }
52981
52982{ set +x
52983$as_echo "$at_srcdir/run_fundamental.at:4689: \$COBCRUN_DIRECT ./prog"
52984at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4689"
52985( $at_check_trace; $COBCRUN_DIRECT ./prog
52986) >>"$at_stdout" 2>>"$at_stderr" 5>&-
52987at_status=$? at_failed=false
52988$at_check_filter
52989at_fn_diff_devnull "$at_stderr" || at_failed=:
52990echo >>"$at_stdout"; $as_echo "OKKO" | \
52991  $at_diff - "$at_stdout" || at_failed=:
52992at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4689"
52993$at_failed && at_fn_log_failure
52994$at_traceon; }
52995
52996
52997  set +x
52998  $at_times_p && times >"$at_times_file"
52999) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53000read at_status <"$at_status_file"
53001#AT_STOP_513
53002#AT_START_514
53003at_fn_group_banner 514 'run_fundamental.at:4695' \
53004  "debugging lines (WITH DEBUGGING MODE)" "          " 4
53005at_xfail=no
53006(
53007  $as_echo "514. $at_setup_line: testing $at_desc ..."
53008  $at_traceon
53009
53010
53011
53012cat >prog.cob <<'_ATEOF'
53013
53014       IDENTIFICATION   DIVISION.
53015       PROGRAM-ID.      prog.
53016       ENVIRONMENT DIVISION.
53017       CONFIGURATION SECTION.
53018           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53019       DATA             DIVISION.
53020       WORKING-STORAGE  SECTION.
53021       PROCEDURE        DIVISION.
53022      D    DISPLAY "KO" NO ADVANCING UPON STDOUT
53023      D    END-DISPLAY.
53024           DISPLAY "OK" NO ADVANCING UPON STDOUT
53025           END-DISPLAY.
53026           STOP RUN.
53027_ATEOF
53028
53029
53030{ set +x
53031$as_echo "$at_srcdir/run_fundamental.at:4714: \$COMPILE prog.cob"
53032at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4714"
53033( $at_check_trace; $COMPILE prog.cob
53034) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53035at_status=$? at_failed=false
53036$at_check_filter
53037at_fn_diff_devnull "$at_stderr" || at_failed=:
53038at_fn_diff_devnull "$at_stdout" || at_failed=:
53039at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4714"
53040$at_failed && at_fn_log_failure
53041$at_traceon; }
53042
53043{ set +x
53044$as_echo "$at_srcdir/run_fundamental.at:4715: \$COBCRUN_DIRECT ./prog"
53045at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4715"
53046( $at_check_trace; $COBCRUN_DIRECT ./prog
53047) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53048at_status=$? at_failed=false
53049$at_check_filter
53050at_fn_diff_devnull "$at_stderr" || at_failed=:
53051echo >>"$at_stdout"; $as_echo "KOOK" | \
53052  $at_diff - "$at_stdout" || at_failed=:
53053at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4715"
53054$at_failed && at_fn_log_failure
53055$at_traceon; }
53056
53057
53058  set +x
53059  $at_times_p && times >"$at_times_file"
53060) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53061read at_status <"$at_status_file"
53062#AT_STOP_514
53063#AT_START_515
53064at_fn_group_banner 515 'run_fundamental.at:4721' \
53065  "debugging lines, free format (not active)" "      " 4
53066at_xfail=no
53067(
53068  $as_echo "515. $at_setup_line: testing $at_desc ..."
53069  $at_traceon
53070
53071
53072
53073cat >prog.cob <<'_ATEOF'
53074
53075       IDENTIFICATION   DIVISION.
53076       PROGRAM-ID.      prog.
53077       DATA             DIVISION.
53078       WORKING-STORAGE  SECTION.
53079       PROCEDURE        DIVISION.
53080             DISPLAY "OK" NO ADVANCING
53081             END-DISPLAY.
53082      >>D    DISPLAY "KO" NO ADVANCING
53083      >>D    END-DISPLAY.
53084             STOP RUN.
53085_ATEOF
53086
53087
53088{ set +x
53089$as_echo "$at_srcdir/run_fundamental.at:4737: \$COMPILE -free prog.cob"
53090at_fn_check_prepare_dynamic "$COMPILE -free prog.cob" "run_fundamental.at:4737"
53091( $at_check_trace; $COMPILE -free prog.cob
53092) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53093at_status=$? at_failed=false
53094$at_check_filter
53095at_fn_diff_devnull "$at_stderr" || at_failed=:
53096at_fn_diff_devnull "$at_stdout" || at_failed=:
53097at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4737"
53098$at_failed && at_fn_log_failure
53099$at_traceon; }
53100
53101{ set +x
53102$as_echo "$at_srcdir/run_fundamental.at:4738: \$COBCRUN_DIRECT ./prog"
53103at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4738"
53104( $at_check_trace; $COBCRUN_DIRECT ./prog
53105) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53106at_status=$? at_failed=false
53107$at_check_filter
53108at_fn_diff_devnull "$at_stderr" || at_failed=:
53109echo >>"$at_stdout"; $as_echo "OK" | \
53110  $at_diff - "$at_stdout" || at_failed=:
53111at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4738"
53112$at_failed && at_fn_log_failure
53113$at_traceon; }
53114
53115
53116  set +x
53117  $at_times_p && times >"$at_times_file"
53118) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53119read at_status <"$at_status_file"
53120#AT_STOP_515
53121#AT_START_516
53122at_fn_group_banner 516 'run_fundamental.at:4744' \
53123  "debugging lines, free format (-fdebugging-line)" "" 4
53124at_xfail=no
53125(
53126  $as_echo "516. $at_setup_line: testing $at_desc ..."
53127  $at_traceon
53128
53129
53130
53131cat >prog.cob <<'_ATEOF'
53132
53133       IDENTIFICATION   DIVISION.
53134       PROGRAM-ID.      prog.
53135       DATA             DIVISION.
53136       WORKING-STORAGE  SECTION.
53137       PROCEDURE        DIVISION.
53138             DISPLAY "OK" NO ADVANCING
53139             END-DISPLAY.
53140      >>D    DISPLAY "KO" NO ADVANCING
53141      >>D    END-DISPLAY.
53142             STOP RUN.
53143_ATEOF
53144
53145
53146{ set +x
53147$as_echo "$at_srcdir/run_fundamental.at:4760: \$COMPILE -free -fdebugging-line prog.cob"
53148at_fn_check_prepare_dynamic "$COMPILE -free -fdebugging-line prog.cob" "run_fundamental.at:4760"
53149( $at_check_trace; $COMPILE -free -fdebugging-line prog.cob
53150) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53151at_status=$? at_failed=false
53152$at_check_filter
53153at_fn_diff_devnull "$at_stderr" || at_failed=:
53154at_fn_diff_devnull "$at_stdout" || at_failed=:
53155at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4760"
53156$at_failed && at_fn_log_failure
53157$at_traceon; }
53158
53159{ set +x
53160$as_echo "$at_srcdir/run_fundamental.at:4761: \$COBCRUN_DIRECT ./prog"
53161at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4761"
53162( $at_check_trace; $COBCRUN_DIRECT ./prog
53163) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53164at_status=$? at_failed=false
53165$at_check_filter
53166at_fn_diff_devnull "$at_stderr" || at_failed=:
53167echo >>"$at_stdout"; $as_echo "OKKO" | \
53168  $at_diff - "$at_stdout" || at_failed=:
53169at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4761"
53170$at_failed && at_fn_log_failure
53171$at_traceon; }
53172
53173
53174  set +x
53175  $at_times_p && times >"$at_times_file"
53176) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53177read at_status <"$at_status_file"
53178#AT_STOP_516
53179#AT_START_517
53180at_fn_group_banner 517 'run_fundamental.at:4767' \
53181  "USE FOR DEBUGGING (no DEBUGGING MODE)" "          " 4
53182at_xfail=no
53183(
53184  $as_echo "517. $at_setup_line: testing $at_desc ..."
53185  $at_traceon
53186
53187
53188
53189cat >prog.cob <<'_ATEOF'
53190
53191       IDENTIFICATION   DIVISION.
53192       PROGRAM-ID.      prog.
53193       ENVIRONMENT DIVISION.
53194       CONFIGURATION SECTION.
53195           SOURCE-COMPUTER.
53196       DATA             DIVISION.
53197       WORKING-STORAGE  SECTION.
53198       PROCEDURE        DIVISION.
53199       DECLARATIVES.
53200       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
53201           DISPLAY DEBUG-ITEM END-DISPLAY.
53202       END DECLARATIVES.
53203       FIRST-PAR.
53204           DISPLAY "OK1" END-DISPLAY.
53205           GO TO SECOND-PAR.
53206       SECOND-PAR.
53207           DISPLAY "OK2" END-DISPLAY.
53208       THIRD-PAR.
53209           DISPLAY "OK3" END-DISPLAY.
53210           PERFORM FIRST-PAR THRU SECOND-PAR.
53211           DISPLAY "OK4" END-DISPLAY.
53212           PERFORM SECOND-PAR.
53213           DISPLAY "OK5" END-DISPLAY.
53214           STOP RUN.
53215_ATEOF
53216
53217
53218{ set +x
53219$as_echo "$at_srcdir/run_fundamental.at:4797: \$COMPILE prog.cob"
53220at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4797"
53221( $at_check_trace; $COMPILE prog.cob
53222) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53223at_status=$? at_failed=false
53224$at_check_filter
53225at_fn_diff_devnull "$at_stderr" || at_failed=:
53226at_fn_diff_devnull "$at_stdout" || at_failed=:
53227at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4797"
53228$at_failed && at_fn_log_failure
53229$at_traceon; }
53230
53231{ set +x
53232$as_echo "$at_srcdir/run_fundamental.at:4798: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53233at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4798"
53234( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53235) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53236at_status=$? at_failed=false
53237$at_check_filter
53238at_fn_diff_devnull "$at_stderr" || at_failed=:
53239echo >>"$at_stdout"; $as_echo "OK1
53240OK2
53241OK3
53242OK1
53243OK2
53244OK4
53245OK2
53246OK5
53247" | \
53248  $at_diff - "$at_stdout" || at_failed=:
53249at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4798"
53250$at_failed && at_fn_log_failure
53251$at_traceon; }
53252
53253
53254  set +x
53255  $at_times_p && times >"$at_times_file"
53256) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53257read at_status <"$at_status_file"
53258#AT_STOP_517
53259#AT_START_518
53260at_fn_group_banner 518 'run_fundamental.at:4812' \
53261  "USE FOR DEBUGGING (COB_SET_DEBUG deactivated)" "  " 4
53262at_xfail=no
53263(
53264  $as_echo "518. $at_setup_line: testing $at_desc ..."
53265  $at_traceon
53266
53267
53268
53269cat >prog.cob <<'_ATEOF'
53270
53271       IDENTIFICATION   DIVISION.
53272       PROGRAM-ID.      prog.
53273       ENVIRONMENT DIVISION.
53274       CONFIGURATION SECTION.
53275           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53276       DATA             DIVISION.
53277       WORKING-STORAGE  SECTION.
53278       PROCEDURE        DIVISION.
53279       DECLARATIVES.
53280       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
53281           DISPLAY DEBUG-ITEM END-DISPLAY.
53282       END DECLARATIVES.
53283       FIRST-PAR.
53284           DISPLAY "OK1" END-DISPLAY.
53285           GO TO SECOND-PAR.
53286       SECOND-PAR.
53287           DISPLAY "OK2" END-DISPLAY.
53288       THIRD-PAR.
53289           DISPLAY "OK3" END-DISPLAY.
53290           PERFORM FIRST-PAR THRU SECOND-PAR.
53291           DISPLAY "OK4" END-DISPLAY.
53292           PERFORM SECOND-PAR.
53293           DISPLAY "OK5" END-DISPLAY.
53294           STOP RUN.
53295_ATEOF
53296
53297
53298{ set +x
53299$as_echo "$at_srcdir/run_fundamental.at:4842: \$COMPILE prog.cob"
53300at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4842"
53301( $at_check_trace; $COMPILE prog.cob
53302) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53303at_status=$? at_failed=false
53304$at_check_filter
53305at_fn_diff_devnull "$at_stderr" || at_failed=:
53306at_fn_diff_devnull "$at_stdout" || at_failed=:
53307at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4842"
53308$at_failed && at_fn_log_failure
53309$at_traceon; }
53310
53311{ set +x
53312$as_echo "$at_srcdir/run_fundamental.at:4843: COB_SET_DEBUG=0 \$COBCRUN_DIRECT ./prog"
53313at_fn_check_prepare_dynamic "COB_SET_DEBUG=0 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4843"
53314( $at_check_trace; COB_SET_DEBUG=0 $COBCRUN_DIRECT ./prog
53315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53316at_status=$? at_failed=false
53317$at_check_filter
53318at_fn_diff_devnull "$at_stderr" || at_failed=:
53319echo >>"$at_stdout"; $as_echo "OK1
53320OK2
53321OK3
53322OK1
53323OK2
53324OK4
53325OK2
53326OK5
53327" | \
53328  $at_diff - "$at_stdout" || at_failed=:
53329at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4843"
53330$at_failed && at_fn_log_failure
53331$at_traceon; }
53332
53333
53334  set +x
53335  $at_times_p && times >"$at_times_file"
53336) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53337read at_status <"$at_status_file"
53338#AT_STOP_518
53339#AT_START_519
53340at_fn_group_banner 519 'run_fundamental.at:4857' \
53341  "USE FOR DEBUGGING ON ALL PROCEDURES" "            " 4
53342at_xfail=no
53343(
53344  $as_echo "519. $at_setup_line: testing $at_desc ..."
53345  $at_traceon
53346
53347
53348
53349cat >prog.cob <<'_ATEOF'
53350
53351       IDENTIFICATION   DIVISION.
53352       PROGRAM-ID.      prog.
53353       ENVIRONMENT DIVISION.
53354       CONFIGURATION SECTION.
53355           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53356       DATA             DIVISION.
53357       WORKING-STORAGE  SECTION.
53358       PROCEDURE        DIVISION.
53359       DECLARATIVES.
53360       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
53361           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53362       END DECLARATIVES.
53363       FIRST-PAR.
53364           DISPLAY "OK1" END-DISPLAY.
53365           GO TO SECOND-PAR.
53366       SECOND-PAR.
53367           DISPLAY "OK2" END-DISPLAY.
53368       THIRD-PAR.
53369           DISPLAY "OK3" END-DISPLAY.
53370           PERFORM FIRST-PAR THRU SECOND-PAR.
53371           DISPLAY "OK4" END-DISPLAY.
53372           PERFORM SECOND-PAR.
53373           DISPLAY "OK5" END-DISPLAY.
53374           STOP RUN.
53375_ATEOF
53376
53377
53378{ set +x
53379$as_echo "$at_srcdir/run_fundamental.at:4887: \$COMPILE prog.cob"
53380at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4887"
53381( $at_check_trace; $COMPILE prog.cob
53382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53383at_status=$? at_failed=false
53384$at_check_filter
53385at_fn_diff_devnull "$at_stderr" || at_failed=:
53386at_fn_diff_devnull "$at_stdout" || at_failed=:
53387at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4887"
53388$at_failed && at_fn_log_failure
53389$at_traceon; }
53390
53391{ set +x
53392$as_echo "$at_srcdir/run_fundamental.at:4888: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53393at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4888"
53394( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53395) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53396at_status=$? at_failed=false
53397$at_check_filter
53398at_fn_diff_devnull "$at_stderr" || at_failed=:
53399echo >>"$at_stdout"; $as_echo "       FIRST-PAR                                        START PROGRAM                 |
53400OK1
53401    16 SECOND-PAR                                                                     |
53402OK2
53403    18 THIRD-PAR                                        FALL THROUGH                  |
53404OK3
53405    21 FIRST-PAR                                        PERFORM LOOP                  |
53406OK1
53407    16 SECOND-PAR                                                                     |
53408OK2
53409OK4
53410    23 SECOND-PAR                                       PERFORM LOOP                  |
53411OK2
53412OK5
53413" | \
53414  $at_diff - "$at_stdout" || at_failed=:
53415at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4888"
53416$at_failed && at_fn_log_failure
53417$at_traceon; }
53418
53419
53420  set +x
53421  $at_times_p && times >"$at_times_file"
53422) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53423read at_status <"$at_status_file"
53424#AT_STOP_519
53425#AT_START_520
53426at_fn_group_banner 520 'run_fundamental.at:4908' \
53427  "USE FOR DEBUGGING ON procedure" "                 " 4
53428at_xfail=no
53429(
53430  $as_echo "520. $at_setup_line: testing $at_desc ..."
53431  $at_traceon
53432
53433
53434
53435cat >prog.cob <<'_ATEOF'
53436
53437       IDENTIFICATION   DIVISION.
53438       PROGRAM-ID.      prog.
53439       ENVIRONMENT DIVISION.
53440       CONFIGURATION SECTION.
53441           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53442       DATA             DIVISION.
53443       WORKING-STORAGE  SECTION.
53444       PROCEDURE        DIVISION.
53445       DECLARATIVES.
53446       TEST-DEBUG SECTION. USE FOR DEBUGGING ON SECOND-PAR.
53447           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53448       END DECLARATIVES.
53449       FIRST-PAR.
53450           DISPLAY "OK1" END-DISPLAY.
53451           GO TO SECOND-PAR.
53452       SECOND-PAR.
53453           DISPLAY "OK2" END-DISPLAY.
53454       THIRD-PAR.
53455           DISPLAY "OK3" END-DISPLAY.
53456           PERFORM FIRST-PAR THRU SECOND-PAR.
53457           DISPLAY "OK4" END-DISPLAY.
53458           PERFORM SECOND-PAR.
53459           DISPLAY "OK5" END-DISPLAY.
53460           STOP RUN.
53461_ATEOF
53462
53463
53464{ set +x
53465$as_echo "$at_srcdir/run_fundamental.at:4938: \$COMPILE prog.cob"
53466at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4938"
53467( $at_check_trace; $COMPILE prog.cob
53468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53469at_status=$? at_failed=false
53470$at_check_filter
53471at_fn_diff_devnull "$at_stderr" || at_failed=:
53472at_fn_diff_devnull "$at_stdout" || at_failed=:
53473at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4938"
53474$at_failed && at_fn_log_failure
53475$at_traceon; }
53476
53477{ set +x
53478$as_echo "$at_srcdir/run_fundamental.at:4939: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53479at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4939"
53480( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53482at_status=$? at_failed=false
53483$at_check_filter
53484at_fn_diff_devnull "$at_stderr" || at_failed=:
53485echo >>"$at_stdout"; $as_echo "OK1
53486    16 SECOND-PAR                                                                     |
53487OK2
53488OK3
53489OK1
53490    16 SECOND-PAR                                                                     |
53491OK2
53492OK4
53493    23 SECOND-PAR                                       PERFORM LOOP                  |
53494OK2
53495OK5
53496" | \
53497  $at_diff - "$at_stdout" || at_failed=:
53498at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4939"
53499$at_failed && at_fn_log_failure
53500$at_traceon; }
53501
53502
53503  set +x
53504  $at_times_p && times >"$at_times_file"
53505) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53506read at_status <"$at_status_file"
53507#AT_STOP_520
53508#AT_START_521
53509at_fn_group_banner 521 'run_fundamental.at:4956' \
53510  "USE FOR DEBUGGING (COB_SET_DEBUG switched)" "     " 4
53511at_xfail=no
53512(
53513  $as_echo "521. $at_setup_line: testing $at_desc ..."
53514  $at_traceon
53515
53516
53517
53518cat >prog.cob <<'_ATEOF'
53519
53520       IDENTIFICATION   DIVISION.
53521       PROGRAM-ID.      prog.
53522       ENVIRONMENT DIVISION.
53523       CONFIGURATION SECTION.
53524           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53525       DATA             DIVISION.
53526       WORKING-STORAGE  SECTION.
53527       PROCEDURE        DIVISION.
53528       DECLARATIVES.
53529       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
53530           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53531       END DECLARATIVES.
53532       FIRST-PAR.
53533           SET ENVIRONMENT "COB_SET_DEBUG" TO "false"
53534           DISPLAY "OK1" END-DISPLAY.
53535           GO TO SECOND-PAR.
53536       SECOND-PAR.
53537           DISPLAY "OK2" END-DISPLAY.
53538       THIRD-PAR.
53539           DISPLAY "OK3" END-DISPLAY.
53540           PERFORM FIRST-PAR THRU SECOND-PAR.
53541           DISPLAY "OK4" END-DISPLAY.
53542           SET ENVIRONMENT "COB_SET_DEBUG" TO "Y"
53543           PERFORM SECOND-PAR.
53544           DISPLAY "OK5" END-DISPLAY.
53545           STOP RUN.
53546_ATEOF
53547
53548
53549{ set +x
53550$as_echo "$at_srcdir/run_fundamental.at:4988: \$COMPILE prog.cob"
53551at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4988"
53552( $at_check_trace; $COMPILE prog.cob
53553) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53554at_status=$? at_failed=false
53555$at_check_filter
53556at_fn_diff_devnull "$at_stderr" || at_failed=:
53557at_fn_diff_devnull "$at_stdout" || at_failed=:
53558at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4988"
53559$at_failed && at_fn_log_failure
53560$at_traceon; }
53561
53562{ set +x
53563$as_echo "$at_srcdir/run_fundamental.at:4989: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53564at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4989"
53565( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53567at_status=$? at_failed=false
53568$at_check_filter
53569at_fn_diff_devnull "$at_stderr" || at_failed=:
53570echo >>"$at_stdout"; $as_echo "       FIRST-PAR                                        START PROGRAM                 |
53571OK1
53572OK2
53573OK3
53574OK1
53575OK2
53576OK4
53577    25 SECOND-PAR                                       PERFORM LOOP                  |
53578OK2
53579OK5
53580" | \
53581  $at_diff - "$at_stdout" || at_failed=:
53582at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4989"
53583$at_failed && at_fn_log_failure
53584$at_traceon; }
53585
53586
53587  set +x
53588  $at_times_p && times >"$at_times_file"
53589) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53590read at_status <"$at_status_file"
53591#AT_STOP_521
53592#AT_START_522
53593at_fn_group_banner 522 'run_fundamental.at:5005' \
53594  "USE FOR DEBUGGING ON [ALL] REFERENCES OF field" " " 4
53595at_xfail=no
53596(
53597  $as_echo "522. $at_setup_line: testing $at_desc ..."
53598  $at_traceon
53599
53600
53601
53602cat >prog.cob <<'_ATEOF'
53603
53604       IDENTIFICATION   DIVISION.
53605       PROGRAM-ID.      prog.
53606       ENVIRONMENT DIVISION.
53607       CONFIGURATION SECTION.
53608           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53609       DATA             DIVISION.
53610       WORKING-STORAGE  SECTION.
53611       01  MY-DATA-FIELDS.
53612           02  MY-DATA-FIELD-1  PIC 9 VALUE 1.
53613           02  MY-DATA-FIELD-2  PIC 9 VALUE 4.
53614       01  MY-DATA-FIELD-B  PIC X(40) VALUE "ABCD".
53615       PROCEDURE        DIVISION.
53616       DECLARATIVES.
53617       TEST-DEBUG SECTION.
53618           USE FOR DEBUGGING ON ALL REFERENCES OF MY-DATA-FIELD-1
53619                                ALL               MY-DATA-FIELD-2
53620                                MY-DATA-FIELD-B.
53621           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53622       END DECLARATIVES.
53623       INIT-PAR.
53624           MOVE 6 TO MY-DATA-FIELD-2.
53625       FIRST-PAR.
53626           PERFORM VARYING MY-DATA-FIELD-1 FROM 1 BY 1
53627                   UNTIL   MY-DATA-FIELD-1 > MY-DATA-FIELD-2
53628              *> empty by design
53629           END-PERFORM.
53630       END-PAR.
53631           MOVE "99" TO MY-DATA-FIELD-B.
53632           MOVE MY-DATA-FIELD-B TO MY-DATA-FIELDS.
53633           STOP RUN.
53634_ATEOF
53635
53636
53637{ set +x
53638$as_echo "$at_srcdir/run_fundamental.at:5041: \$COMPILE -fmissing-statement=ok prog.cob"
53639at_fn_check_prepare_dynamic "$COMPILE -fmissing-statement=ok prog.cob" "run_fundamental.at:5041"
53640( $at_check_trace; $COMPILE -fmissing-statement=ok prog.cob
53641) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53642at_status=$? at_failed=false
53643$at_check_filter
53644at_fn_diff_devnull "$at_stderr" || at_failed=:
53645at_fn_diff_devnull "$at_stdout" || at_failed=:
53646at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5041"
53647$at_failed && at_fn_log_failure
53648$at_traceon; }
53649
53650# TODO: validate against other compilers, especially the line 30;
53651#       likely the second line should be 25 instead of 24:
53652{ set +x
53653$as_echo "$at_srcdir/run_fundamental.at:5044: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53654at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5044"
53655( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53656) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53657at_status=$? at_failed=false
53658$at_check_filter
53659at_fn_diff_devnull "$at_stderr" || at_failed=:
53660echo >>"$at_stdout"; $as_echo "    22 MY-DATA-FIELD-2                                  6                                       |
53661    24 MY-DATA-FIELD-1                                  1                                       |
53662    24 MY-DATA-FIELD-1                                  1                                       |
53663    24 MY-DATA-FIELD-2                                  6                                       |
53664    24 MY-DATA-FIELD-1                                  2                                       |
53665    24 MY-DATA-FIELD-1                                  2                                       |
53666    24 MY-DATA-FIELD-2                                  6                                       |
53667    24 MY-DATA-FIELD-1                                  3                                       |
53668    24 MY-DATA-FIELD-1                                  3                                       |
53669    24 MY-DATA-FIELD-2                                  6                                       |
53670    24 MY-DATA-FIELD-1                                  4                                       |
53671    24 MY-DATA-FIELD-1                                  4                                       |
53672    24 MY-DATA-FIELD-2                                  6                                       |
53673    24 MY-DATA-FIELD-1                                  5                                       |
53674    24 MY-DATA-FIELD-1                                  5                                       |
53675    24 MY-DATA-FIELD-2                                  6                                       |
53676    24 MY-DATA-FIELD-1                                  6                                       |
53677    24 MY-DATA-FIELD-1                                  6                                       |
53678    24 MY-DATA-FIELD-2                                  6                                       |
53679    24 MY-DATA-FIELD-1                                  7                                       |
53680    24 MY-DATA-FIELD-1                                  7                                       |
53681    24 MY-DATA-FIELD-2                                  6                                       |
53682    29 MY-DATA-FIELD-B                                  99                                      |
53683" | \
53684  $at_diff - "$at_stdout" || at_failed=:
53685at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5044"
53686$at_failed && at_fn_log_failure
53687$at_traceon; }
53688
53689
53690  set +x
53691  $at_times_p && times >"$at_times_file"
53692) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53693read at_status <"$at_status_file"
53694#AT_STOP_522
53695#AT_START_523
53696at_fn_group_banner 523 'run_fundamental.at:5073' \
53697  "USE FOR DEBUGGING, reference within DEBUGGING" "  " 4
53698at_xfail=no
53699(
53700  $as_echo "523. $at_setup_line: testing $at_desc ..."
53701  $at_traceon
53702
53703
53704
53705cat >prog.cob <<'_ATEOF'
53706
53707       IDENTIFICATION   DIVISION.
53708       PROGRAM-ID.      prog.
53709       ENVIRONMENT DIVISION.
53710       CONFIGURATION SECTION.
53711           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53712       DATA             DIVISION.
53713       WORKING-STORAGE  SECTION.
53714       01  DATA-FIELD   PIC X(40) VALUE "ABCD".
53715       PROCEDURE        DIVISION.
53716       DECLARATIVES.
53717       TEST-DEBUG SECTION.
53718           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
53719           DISPLAY DEBUG-ITEM "|".
53720           MOVE "ABCD" TO DATA-FIELD.
53721           DISPLAY DEBUG-ITEM "|".
53722       END DECLARATIVES.
53723       SOME-PAR.
53724           MOVE QUOTE TO DATA-FIELD.
53725           IF DATA-FIELD = QUOTE DISPLAY "NO DEBUG" STOP RUN.
53726           DISPLAY "DEBUG".
53727           STOP RUN.
53728_ATEOF
53729
53730{ set +x
53731$as_echo "$at_srcdir/run_fundamental.at:5099: \$COMPILE -Wno-terminator prog.cob"
53732at_fn_check_prepare_dynamic "$COMPILE -Wno-terminator prog.cob" "run_fundamental.at:5099"
53733( $at_check_trace; $COMPILE -Wno-terminator prog.cob
53734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53735at_status=$? at_failed=false
53736$at_check_filter
53737at_fn_diff_devnull "$at_stderr" || at_failed=:
53738at_fn_diff_devnull "$at_stdout" || at_failed=:
53739at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5099"
53740$at_failed && at_fn_log_failure
53741$at_traceon; }
53742
53743{ set +x
53744$as_echo "$at_srcdir/run_fundamental.at:5100: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53745at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5100"
53746( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53748at_status=$? at_failed=false
53749$at_check_filter
53750at_fn_diff_devnull "$at_stderr" || at_failed=:
53751echo >>"$at_stdout"; $as_echo "    19 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
53752    19 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
53753    20 DATA-FIELD                                       ABCD                                    |
53754    20 DATA-FIELD                                       ABCD                                    |
53755DEBUG
53756" | \
53757  $at_diff - "$at_stdout" || at_failed=:
53758at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5100"
53759$at_failed && at_fn_log_failure
53760$at_traceon; }
53761
53762{ set +x
53763$as_echo "$at_srcdir/run_fundamental.at:5107: \$COBCRUN_DIRECT ./prog"
53764at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5107"
53765( $at_check_trace; $COBCRUN_DIRECT ./prog
53766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53767at_status=$? at_failed=false
53768$at_check_filter
53769at_fn_diff_devnull "$at_stderr" || at_failed=:
53770echo >>"$at_stdout"; $as_echo "NO DEBUG
53771" | \
53772  $at_diff - "$at_stdout" || at_failed=:
53773at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5107"
53774$at_failed && at_fn_log_failure
53775$at_traceon; }
53776
53777
53778  set +x
53779  $at_times_p && times >"$at_times_file"
53780) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53781read at_status <"$at_status_file"
53782#AT_STOP_523
53783#AT_START_524
53784at_fn_group_banner 524 'run_fundamental.at:5114' \
53785  "USE FOR DEBUGGING, time of execution" "           " 4
53786at_xfail=yes
53787(
53788  $as_echo "524. $at_setup_line: testing $at_desc ..."
53789  $at_traceon
53790
53791
53792
53793# FIXME: the debugging procedure is executed after the statement,
53794#        which is generally fine, but not for "nested" statements
53795#        where DEBUG-ITEM contains wrong data and the
53796#        debugging procedure is called too late
53797
53798
53799cat >prog.cob <<'_ATEOF'
53800
53801       IDENTIFICATION   DIVISION.
53802       PROGRAM-ID.      prog.
53803       ENVIRONMENT DIVISION.
53804       CONFIGURATION SECTION.
53805           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53806       DATA             DIVISION.
53807       WORKING-STORAGE  SECTION.
53808       01  DATA-FIELD   PIC X(40) VALUE "ABCD".
53809       PROCEDURE        DIVISION.
53810       DECLARATIVES.
53811       TEST-DEBUG SECTION.
53812           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
53813           DISPLAY DEBUG-ITEM "|".
53814           MOVE "ABCD" TO DATA-FIELD.
53815       END DECLARATIVES.
53816       SOME-PAR.
53817           MOVE QUOTE TO DATA-FIELD.
53818           IF DATA-FIELD = QUOTE
53819              DISPLAY "NO DEBUG"
53820           ELSE
53821              DISPLAY "DEBUG"
53822              MOVE SPACES TO DATA-FIELD
53823              CALL "NOTHERE" USING DATA-FIELD
53824                 ON OVERFLOW
53825                    DISPLAY "THIS IS FINE".
53826           STOP RUN.
53827_ATEOF
53828
53829{ set +x
53830$as_echo "$at_srcdir/run_fundamental.at:5151: \$COMPILE -w prog.cob"
53831at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_fundamental.at:5151"
53832( $at_check_trace; $COMPILE -w prog.cob
53833) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53834at_status=$? at_failed=false
53835$at_check_filter
53836at_fn_diff_devnull "$at_stderr" || at_failed=:
53837at_fn_diff_devnull "$at_stdout" || at_failed=:
53838at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5151"
53839$at_failed && at_fn_log_failure
53840$at_traceon; }
53841
53842{ set +x
53843$as_echo "$at_srcdir/run_fundamental.at:5152: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53844at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5152"
53845( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53846) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53847at_status=$? at_failed=false
53848$at_check_filter
53849at_fn_diff_devnull "$at_stderr" || at_failed=:
53850echo >>"$at_stdout"; $as_echo "    18 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
53851    19 DATA-FIELD                                       ABCD                                    |
53852DEBUG
53853    23 DATA-FIELD                                                                               |
53854    24 DATA-FIELD                                       ABCD                                    |
53855THIS IS FINE
53856" | \
53857  $at_diff - "$at_stdout" || at_failed=:
53858at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5152"
53859$at_failed && at_fn_log_failure
53860$at_traceon; }
53861
53862
53863  set +x
53864  $at_times_p && times >"$at_times_file"
53865) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53866read at_status <"$at_status_file"
53867#AT_STOP_524
53868#AT_START_525
53869at_fn_group_banner 525 'run_fundamental.at:5164' \
53870  "USE FOR DEBUGGING, reference with OCCURS" "       " 4
53871at_xfail=no
53872(
53873  $as_echo "525. $at_setup_line: testing $at_desc ..."
53874  $at_traceon
53875
53876
53877
53878cat >prog.cob <<'_ATEOF'
53879
53880       IDENTIFICATION   DIVISION.
53881       PROGRAM-ID.      prog.
53882       ENVIRONMENT DIVISION.
53883       CONFIGURATION SECTION.
53884           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53885       DATA             DIVISION.
53886       WORKING-STORAGE  SECTION.
53887       01  FILLER.
53888           02 FILLER    OCCURS 10.
53889              03 FILLER    OCCURS 5.
53890                 04 DATA-FIELD   PIC X(40) VALUE "ABCD" OCCURS 2.
53891       PROCEDURE        DIVISION.
53892       DECLARATIVES.
53893       TEST-DEBUG SECTION.
53894           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
53895           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53896       END DECLARATIVES.
53897       SOME-PAR.
53898           MOVE QUOTE TO DATA-FIELD (4, 2, 1).
53899           STOP RUN.
53900_ATEOF
53901
53902{ set +x
53903$as_echo "$at_srcdir/run_fundamental.at:5189: \$COMPILE prog.cob"
53904at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5189"
53905( $at_check_trace; $COMPILE prog.cob
53906) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53907at_status=$? at_failed=false
53908$at_check_filter
53909at_fn_diff_devnull "$at_stderr" || at_failed=:
53910at_fn_diff_devnull "$at_stdout" || at_failed=:
53911at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5189"
53912$at_failed && at_fn_log_failure
53913$at_traceon; }
53914
53915{ set +x
53916$as_echo "$at_srcdir/run_fundamental.at:5190: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53917at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5190"
53918( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53919) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53920at_status=$? at_failed=false
53921$at_check_filter
53922at_fn_diff_devnull "$at_stderr" || at_failed=:
53923echo >>"$at_stdout"; $as_echo "    20 DATA-FIELD                     +0004 +0002 +0001 \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
53924" | \
53925  $at_diff - "$at_stdout" || at_failed=:
53926at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5190"
53927$at_failed && at_fn_log_failure
53928$at_traceon; }
53929
53930
53931  set +x
53932  $at_times_p && times >"$at_times_file"
53933) 5>&1 2>&1 7>&- | eval $at_tee_pipe
53934read at_status <"$at_status_file"
53935#AT_STOP_525
53936#AT_START_526
53937at_fn_group_banner 526 'run_fundamental.at:5197' \
53938  "USE FOR DEBUGGING, referencing BASED item" "      " 4
53939at_xfail=yes
53940(
53941  $as_echo "526. $at_setup_line: testing $at_desc ..."
53942  $at_traceon
53943
53944
53945
53946# uncommon issue but shouldn't SIGSEGV --> TODO: fix later
53947# TODO: also check "ADDRESS OF" (non)-ALLOCATED field
53948
53949
53950cat >prog.cob <<'_ATEOF'
53951
53952       IDENTIFICATION   DIVISION.
53953       PROGRAM-ID.      prog.
53954       ENVIRONMENT DIVISION.
53955       CONFIGURATION SECTION.
53956           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
53957       DATA             DIVISION.
53958       WORKING-STORAGE  SECTION.
53959       01  DATA-FIELD   PIC X(40) VALUE "ABCD" BASED.
53960       PROCEDURE        DIVISION.
53961       DECLARATIVES.
53962       TEST-DEBUG SECTION.
53963           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
53964           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
53965       END DECLARATIVES.
53966       SOME-PAR.
53967           ALLOCATE DATA-FIELD INITIALIZED.
53968           FREE DATA-FIELD.
53969           STOP RUN.
53970_ATEOF
53971
53972{ set +x
53973$as_echo "$at_srcdir/run_fundamental.at:5224: \$COMPILE prog.cob"
53974at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5224"
53975( $at_check_trace; $COMPILE prog.cob
53976) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53977at_status=$? at_failed=false
53978$at_check_filter
53979at_fn_diff_devnull "$at_stderr" || at_failed=:
53980at_fn_diff_devnull "$at_stdout" || at_failed=:
53981at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5224"
53982$at_failed && at_fn_log_failure
53983$at_traceon; }
53984
53985# not sure about the output, check MF, claiming to support BASED + DEBUGGING
53986{ set +x
53987$as_echo "$at_srcdir/run_fundamental.at:5226: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
53988at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5226"
53989( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
53990) >>"$at_stdout" 2>>"$at_stderr" 5>&-
53991at_status=$? at_failed=false
53992$at_check_filter
53993at_fn_diff_devnull "$at_stderr" || at_failed=:
53994echo >>"$at_stdout"; $as_echo "    17 DATA-FIELD                                      ABCD                                     |
53995    18 DATA-FIELD                                       ABCD                                    |
53996" | \
53997  $at_diff - "$at_stdout" || at_failed=:
53998at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5226"
53999$at_failed && at_fn_log_failure
54000$at_traceon; }
54001
54002
54003  set +x
54004  $at_times_p && times >"$at_times_file"
54005) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54006read at_status <"$at_status_file"
54007#AT_STOP_526
54008#AT_START_527
54009at_fn_group_banner 527 'run_fundamental.at:5234' \
54010  "USE FOR DEBUGGING file" "                         " 4
54011at_xfail=no
54012(
54013  $as_echo "527. $at_setup_line: testing $at_desc ..."
54014  $at_traceon
54015
54016
54017
54018cat >prog.cob <<'_ATEOF'
54019
54020       IDENTIFICATION   DIVISION.
54021       PROGRAM-ID.      prog.
54022       ENVIRONMENT DIVISION.
54023       CONFIGURATION SECTION.
54024           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
54025       INPUT-OUTPUT     SECTION.
54026       FILE-CONTROL.
54027       SELECT TEST-FILE ASSIGN "./TEST-FILE".
54028       DATA             DIVISION.
54029       FILE             SECTION.
54030       FD  TEST-FILE.
54031       01  TEST-REC     PIC X(40).
54032       PROCEDURE        DIVISION.
54033       DECLARATIVES.
54034       TEST-DEBUG SECTION.
54035           USE FOR DEBUGGING ON TEST-FILE.
54036           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
54037       END DECLARATIVES.
54038       SOME-PAR.
54039           OPEN  OUTPUT TEST-FILE.
54040           WRITE TEST-REC FROM "DEF".
54041           CLOSE TEST-FILE.
54042           OPEN  INPUT TEST-FILE.
54043           READ TEST-FILE.
54044           CLOSE TEST-FILE.
54045           STOP RUN.
54046_ATEOF
54047
54048{ set +x
54049$as_echo "$at_srcdir/run_fundamental.at:5265: \$COMPILE prog.cob"
54050at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5265"
54051( $at_check_trace; $COMPILE prog.cob
54052) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54053at_status=$? at_failed=false
54054$at_check_filter
54055at_fn_diff_devnull "$at_stderr" || at_failed=:
54056at_fn_diff_devnull "$at_stdout" || at_failed=:
54057at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5265"
54058$at_failed && at_fn_log_failure
54059$at_traceon; }
54060
54061{ set +x
54062$as_echo "$at_srcdir/run_fundamental.at:5266: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
54063at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5266"
54064( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog
54065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54066at_status=$? at_failed=false
54067$at_check_filter
54068at_fn_diff_devnull "$at_stderr" || at_failed=:
54069echo >>"$at_stdout"; $as_echo "    21 TEST-FILE                                                                                |
54070    23 TEST-FILE                                                                                |
54071    24 TEST-FILE                                                                                |
54072    25 TEST-FILE                                        DEF                                     |
54073    26 TEST-FILE                                                                                |
54074" | \
54075  $at_diff - "$at_stdout" || at_failed=:
54076at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5266"
54077$at_failed && at_fn_log_failure
54078$at_traceon; }
54079
54080
54081  set +x
54082  $at_times_p && times >"$at_times_file"
54083) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54084read at_status <"$at_status_file"
54085#AT_STOP_527
54086#AT_START_528
54087at_fn_group_banner 528 'run_fundamental.at:5277' \
54088  "Abbreviated Expressions" "                        " 4
54089at_xfail=no
54090(
54091  $as_echo "528. $at_setup_line: testing $at_desc ..."
54092  $at_traceon
54093
54094
54095
54096cat >prog.cob <<'_ATEOF'
54097
54098       IDENTIFICATION DIVISION.
54099       PROGRAM-ID. prog.
54100       ENVIRONMENT DIVISION.
54101       CONFIGURATION SECTION.
54102       SPECIAL-NAMES.
54103           SWITCH-1
54104           IS WRK-SWITCH-1
54105           ON STATUS IS ON-WRK-SWITCH-1
54106           OFF STATUS IS OFF-WRK-SWITCH-1
54107           SWITCH-2
54108           IS WRK-SWITCH-2
54109           OFF STATUS IS OFF-WRK-SWITCH-2.
54110       DATA DIVISION.
54111      ******************************************************************
54112       WORKING-STORAGE SECTION.
54113      *
54114       01 FLD9-0   PIC 9 VALUE 0.
54115       01 FLD9-1   PIC 9 VALUE 1.
54116       01 FLD9-2   PIC 9 VALUE 2.
54117       01 FLD9-5   PIC 9 VALUE 5.
54118       01 FLD9-7   PIC 9 VALUE 7.
54119       01 FLD9-9   PIC 9 VALUE 9.
54120       01 FLDX     PIC X VALUE 'X'.
54121       01 FLDY     PIC X VALUE 'Y'.
54122       01 FLDYY    PIC X VALUE 'Y'.
54123       01 FLDZ     PIC X VALUE 'Z'.
54124       01 TESTNUM  PIC 99 VALUE 1.
54125
54126       PROCEDURE DIVISION.
54127       MAIN-LINE.
54128
54129           IF FLD9-7 > FLD9-5 AND NOT < FLD9-0 OR FLD9-1
54130                PERFORM PASS ELSE PERFORM FAIL.
54131           IF FLD9-7 NOT = FLD9-5 OR FLD9-1
54132                PERFORM PASS ELSE PERFORM FAIL.
54133           IF FLD9-7 NOT = FLD9-5 AND FLD9-1
54134                PERFORM PASS ELSE PERFORM FAIL.
54135           IF NOT FLD9-7 = FLD9-5 OR FLD9-1
54136                PERFORM PASS ELSE PERFORM FAIL.
54137           IF NOT (FLD9-5 > FLD9-7 OR < FLD9-1)
54138                PERFORM PASS ELSE PERFORM FAIL.
54139           IF NOT (FLD9-7 NOT > FLD9-5 AND FLD9-2 AND NOT FLD9-1)
54140                PERFORM PASS ELSE PERFORM FAIL.
54141           IF FLD9-9 > FLD9-2 AND FLD9-7 AND FLD9-5
54142                PERFORM PASS ELSE PERFORM FAIL.
54143           IF FLD9-9 > FLD9-2 AND FLD9-7 OR FLD9-5
54144                PERFORM PASS ELSE PERFORM FAIL.
54145           IF FLD9-1 < FLD9-2 AND FLD9-5 AND FLD9-7
54146                PERFORM PASS ELSE PERFORM FAIL.
54147
54148      * // DISPLAY "***Constant expressions***".
54149           IF 9 > 2 AND 7 AND 5 AND 1
54150                PERFORM PASS ELSE PERFORM FAIL.
54151           IF 1 < 2 AND 5 AND 7 AND 9
54152                PERFORM PASS ELSE PERFORM FAIL.
54153           IF 5 < 2 OR 1 OR 9 OR 7
54154                PERFORM PASS ELSE PERFORM FAIL.
54155           IF 5 > 1 AND < 3 OR 6
54156                PERFORM PASS ELSE PERFORM FAIL.
54157
54158      * // DISPLAY "***Switch expressions***".
54159           IF           ON-WRK-SWITCH-1
54160                 OR NOT OFF-WRK-SWITCH-2
54161                AND     OFF-WRK-SWITCH-1
54162                PERFORM FAIL ELSE PERFORM PASS.
54163           DISPLAY "***FINE***" WITH NO ADVANCING.
54164           STOP RUN.
54165
54166       PASS.
54167      * // DISPLAY 'Test ' TESTNUM ' passed'
54168           ADD 1 TO TESTNUM.
54169
54170       FAIL.
54171           DISPLAY 'Test ' TESTNUM ' failed!'
54172           ADD 1 TO TESTNUM.
54173_ATEOF
54174
54175
54176{ set +x
54177$as_echo "$at_srcdir/run_fundamental.at:5358: \$COMPILE prog.cob"
54178at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5358"
54179( $at_check_trace; $COMPILE prog.cob
54180) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54181at_status=$? at_failed=false
54182$at_check_filter
54183echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-LINE':
54184prog.cob:47: warning: suggest parentheses around AND within OR
54185prog.cob:53: warning: expression '9' GREATER THAN '2' is always TRUE
54186prog.cob:53: warning: expression '9' GREATER THAN '7' is always TRUE
54187prog.cob:53: warning: expression '9' GREATER THAN '5' is always TRUE
54188prog.cob:53: warning: expression '9' GREATER THAN '1' is always TRUE
54189prog.cob:55: warning: expression '1' LESS THAN '2' is always TRUE
54190prog.cob:55: warning: expression '1' LESS THAN '5' is always TRUE
54191prog.cob:55: warning: expression '1' LESS THAN '7' is always TRUE
54192prog.cob:55: warning: expression '1' LESS THAN '9' is always TRUE
54193prog.cob:57: warning: expression '5' LESS THAN '2' is always FALSE
54194prog.cob:57: warning: expression '5' LESS THAN '1' is always FALSE
54195prog.cob:57: warning: expression '5' LESS THAN '9' is always TRUE
54196prog.cob:57: warning: expression '5' LESS THAN '7' is always TRUE
54197prog.cob:59: warning: expression '5' GREATER THAN '1' is always TRUE
54198prog.cob:59: warning: expression '5' LESS THAN '3' is always FALSE
54199prog.cob:59: warning: expression '5' LESS THAN '6' is always TRUE
54200" | \
54201  $at_diff - "$at_stderr" || at_failed=:
54202at_fn_diff_devnull "$at_stdout" || at_failed=:
54203at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5358"
54204$at_failed && at_fn_log_failure
54205$at_traceon; }
54206
54207
54208{ set +x
54209$as_echo "$at_srcdir/run_fundamental.at:5378: \$COBCRUN_DIRECT ./prog"
54210at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5378"
54211( $at_check_trace; $COBCRUN_DIRECT ./prog
54212) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54213at_status=$? at_failed=false
54214$at_check_filter
54215at_fn_diff_devnull "$at_stderr" || at_failed=:
54216echo >>"$at_stdout"; $as_echo "***FINE***" | \
54217  $at_diff - "$at_stdout" || at_failed=:
54218at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5378"
54219$at_failed && at_fn_log_failure
54220$at_traceon; }
54221
54222
54223  set +x
54224  $at_times_p && times >"$at_times_file"
54225) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54226read at_status <"$at_status_file"
54227#AT_STOP_528
54228#AT_START_529
54229at_fn_group_banner 529 'run_fundamental.at:5383' \
54230  "integer arithmetic on floating-point var" "       " 4
54231at_xfail=no
54232(
54233  $as_echo "529. $at_setup_line: testing $at_desc ..."
54234  $at_traceon
54235
54236
54237
54238cat >prog.cob <<'_ATEOF'
54239
54240       IDENTIFICATION  DIVISION.
54241       PROGRAM-ID.     prog.
54242
54243       DATA            DIVISION.
54244       WORKING-STORAGE SECTION.
54245       01  x           USAGE FLOAT-SHORT VALUE 123.456.
54246
54247       PROCEDURE       DIVISION.
54248           ADD 360 TO x
54249           IF x <> 483.456
54250               DISPLAY "ADD wrong: " x
54251               MOVE 483.456 TO x
54252           END-IF
54253
54254           SUBTRACT 360 FROM x
54255           IF x <> 123.456
54256               DISPLAY "SUBTRACT wrong: " x
54257               MOVE 123.456 TO x
54258           END-IF
54259
54260           DIVIDE 2 INTO x
54261           IF x <> 61.728
54262               DISPLAY "DIVIDE wrong: " x
54263               MOVE 61.728 TO x
54264           END-IF
54265
54266           MULTIPLY 2 BY x
54267           IF x <> 123.456
54268               DISPLAY "MULTIPLY wrong: " x
54269           END-IF
54270           .
54271_ATEOF
54272
54273
54274{ set +x
54275$as_echo "$at_srcdir/run_fundamental.at:5420: \$COMPILE prog.cob"
54276at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5420"
54277( $at_check_trace; $COMPILE prog.cob
54278) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54279at_status=$? at_failed=false
54280$at_check_filter
54281at_fn_diff_devnull "$at_stderr" || at_failed=:
54282at_fn_diff_devnull "$at_stdout" || at_failed=:
54283at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5420"
54284$at_failed && at_fn_log_failure
54285$at_traceon; }
54286
54287{ set +x
54288$as_echo "$at_srcdir/run_fundamental.at:5421: \$COBCRUN_DIRECT ./prog"
54289at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5421"
54290( $at_check_trace; $COBCRUN_DIRECT ./prog
54291) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54292at_status=$? at_failed=false
54293$at_check_filter
54294at_fn_diff_devnull "$at_stderr" || at_failed=:
54295at_fn_diff_devnull "$at_stdout" || at_failed=:
54296at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5421"
54297$at_failed && at_fn_log_failure
54298$at_traceon; }
54299
54300  set +x
54301  $at_times_p && times >"$at_times_file"
54302) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54303read at_status <"$at_status_file"
54304#AT_STOP_529
54305#AT_START_530
54306at_fn_group_banner 530 'run_fundamental.at:5425' \
54307  "TYPEDEF application" "                            " 4
54308at_xfail=no
54309(
54310  $as_echo "530. $at_setup_line: testing $at_desc ..."
54311  $at_traceon
54312
54313
54314
54315cat >caller.cob <<'_ATEOF'
54316
54317       IDENTIFICATION  DIVISION.
54318       PROGRAM-ID.     caller.
54319
54320       DATA            DIVISION.
54321       WORKING-STORAGE SECTION.
54322       77  INT         IS TYPEDEF BINARY-LONG.
54323       77  EXT-INT     IS TYPEDEF BINARY-LONG EXTERNAL.
54324      *> should this be possible?
54325      *>77  INT-VAL     IS TYPEDEF USAGE INT VALUE 12.
54326       77  INT-VAL     IS TYPEDEF BINARY-LONG VALUE 12.
54327       77  SOMEVAR     USAGE INT VALUE 10.
54328       77  SOMEVAL     USAGE INT-VAL.
54329       77  SOMEEXT     USAGE EXT-INT.
54330
54331       PROCEDURE       DIVISION.
54332           IF SOMEVAR <> 10
54333              DISPLAY "SOMEVAR (INT) wrong: " SOMEVAR
54334           END-IF
54335           IF SOMEVAL <> 12
54336              DISPLAY "SOMEVAR (INT-VAL) wrong: " SOMEVAL
54337           END-IF
54338           MOVE 42 TO SOMEEXT
54339           CALL "callee"
54340           .
54341_ATEOF
54342
54343
54344cat >callee.cob <<'_ATEOF'
54345
54346       IDENTIFICATION  DIVISION.
54347       PROGRAM-ID.     callee.
54348
54349       DATA            DIVISION.
54350       WORKING-STORAGE SECTION.
54351       77  EXT-INT     IS TYPEDEF BINARY-LONG EXTERNAL.
54352       77  SOMEEXT     USAGE EXT-INT.
54353
54354       PROCEDURE       DIVISION.
54355           IF SOMEEXT <> 42
54356              DISPLAY "SOMEEXT (EXT-INT) wrong: " SOMEEXT
54357           END-IF
54358           .
54359_ATEOF
54360
54361
54362{ set +x
54363$as_echo "$at_srcdir/run_fundamental.at:5471: \$COMPILE caller.cob"
54364at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_fundamental.at:5471"
54365( $at_check_trace; $COMPILE caller.cob
54366) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54367at_status=$? at_failed=false
54368$at_check_filter
54369at_fn_diff_devnull "$at_stderr" || at_failed=:
54370at_fn_diff_devnull "$at_stdout" || at_failed=:
54371at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5471"
54372$at_failed && at_fn_log_failure
54373$at_traceon; }
54374
54375{ set +x
54376$as_echo "$at_srcdir/run_fundamental.at:5472: \$COMPILE_MODULE callee.cob"
54377at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_fundamental.at:5472"
54378( $at_check_trace; $COMPILE_MODULE callee.cob
54379) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54380at_status=$? at_failed=false
54381$at_check_filter
54382at_fn_diff_devnull "$at_stderr" || at_failed=:
54383at_fn_diff_devnull "$at_stdout" || at_failed=:
54384at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5472"
54385$at_failed && at_fn_log_failure
54386$at_traceon; }
54387
54388{ set +x
54389$as_echo "$at_srcdir/run_fundamental.at:5473: \$COBCRUN_DIRECT ./caller"
54390at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_fundamental.at:5473"
54391( $at_check_trace; $COBCRUN_DIRECT ./caller
54392) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54393at_status=$? at_failed=false
54394$at_check_filter
54395at_fn_diff_devnull "$at_stderr" || at_failed=:
54396at_fn_diff_devnull "$at_stdout" || at_failed=:
54397at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5473"
54398$at_failed && at_fn_log_failure
54399$at_traceon; }
54400
54401  set +x
54402  $at_times_p && times >"$at_times_file"
54403) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54404read at_status <"$at_status_file"
54405#AT_STOP_530
54406#AT_START_531
54407at_fn_group_banner 531 'run_subscripts.at:26' \
54408  "Subscript out of bounds" "                        " 4
54409at_xfail=no
54410(
54411  $as_echo "531. $at_setup_line: testing $at_desc ..."
54412  $at_traceon
54413
54414
54415
54416cat >prog.cob <<'_ATEOF'
54417
54418       IDENTIFICATION   DIVISION.
54419       PROGRAM-ID.      prog.
54420       DATA             DIVISION.
54421       WORKING-STORAGE  SECTION.
54422       01 G.
54423         02 X           PIC X OCCURS 10.
54424       01 I             PIC 9 VALUE 0.
54425       PROCEDURE        DIVISION.
54426           DISPLAY X(I)
54427           END-DISPLAY.
54428           STOP RUN.
54429_ATEOF
54430
54431
54432{ set +x
54433$as_echo "$at_srcdir/run_subscripts.at:43: \$COMPILE prog.cob"
54434at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:43"
54435( $at_check_trace; $COMPILE prog.cob
54436) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54437at_status=$? at_failed=false
54438$at_check_filter
54439at_fn_diff_devnull "$at_stderr" || at_failed=:
54440at_fn_diff_devnull "$at_stdout" || at_failed=:
54441at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:43"
54442$at_failed && at_fn_log_failure
54443$at_traceon; }
54444
54445{ set +x
54446$as_echo "$at_srcdir/run_subscripts.at:44: \$COBCRUN_DIRECT ./prog"
54447at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:44"
54448( $at_check_trace; $COBCRUN_DIRECT ./prog
54449) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54450at_status=$? at_failed=false
54451$at_check_filter
54452echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: subscript of 'X' out of bounds: 0
54453" | \
54454  $at_diff - "$at_stderr" || at_failed=:
54455at_fn_diff_devnull "$at_stdout" || at_failed=:
54456at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:44"
54457$at_failed && at_fn_log_failure
54458$at_traceon; }
54459
54460
54461cat >prog2.cob <<'_ATEOF'
54462
54463       IDENTIFICATION   DIVISION.
54464       PROGRAM-ID.      prog2.
54465       DATA             DIVISION.
54466       WORKING-STORAGE  SECTION.
54467       01 G.
54468         02 X           PIC X OCCURS 10.
54469       01 I             PIC 99 VALUE 11.
54470       PROCEDURE        DIVISION.
54471           DISPLAY X(I)
54472           END-DISPLAY.
54473           STOP RUN.
54474_ATEOF
54475
54476
54477{ set +x
54478$as_echo "$at_srcdir/run_subscripts.at:62: \$COMPILE prog2.cob"
54479at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_subscripts.at:62"
54480( $at_check_trace; $COMPILE prog2.cob
54481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54482at_status=$? at_failed=false
54483$at_check_filter
54484at_fn_diff_devnull "$at_stderr" || at_failed=:
54485at_fn_diff_devnull "$at_stdout" || at_failed=:
54486at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:62"
54487$at_failed && at_fn_log_failure
54488$at_traceon; }
54489
54490{ set +x
54491$as_echo "$at_srcdir/run_subscripts.at:63: \$COBCRUN_DIRECT ./prog2"
54492at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_subscripts.at:63"
54493( $at_check_trace; $COBCRUN_DIRECT ./prog2
54494) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54495at_status=$? at_failed=false
54496$at_check_filter
54497echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:10: error: subscript of 'X' out of bounds: 11
54498note: maximum subscript for 'X': 10
54499" | \
54500  $at_diff - "$at_stderr" || at_failed=:
54501at_fn_diff_devnull "$at_stdout" || at_failed=:
54502at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:63"
54503$at_failed && at_fn_log_failure
54504$at_traceon; }
54505
54506
54507  set +x
54508  $at_times_p && times >"$at_times_file"
54509) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54510read at_status <"$at_status_file"
54511#AT_STOP_531
54512#AT_START_532
54513at_fn_group_banner 532 'run_subscripts.at:71' \
54514  "Value of DEPENDING ON N out of bounds" "          " 4
54515at_xfail=no
54516(
54517  $as_echo "532. $at_setup_line: testing $at_desc ..."
54518  $at_traceon
54519
54520
54521
54522cat >prog.cob <<'_ATEOF'
54523
54524       IDENTIFICATION   DIVISION.
54525       PROGRAM-ID.      prog.
54526       DATA             DIVISION.
54527       WORKING-STORAGE  SECTION.
54528       01 G.
54529         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
54530       01 N             PIC 9.
54531       PROCEDURE        DIVISION.
54532           MOVE 5 TO N.
54533           MOVE '12345' TO G
54534           DISPLAY X(3) WITH NO ADVANCING
54535           END-DISPLAY.
54536           MOVE 3 TO N.
54537           DISPLAY X(5)
54538           END-DISPLAY.
54539           STOP RUN.
54540_ATEOF
54541
54542
54543{ set +x
54544$as_echo "$at_srcdir/run_subscripts.at:93: \$COMPILE prog.cob"
54545at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:93"
54546( $at_check_trace; $COMPILE prog.cob
54547) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54548at_status=$? at_failed=false
54549$at_check_filter
54550at_fn_diff_devnull "$at_stderr" || at_failed=:
54551at_fn_diff_devnull "$at_stdout" || at_failed=:
54552at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:93"
54553$at_failed && at_fn_log_failure
54554$at_traceon; }
54555
54556{ set +x
54557$as_echo "$at_srcdir/run_subscripts.at:94: \$COBCRUN_DIRECT ./prog"
54558at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:94"
54559( $at_check_trace; $COBCRUN_DIRECT ./prog
54560) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54561at_status=$? at_failed=false
54562$at_check_filter
54563echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: error: OCCURS DEPENDING ON 'N' out of bounds: 3
54564note: minimum subscript for 'X': 4
54565" | \
54566  $at_diff - "$at_stderr" || at_failed=:
54567echo >>"$at_stdout"; $as_echo "3" | \
54568  $at_diff - "$at_stdout" || at_failed=:
54569at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:94"
54570$at_failed && at_fn_log_failure
54571$at_traceon; }
54572
54573
54574cat >prog2.cob <<'_ATEOF'
54575
54576       IDENTIFICATION   DIVISION.
54577       PROGRAM-ID.      prog2.
54578       DATA             DIVISION.
54579       WORKING-STORAGE  SECTION.
54580       01 G.
54581         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
54582       01 N             PIC 9 VALUE 7.
54583       PROCEDURE        DIVISION.
54584           DISPLAY X(5)
54585           END-DISPLAY.
54586           STOP RUN.
54587_ATEOF
54588
54589
54590{ set +x
54591$as_echo "$at_srcdir/run_subscripts.at:113: \$COMPILE prog2.cob"
54592at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_subscripts.at:113"
54593( $at_check_trace; $COMPILE prog2.cob
54594) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54595at_status=$? at_failed=false
54596$at_check_filter
54597at_fn_diff_devnull "$at_stderr" || at_failed=:
54598at_fn_diff_devnull "$at_stdout" || at_failed=:
54599at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:113"
54600$at_failed && at_fn_log_failure
54601$at_traceon; }
54602
54603{ set +x
54604$as_echo "$at_srcdir/run_subscripts.at:114: \$COBCRUN_DIRECT ./prog2"
54605at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_subscripts.at:114"
54606( $at_check_trace; $COBCRUN_DIRECT ./prog2
54607) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54608at_status=$? at_failed=false
54609$at_check_filter
54610echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:10: error: OCCURS DEPENDING ON 'N' out of bounds: 7
54611note: maximum subscript for 'X': 6
54612" | \
54613  $at_diff - "$at_stderr" || at_failed=:
54614at_fn_diff_devnull "$at_stdout" || at_failed=:
54615at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:114"
54616$at_failed && at_fn_log_failure
54617$at_traceon; }
54618
54619
54620  set +x
54621  $at_times_p && times >"$at_times_file"
54622) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54623read at_status <"$at_status_file"
54624#AT_STOP_532
54625#AT_START_533
54626at_fn_group_banner 533 'run_subscripts.at:122' \
54627  "Subscript bounds with OCCURS DEPENDING ON (1)" "  " 4
54628at_xfail=no
54629(
54630  $as_echo "533. $at_setup_line: testing $at_desc ..."
54631  $at_traceon
54632
54633
54634
54635cat >prog.cob <<'_ATEOF'
54636
54637       IDENTIFICATION   DIVISION.
54638       PROGRAM-ID.      prog.
54639       DATA             DIVISION.
54640       WORKING-STORAGE  SECTION.
54641       01 G.
54642         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
54643       01 N             PIC 9 VALUE 4.
54644       PROCEDURE        DIVISION.
54645           DISPLAY X(5)
54646           END-DISPLAY.
54647           STOP RUN.
54648_ATEOF
54649
54650
54651{ set +x
54652$as_echo "$at_srcdir/run_subscripts.at:139: \$COMPILE prog.cob"
54653at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:139"
54654( $at_check_trace; $COMPILE prog.cob
54655) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54656at_status=$? at_failed=false
54657$at_check_filter
54658at_fn_diff_devnull "$at_stderr" || at_failed=:
54659at_fn_diff_devnull "$at_stdout" || at_failed=:
54660at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:139"
54661$at_failed && at_fn_log_failure
54662$at_traceon; }
54663
54664{ set +x
54665$as_echo "$at_srcdir/run_subscripts.at:140: \$COBCRUN_DIRECT ./prog"
54666at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:140"
54667( $at_check_trace; $COBCRUN_DIRECT ./prog
54668) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54669at_status=$? at_failed=false
54670$at_check_filter
54671echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: subscript of 'X' out of bounds: 5
54672note: current maximum subscript for 'X': 4
54673" | \
54674  $at_diff - "$at_stderr" || at_failed=:
54675at_fn_diff_devnull "$at_stdout" || at_failed=:
54676at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:140"
54677$at_failed && at_fn_log_failure
54678$at_traceon; }
54679
54680
54681  set +x
54682  $at_times_p && times >"$at_times_file"
54683) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54684read at_status <"$at_status_file"
54685#AT_STOP_533
54686#AT_START_534
54687at_fn_group_banner 534 'run_subscripts.at:148' \
54688  "Subscript bounds with OCCURS DEPENDING ON (2)" "  " 4
54689at_xfail=no
54690(
54691  $as_echo "534. $at_setup_line: testing $at_desc ..."
54692  $at_traceon
54693
54694
54695
54696# verifies that the check is generated within conditions - simple IF
54697
54698cat >prog.cob <<'_ATEOF'
54699
54700       IDENTIFICATION   DIVISION.
54701       PROGRAM-ID.      prog.
54702       DATA             DIVISION.
54703       WORKING-STORAGE  SECTION.
54704       01 G.
54705         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
54706       01 N             PIC 9 VALUE 4.
54707       PROCEDURE        DIVISION.
54708           IF X(5) <> SPACE
54709              DISPLAY X(5).
54710           STOP RUN.
54711_ATEOF
54712
54713
54714{ set +x
54715$as_echo "$at_srcdir/run_subscripts.at:167: \$COMPILE prog.cob"
54716at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:167"
54717( $at_check_trace; $COMPILE prog.cob
54718) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54719at_status=$? at_failed=false
54720$at_check_filter
54721at_fn_diff_devnull "$at_stderr" || at_failed=:
54722at_fn_diff_devnull "$at_stdout" || at_failed=:
54723at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:167"
54724$at_failed && at_fn_log_failure
54725$at_traceon; }
54726
54727{ set +x
54728$as_echo "$at_srcdir/run_subscripts.at:168: \$COBCRUN_DIRECT ./prog"
54729at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:168"
54730( $at_check_trace; $COBCRUN_DIRECT ./prog
54731) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54732at_status=$? at_failed=false
54733$at_check_filter
54734echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: subscript of 'X' out of bounds: 5
54735note: current maximum subscript for 'X': 4
54736" | \
54737  $at_diff - "$at_stderr" || at_failed=:
54738at_fn_diff_devnull "$at_stdout" || at_failed=:
54739at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:168"
54740$at_failed && at_fn_log_failure
54741$at_traceon; }
54742
54743
54744  set +x
54745  $at_times_p && times >"$at_times_file"
54746) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54747read at_status <"$at_status_file"
54748#AT_STOP_534
54749#AT_START_535
54750at_fn_group_banner 535 'run_subscripts.at:176' \
54751  "Subscript bounds with OCCURS DEPENDING ON (3)" "  " 4
54752at_xfail=no
54753(
54754  $as_echo "535. $at_setup_line: testing $at_desc ..."
54755  $at_traceon
54756
54757
54758
54759# verifies that the check is generated within conditions - WHEN
54760# complex test for correct place and not raised if guarded by check
54761
54762cat >prog.cob <<'_ATEOF'
54763
54764       IDENTIFICATION   DIVISION.
54765       PROGRAM-ID.      prog.
54766       DATA             DIVISION.
54767       WORKING-STORAGE  SECTION.
54768       01 G.
54769         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
54770       01 N             PIC 9 VALUE 4.
54771       PROCEDURE        DIVISION.
54772           EVALUATE TRUE
54773           WHEN N >= 5
54774            AND X(5) <> SPACE
54775              DISPLAY "1-" X(5)
54776           WHEN N >= 5
54777           WHEN X(5) <> SPACE
54778              DISPLAY "2-" X(5)
54779           END-EVALUATE
54780           STOP RUN.
54781_ATEOF
54782
54783
54784{ set +x
54785$as_echo "$at_srcdir/run_subscripts.at:202: \$COMPILE prog.cob"
54786at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:202"
54787( $at_check_trace; $COMPILE prog.cob
54788) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54789at_status=$? at_failed=false
54790$at_check_filter
54791at_fn_diff_devnull "$at_stderr" || at_failed=:
54792at_fn_diff_devnull "$at_stdout" || at_failed=:
54793at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:202"
54794$at_failed && at_fn_log_failure
54795$at_traceon; }
54796
54797{ set +x
54798$as_echo "$at_srcdir/run_subscripts.at:203: \$COBCRUN_DIRECT ./prog"
54799at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:203"
54800( $at_check_trace; $COBCRUN_DIRECT ./prog
54801) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54802at_status=$? at_failed=false
54803$at_check_filter
54804echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: error: subscript of 'X' out of bounds: 5
54805note: current maximum subscript for 'X': 4
54806" | \
54807  $at_diff - "$at_stderr" || at_failed=:
54808at_fn_diff_devnull "$at_stdout" || at_failed=:
54809at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:203"
54810$at_failed && at_fn_log_failure
54811$at_traceon; }
54812
54813
54814  set +x
54815  $at_times_p && times >"$at_times_file"
54816) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54817read at_status <"$at_status_file"
54818#AT_STOP_535
54819#AT_START_536
54820at_fn_group_banner 536 'run_subscripts.at:211' \
54821  "Subscript by arithmetic expression" "             " 4
54822at_xfail=no
54823(
54824  $as_echo "536. $at_setup_line: testing $at_desc ..."
54825  $at_traceon
54826
54827
54828
54829cat >prog.cob <<'_ATEOF'
54830
54831       IDENTIFICATION   DIVISION.
54832       PROGRAM-ID.      prog.
54833       DATA             DIVISION.
54834       WORKING-STORAGE  SECTION.
54835       01 G             VALUE "1234".
54836         02 X           PIC X OCCURS 4.
54837       01 Z             PIC X.
54838       PROCEDURE        DIVISION.
54839           MOVE X((3 + 1) / 2) TO Z.
54840           IF Z NOT = "2"
54841              DISPLAY Z
54842              END-DISPLAY
54843           END-IF.
54844           MOVE X(2 ** 2) TO Z.
54845           IF Z NOT = "4"
54846              DISPLAY Z
54847              END-DISPLAY
54848           END-IF.
54849           STOP RUN.
54850_ATEOF
54851
54852
54853{ set +x
54854$as_echo "$at_srcdir/run_subscripts.at:236: \$COMPILE prog.cob"
54855at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:236"
54856( $at_check_trace; $COMPILE prog.cob
54857) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54858at_status=$? at_failed=false
54859$at_check_filter
54860at_fn_diff_devnull "$at_stderr" || at_failed=:
54861at_fn_diff_devnull "$at_stdout" || at_failed=:
54862at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:236"
54863$at_failed && at_fn_log_failure
54864$at_traceon; }
54865
54866{ set +x
54867$as_echo "$at_srcdir/run_subscripts.at:237: \$COBCRUN_DIRECT ./prog"
54868at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:237"
54869( $at_check_trace; $COBCRUN_DIRECT ./prog
54870) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54871at_status=$? at_failed=false
54872$at_check_filter
54873at_fn_diff_devnull "$at_stderr" || at_failed=:
54874at_fn_diff_devnull "$at_stdout" || at_failed=:
54875at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:237"
54876$at_failed && at_fn_log_failure
54877$at_traceon; }
54878
54879
54880  set +x
54881  $at_times_p && times >"$at_times_file"
54882) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54883read at_status <"$at_status_file"
54884#AT_STOP_536
54885#AT_START_537
54886at_fn_group_banner 537 'run_subscripts.at:242' \
54887  "length of ODO w/- reference modification" "       " 4
54888at_xfail=no
54889(
54890  $as_echo "537. $at_setup_line: testing $at_desc ..."
54891  $at_traceon
54892
54893
54894
54895cat >prog.cob <<'_ATEOF'
54896
54897       IDENTIFICATION   DIVISION.
54898       PROGRAM-ID.      prog.
54899       DATA             DIVISION.
54900       WORKING-STORAGE  SECTION.
54901       01  PLINE.
54902           03  PLINE-LEN PIC S9(4) COMP-5.
54903           03  PLINE-TEXT.
54904               04  FILLER    PIC X(1) OCCURS  1 TO 80
54905                                      DEPENDING ON PLINE-LEN.
54906       procedure division.
54907       a-main section.
54908             MOVE 5                    TO PLINE-LEN
54909             MOVE 'the first part in'  TO PLINE-TEXT
54910             MOVE 30                   TO PLINE-LEN
54911             IF PLINE-TEXT NOT = 'the f'
54912                DISPLAY 'text1 wrong: ' PLINE-TEXT
54913                END-DISPLAY
54914             END-IF
54915             MOVE 'the first part in'  TO PLINE-TEXT
54916             MOVE 4                    TO PLINE-LEN
54917             MOVE 'second'             TO PLINE-TEXT
54918             MOVE 14                   TO PLINE-LEN
54919             IF PLINE-TEXT NOT = 'secofirst part'
54920                DISPLAY 'text2 wrong: ' PLINE-TEXT
54921                END-DISPLAY
54922             END-IF
54923             MOVE 80                   TO PLINE-LEN
54924             MOVE SPACES               TO PLINE-TEXT
54925             MOVE 5                    TO PLINE-LEN
54926             MOVE 'the first part in'  TO PLINE-TEXT (2:)
54927             MOVE 30                   TO PLINE-LEN
54928             IF PLINE-TEXT NOT = ' the '
54929                DISPLAY 'text3 wrong: ' PLINE-TEXT
54930                END-DISPLAY
54931             END-IF
54932             MOVE 'the first part in'  TO PLINE-TEXT (2:)
54933             MOVE 4                    TO PLINE-LEN
54934             MOVE 'second'             TO PLINE-TEXT (2:)
54935             MOVE 14                   TO PLINE-LEN
54936             IF PLINE-TEXT NOT = ' sec first par'
54937                DISPLAY 'text4 wrong: ' PLINE-TEXT
54938                END-DISPLAY
54939             END-IF
54940             STOP RUN.
54941_ATEOF
54942
54943
54944{ set +x
54945$as_echo "$at_srcdir/run_subscripts.at:292: \$COMPILE prog.cob"
54946at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:292"
54947( $at_check_trace; $COMPILE prog.cob
54948) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54949at_status=$? at_failed=false
54950$at_check_filter
54951at_fn_diff_devnull "$at_stderr" || at_failed=:
54952at_fn_diff_devnull "$at_stdout" || at_failed=:
54953at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:292"
54954$at_failed && at_fn_log_failure
54955$at_traceon; }
54956
54957{ set +x
54958$as_echo "$at_srcdir/run_subscripts.at:293: \$COBCRUN_DIRECT ./prog"
54959at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:293"
54960( $at_check_trace; $COBCRUN_DIRECT ./prog
54961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
54962at_status=$? at_failed=false
54963$at_check_filter
54964at_fn_diff_devnull "$at_stderr" || at_failed=:
54965at_fn_diff_devnull "$at_stdout" || at_failed=:
54966at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:293"
54967$at_failed && at_fn_log_failure
54968$at_traceon; }
54969
54970
54971  set +x
54972  $at_times_p && times >"$at_times_file"
54973) 5>&1 2>&1 7>&- | eval $at_tee_pipe
54974read at_status <"$at_status_file"
54975#AT_STOP_537
54976#AT_START_538
54977at_fn_group_banner 538 'run_subscripts.at:298' \
54978  "SEARCH ALL with OCCURS DEPENDING ON" "            " 4
54979at_xfail=no
54980(
54981  $as_echo "538. $at_setup_line: testing $at_desc ..."
54982  $at_traceon
54983
54984
54985
54986cat >prog.cob <<'_ATEOF'
54987
54988       IDENTIFICATION DIVISION.
54989       PROGRAM-ID. prog.
54990       DATA DIVISION.
54991       WORKING-STORAGE SECTION.
54992      *
54993       77  SCREEN-AKT         PIC 9(02) VALUE 0.
54994       01  SCREEN-TAB.
54995           03 SCREEN-ENTRY    OCCURS 0  TO  20
54996                              DEPENDING ON  SCREEN-AKT
54997                              ASCENDING KEY SCREEN-NAME
54998                              INDEXED   BY  SCREEN-IDX.
54999             05 SCREEN-NAME     PIC X(02).
55000
55001       PROCEDURE DIVISION.
55002
55003           SEARCH ALL SCREEN-ENTRY
55004              AT END
55005                 DISPLAY 'END'
55006              WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
55007                 DISPLAY 'FOUND'
55008           END-SEARCH
55009           MOVE 1 TO SCREEN-AKT
55010           MOVE 'AB' TO  SCREEN-NAME (1)
55011           SEARCH ALL SCREEN-ENTRY
55012              AT END
55013                 DISPLAY 'END'
55014              WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
55015                 DISPLAY 'FOUND'
55016           END-SEARCH
55017           MOVE 2 TO SCREEN-AKT
55018           MOVE 'CD' TO  SCREEN-NAME (2)
55019           SEARCH ALL SCREEN-ENTRY
55020              AT END
55021                 DISPLAY 'END'
55022              WHEN SCREEN-NAME (SCREEN-IDX) = 'CD'
55023                 DISPLAY 'FOUND'
55024           END-SEARCH
55025           EXIT PROGRAM.
55026_ATEOF
55027
55028
55029{ set +x
55030$as_echo "$at_srcdir/run_subscripts.at:342: \$COMPILE prog.cob"
55031at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:342"
55032( $at_check_trace; $COMPILE prog.cob
55033) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55034at_status=$? at_failed=false
55035$at_check_filter
55036at_fn_diff_devnull "$at_stderr" || at_failed=:
55037at_fn_diff_devnull "$at_stdout" || at_failed=:
55038at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:342"
55039$at_failed && at_fn_log_failure
55040$at_traceon; }
55041
55042{ set +x
55043$as_echo "$at_srcdir/run_subscripts.at:343: \$COBCRUN_DIRECT ./prog"
55044at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:343"
55045( $at_check_trace; $COBCRUN_DIRECT ./prog
55046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55047at_status=$? at_failed=false
55048$at_check_filter
55049at_fn_diff_devnull "$at_stderr" || at_failed=:
55050echo >>"$at_stdout"; $as_echo "END
55051FOUND
55052FOUND
55053" | \
55054  $at_diff - "$at_stdout" || at_failed=:
55055at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:343"
55056$at_failed && at_fn_log_failure
55057$at_traceon; }
55058
55059
55060  set +x
55061  $at_times_p && times >"$at_times_file"
55062) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55063read at_status <"$at_status_file"
55064#AT_STOP_538
55065#AT_START_539
55066at_fn_group_banner 539 'run_subscripts.at:351' \
55067  "enable / disable subscript check" "               " 4
55068at_xfail=no
55069(
55070  $as_echo "539. $at_setup_line: testing $at_desc ..."
55071  $at_traceon
55072
55073
55074
55075cat >prog.cob <<'_ATEOF'
55076
55077       IDENTIFICATION DIVISION.
55078       PROGRAM-ID. prog.
55079
55080       DATA DIVISION.
55081       WORKING-STORAGE SECTION.
55082       01  x VALUE "12345!".
55083           03  y PIC X OCCURS 5 TIMES.
55084           03  z PIC X VALUE "!".
55085       01  idx PIC 99 VALUE 6.
55086
55087       PROCEDURE DIVISION.
55088           DISPLAY y (idx)
55089                   WITH NO ADVANCING
55090           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
55091                   WITH NO ADVANCING
55092           .
55093_ATEOF
55094
55095
55096{ set +x
55097$as_echo "$at_srcdir/run_subscripts.at:374: \$COMPILE prog.cob -o badprog1"
55098at_fn_check_prepare_dynamic "$COMPILE prog.cob -o badprog1" "run_subscripts.at:374"
55099( $at_check_trace; $COMPILE prog.cob -o badprog1
55100) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55101at_status=$? at_failed=false
55102$at_check_filter
55103at_fn_diff_devnull "$at_stderr" || at_failed=:
55104at_fn_diff_devnull "$at_stdout" || at_failed=:
55105at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:374"
55106$at_failed && at_fn_log_failure
55107$at_traceon; }
55108
55109{ set +x
55110$as_echo "$at_srcdir/run_subscripts.at:375: \$COBCRUN_DIRECT ./badprog1"
55111at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./badprog1" "run_subscripts.at:375"
55112( $at_check_trace; $COBCRUN_DIRECT ./badprog1
55113) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55114at_status=$? at_failed=false
55115$at_check_filter
55116echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: subscript of 'y' out of bounds: 6
55117note: maximum subscript for 'y': 5
55118" | \
55119  $at_diff - "$at_stderr" || at_failed=:
55120at_fn_diff_devnull "$at_stdout" || at_failed=:
55121at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:375"
55122$at_failed && at_fn_log_failure
55123$at_traceon; }
55124
55125{ set +x
55126$as_echo "$at_srcdir/run_subscripts.at:379: \$COBC -x prog.cob -o exprog1"
55127at_fn_check_prepare_dynamic "$COBC -x prog.cob -o exprog1" "run_subscripts.at:379"
55128( $at_check_trace; $COBC -x prog.cob -o exprog1
55129) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55130at_status=$? at_failed=false
55131$at_check_filter
55132at_fn_diff_devnull "$at_stderr" || at_failed=:
55133at_fn_diff_devnull "$at_stdout" || at_failed=:
55134at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:379"
55135$at_failed && at_fn_log_failure
55136$at_traceon; }
55137
55138{ set +x
55139$as_echo "$at_srcdir/run_subscripts.at:380: \$COBCRUN_DIRECT ./exprog1"
55140at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog1" "run_subscripts.at:380"
55141( $at_check_trace; $COBCRUN_DIRECT ./exprog1
55142) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55143at_status=$? at_failed=false
55144$at_check_filter
55145at_fn_diff_devnull "$at_stderr" || at_failed=:
55146echo >>"$at_stdout"; $as_echo "!" | \
55147  $at_diff - "$at_stdout" || at_failed=:
55148at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:380"
55149$at_failed && at_fn_log_failure
55150$at_traceon; }
55151
55152
55153{ set +x
55154$as_echo "$at_srcdir/run_subscripts.at:382: \$COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 prog.cob"
55155at_fn_check_prepare_dynamic "$COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 prog.cob" "run_subscripts.at:382"
55156( $at_check_trace; $COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 prog.cob
55157) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55158at_status=$? at_failed=false
55159$at_check_filter
55160at_fn_diff_devnull "$at_stderr" || at_failed=:
55161at_fn_diff_devnull "$at_stdout" || at_failed=:
55162at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:382"
55163$at_failed && at_fn_log_failure
55164$at_traceon; }
55165
55166{ set +x
55167$as_echo "$at_srcdir/run_subscripts.at:383: \$COBCRUN_DIRECT ./exprog2"
55168at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog2" "run_subscripts.at:383"
55169( $at_check_trace; $COBCRUN_DIRECT ./exprog2
55170) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55171at_status=$? at_failed=false
55172$at_check_filter
55173at_fn_diff_devnull "$at_stderr" || at_failed=:
55174echo >>"$at_stdout"; $as_echo "!" | \
55175  $at_diff - "$at_stdout" || at_failed=:
55176at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:383"
55177$at_failed && at_fn_log_failure
55178$at_traceon; }
55179
55180{ set +x
55181$as_echo "$at_srcdir/run_subscripts.at:384: \$COMPILE -fno-ec=BOUND -o exprog3 prog.cob"
55182at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND -o exprog3 prog.cob" "run_subscripts.at:384"
55183( $at_check_trace; $COMPILE -fno-ec=BOUND -o exprog3 prog.cob
55184) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55185at_status=$? at_failed=false
55186$at_check_filter
55187at_fn_diff_devnull "$at_stderr" || at_failed=:
55188at_fn_diff_devnull "$at_stdout" || at_failed=:
55189at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:384"
55190$at_failed && at_fn_log_failure
55191$at_traceon; }
55192
55193{ set +x
55194$as_echo "$at_srcdir/run_subscripts.at:385: \$COBCRUN_DIRECT ./exprog3"
55195at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog3" "run_subscripts.at:385"
55196( $at_check_trace; $COBCRUN_DIRECT ./exprog3
55197) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55198at_status=$? at_failed=false
55199$at_check_filter
55200at_fn_diff_devnull "$at_stderr" || at_failed=:
55201echo >>"$at_stdout"; $as_echo "!" | \
55202  $at_diff - "$at_stdout" || at_failed=:
55203at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:385"
55204$at_failed && at_fn_log_failure
55205$at_traceon; }
55206
55207
55208{ set +x
55209$as_echo "$at_srcdir/run_subscripts.at:387: \$COBC -x -fec=BoUnd-subscript prog.cob -o badprog2"
55210at_fn_check_prepare_dynamic "$COBC -x -fec=BoUnd-subscript prog.cob -o badprog2" "run_subscripts.at:387"
55211( $at_check_trace; $COBC -x -fec=BoUnd-subscript prog.cob -o badprog2
55212) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55213at_status=$? at_failed=false
55214$at_check_filter
55215at_fn_diff_devnull "$at_stderr" || at_failed=:
55216at_fn_diff_devnull "$at_stdout" || at_failed=:
55217at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:387"
55218$at_failed && at_fn_log_failure
55219$at_traceon; }
55220
55221{ set +x
55222$as_echo "$at_srcdir/run_subscripts.at:388: \$COBCRUN_DIRECT ./badprog2"
55223at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./badprog2" "run_subscripts.at:388"
55224( $at_check_trace; $COBCRUN_DIRECT ./badprog2
55225) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55226at_status=$? at_failed=false
55227$at_check_filter
55228echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: subscript of 'y' out of bounds: 6
55229note: maximum subscript for 'y': 5
55230" | \
55231  $at_diff - "$at_stderr" || at_failed=:
55232at_fn_diff_devnull "$at_stdout" || at_failed=:
55233at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:388"
55234$at_failed && at_fn_log_failure
55235$at_traceon; }
55236
55237
55238  set +x
55239  $at_times_p && times >"$at_times_file"
55240) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55241read at_status <"$at_status_file"
55242#AT_STOP_539
55243#AT_START_540
55244at_fn_group_banner 540 'run_subscripts.at:396' \
55245  "BOUND and NOBOUND directives" "                   " 4
55246at_xfail=no
55247(
55248  $as_echo "540. $at_setup_line: testing $at_desc ..."
55249  $at_traceon
55250
55251
55252
55253# note: the >> TURN directive is checked in run_misc.at
55254
55255cat >prog.cob <<'_ATEOF'
55256
55257      $SET BOUND
55258       IDENTIFICATION DIVISION.
55259       PROGRAM-ID. prog.
55260
55261       DATA DIVISION.
55262       WORKING-STORAGE SECTION.
55263       01  x VALUE "12345!".
55264           03  y PIC X OCCURS 5 TIMES.
55265           03  z PIC X.
55266       01  idx PIC 99 VALUE 6.
55267
55268       PROCEDURE DIVISION.
55269           DISPLAY y (idx) WITH NO ADVANCING
55270           .
55271_ATEOF
55272
55273
55274cat >progn.cob <<'_ATEOF'
55275
55276      $SET NOBOUND
55277       IDENTIFICATION DIVISION.
55278       PROGRAM-ID. progn.
55279
55280       DATA DIVISION.
55281       WORKING-STORAGE SECTION.
55282       01  x VALUE "12345!".
55283           03  y PIC X OCCURS 5 TIMES.
55284           03  z PIC X.
55285       01  idx PIC 99 VALUE 6.
55286
55287       PROCEDURE DIVISION.
55288           DISPLAY y (idx) WITH NO ADVANCING
55289           .
55290_ATEOF
55291
55292
55293cat >progn2.cob <<'_ATEOF'
55294
55295      $SET NO-BOUND
55296       IDENTIFICATION DIVISION.
55297       PROGRAM-ID. progn2.
55298
55299       DATA DIVISION.
55300       WORKING-STORAGE SECTION.
55301       01  x VALUE "12345!".
55302           03  y PIC X OCCURS 5 TIMES.
55303           03  z PIC X.
55304       01  idx PIC 99 VALUE 6.
55305
55306       PROCEDURE DIVISION.
55307           DISPLAY y (idx) WITH NO ADVANCING
55308           .
55309_ATEOF
55310
55311
55312{ set +x
55313$as_echo "$at_srcdir/run_subscripts.at:452: \$COBC -x prog.cob"
55314at_fn_check_prepare_dynamic "$COBC -x prog.cob" "run_subscripts.at:452"
55315( $at_check_trace; $COBC -x prog.cob
55316) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55317at_status=$? at_failed=false
55318$at_check_filter
55319at_fn_diff_devnull "$at_stderr" || at_failed=:
55320at_fn_diff_devnull "$at_stdout" || at_failed=:
55321at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:452"
55322$at_failed && at_fn_log_failure
55323$at_traceon; }
55324
55325{ set +x
55326$as_echo "$at_srcdir/run_subscripts.at:453: \$COMPILE progn.cob"
55327at_fn_check_prepare_dynamic "$COMPILE progn.cob" "run_subscripts.at:453"
55328( $at_check_trace; $COMPILE progn.cob
55329) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55330at_status=$? at_failed=false
55331$at_check_filter
55332at_fn_diff_devnull "$at_stderr" || at_failed=:
55333at_fn_diff_devnull "$at_stdout" || at_failed=:
55334at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:453"
55335$at_failed && at_fn_log_failure
55336$at_traceon; }
55337
55338{ set +x
55339$as_echo "$at_srcdir/run_subscripts.at:454: \$COMPILE progn2.cob"
55340at_fn_check_prepare_dynamic "$COMPILE progn2.cob" "run_subscripts.at:454"
55341( $at_check_trace; $COMPILE progn2.cob
55342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55343at_status=$? at_failed=false
55344$at_check_filter
55345at_fn_diff_devnull "$at_stderr" || at_failed=:
55346at_fn_diff_devnull "$at_stdout" || at_failed=:
55347at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:454"
55348$at_failed && at_fn_log_failure
55349$at_traceon; }
55350
55351{ set +x
55352$as_echo "$at_srcdir/run_subscripts.at:455: \$COBCRUN_DIRECT ./prog"
55353at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:455"
55354( $at_check_trace; $COBCRUN_DIRECT ./prog
55355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55356at_status=$? at_failed=false
55357$at_check_filter
55358echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: subscript of 'y' out of bounds: 6
55359note: maximum subscript for 'y': 5
55360" | \
55361  $at_diff - "$at_stderr" || at_failed=:
55362at_fn_diff_devnull "$at_stdout" || at_failed=:
55363at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:455"
55364$at_failed && at_fn_log_failure
55365$at_traceon; }
55366
55367{ set +x
55368$as_echo "$at_srcdir/run_subscripts.at:459: \$COBCRUN_DIRECT ./progn"
55369at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progn" "run_subscripts.at:459"
55370( $at_check_trace; $COBCRUN_DIRECT ./progn
55371) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55372at_status=$? at_failed=false
55373$at_check_filter
55374at_fn_diff_devnull "$at_stderr" || at_failed=:
55375echo >>"$at_stdout"; $as_echo "!" | \
55376  $at_diff - "$at_stdout" || at_failed=:
55377at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:459"
55378$at_failed && at_fn_log_failure
55379$at_traceon; }
55380
55381{ set +x
55382$as_echo "$at_srcdir/run_subscripts.at:460: \$COBCRUN_DIRECT ./progn2"
55383at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progn2" "run_subscripts.at:460"
55384( $at_check_trace; $COBCRUN_DIRECT ./progn2
55385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55386at_status=$? at_failed=false
55387$at_check_filter
55388at_fn_diff_devnull "$at_stderr" || at_failed=:
55389echo >>"$at_stdout"; $as_echo "!" | \
55390  $at_diff - "$at_stdout" || at_failed=:
55391at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:460"
55392$at_failed && at_fn_log_failure
55393$at_traceon; }
55394
55395
55396  set +x
55397  $at_times_p && times >"$at_times_file"
55398) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55399read at_status <"$at_status_file"
55400#AT_STOP_540
55401#AT_START_541
55402at_fn_group_banner 541 'run_subscripts.at:465' \
55403  "SSRANGE and NOSSRANGE directives" "               " 4
55404at_xfail=no
55405(
55406  $as_echo "541. $at_setup_line: testing $at_desc ..."
55407  $at_traceon
55408
55409
55410
55411# WARNING: this testcase is "broken" as those SSRANGE may only be
55412#          defined before IDENTIFICATION DIVISION (iniatial $SET)
55413
55414cat >prog.cob <<'_ATEOF'
55415
55416       IDENTIFICATION DIVISION.
55417       PROGRAM-ID. prog.
55418
55419       DATA DIVISION.
55420       WORKING-STORAGE SECTION.
55421       01  x.
55422           03  y       PIC X OCCURS 5 TIMES VALUE SPACE.
55423           03  z       PIC X VALUE "!".
55424       01  idx         PIC 99 VALUE 6.
55425
55426       PROCEDURE DIVISION.
55427      $SET NOSSRANGE
55428           DISPLAY y (idx)
55429      *> Note: MF says "sets BOUND"
55430      $SET SSRANGE
55431           DISPLAY y (idx)
55432           .
55433_ATEOF
55434
55435
55436{ set +x
55437$as_echo "$at_srcdir/run_subscripts.at:491: \$COMPILE -DTEST-SUBSCRIPT prog.cob"
55438at_fn_check_prepare_dynamic "$COMPILE -DTEST-SUBSCRIPT prog.cob" "run_subscripts.at:491"
55439( $at_check_trace; $COMPILE -DTEST-SUBSCRIPT prog.cob
55440) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55441at_status=$? at_failed=false
55442$at_check_filter
55443at_fn_diff_devnull "$at_stderr" || at_failed=:
55444at_fn_diff_devnull "$at_stdout" || at_failed=:
55445at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:491"
55446$at_failed && at_fn_log_failure
55447$at_traceon; }
55448
55449{ set +x
55450$as_echo "$at_srcdir/run_subscripts.at:492: \$COBCRUN_DIRECT ./prog"
55451at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:492"
55452( $at_check_trace; $COBCRUN_DIRECT ./prog
55453) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55454at_status=$? at_failed=false
55455$at_check_filter
55456echo >>"$at_stderr"; $as_echo "libcob: prog.cob:17: error: subscript of 'y' out of bounds: 6
55457note: maximum subscript for 'y': 5
55458" | \
55459  $at_diff - "$at_stderr" || at_failed=:
55460echo >>"$at_stdout"; $as_echo "!
55461" | \
55462  $at_diff - "$at_stdout" || at_failed=:
55463at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:492"
55464$at_failed && at_fn_log_failure
55465$at_traceon; }
55466
55467
55468  set +x
55469  $at_times_p && times >"$at_times_file"
55470) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55471read at_status <"$at_status_file"
55472#AT_STOP_541
55473#AT_START_542
55474at_fn_group_banner 542 'run_subscripts.at:501' \
55475  "CALL with OCCURS DEPENDING ON" "                  " 4
55476at_xfail=no
55477(
55478  $as_echo "542. $at_setup_line: testing $at_desc ..."
55479  $at_traceon
55480
55481
55482
55483cat >prog.cob <<'_ATEOF'
55484
55485       IDENTIFICATION DIVISION.
55486       PROGRAM-ID. prog-main.
55487
55488       DATA DIVISION.
55489       WORKING-STORAGE SECTION.
55490       01  parm.
55491           03  parm-size PIC S999 COMP.
55492           03  parm-str.
55493               05  parm-char PIC X OCCURS 0 TO 100 TIMES
55494                        DEPENDING ON parm-size.
55495
55496       PROCEDURE DIVISION.
55497           MOVE 10 TO parm-size
55498           MOVE "Hi, there!" TO parm-str
55499           CALL "prog" USING parm
55500           .
55501       END PROGRAM prog-main.
55502
55503       IDENTIFICATION DIVISION.
55504       PROGRAM-ID. prog.
55505
55506       DATA DIVISION.
55507       LINKAGE SECTION.
55508       01  parm.
55509           03  parm-size PIC S999 COMP.
55510           03  parm-str.
55511               05  parm-char PIC X OCCURS 0 TO 100 TIMES
55512                        DEPENDING ON parm-size.
55513
55514       PROCEDURE DIVISION USING parm.
55515           DISPLAY FUNCTION TRIM(parm-str) WITH NO ADVANCING
55516           .
55517       END PROGRAM prog.
55518_ATEOF
55519
55520
55521{ set +x
55522$as_echo "$at_srcdir/run_subscripts.at:540: \$COMPILE prog.cob"
55523at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:540"
55524( $at_check_trace; $COMPILE prog.cob
55525) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55526at_status=$? at_failed=false
55527$at_check_filter
55528at_fn_diff_devnull "$at_stderr" || at_failed=:
55529at_fn_diff_devnull "$at_stdout" || at_failed=:
55530at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:540"
55531$at_failed && at_fn_log_failure
55532$at_traceon; }
55533
55534{ set +x
55535$as_echo "$at_srcdir/run_subscripts.at:541: \$COBCRUN_DIRECT ./prog"
55536at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:541"
55537( $at_check_trace; $COBCRUN_DIRECT ./prog
55538) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55539at_status=$? at_failed=false
55540$at_check_filter
55541at_fn_diff_devnull "$at_stderr" || at_failed=:
55542echo >>"$at_stdout"; $as_echo "Hi, there!" | \
55543  $at_diff - "$at_stdout" || at_failed=:
55544at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:541"
55545$at_failed && at_fn_log_failure
55546$at_traceon; }
55547
55548
55549  set +x
55550  $at_times_p && times >"$at_times_file"
55551) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55552read at_status <"$at_status_file"
55553#AT_STOP_542
55554#AT_START_543
55555at_fn_group_banner 543 'run_refmod.at:25' \
55556  "Static reference modification" "                  " 4
55557at_xfail=no
55558(
55559  $as_echo "543. $at_setup_line: testing $at_desc ..."
55560  $at_traceon
55561
55562
55563
55564cat >prog.cob <<'_ATEOF'
55565
55566       IDENTIFICATION   DIVISION.
55567       PROGRAM-ID.      prog.
55568       DATA             DIVISION.
55569       WORKING-STORAGE  SECTION.
55570       01 X             PIC X(4) VALUE "abcd".
55571       PROCEDURE        DIVISION.
55572           DISPLAY X(1:1) ":" X(1:2) ":" X(1:3) ":" X(1:4) ":" X(1:)
55573           END-DISPLAY.
55574           DISPLAY X(2:1) ":" X(2:2) ":" X(2:3) ":" X(2:)
55575           END-DISPLAY.
55576           DISPLAY X(3:1) ":" X(3:2) ":" X(3:)
55577           END-DISPLAY.
55578           DISPLAY X(4:1) ":" X(4:)
55579           END-DISPLAY.
55580           STOP RUN.
55581_ATEOF
55582
55583
55584{ set +x
55585$as_echo "$at_srcdir/run_refmod.at:46: \$COMPILE prog.cob"
55586at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:46"
55587( $at_check_trace; $COMPILE prog.cob
55588) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55589at_status=$? at_failed=false
55590$at_check_filter
55591at_fn_diff_devnull "$at_stderr" || at_failed=:
55592at_fn_diff_devnull "$at_stdout" || at_failed=:
55593at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:46"
55594$at_failed && at_fn_log_failure
55595$at_traceon; }
55596
55597{ set +x
55598$as_echo "$at_srcdir/run_refmod.at:47: \$COBCRUN_DIRECT ./prog"
55599at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:47"
55600( $at_check_trace; $COBCRUN_DIRECT ./prog
55601) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55602at_status=$? at_failed=false
55603$at_check_filter
55604at_fn_diff_devnull "$at_stderr" || at_failed=:
55605echo >>"$at_stdout"; $as_echo "a:ab:abc:abcd:abcd
55606b:bc:bcd:bcd
55607c:cd:cd
55608d:d
55609" | \
55610  $at_diff - "$at_stdout" || at_failed=:
55611at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:47"
55612$at_failed && at_fn_log_failure
55613$at_traceon; }
55614
55615
55616  set +x
55617  $at_times_p && times >"$at_times_file"
55618) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55619read at_status <"$at_status_file"
55620#AT_STOP_543
55621#AT_START_544
55622at_fn_group_banner 544 'run_refmod.at:57' \
55623  "Dynamic reference modification" "                 " 4
55624at_xfail=no
55625(
55626  $as_echo "544. $at_setup_line: testing $at_desc ..."
55627  $at_traceon
55628
55629
55630
55631cat >prog.cob <<'_ATEOF'
55632
55633       IDENTIFICATION   DIVISION.
55634       PROGRAM-ID.      prog.
55635       DATA             DIVISION.
55636       WORKING-STORAGE  SECTION.
55637       01 X             PIC X(4) VALUE "abcd".
55638       01 I             PIC 9.
55639       PROCEDURE        DIVISION.
55640           MOVE 1 TO I.
55641           DISPLAY X(I:1)
55642           END-DISPLAY.
55643           MOVE 4 TO I.
55644           DISPLAY X(I:1)
55645           END-DISPLAY.
55646           MOVE 1 TO I.
55647           DISPLAY X(1:I)
55648           END-DISPLAY.
55649           MOVE 4 TO I.
55650           DISPLAY X(1:I)
55651           END-DISPLAY.
55652           STOP RUN.
55653_ATEOF
55654
55655
55656{ set +x
55657$as_echo "$at_srcdir/run_refmod.at:83: \$COMPILE prog.cob"
55658at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:83"
55659( $at_check_trace; $COMPILE prog.cob
55660) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55661at_status=$? at_failed=false
55662$at_check_filter
55663at_fn_diff_devnull "$at_stderr" || at_failed=:
55664at_fn_diff_devnull "$at_stdout" || at_failed=:
55665at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:83"
55666$at_failed && at_fn_log_failure
55667$at_traceon; }
55668
55669{ set +x
55670$as_echo "$at_srcdir/run_refmod.at:84: \$COBCRUN_DIRECT ./prog"
55671at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:84"
55672( $at_check_trace; $COBCRUN_DIRECT ./prog
55673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55674at_status=$? at_failed=false
55675$at_check_filter
55676at_fn_diff_devnull "$at_stderr" || at_failed=:
55677echo >>"$at_stdout"; $as_echo "a
55678d
55679a
55680abcd
55681" | \
55682  $at_diff - "$at_stdout" || at_failed=:
55683at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:84"
55684$at_failed && at_fn_log_failure
55685$at_traceon; }
55686
55687
55688  set +x
55689  $at_times_p && times >"$at_times_file"
55690) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55691read at_status <"$at_status_file"
55692#AT_STOP_544
55693#AT_START_545
55694at_fn_group_banner 545 'run_refmod.at:94' \
55695  "Offset underflow" "                               " 4
55696at_xfail=no
55697(
55698  $as_echo "545. $at_setup_line: testing $at_desc ..."
55699  $at_traceon
55700
55701
55702
55703cat >prog.cob <<'_ATEOF'
55704
55705       IDENTIFICATION   DIVISION.
55706       PROGRAM-ID.      prog.
55707       DATA             DIVISION.
55708       WORKING-STORAGE  SECTION.
55709       01 X             PIC X(4) VALUE "abcd".
55710       01 I             PIC 9 VALUE 0.
55711       PROCEDURE        DIVISION.
55712           DISPLAY X(I:1) NO ADVANCING
55713           END-DISPLAY.
55714           STOP RUN.
55715_ATEOF
55716
55717
55718{ set +x
55719$as_echo "$at_srcdir/run_refmod.at:110: \$COMPILE prog.cob"
55720at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:110"
55721( $at_check_trace; $COMPILE prog.cob
55722) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55723at_status=$? at_failed=false
55724$at_check_filter
55725at_fn_diff_devnull "$at_stderr" || at_failed=:
55726at_fn_diff_devnull "$at_stdout" || at_failed=:
55727at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:110"
55728$at_failed && at_fn_log_failure
55729$at_traceon; }
55730
55731{ set +x
55732$as_echo "$at_srcdir/run_refmod.at:111: \$COBCRUN_DIRECT ./prog"
55733at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:111"
55734( $at_check_trace; $COBCRUN_DIRECT ./prog
55735) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55736at_status=$? at_failed=false
55737$at_check_filter
55738echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: offset of 'X' out of bounds: 0
55739" | \
55740  $at_diff - "$at_stderr" || at_failed=:
55741at_fn_diff_devnull "$at_stdout" || at_failed=:
55742at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:111"
55743$at_failed && at_fn_log_failure
55744$at_traceon; }
55745
55746
55747  set +x
55748  $at_times_p && times >"$at_times_file"
55749) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55750read at_status <"$at_status_file"
55751#AT_STOP_545
55752#AT_START_546
55753at_fn_group_banner 546 'run_refmod.at:118' \
55754  "Offset overflow" "                                " 4
55755at_xfail=no
55756(
55757  $as_echo "546. $at_setup_line: testing $at_desc ..."
55758  $at_traceon
55759
55760
55761
55762cat >prog.cob <<'_ATEOF'
55763
55764       IDENTIFICATION   DIVISION.
55765       PROGRAM-ID.      prog.
55766       DATA             DIVISION.
55767       WORKING-STORAGE  SECTION.
55768       01.
55769          03 X          PIC X(4) VALUE "abcd".
55770          03 I          PIC 9 VALUE 5.
55771       PROCEDURE        DIVISION.
55772           DISPLAY X(I:1) NO ADVANCING.
55773           STOP RUN.
55774_ATEOF
55775
55776
55777{ set +x
55778$as_echo "$at_srcdir/run_refmod.at:134: \$COMPILE prog.cob"
55779at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:134"
55780( $at_check_trace; $COMPILE prog.cob
55781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55782at_status=$? at_failed=false
55783$at_check_filter
55784at_fn_diff_devnull "$at_stderr" || at_failed=:
55785at_fn_diff_devnull "$at_stdout" || at_failed=:
55786at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:134"
55787$at_failed && at_fn_log_failure
55788$at_traceon; }
55789
55790{ set +x
55791$as_echo "$at_srcdir/run_refmod.at:135: \$COBCRUN_DIRECT ./prog"
55792at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:135"
55793( $at_check_trace; $COBCRUN_DIRECT ./prog
55794) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55795at_status=$? at_failed=false
55796$at_check_filter
55797echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: offset of 'X' out of bounds: 5, maximum: 4
55798" | \
55799  $at_diff - "$at_stderr" || at_failed=:
55800at_fn_diff_devnull "$at_stdout" || at_failed=:
55801at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:135"
55802$at_failed && at_fn_log_failure
55803$at_traceon; }
55804
55805
55806{ set +x
55807$as_echo "$at_srcdir/run_refmod.at:139: \$COBC -x prog.cob -o progb"
55808at_fn_check_prepare_dynamic "$COBC -x prog.cob -o progb" "run_refmod.at:139"
55809( $at_check_trace; $COBC -x prog.cob -o progb
55810) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55811at_status=$? at_failed=false
55812$at_check_filter
55813at_fn_diff_devnull "$at_stderr" || at_failed=:
55814at_fn_diff_devnull "$at_stdout" || at_failed=:
55815at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:139"
55816$at_failed && at_fn_log_failure
55817$at_traceon; }
55818
55819{ set +x
55820$as_echo "$at_srcdir/run_refmod.at:140: \$COBCRUN_DIRECT ./progb"
55821at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progb" "run_refmod.at:140"
55822( $at_check_trace; $COBCRUN_DIRECT ./progb
55823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55824at_status=$? at_failed=false
55825$at_check_filter
55826at_fn_diff_devnull "$at_stderr" || at_failed=:
55827echo >>"$at_stdout"; $as_echo "5" | \
55828  $at_diff - "$at_stdout" || at_failed=:
55829at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:140"
55830$at_failed && at_fn_log_failure
55831$at_traceon; }
55832
55833
55834  set +x
55835  $at_times_p && times >"$at_times_file"
55836) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55837read at_status <"$at_status_file"
55838#AT_STOP_546
55839#AT_START_547
55840at_fn_group_banner 547 'run_refmod.at:145' \
55841  "Length underflow" "                               " 4
55842at_xfail=no
55843(
55844  $as_echo "547. $at_setup_line: testing $at_desc ..."
55845  $at_traceon
55846
55847
55848
55849cat >prog.cob <<'_ATEOF'
55850
55851       IDENTIFICATION   DIVISION.
55852       PROGRAM-ID.      prog.
55853       DATA             DIVISION.
55854       WORKING-STORAGE  SECTION.
55855       01 X             PIC X(4) VALUE "abcd".
55856       01 I             PIC 9 VALUE 0.
55857       PROCEDURE        DIVISION.
55858           DISPLAY X(1:I) NO ADVANCING
55859           END-DISPLAY.
55860           STOP RUN.
55861_ATEOF
55862
55863
55864{ set +x
55865$as_echo "$at_srcdir/run_refmod.at:161: \$COMPILE -std=cobol2002 prog.cob"
55866at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "run_refmod.at:161"
55867( $at_check_trace; $COMPILE -std=cobol2002 prog.cob
55868) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55869at_status=$? at_failed=false
55870$at_check_filter
55871at_fn_diff_devnull "$at_stderr" || at_failed=:
55872at_fn_diff_devnull "$at_stdout" || at_failed=:
55873at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:161"
55874$at_failed && at_fn_log_failure
55875$at_traceon; }
55876
55877{ set +x
55878$as_echo "$at_srcdir/run_refmod.at:162: \$COBCRUN_DIRECT ./prog"
55879at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:162"
55880( $at_check_trace; $COBCRUN_DIRECT ./prog
55881) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55882at_status=$? at_failed=false
55883$at_check_filter
55884echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 0
55885" | \
55886  $at_diff - "$at_stderr" || at_failed=:
55887at_fn_diff_devnull "$at_stdout" || at_failed=:
55888at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:162"
55889$at_failed && at_fn_log_failure
55890$at_traceon; }
55891
55892
55893cat >prog2.cob <<'_ATEOF'
55894
55895       IDENTIFICATION   DIVISION.
55896       PROGRAM-ID.      prog2.
55897       DATA             DIVISION.
55898       WORKING-STORAGE  SECTION.
55899       01 X             PIC X(4) VALUE "abcd".
55900       01 I             PIC 9 VALUE 0.
55901       PROCEDURE        DIVISION.
55902       >> REF-MOD-ZERO-LENGTH
55903           DISPLAY X(1:I) NO ADVANCING.
55904       >> REF-MOD-ZERO-LENGTH OFF
55905           DISPLAY X(1:I) NO ADVANCING.
55906           STOP RUN.
55907_ATEOF
55908
55909
55910{ set +x
55911$as_echo "$at_srcdir/run_refmod.at:181: \$COMPILE -fno-ref-mod-zero-length prog2.cob"
55912at_fn_check_prepare_dynamic "$COMPILE -fno-ref-mod-zero-length prog2.cob" "run_refmod.at:181"
55913( $at_check_trace; $COMPILE -fno-ref-mod-zero-length prog2.cob
55914) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55915at_status=$? at_failed=false
55916$at_check_filter
55917at_fn_diff_devnull "$at_stderr" || at_failed=:
55918at_fn_diff_devnull "$at_stdout" || at_failed=:
55919at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:181"
55920$at_failed && at_fn_log_failure
55921$at_traceon; }
55922
55923{ set +x
55924$as_echo "$at_srcdir/run_refmod.at:182: \$COBCRUN_DIRECT ./prog2"
55925at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:182"
55926( $at_check_trace; $COBCRUN_DIRECT ./prog2
55927) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55928at_status=$? at_failed=false
55929$at_check_filter
55930echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:11: error: length of 'X' out of bounds: 0
55931" | \
55932  $at_diff - "$at_stderr" || at_failed=:
55933at_fn_diff_devnull "$at_stdout" || at_failed=:
55934at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:182"
55935$at_failed && at_fn_log_failure
55936$at_traceon; }
55937
55938
55939  set +x
55940  $at_times_p && times >"$at_times_file"
55941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
55942read at_status <"$at_status_file"
55943#AT_STOP_547
55944#AT_START_548
55945at_fn_group_banner 548 'run_refmod.at:189' \
55946  "Length overflow" "                                " 4
55947at_xfail=no
55948(
55949  $as_echo "548. $at_setup_line: testing $at_desc ..."
55950  $at_traceon
55951
55952
55953
55954cat >prog.cob <<'_ATEOF'
55955
55956       IDENTIFICATION   DIVISION.
55957       PROGRAM-ID.      prog.
55958       DATA             DIVISION.
55959       WORKING-STORAGE  SECTION.
55960       01 X             PIC X(4) VALUE "abcd".
55961       01 I             PIC 9 VALUE 5.
55962       PROCEDURE        DIVISION.
55963           DISPLAY X(1:I) NO ADVANCING
55964           END-DISPLAY.
55965           STOP RUN.
55966_ATEOF
55967
55968
55969{ set +x
55970$as_echo "$at_srcdir/run_refmod.at:205: \$COMPILE prog.cob"
55971at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:205"
55972( $at_check_trace; $COMPILE prog.cob
55973) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55974at_status=$? at_failed=false
55975$at_check_filter
55976at_fn_diff_devnull "$at_stderr" || at_failed=:
55977at_fn_diff_devnull "$at_stdout" || at_failed=:
55978at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:205"
55979$at_failed && at_fn_log_failure
55980$at_traceon; }
55981
55982{ set +x
55983$as_echo "$at_srcdir/run_refmod.at:206: \$COBCRUN_DIRECT ./prog"
55984at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:206"
55985( $at_check_trace; $COBCRUN_DIRECT ./prog
55986) >>"$at_stdout" 2>>"$at_stderr" 5>&-
55987at_status=$? at_failed=false
55988$at_check_filter
55989echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 5, maximum: 4
55990" | \
55991  $at_diff - "$at_stderr" || at_failed=:
55992at_fn_diff_devnull "$at_stdout" || at_failed=:
55993at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:206"
55994$at_failed && at_fn_log_failure
55995$at_traceon; }
55996
55997
55998cat >prog2.cob <<'_ATEOF'
55999
56000       IDENTIFICATION   DIVISION.
56001       PROGRAM-ID.      prog2.
56002       DATA             DIVISION.
56003       WORKING-STORAGE  SECTION.
56004       01 X             PIC X(4) VALUE "abcd".
56005       01 I             PIC 9 VALUE 5.
56006       PROCEDURE        DIVISION.
56007           DISPLAY X(3:I) NO ADVANCING
56008           END-DISPLAY.
56009           STOP RUN.
56010_ATEOF
56011
56012
56013{ set +x
56014$as_echo "$at_srcdir/run_refmod.at:223: \$COMPILE prog2.cob"
56015at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_refmod.at:223"
56016( $at_check_trace; $COMPILE prog2.cob
56017) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56018at_status=$? at_failed=false
56019$at_check_filter
56020at_fn_diff_devnull "$at_stderr" || at_failed=:
56021at_fn_diff_devnull "$at_stdout" || at_failed=:
56022at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:223"
56023$at_failed && at_fn_log_failure
56024$at_traceon; }
56025
56026{ set +x
56027$as_echo "$at_srcdir/run_refmod.at:224: \$COBCRUN_DIRECT ./prog2"
56028at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:224"
56029( $at_check_trace; $COBCRUN_DIRECT ./prog2
56030) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56031at_status=$? at_failed=false
56032$at_check_filter
56033echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:9: error: length of 'X' out of bounds: 5, maximum: 4
56034" | \
56035  $at_diff - "$at_stderr" || at_failed=:
56036at_fn_diff_devnull "$at_stdout" || at_failed=:
56037at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:224"
56038$at_failed && at_fn_log_failure
56039$at_traceon; }
56040
56041
56042  set +x
56043  $at_times_p && times >"$at_times_file"
56044) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56045read at_status <"$at_status_file"
56046#AT_STOP_548
56047#AT_START_549
56048at_fn_group_banner 549 'run_refmod.at:231' \
56049  "Length overflow with offset (1)" "                " 4
56050at_xfail=no
56051(
56052  $as_echo "549. $at_setup_line: testing $at_desc ..."
56053  $at_traceon
56054
56055
56056
56057cat >prog.cob <<'_ATEOF'
56058
56059       IDENTIFICATION   DIVISION.
56060       PROGRAM-ID.      prog.
56061       DATA             DIVISION.
56062       WORKING-STORAGE  SECTION.
56063       01 X             PIC X(4) VALUE "abcd".
56064       01 I             PIC 9 VALUE 3.
56065       PROCEDURE        DIVISION.
56066           DISPLAY X(3:I) NO ADVANCING.
56067           STOP RUN.
56068_ATEOF
56069
56070
56071{ set +x
56072$as_echo "$at_srcdir/run_refmod.at:246: \$COMPILE prog.cob"
56073at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:246"
56074( $at_check_trace; $COMPILE prog.cob
56075) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56076at_status=$? at_failed=false
56077$at_check_filter
56078at_fn_diff_devnull "$at_stderr" || at_failed=:
56079at_fn_diff_devnull "$at_stdout" || at_failed=:
56080at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:246"
56081$at_failed && at_fn_log_failure
56082$at_traceon; }
56083
56084{ set +x
56085$as_echo "$at_srcdir/run_refmod.at:247: \$COBCRUN_DIRECT ./prog"
56086at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:247"
56087( $at_check_trace; $COBCRUN_DIRECT ./prog
56088) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56089at_status=$? at_failed=false
56090$at_check_filter
56091echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
56092" | \
56093  $at_diff - "$at_stderr" || at_failed=:
56094at_fn_diff_devnull "$at_stdout" || at_failed=:
56095at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:247"
56096$at_failed && at_fn_log_failure
56097$at_traceon; }
56098
56099
56100  set +x
56101  $at_times_p && times >"$at_times_file"
56102) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56103read at_status <"$at_status_file"
56104#AT_STOP_549
56105#AT_START_550
56106at_fn_group_banner 550 'run_refmod.at:254' \
56107  "Length overflow with offset (2)" "                " 4
56108at_xfail=no
56109(
56110  $as_echo "550. $at_setup_line: testing $at_desc ..."
56111  $at_traceon
56112
56113
56114
56115# verifies that the check is generated within conditions - simple IF
56116
56117cat >prog.cob <<'_ATEOF'
56118
56119       IDENTIFICATION   DIVISION.
56120       PROGRAM-ID.      prog.
56121       DATA             DIVISION.
56122       WORKING-STORAGE  SECTION.
56123       01 X             PIC X(4) VALUE "abcd".
56124       01 I             PIC 9 VALUE 3.
56125       PROCEDURE        DIVISION.
56126           IF X(3:I) <> SPACES
56127              DISPLAY X(3:I) NO ADVANCING.
56128           STOP RUN.
56129_ATEOF
56130
56131
56132{ set +x
56133$as_echo "$at_srcdir/run_refmod.at:272: \$COMPILE prog.cob"
56134at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:272"
56135( $at_check_trace; $COMPILE prog.cob
56136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56137at_status=$? at_failed=false
56138$at_check_filter
56139at_fn_diff_devnull "$at_stderr" || at_failed=:
56140at_fn_diff_devnull "$at_stdout" || at_failed=:
56141at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:272"
56142$at_failed && at_fn_log_failure
56143$at_traceon; }
56144
56145{ set +x
56146$as_echo "$at_srcdir/run_refmod.at:273: \$COBCRUN_DIRECT ./prog"
56147at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:273"
56148( $at_check_trace; $COBCRUN_DIRECT ./prog
56149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56150at_status=$? at_failed=false
56151$at_check_filter
56152echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
56153" | \
56154  $at_diff - "$at_stderr" || at_failed=:
56155at_fn_diff_devnull "$at_stdout" || at_failed=:
56156at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:273"
56157$at_failed && at_fn_log_failure
56158$at_traceon; }
56159
56160
56161  set +x
56162  $at_times_p && times >"$at_times_file"
56163) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56164read at_status <"$at_status_file"
56165#AT_STOP_550
56166#AT_START_551
56167at_fn_group_banner 551 'run_refmod.at:280' \
56168  "Length overflow with offset (3)" "                " 4
56169at_xfail=no
56170(
56171  $as_echo "551. $at_setup_line: testing $at_desc ..."
56172  $at_traceon
56173
56174
56175
56176# verifies that the check is generated within conditions - WHEN
56177# complex test for correct place and not raised if guarded by check
56178
56179cat >prog.cob <<'_ATEOF'
56180
56181       IDENTIFICATION   DIVISION.
56182       PROGRAM-ID.      prog.
56183       DATA             DIVISION.
56184       WORKING-STORAGE  SECTION.
56185       01 X             PIC X(4) VALUE "abcd".
56186       01 I             PIC 9 VALUE 3.
56187       PROCEDURE        DIVISION.
56188           EVALUATE TRUE
56189           WHEN I < 2
56190            AND X(3:I) <> SPACES
56191              DISPLAY "1-" X(3:I) NO ADVANCING
56192           WHEN I < 2
56193           WHEN X(3:I) <> SPACES
56194              DISPLAY "2-" X(3:I) NO ADVANCING
56195           END-EVALUATE
56196           STOP RUN.
56197_ATEOF
56198
56199
56200{ set +x
56201$as_echo "$at_srcdir/run_refmod.at:305: \$COMPILE prog.cob"
56202at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:305"
56203( $at_check_trace; $COMPILE prog.cob
56204) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56205at_status=$? at_failed=false
56206$at_check_filter
56207at_fn_diff_devnull "$at_stderr" || at_failed=:
56208at_fn_diff_devnull "$at_stdout" || at_failed=:
56209at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:305"
56210$at_failed && at_fn_log_failure
56211$at_traceon; }
56212
56213{ set +x
56214$as_echo "$at_srcdir/run_refmod.at:306: \$COBCRUN_DIRECT ./prog"
56215at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:306"
56216( $at_check_trace; $COBCRUN_DIRECT ./prog
56217) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56218at_status=$? at_failed=false
56219$at_check_filter
56220echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
56221" | \
56222  $at_diff - "$at_stderr" || at_failed=:
56223at_fn_diff_devnull "$at_stdout" || at_failed=:
56224at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:306"
56225$at_failed && at_fn_log_failure
56226$at_traceon; }
56227
56228
56229  set +x
56230  $at_times_p && times >"$at_times_file"
56231) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56232read at_status <"$at_status_file"
56233#AT_STOP_551
56234#AT_START_552
56235at_fn_group_banner 552 'run_refmod.at:313' \
56236  "enable / disable ref-mod check" "                 " 4
56237at_xfail=no
56238(
56239  $as_echo "552. $at_setup_line: testing $at_desc ..."
56240  $at_traceon
56241
56242
56243
56244cat >prog.cob <<'_ATEOF'
56245
56246       IDENTIFICATION DIVISION.
56247       PROGRAM-ID. prog.
56248
56249       DATA DIVISION.
56250       WORKING-STORAGE SECTION.
56251       01  x.
56252           03  y PIC XXX VALUE "abc".
56253           03  z PIC X VALUE "d".
56254       01  len PIC 99 VALUE 2.
56255
56256       PROCEDURE DIVISION.
56257           DISPLAY y (3:len)
56258                   WITH NO ADVANCING
56259           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
56260                   WITH NO ADVANCING
56261           DISPLAY "."
56262                   WITH NO ADVANCING
56263           .
56264_ATEOF
56265
56266
56267{ set +x
56268$as_echo "$at_srcdir/run_refmod.at:337: \$COMPILE -fno-ec=BOUND-REF-MOD prog.cob"
56269at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND-REF-MOD prog.cob" "run_refmod.at:337"
56270( $at_check_trace; $COMPILE -fno-ec=BOUND-REF-MOD prog.cob
56271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56272at_status=$? at_failed=false
56273$at_check_filter
56274at_fn_diff_devnull "$at_stderr" || at_failed=:
56275at_fn_diff_devnull "$at_stdout" || at_failed=:
56276at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:337"
56277$at_failed && at_fn_log_failure
56278$at_traceon; }
56279
56280{ set +x
56281$as_echo "$at_srcdir/run_refmod.at:338: \$COBCRUN_DIRECT ./prog"
56282at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:338"
56283( $at_check_trace; $COBCRUN_DIRECT ./prog
56284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56285at_status=$? at_failed=false
56286$at_check_filter
56287at_fn_diff_devnull "$at_stderr" || at_failed=:
56288echo >>"$at_stdout"; $as_echo "cd." | \
56289  $at_diff - "$at_stdout" || at_failed=:
56290at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:338"
56291$at_failed && at_fn_log_failure
56292$at_traceon; }
56293
56294{ set +x
56295$as_echo "$at_srcdir/run_refmod.at:339: \$COMPILE -fno-ec=BOUND prog.cob -o progb"
56296at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND prog.cob -o progb" "run_refmod.at:339"
56297( $at_check_trace; $COMPILE -fno-ec=BOUND prog.cob -o progb
56298) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56299at_status=$? at_failed=false
56300$at_check_filter
56301at_fn_diff_devnull "$at_stderr" || at_failed=:
56302at_fn_diff_devnull "$at_stdout" || at_failed=:
56303at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:339"
56304$at_failed && at_fn_log_failure
56305$at_traceon; }
56306
56307{ set +x
56308$as_echo "$at_srcdir/run_refmod.at:340: \$COBCRUN_DIRECT ./progb"
56309at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progb" "run_refmod.at:340"
56310( $at_check_trace; $COBCRUN_DIRECT ./progb
56311) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56312at_status=$? at_failed=false
56313$at_check_filter
56314at_fn_diff_devnull "$at_stderr" || at_failed=:
56315echo >>"$at_stdout"; $as_echo "cd." | \
56316  $at_diff - "$at_stdout" || at_failed=:
56317at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:340"
56318$at_failed && at_fn_log_failure
56319$at_traceon; }
56320
56321{ set +x
56322$as_echo "$at_srcdir/run_refmod.at:341: \$COMPILE prog.cob -o progc"
56323at_fn_check_prepare_dynamic "$COMPILE prog.cob -o progc" "run_refmod.at:341"
56324( $at_check_trace; $COMPILE prog.cob -o progc
56325) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56326at_status=$? at_failed=false
56327$at_check_filter
56328at_fn_diff_devnull "$at_stderr" || at_failed=:
56329at_fn_diff_devnull "$at_stdout" || at_failed=:
56330at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:341"
56331$at_failed && at_fn_log_failure
56332$at_traceon; }
56333
56334{ set +x
56335$as_echo "$at_srcdir/run_refmod.at:342: \$COBCRUN_DIRECT ./progc"
56336at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progc" "run_refmod.at:342"
56337( $at_check_trace; $COBCRUN_DIRECT ./progc
56338) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56339at_status=$? at_failed=false
56340$at_check_filter
56341echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: length of 'y' out of bounds: 2, starting at: 3, maximum: 3
56342" | \
56343  $at_diff - "$at_stderr" || at_failed=:
56344at_fn_diff_devnull "$at_stdout" || at_failed=:
56345at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:342"
56346$at_failed && at_fn_log_failure
56347$at_traceon; }
56348
56349
56350cat >prog2.cob <<'_ATEOF'
56351
56352       IDENTIFICATION DIVISION.
56353       PROGRAM-ID. prog2.
56354
56355       DATA DIVISION.
56356       WORKING-STORAGE SECTION.
56357       01  x.
56358           03  y PIC X VALUE "a".
56359           03  z PIC X VALUE "b".
56360       01  len   PIC 99 VALUE 0.
56361
56362       PROCEDURE DIVISION.
56363           DISPLAY y (1:len)
56364                   WITH NO ADVANCING
56365           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
56366                   WITH NO ADVANCING
56367           DISPLAY "."
56368                   WITH NO ADVANCING
56369           MOVE    2 TO len
56370           DISPLAY y (1:len)
56371                   WITH NO ADVANCING
56372           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
56373                   WITH NO ADVANCING
56374           DISPLAY "."
56375                   WITH NO ADVANCING
56376           .
56377_ATEOF
56378
56379
56380{ set +x
56381$as_echo "$at_srcdir/run_refmod.at:374: \$COMPILE -fno-ec=BOUND-REF-MOD prog2.cob"
56382at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND-REF-MOD prog2.cob" "run_refmod.at:374"
56383( $at_check_trace; $COMPILE -fno-ec=BOUND-REF-MOD prog2.cob
56384) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56385at_status=$? at_failed=false
56386$at_check_filter
56387at_fn_diff_devnull "$at_stderr" || at_failed=:
56388at_fn_diff_devnull "$at_stdout" || at_failed=:
56389at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:374"
56390$at_failed && at_fn_log_failure
56391$at_traceon; }
56392
56393{ set +x
56394$as_echo "$at_srcdir/run_refmod.at:375: \$COBCRUN_DIRECT ./prog2"
56395at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:375"
56396( $at_check_trace; $COBCRUN_DIRECT ./prog2
56397) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56398at_status=$? at_failed=false
56399$at_check_filter
56400at_fn_diff_devnull "$at_stderr" || at_failed=:
56401echo >>"$at_stdout"; $as_echo ".ab." | \
56402  $at_diff - "$at_stdout" || at_failed=:
56403at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:375"
56404$at_failed && at_fn_log_failure
56405$at_traceon; }
56406
56407{ set +x
56408$as_echo "$at_srcdir/run_refmod.at:376: \$COMPILE -o prog2b prog2.cob"
56409at_fn_check_prepare_dynamic "$COMPILE -o prog2b prog2.cob" "run_refmod.at:376"
56410( $at_check_trace; $COMPILE -o prog2b prog2.cob
56411) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56412at_status=$? at_failed=false
56413$at_check_filter
56414at_fn_diff_devnull "$at_stderr" || at_failed=:
56415at_fn_diff_devnull "$at_stdout" || at_failed=:
56416at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:376"
56417$at_failed && at_fn_log_failure
56418$at_traceon; }
56419
56420{ set +x
56421$as_echo "$at_srcdir/run_refmod.at:377: \$COBCRUN_DIRECT ./prog2b"
56422at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_refmod.at:377"
56423( $at_check_trace; $COBCRUN_DIRECT ./prog2b
56424) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56425at_status=$? at_failed=false
56426$at_check_filter
56427echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:20: error: length of 'y' out of bounds: 2, maximum: 1
56428" | \
56429  $at_diff - "$at_stderr" || at_failed=:
56430echo >>"$at_stdout"; $as_echo "." | \
56431  $at_diff - "$at_stdout" || at_failed=:
56432at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:377"
56433$at_failed && at_fn_log_failure
56434$at_traceon; }
56435
56436{ set +x
56437$as_echo "$at_srcdir/run_refmod.at:380: \$COMPILE -fno-ref-mod-zero-length -o prog2c prog2.cob"
56438at_fn_check_prepare_dynamic "$COMPILE -fno-ref-mod-zero-length -o prog2c prog2.cob" "run_refmod.at:380"
56439( $at_check_trace; $COMPILE -fno-ref-mod-zero-length -o prog2c prog2.cob
56440) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56441at_status=$? at_failed=false
56442$at_check_filter
56443at_fn_diff_devnull "$at_stderr" || at_failed=:
56444at_fn_diff_devnull "$at_stdout" || at_failed=:
56445at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:380"
56446$at_failed && at_fn_log_failure
56447$at_traceon; }
56448
56449{ set +x
56450$as_echo "$at_srcdir/run_refmod.at:381: \$COBCRUN_DIRECT ./prog2c"
56451at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2c" "run_refmod.at:381"
56452( $at_check_trace; $COBCRUN_DIRECT ./prog2c
56453) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56454at_status=$? at_failed=false
56455$at_check_filter
56456echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:13: error: length of 'y' out of bounds: 0
56457" | \
56458  $at_diff - "$at_stderr" || at_failed=:
56459at_fn_diff_devnull "$at_stdout" || at_failed=:
56460at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:381"
56461$at_failed && at_fn_log_failure
56462$at_traceon; }
56463
56464
56465  set +x
56466  $at_times_p && times >"$at_times_file"
56467) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56468read at_status <"$at_status_file"
56469#AT_STOP_552
56470#AT_START_553
56471at_fn_group_banner 553 'run_refmod.at:388' \
56472  "MF SSRANGE and NOSSRANGE directives" "            " 4
56473at_xfail=no
56474(
56475  $as_echo "553. $at_setup_line: testing $at_desc ..."
56476  $at_traceon
56477
56478
56479
56480# Note: SSRANGE directive is "initial" and must be specified
56481#       before IDENTIFICATION DIVISION
56482
56483cat >prog.cob <<'_ATEOF'
56484
56485      $SET NOSSRANGE
56486       IDENTIFICATION DIVISION.
56487       PROGRAM-ID. prog.
56488
56489       DATA DIVISION.
56490       WORKING-STORAGE SECTION.
56491       01  x.
56492           03  y       PIC X VALUE SPACE.
56493           03  z       PIC X VALUE "!".
56494       01  n           PIC 9 VALUE 0.
56495       01  m           PIC 9 VALUE 2.
56496
56497       PROCEDURE DIVISION.
56498           DISPLAY y (1:m) NO ADVANCING
56499           DISPLAY y (1:n) no ADVANCING
56500           GOBACK.
56501_ATEOF
56502
56503
56504{ set +x
56505$as_echo "$at_srcdir/run_refmod.at:413: \$COBC -x -debug -std=mf prog.cob"
56506at_fn_check_prepare_dynamic "$COBC -x -debug -std=mf prog.cob" "run_refmod.at:413"
56507( $at_check_trace; $COBC -x -debug -std=mf prog.cob
56508) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56509at_status=$? at_failed=false
56510$at_check_filter
56511at_fn_diff_devnull "$at_stderr" || at_failed=:
56512at_fn_diff_devnull "$at_stdout" || at_failed=:
56513at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:413"
56514$at_failed && at_fn_log_failure
56515$at_traceon; }
56516
56517{ set +x
56518$as_echo "$at_srcdir/run_refmod.at:414: \$COBCRUN_DIRECT ./prog"
56519at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:414"
56520( $at_check_trace; $COBCRUN_DIRECT ./prog
56521) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56522at_status=$? at_failed=false
56523$at_check_filter
56524at_fn_diff_devnull "$at_stderr" || at_failed=:
56525echo >>"$at_stdout"; $as_echo " !" | \
56526  $at_diff - "$at_stdout" || at_failed=:
56527at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:414"
56528$at_failed && at_fn_log_failure
56529$at_traceon; }
56530
56531
56532cat >prog1.cob <<'_ATEOF'
56533
56534      $SET SSRANGE"1"
56535       IDENTIFICATION DIVISION.
56536       PROGRAM-ID. progb.
56537
56538       DATA DIVISION.
56539       WORKING-STORAGE SECTION.
56540       01  x.
56541           03  y       PIC X VALUE SPACE.
56542           03  z       PIC X VALUE "!".
56543       01  n           PIC 9 VALUE 0.
56544       01  m           PIC 9 VALUE 2.
56545
56546       PROCEDURE DIVISION.
56547           DISPLAY y (1:m) NO ADVANCING
56548           DISPLAY y (1:n)
56549           GOBACK.
56550_ATEOF
56551
56552
56553{ set +x
56554$as_echo "$at_srcdir/run_refmod.at:435: \$COBC -x -std=mf prog1.cob"
56555at_fn_check_prepare_dynamic "$COBC -x -std=mf prog1.cob" "run_refmod.at:435"
56556( $at_check_trace; $COBC -x -std=mf prog1.cob
56557) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56558at_status=$? at_failed=false
56559$at_check_filter
56560at_fn_diff_devnull "$at_stderr" || at_failed=:
56561at_fn_diff_devnull "$at_stdout" || at_failed=:
56562at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:435"
56563$at_failed && at_fn_log_failure
56564$at_traceon; }
56565
56566{ set +x
56567$as_echo "$at_srcdir/run_refmod.at:436: \$COBCRUN_DIRECT ./prog1"
56568at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_refmod.at:436"
56569( $at_check_trace; $COBCRUN_DIRECT ./prog1
56570) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56571at_status=$? at_failed=false
56572$at_check_filter
56573echo >>"$at_stderr"; $as_echo "libcob: prog1.cob:16: error: length of 'y' out of bounds: 0
56574" | \
56575  $at_diff - "$at_stderr" || at_failed=:
56576echo >>"$at_stdout"; $as_echo " !" | \
56577  $at_diff - "$at_stdout" || at_failed=:
56578at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:436"
56579$at_failed && at_fn_log_failure
56580$at_traceon; }
56581
56582
56583cat >prog2.cob <<'_ATEOF'
56584
56585      $SET SSRANGE"2"
56586       IDENTIFICATION DIVISION.
56587       PROGRAM-ID. prog2.
56588
56589       DATA DIVISION.
56590       WORKING-STORAGE SECTION.
56591       01  x.
56592           03  y       PIC X VALUE SPACE.
56593           03  z       PIC X VALUE "!".
56594       01  n           PIC 9 VALUE 0.
56595       01  m           PIC 9 VALUE 2.
56596
56597       PROCEDURE DIVISION.
56598      $IF TEST-ZERO-LEN-REF-MOD DEFINED
56599           DISPLAY y (1:n)
56600      $END
56601           DISPLAY y (1:m)
56602           GOBACK.
56603_ATEOF
56604
56605
56606{ set +x
56607$as_echo "$at_srcdir/run_refmod.at:461: \$COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.cob"
56608at_fn_check_prepare_dynamic "$COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.cob" "run_refmod.at:461"
56609( $at_check_trace; $COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.cob
56610) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56611at_status=$? at_failed=false
56612$at_check_filter
56613at_fn_diff_devnull "$at_stderr" || at_failed=:
56614at_fn_diff_devnull "$at_stdout" || at_failed=:
56615at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:461"
56616$at_failed && at_fn_log_failure
56617$at_traceon; }
56618
56619{ set +x
56620$as_echo "$at_srcdir/run_refmod.at:462: \$COBCRUN_DIRECT ./prog2"
56621at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:462"
56622( $at_check_trace; $COBCRUN_DIRECT ./prog2
56623) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56624at_status=$? at_failed=false
56625$at_check_filter
56626echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:16: error: length of 'y' out of bounds: 0
56627" | \
56628  $at_diff - "$at_stderr" || at_failed=:
56629at_fn_diff_devnull "$at_stdout" || at_failed=:
56630at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:462"
56631$at_failed && at_fn_log_failure
56632$at_traceon; }
56633
56634
56635{ set +x
56636$as_echo "$at_srcdir/run_refmod.at:466: \$COBC -x -std=mf -o prog2b prog2.cob"
56637at_fn_check_prepare_dynamic "$COBC -x -std=mf -o prog2b prog2.cob" "run_refmod.at:466"
56638( $at_check_trace; $COBC -x -std=mf -o prog2b prog2.cob
56639) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56640at_status=$? at_failed=false
56641$at_check_filter
56642at_fn_diff_devnull "$at_stderr" || at_failed=:
56643at_fn_diff_devnull "$at_stdout" || at_failed=:
56644at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:466"
56645$at_failed && at_fn_log_failure
56646$at_traceon; }
56647
56648{ set +x
56649$as_echo "$at_srcdir/run_refmod.at:467: \$COBCRUN_DIRECT ./prog2b"
56650at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_refmod.at:467"
56651( $at_check_trace; $COBCRUN_DIRECT ./prog2b
56652) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56653at_status=$? at_failed=false
56654$at_check_filter
56655echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:18: error: length of 'y' out of bounds: 2, maximum: 1
56656" | \
56657  $at_diff - "$at_stderr" || at_failed=:
56658at_fn_diff_devnull "$at_stdout" || at_failed=:
56659at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:467"
56660$at_failed && at_fn_log_failure
56661$at_traceon; }
56662
56663
56664cat >prog3.cob <<'_ATEOF'
56665
56666      $SET SSRANGE"3"
56667       IDENTIFICATION DIVISION.
56668       PROGRAM-ID. prog3.
56669
56670       DATA DIVISION.
56671       WORKING-STORAGE SECTION.
56672       01  x.
56673           03  y       PIC X VALUE SPACE.
56674           03  z       PIC X VALUE "!".
56675       01  n           PIC 9 VALUE 0.
56676       01  m           PIC 9 VALUE 2.
56677
56678       PROCEDURE DIVISION.
56679           DISPLAY y (1:n) NO ADVANCING
56680           DISPLAY y (1:m)
56681           GOBACK.
56682_ATEOF
56683
56684
56685{ set +x
56686$as_echo "$at_srcdir/run_refmod.at:490: \$COBC -x -std=mf prog3.cob"
56687at_fn_check_prepare_dynamic "$COBC -x -std=mf prog3.cob" "run_refmod.at:490"
56688( $at_check_trace; $COBC -x -std=mf prog3.cob
56689) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56690at_status=$? at_failed=false
56691$at_check_filter
56692at_fn_diff_devnull "$at_stderr" || at_failed=:
56693at_fn_diff_devnull "$at_stdout" || at_failed=:
56694at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:490"
56695$at_failed && at_fn_log_failure
56696$at_traceon; }
56697
56698{ set +x
56699$as_echo "$at_srcdir/run_refmod.at:491: \$COBCRUN_DIRECT ./prog3"
56700at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_refmod.at:491"
56701( $at_check_trace; $COBCRUN_DIRECT ./prog3
56702) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56703at_status=$? at_failed=false
56704$at_check_filter
56705echo >>"$at_stderr"; $as_echo "libcob: prog3.cob:16: error: length of 'y' out of bounds: 2, maximum: 1
56706" | \
56707  $at_diff - "$at_stderr" || at_failed=:
56708at_fn_diff_devnull "$at_stdout" || at_failed=:
56709at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:491"
56710$at_failed && at_fn_log_failure
56711$at_traceon; }
56712
56713
56714  set +x
56715  $at_times_p && times >"$at_times_file"
56716) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56717read at_status <"$at_status_file"
56718#AT_STOP_553
56719#AT_START_554
56720at_fn_group_banner 554 'run_accept.at:28' \
56721  "ACCEPT OMITTED (simple)" "                        " 4
56722at_xfail=no
56723(
56724  $as_echo "554. $at_setup_line: testing $at_desc ..."
56725  $at_traceon
56726
56727
56728
56729cat >prog.cob <<'_ATEOF'
56730
56731       IDENTIFICATION DIVISION.
56732       PROGRAM-ID.    prog.
56733       PROCEDURE      DIVISION.
56734           ACCEPT OMITTED.
56735_ATEOF
56736
56737
56738cat >input.txt <<'_ATEOF'
56739
56740_ATEOF
56741
56742
56743{ set +x
56744$as_echo "$at_srcdir/run_accept.at:41: \$COMPILE prog.cob"
56745at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:41"
56746( $at_check_trace; $COMPILE prog.cob
56747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56748at_status=$? at_failed=false
56749$at_check_filter
56750at_fn_diff_devnull "$at_stderr" || at_failed=:
56751at_fn_diff_devnull "$at_stdout" || at_failed=:
56752at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:41"
56753$at_failed && at_fn_log_failure
56754$at_traceon; }
56755
56756{ set +x
56757$as_echo "$at_srcdir/run_accept.at:42: \$COBCRUN_DIRECT ./prog < input.txt"
56758at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog < input.txt" "run_accept.at:42"
56759( $at_check_trace; $COBCRUN_DIRECT ./prog < input.txt
56760) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56761at_status=$? at_failed=false
56762$at_check_filter
56763at_fn_diff_devnull "$at_stderr" || at_failed=:
56764at_fn_diff_devnull "$at_stdout" || at_failed=:
56765at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:42"
56766$at_failed && at_fn_log_failure
56767$at_traceon; }
56768
56769
56770  set +x
56771  $at_times_p && times >"$at_times_file"
56772) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56773read at_status <"$at_status_file"
56774#AT_STOP_554
56775#AT_START_555
56776at_fn_group_banner 555 'run_accept.at:50' \
56777  "ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (1)" "" 4
56778at_xfail=no
56779(
56780  $as_echo "555. $at_setup_line: testing $at_desc ..."
56781  $at_traceon
56782
56783
56784
56785cat >prog.cob <<'_ATEOF'
56786
56787       IDENTIFICATION   DIVISION.
56788       PROGRAM-ID.      prog.
56789       DATA             DIVISION.
56790       WORKING-STORAGE  SECTION.
56791       *> one byte longer to make sure there is no garbage in
56792       01 X             PIC X(9).
56793       PROCEDURE        DIVISION.
56794           ACCEPT X FROM TIME
56795           END-ACCEPT
56796           IF X (1:2) >= "00" AND <= "23" AND
56797              X (3:2) >= "00" AND <= "59" AND
56798              X (5:2) >= "00" AND <= "60" AND
56799              X (7:2) >= "00" AND <= "99" AND
56800              X (9: )  = SPACE
56801              CONTINUE
56802           ELSE
56803              DISPLAY "TIME " X "!"
56804              END-DISPLAY
56805           END-IF
56806           ACCEPT X FROM DATE
56807           END-ACCEPT
56808           INSPECT X CONVERTING "012345678" TO "999999999"
56809           IF X NOT = "999999"
56810              DISPLAY "DATE " X "!"
56811              END-DISPLAY
56812           END-IF
56813           ACCEPT X FROM DATE YYYYMMDD
56814           END-ACCEPT
56815           INSPECT X CONVERTING "012345678" TO "999999999"
56816           IF X NOT = "99999999"
56817              DISPLAY "YYYYMMDD " X "!"
56818              END-DISPLAY
56819           END-IF
56820           ACCEPT X FROM DAY
56821           END-ACCEPT
56822           INSPECT X CONVERTING "012345678" TO "999999999"
56823           IF X NOT = "99999"
56824              DISPLAY "DAY " X "!"
56825              END-DISPLAY
56826           END-IF
56827           ACCEPT X FROM DAY YYYYDDD
56828           END-ACCEPT
56829           INSPECT X CONVERTING "012345678" TO "999999999"
56830           IF X NOT = "9999999"
56831              DISPLAY "YYYYDDD " X "!"
56832              END-DISPLAY
56833           END-IF
56834           ACCEPT X FROM DAY-OF-WEEK
56835           END-ACCEPT
56836           INSPECT X CONVERTING "1234567" TO "9999999"
56837           IF X NOT = "9"
56838              DISPLAY "DAY-OF-WEEK " X "!"
56839              END-DISPLAY
56840           END-IF
56841           STOP RUN.
56842_ATEOF
56843
56844
56845{ set +x
56846$as_echo "$at_srcdir/run_accept.at:111: \$COMPILE prog.cob"
56847at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:111"
56848( $at_check_trace; $COMPILE prog.cob
56849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56850at_status=$? at_failed=false
56851$at_check_filter
56852at_fn_diff_devnull "$at_stderr" || at_failed=:
56853at_fn_diff_devnull "$at_stdout" || at_failed=:
56854at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:111"
56855$at_failed && at_fn_log_failure
56856$at_traceon; }
56857
56858{ set +x
56859$as_echo "$at_srcdir/run_accept.at:112: \$COBCRUN_DIRECT ./prog"
56860at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_accept.at:112"
56861( $at_check_trace; $COBCRUN_DIRECT ./prog
56862) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56863at_status=$? at_failed=false
56864$at_check_filter
56865at_fn_diff_devnull "$at_stderr" || at_failed=:
56866at_fn_diff_devnull "$at_stdout" || at_failed=:
56867at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:112"
56868$at_failed && at_fn_log_failure
56869$at_traceon; }
56870
56871
56872  set +x
56873  $at_times_p && times >"$at_times_file"
56874) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56875read at_status <"$at_status_file"
56876#AT_STOP_555
56877#AT_START_556
56878at_fn_group_banner 556 'run_accept.at:117' \
56879  "ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (2)" "" 4
56880at_xfail=no
56881(
56882  $as_echo "556. $at_setup_line: testing $at_desc ..."
56883  $at_traceon
56884
56885
56886
56887cat >prog.cob <<'_ATEOF'
56888
56889       IDENTIFICATION DIVISION.
56890       PROGRAM-ID. prog.
56891       DATA DIVISION.
56892       WORKING-STORAGE SECTION.
56893       *> one byte longer to make sure there is no garbage in
56894       01  WS-YYYYMMDD   PIC X(9).
56895       01  WS-YYYYDDD    PIC X(8).
56896       01  WS-DAYOFWEEK  PIC X(2).
56897       01  WS-DATE-TODAY.
56898           05  WS-TODAYS-YY            PIC 9(02) VALUE 0.
56899           05  WS-TODAYS-MM            PIC 9(02) VALUE 0.
56900           05  WS-TODAYS-DD            PIC 9(02) VALUE 0.
56901
56902       01  WS-DATE.
56903           05  WS-DATE-MM              PIC 9(02) VALUE 0.
56904           05  FILLER                  PIC X(01) VALUE '/'.
56905           05  WS-DATE-DD              PIC 9(02) VALUE 0.
56906           05  FILLER                  PIC X(01) VALUE '/'.
56907           05  WS-DATE-YY              PIC 9(02) VALUE 0.
56908
56909       01  WS-TIME-NOW.
56910           05  WS-NOW-HH               PIC 9(02) VALUE 0.
56911           05  WS-NOW-MM               PIC 9(02) VALUE 0.
56912           05  WS-NOW-SS               PIC 9(02) VALUE 0.
56913           05  WS-NOW-HS               PIC 9(02) VALUE 0.
56914
56915       01  WS-TIME.
56916           05  WS-TIME-HH              PIC 9(02) VALUE 0.
56917           05  FILLER                  PIC X(01) VALUE ':'.
56918           05  WS-TIME-MM              PIC 9(02) VALUE 0.
56919           05  FILLER                  PIC X(01) VALUE ':'.
56920           05  WS-TIME-SS              PIC 9(02) VALUE 0.
56921
56922       PROCEDURE DIVISION.
56923           ACCEPT WS-DATE-TODAY FROM DATE
56924           ACCEPT WS-TIME-NOW   FROM TIME
56925           MOVE WS-TODAYS-YY TO WS-DATE-YY
56926           MOVE WS-TODAYS-MM TO WS-DATE-MM
56927           MOVE WS-TODAYS-DD TO WS-DATE-DD
56928           MOVE WS-NOW-HH    TO WS-TIME-HH
56929           MOVE WS-NOW-MM    TO WS-TIME-MM
56930           MOVE WS-NOW-SS    TO WS-TIME-SS
56931           DISPLAY 'PROCESS DATE/TIME : ' WS-DATE ' ' WS-TIME
56932                   WITH NO ADVANCING
56933           END-DISPLAY
56934           ACCEPT WS-YYYYMMDD   FROM DATE YYYYMMDD
56935           IF WS-YYYYMMDD not = "20150405"
56936              DISPLAY 'Wrong date DATE YYYYMMDD: ' WS-YYYYMMDD
56937                      ' expected: 20150405'
56938                      UPON SYSERR
56939              END-DISPLAY
56940           END-IF
56941           ACCEPT WS-YYYYDDD    FROM DAY  YYYYDDD
56942           IF WS-YYYYDDD  not = "2015095"
56943              DISPLAY 'Wrong date YYYYDDD:  '      WS-YYYYDDD
56944                      ' expected: 2015095'
56945                      UPON SYSERR
56946              END-DISPLAY
56947           END-IF
56948           ACCEPT WS-DAYOFWEEK    FROM DAY-OF-WEEK
56949           IF WS-DAYOFWEEK  not = "7"
56950              DISPLAY 'Wrong date DAYOFWEEK: '     WS-DAYOFWEEK
56951                      ' expected: 7'
56952                      UPON SYSERR
56953              END-DISPLAY
56954           END-IF
56955           STOP RUN.
56956_ATEOF
56957
56958
56959{ set +x
56960$as_echo "$at_srcdir/run_accept.at:190: \$COMPILE prog.cob"
56961at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:190"
56962( $at_check_trace; $COMPILE prog.cob
56963) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56964at_status=$? at_failed=false
56965$at_check_filter
56966at_fn_diff_devnull "$at_stderr" || at_failed=:
56967at_fn_diff_devnull "$at_stdout" || at_failed=:
56968at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:190"
56969$at_failed && at_fn_log_failure
56970$at_traceon; }
56971
56972
56973{ set +x
56974$as_echo "$at_srcdir/run_accept.at:192: COB_CURRENT_DATE='2015/04/05 18:45:22' \\
56975\$COBCRUN_DIRECT ./prog"
56976at_fn_check_prepare_notrace 'an embedded newline' "run_accept.at:192"
56977( $at_check_trace; COB_CURRENT_DATE='2015/04/05 18:45:22' \
56978$COBCRUN_DIRECT ./prog
56979) >>"$at_stdout" 2>>"$at_stderr" 5>&-
56980at_status=$? at_failed=false
56981$at_check_filter
56982at_fn_diff_devnull "$at_stderr" || at_failed=:
56983echo >>"$at_stdout"; $as_echo "PROCESS DATE/TIME : 04/05/15 18:45:22" | \
56984  $at_diff - "$at_stdout" || at_failed=:
56985at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:192"
56986$at_failed && at_fn_log_failure
56987$at_traceon; }
56988
56989
56990  set +x
56991  $at_times_p && times >"$at_times_file"
56992) 5>&1 2>&1 7>&- | eval $at_tee_pipe
56993read at_status <"$at_status_file"
56994#AT_STOP_556
56995#AT_START_557
56996at_fn_group_banner 557 'run_accept.at:200' \
56997  "ACCEPT DATE / DAY and intrinsic functions (1)" "  " 4
56998at_xfail=no
56999(
57000  $as_echo "557. $at_setup_line: testing $at_desc ..."
57001  $at_traceon
57002
57003
57004
57005cat >prog.cob <<'_ATEOF'
57006
57007       IDENTIFICATION   DIVISION.
57008       PROGRAM-ID.      prog.
57009       DATA             DIVISION.
57010       WORKING-STORAGE  SECTION.
57011       *> one byte longer to make sure there is no garbage in
57012       01  WS-YYYYMMDD   PIC 9(9).
57013       01  WS-YYYYDDD    PIC 9(8).
57014       PROCEDURE        DIVISION.
57015           ACCEPT WS-YYYYMMDD FROM DATE YYYYMMDD
57016           END-ACCEPT
57017           ACCEPT WS-YYYYDDD  FROM DAY  YYYYDDD
57018           END-ACCEPT
57019           IF    FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD)
57020           NOT = FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
57021              DISPLAY "DIFFERENCES FOUND!"
57022              END-DISPLAY
57023              DISPLAY "YYYYMMDD = " WS-YYYYMMDD ", "
57024                      "YYYYDDD = " WS-YYYYDDD
57025              END-DISPLAY
57026              DISPLAY "INTEGER-OF-DATE = "
57027                      FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD) ", "
57028                      "INTEGER-OF-DAY = "
57029                      FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
57030              END-DISPLAY
57031              MOVE 1 TO RETURN-CODE
57032           END-IF
57033           STOP RUN.
57034_ATEOF
57035
57036
57037{ set +x
57038$as_echo "$at_srcdir/run_accept.at:233: \$COMPILE prog.cob"
57039at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:233"
57040( $at_check_trace; $COMPILE prog.cob
57041) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57042at_status=$? at_failed=false
57043$at_check_filter
57044at_fn_diff_devnull "$at_stderr" || at_failed=:
57045at_fn_diff_devnull "$at_stdout" || at_failed=:
57046at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:233"
57047$at_failed && at_fn_log_failure
57048$at_traceon; }
57049
57050{ set +x
57051$as_echo "$at_srcdir/run_accept.at:234: \$COBCRUN_DIRECT ./prog"
57052at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_accept.at:234"
57053( $at_check_trace; $COBCRUN_DIRECT ./prog
57054) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57055at_status=$? at_failed=false
57056$at_check_filter
57057at_fn_diff_devnull "$at_stderr" || at_failed=:
57058at_fn_diff_devnull "$at_stdout" || at_failed=:
57059at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:234"
57060$at_failed && at_fn_log_failure
57061$at_traceon; }
57062
57063
57064  set +x
57065  $at_times_p && times >"$at_times_file"
57066) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57067read at_status <"$at_status_file"
57068#AT_STOP_557
57069#AT_START_558
57070at_fn_group_banner 558 'run_accept.at:237' \
57071  "ACCEPT DATE / DAY and intrinsic functions (2)" "  " 4
57072at_xfail=no
57073(
57074  $as_echo "558. $at_setup_line: testing $at_desc ..."
57075  $at_traceon
57076
57077
57078
57079# FIXME: verify via COB_CURRENT_DATE that the values are resolved correctly
57080
57081cat >prog.cob <<'_ATEOF'
57082
57083       IDENTIFICATION   DIVISION.
57084       PROGRAM-ID.      prog.
57085       DATA             DIVISION.
57086       WORKING-STORAGE  SECTION.
57087       *> one byte longer to make sure there is no garbage in
57088       01  WS-YYYYMMDD   PIC 9(9).
57089       01  WS-YYYYDDD    PIC 9(8).
57090       PROCEDURE        DIVISION.
57091           ACCEPT WS-YYYYMMDD FROM DATE YYYYMMDD
57092           END-ACCEPT
57093           ACCEPT WS-YYYYDDD  FROM DAY  YYYYDDD
57094           END-ACCEPT
57095           IF    FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD)
57096           NOT = FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
57097              DISPLAY "DIFFERENCES FOUND!"
57098              END-DISPLAY
57099              DISPLAY "YYYYMMDD = " WS-YYYYMMDD ", "
57100                      "YYYYDDD = " WS-YYYYDDD
57101              END-DISPLAY
57102              DISPLAY "INTEGER-OF-DATE = "
57103                      FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD) ", "
57104                      "INTEGER-OF-DAY = "
57105                      FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
57106              END-DISPLAY
57107              MOVE 1 TO RETURN-CODE
57108           END-IF
57109           STOP RUN.
57110_ATEOF
57111
57112
57113{ set +x
57114$as_echo "$at_srcdir/run_accept.at:272: \$COMPILE prog.cob"
57115at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:272"
57116( $at_check_trace; $COMPILE prog.cob
57117) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57118at_status=$? at_failed=false
57119$at_check_filter
57120at_fn_diff_devnull "$at_stderr" || at_failed=:
57121at_fn_diff_devnull "$at_stdout" || at_failed=:
57122at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:272"
57123$at_failed && at_fn_log_failure
57124$at_traceon; }
57125
57126{ set +x
57127$as_echo "$at_srcdir/run_accept.at:273: COB_CURRENT_DATE='2020/06/12 18:45:22' \\
57128\$COBCRUN_DIRECT ./prog"
57129at_fn_check_prepare_notrace 'an embedded newline' "run_accept.at:273"
57130( $at_check_trace; COB_CURRENT_DATE='2020/06/12 18:45:22' \
57131$COBCRUN_DIRECT ./prog
57132) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57133at_status=$? at_failed=false
57134$at_check_filter
57135at_fn_diff_devnull "$at_stderr" || at_failed=:
57136at_fn_diff_devnull "$at_stdout" || at_failed=:
57137at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:273"
57138$at_failed && at_fn_log_failure
57139$at_traceon; }
57140
57141
57142  set +x
57143  $at_times_p && times >"$at_times_file"
57144) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57145read at_status <"$at_status_file"
57146#AT_STOP_558
57147#AT_START_559
57148at_fn_group_banner 559 'run_accept.at:284' \
57149  "ACCEPT OMITTED (SCREEN)" "                        " 4
57150at_xfail=no
57151(
57152  $as_echo "559. $at_setup_line: testing $at_desc ..."
57153  $at_traceon
57154
57155
57156
57157{ set +x
57158$as_echo "$at_srcdir/run_accept.at:287: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
57159at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_accept.at:287"
57160( $at_check_trace; test "$COB_HAS_CURSES" = "yes" || exit 77
57161) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57162at_status=$? at_failed=false
57163$at_check_filter
57164at_fn_diff_devnull "$at_stderr" || at_failed=:
57165at_fn_diff_devnull "$at_stdout" || at_failed=:
57166at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:287"
57167$at_failed && at_fn_log_failure
57168$at_traceon; }
57169
57170
57171cat >prog.cob <<'_ATEOF'
57172
57173       IDENTIFICATION DIVISION.
57174       PROGRAM-ID.    prog.
57175
57176       DATA           DIVISION.
57177       SCREEN         SECTION.
57178       01  scr.
57179           03  VALUE "Hello!" LINE 3 COL 3.
57180
57181       PROCEDURE      DIVISION.
57182           ACCEPT OMITTED
57183           END-ACCEPT.
57184_ATEOF
57185
57186
57187cat >input.txt <<'_ATEOF'
57188
57189_ATEOF
57190
57191
57192{ set +x
57193$as_echo "$at_srcdir/run_accept.at:306: \$COMPILE prog.cob"
57194at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:306"
57195( $at_check_trace; $COMPILE prog.cob
57196) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57197at_status=$? at_failed=false
57198$at_check_filter
57199at_fn_diff_devnull "$at_stderr" || at_failed=:
57200at_fn_diff_devnull "$at_stdout" || at_failed=:
57201at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:306"
57202$at_failed && at_fn_log_failure
57203$at_traceon; }
57204
57205{ set +x
57206$as_echo "$at_srcdir/run_accept.at:307: \$COBCRUN_DIRECT ./prog < input.txt"
57207at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog < input.txt" "run_accept.at:307"
57208( $at_check_trace; $COBCRUN_DIRECT ./prog < input.txt
57209) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57210at_status=$? at_failed=false
57211$at_check_filter
57212at_fn_diff_devnull "$at_stderr" || at_failed=:
57213echo stdout:; cat "$at_stdout"
57214at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:307"
57215$at_failed && at_fn_log_failure
57216$at_traceon; }
57217
57218
57219  set +x
57220  $at_times_p && times >"$at_times_file"
57221) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57222read at_status <"$at_status_file"
57223#AT_STOP_559
57224#AT_START_560
57225at_fn_group_banner 560 'run_initialize.at:27' \
57226  "INITIALIZE group entry with OCCURS" "             " 4
57227at_xfail=no
57228(
57229  $as_echo "560. $at_setup_line: testing $at_desc ..."
57230  $at_traceon
57231
57232
57233
57234cat >prog.cob <<'_ATEOF'
57235
57236       IDENTIFICATION   DIVISION.
57237       PROGRAM-ID.      prog.
57238       DATA             DIVISION.
57239       WORKING-STORAGE  SECTION.
57240       01 G1.
57241         02 G2          OCCURS 2.
57242           03 X1        PIC X.
57243           03 X2        PIC 9.
57244       PROCEDURE        DIVISION.
57245           MOVE SPACE TO G1.
57246           INITIALIZE G2 (2).
57247           IF G1 NOT = "   0"
57248              DISPLAY G1 NO ADVANCING
57249              END-DISPLAY
57250           END-IF.
57251           STOP RUN.
57252_ATEOF
57253
57254
57255{ set +x
57256$as_echo "$at_srcdir/run_initialize.at:49: \$COMPILE prog.cob"
57257at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:49"
57258( $at_check_trace; $COMPILE prog.cob
57259) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57260at_status=$? at_failed=false
57261$at_check_filter
57262at_fn_diff_devnull "$at_stderr" || at_failed=:
57263at_fn_diff_devnull "$at_stdout" || at_failed=:
57264at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:49"
57265$at_failed && at_fn_log_failure
57266$at_traceon; }
57267
57268{ set +x
57269$as_echo "$at_srcdir/run_initialize.at:50: \$COBCRUN_DIRECT ./prog"
57270at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:50"
57271( $at_check_trace; $COBCRUN_DIRECT ./prog
57272) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57273at_status=$? at_failed=false
57274$at_check_filter
57275at_fn_diff_devnull "$at_stderr" || at_failed=:
57276at_fn_diff_devnull "$at_stdout" || at_failed=:
57277at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:50"
57278$at_failed && at_fn_log_failure
57279$at_traceon; }
57280
57281
57282  set +x
57283  $at_times_p && times >"$at_times_file"
57284) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57285read at_status <"$at_status_file"
57286#AT_STOP_560
57287#AT_START_561
57288at_fn_group_banner 561 'run_initialize.at:55' \
57289  "INITIALIZE OCCURS with numeric edited" "          " 4
57290at_xfail=no
57291(
57292  $as_echo "561. $at_setup_line: testing $at_desc ..."
57293  $at_traceon
57294
57295
57296
57297cat >prog.cob <<'_ATEOF'
57298
57299       IDENTIFICATION   DIVISION.
57300       PROGRAM-ID.      prog.
57301       DATA             DIVISION.
57302       WORKING-STORAGE  SECTION.
57303       01 G1.
57304         02 G2          OCCURS 5.
57305           03 X         PIC Z9.
57306       PROCEDURE        DIVISION.
57307           INITIALIZE G1
57308           MOVE 5  TO X(1)
57309           MOVE 99 TO X(3)
57310           IF G1 NOT = " 5 099 0 0"
57311              DISPLAY 'MOVE "' G1 '"'
57312              END-DISPLAY
57313           END-IF
57314           INITIALIZE G1
57315           IF G1 NOT = " 0 0 0 0 0"
57316              DISPLAY 'INIT "' G1 '"'
57317              END-DISPLAY
57318           END-IF
57319           STOP RUN.
57320_ATEOF
57321
57322
57323{ set +x
57324$as_echo "$at_srcdir/run_initialize.at:82: \$COMPILE prog.cob"
57325at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:82"
57326( $at_check_trace; $COMPILE prog.cob
57327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57328at_status=$? at_failed=false
57329$at_check_filter
57330at_fn_diff_devnull "$at_stderr" || at_failed=:
57331at_fn_diff_devnull "$at_stdout" || at_failed=:
57332at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:82"
57333$at_failed && at_fn_log_failure
57334$at_traceon; }
57335
57336{ set +x
57337$as_echo "$at_srcdir/run_initialize.at:83: \$COBCRUN_DIRECT ./prog"
57338at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:83"
57339( $at_check_trace; $COBCRUN_DIRECT ./prog
57340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57341at_status=$? at_failed=false
57342$at_check_filter
57343at_fn_diff_devnull "$at_stderr" || at_failed=:
57344at_fn_diff_devnull "$at_stdout" || at_failed=:
57345at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:83"
57346$at_failed && at_fn_log_failure
57347$at_traceon; }
57348
57349
57350  set +x
57351  $at_times_p && times >"$at_times_file"
57352) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57353read at_status <"$at_status_file"
57354#AT_STOP_561
57355#AT_START_562
57356at_fn_group_banner 562 'run_initialize.at:88' \
57357  "INITIALIZE OCCURS with SIGN LEADING / TRAILING" " " 4
57358at_xfail=no
57359(
57360  $as_echo "562. $at_setup_line: testing $at_desc ..."
57361  $at_traceon
57362
57363
57364
57365cat >prog.cob <<'_ATEOF'
57366
57367       IDENTIFICATION   DIVISION.
57368       PROGRAM-ID.      prog.
57369       DATA             DIVISION.
57370       WORKING-STORAGE  SECTION.
57371       01 G1.
57372         02 FILLER      OCCURS 2.
57373           03 X         PIC S9 SIGN LEADING  SEPARATE.
57374         02 FILLER      OCCURS 2.
57375           03 Y         PIC S9 SIGN TRAILING SEPARATE.
57376      *> definition taken from NC1184.2
57377       01  MINUS-NAMES SIGN IS TRAILING SEPARATE CHARACTER.
57378         02 MINUS-NAMES-1.
57379           03  MINUS-NAME1 PIC  S9(18) VALUE -999999999999999999.
57380           03  EVEN-NAME1  PIC  S9(18) VALUE +1.
57381           03  PLUS-NAME1  PIC  S9(18) VALUE +999999999999999999.
57382         02 MINUS-NAMES-2.
57383           03  MINUS-NAME3 PIC SV9(18) VALUE -.999999999999999999.
57384           03  EVEN-NAME2  PIC SV9(18) VALUE +.1.
57385           03  PLUS-NAME3  PIC SV9(18) VALUE +.999999999999999999.
57386       PROCEDURE        DIVISION.
57387           INITIALIZE G1
57388           MOVE 5    TO X(1), PLUS-NAME1
57389           MOVE -9   TO Y(2), MINUS-NAME1
57390           IF G1 NOT = "+5+00+9-"
57391              DISPLAY 'MOVE G "' G1 '"'
57392              END-DISPLAY
57393           END-IF
57394           MOVE .123 TO PLUS-NAME3
57395           IF MINUS-NAMES-1 NOT =
57396           "000000000000000009-000000000000000001+000000000000000005+"
57397           OR MINUS-NAMES-2 NOT =
57398           "999999999999999999-100000000000000000+123000000000000000+"
57399              DISPLAY 'MOVE MN1 "' MINUS-NAMES-1 '"'
57400              END-DISPLAY
57401              DISPLAY 'MOVE MN2 "' MINUS-NAMES-2 '"'
57402              END-DISPLAY
57403           END-IF
57404           INITIALIZE G1, MINUS-NAMES
57405           IF G1 NOT = "+0+00+0+"
57406              DISPLAY 'INIT G1 "' G1 '"'
57407              END-DISPLAY
57408           END-IF
57409           IF MINUS-NAMES-1 NOT =
57410           "000000000000000000+000000000000000000+000000000000000000+"
57411           OR MINUS-NAMES-2 NOT =
57412           "000000000000000000+000000000000000000+000000000000000000+"
57413              DISPLAY 'MOVE MN1 "' MINUS-NAMES-1 '"'
57414              END-DISPLAY
57415              DISPLAY 'MOVE MN2 "' MINUS-NAMES-2 '"'
57416              END-DISPLAY
57417           END-IF
57418           MOVE .123 TO PLUS-NAME3
57419           MOVE -.456 TO MINUS-NAME3
57420           DISPLAY PLUS-NAME3  END-DISPLAY
57421           DISPLAY MINUS-NAME3 END-DISPLAY
57422           STOP RUN.
57423_ATEOF
57424
57425
57426{ set +x
57427$as_echo "$at_srcdir/run_initialize.at:150: \$COMPILE prog.cob"
57428at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:150"
57429( $at_check_trace; $COMPILE prog.cob
57430) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57431at_status=$? at_failed=false
57432$at_check_filter
57433at_fn_diff_devnull "$at_stderr" || at_failed=:
57434at_fn_diff_devnull "$at_stdout" || at_failed=:
57435at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:150"
57436$at_failed && at_fn_log_failure
57437$at_traceon; }
57438
57439{ set +x
57440$as_echo "$at_srcdir/run_initialize.at:151: ./prog"
57441at_fn_check_prepare_trace "run_initialize.at:151"
57442( $at_check_trace; ./prog
57443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57444at_status=$? at_failed=false
57445$at_check_filter
57446at_fn_diff_devnull "$at_stderr" || at_failed=:
57447echo >>"$at_stdout"; $as_echo ".123000000000000000+
57448.456000000000000000-
57449" | \
57450  $at_diff - "$at_stdout" || at_failed=:
57451at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:151"
57452$at_failed && at_fn_log_failure
57453$at_traceon; }
57454
57455
57456  set +x
57457  $at_times_p && times >"$at_times_file"
57458) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57459read at_status <"$at_status_file"
57460#AT_STOP_562
57461#AT_START_563
57462at_fn_group_banner 563 'run_initialize.at:159' \
57463  "INITIALIZE complex group (1)" "                   " 4
57464at_xfail=no
57465(
57466  $as_echo "563. $at_setup_line: testing $at_desc ..."
57467  $at_traceon
57468
57469
57470
57471cat >prog.cob <<'_ATEOF'
57472
57473       IDENTIFICATION   DIVISION.
57474       PROGRAM-ID.      prog.
57475       DATA             DIVISION.
57476       WORKING-STORAGE  SECTION.
57477       01 G1.
57478         02 X           PIC X.
57479         02 G2          OCCURS 2.
57480           03 Y         PIC 9.
57481         02 Z           PIC 9.
57482       PROCEDURE        DIVISION.
57483           INITIALIZE G1.
57484           IF G1 NOT = " 000"
57485              DISPLAY G1 NO ADVANCING
57486              END-DISPLAY
57487           END-IF.
57488           STOP RUN.
57489_ATEOF
57490
57491
57492{ set +x
57493$as_echo "$at_srcdir/run_initialize.at:181: \$COMPILE prog.cob"
57494at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:181"
57495( $at_check_trace; $COMPILE prog.cob
57496) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57497at_status=$? at_failed=false
57498$at_check_filter
57499at_fn_diff_devnull "$at_stderr" || at_failed=:
57500at_fn_diff_devnull "$at_stdout" || at_failed=:
57501at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:181"
57502$at_failed && at_fn_log_failure
57503$at_traceon; }
57504
57505{ set +x
57506$as_echo "$at_srcdir/run_initialize.at:182: \$COBCRUN_DIRECT ./prog"
57507at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:182"
57508( $at_check_trace; $COBCRUN_DIRECT ./prog
57509) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57510at_status=$? at_failed=false
57511$at_check_filter
57512at_fn_diff_devnull "$at_stderr" || at_failed=:
57513at_fn_diff_devnull "$at_stdout" || at_failed=:
57514at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:182"
57515$at_failed && at_fn_log_failure
57516$at_traceon; }
57517
57518
57519  set +x
57520  $at_times_p && times >"$at_times_file"
57521) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57522read at_status <"$at_status_file"
57523#AT_STOP_563
57524#AT_START_564
57525at_fn_group_banner 564 'run_initialize.at:187' \
57526  "INITIALIZE complex group (2)" "                   " 4
57527at_xfail=no
57528(
57529  $as_echo "564. $at_setup_line: testing $at_desc ..."
57530  $at_traceon
57531
57532
57533
57534cat >prog.cob <<'_ATEOF'
57535
57536       IDENTIFICATION   DIVISION.
57537       PROGRAM-ID.      prog.
57538       DATA             DIVISION.
57539       WORKING-STORAGE  SECTION.
57540       01 G1.
57541         02 G2          OCCURS 2.
57542           03 X         PIC 9.
57543           03 Y         PIC X OCCURS 2.
57544           03 Z         PIC X.
57545       PROCEDURE        DIVISION.
57546           INITIALIZE G1.
57547           IF G1 NOT = "0   0   "
57548              DISPLAY G1 NO ADVANCING
57549              END-DISPLAY
57550           END-IF.
57551           STOP RUN.
57552_ATEOF
57553
57554
57555{ set +x
57556$as_echo "$at_srcdir/run_initialize.at:209: \$COMPILE prog.cob"
57557at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:209"
57558( $at_check_trace; $COMPILE prog.cob
57559) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57560at_status=$? at_failed=false
57561$at_check_filter
57562at_fn_diff_devnull "$at_stderr" || at_failed=:
57563at_fn_diff_devnull "$at_stdout" || at_failed=:
57564at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:209"
57565$at_failed && at_fn_log_failure
57566$at_traceon; }
57567
57568{ set +x
57569$as_echo "$at_srcdir/run_initialize.at:210: \$COBCRUN_DIRECT ./prog"
57570at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:210"
57571( $at_check_trace; $COBCRUN_DIRECT ./prog
57572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57573at_status=$? at_failed=false
57574$at_check_filter
57575at_fn_diff_devnull "$at_stderr" || at_failed=:
57576at_fn_diff_devnull "$at_stdout" || at_failed=:
57577at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:210"
57578$at_failed && at_fn_log_failure
57579$at_traceon; }
57580
57581
57582  set +x
57583  $at_times_p && times >"$at_times_file"
57584) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57585read at_status <"$at_status_file"
57586#AT_STOP_564
57587#AT_START_565
57588at_fn_group_banner 565 'run_initialize.at:215' \
57589  "INITIALIZE group item" "                          " 4
57590at_xfail=no
57591(
57592  $as_echo "565. $at_setup_line: testing $at_desc ..."
57593  $at_traceon
57594
57595
57596
57597# see bug #694
57598
57599cat >prog.cob <<'_ATEOF'
57600
57601       IDENTIFICATION   DIVISION.
57602       PROGRAM-ID.      prog.
57603       DATA             DIVISION.
57604       WORKING-STORAGE  SECTION.
57605       01 G.
57606         02 G2          OCCURS 3.
57607           03 X         PIC 9.
57608           03 Y.
57609             04 Y-REC   OCCURS 5.
57610              05  Y1    PIC 9 VALUE 9.
57611              05  Y2    PIC X VALUE 'Y'.
57612           03 Z         PIC X VALUE 'Z'.
57613       PROCEDURE        DIVISION.
57614           MOVE ALL "A" TO G2(1)
57615           MOVE ALL "B" TO G2(2)
57616           MOVE ALL "C" TO G2(3)
57617           INITIALIZE Y (2).
57618           IF G NOT = "AAAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57619              DISPLAY "Test 1 failed: " G ".".
57620           MOVE ALL "A" TO G2(1)
57621           MOVE ALL "B" TO G2(2)
57622           MOVE ALL "C" TO G2(3)
57623           MOVE 2       TO X(1)
57624           INITIALIZE Y (X(1)).
57625           IF G NOT = "2AAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57626              DISPLAY "Test 2 failed: " G ".".
57627           STOP RUN.
57628_ATEOF
57629
57630
57631cat >prog2.cob <<'_ATEOF'
57632
57633       IDENTIFICATION   DIVISION.
57634       PROGRAM-ID.      prog2.
57635       DATA             DIVISION.
57636       WORKING-STORAGE  SECTION.
57637       77 NUM           PIC 9 COMP-5 VALUE 3.
57638       01 G.
57639         02 G2          OCCURS 0 TO 3 DEPENDING ON NUM.
57640           03 X         PIC 9.
57641           03 Y.
57642             04 Y-REC   OCCURS 5.
57643              05  Y1    PIC 9 VALUE 9.
57644              05  Y2    PIC X VALUE 'Y'.
57645           03 Z         PIC X VALUE 'Z'.
57646       PROCEDURE        DIVISION.
57647           MOVE ALL "A" TO G2(1)
57648           MOVE ALL "B" TO G2(2)
57649           MOVE ALL "C" TO G2(3)
57650           INITIALIZE Y (2).
57651           IF G NOT = "AAAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57652              DISPLAY "Test 1 failed: " G ".".
57653           MOVE ALL "A" TO G2(1)
57654           MOVE ALL "B" TO G2(2)
57655           MOVE ALL "C" TO G2(3)
57656           MOVE 2       TO X(1)
57657           INITIALIZE Y (X(1)).
57658           IF G NOT = "2AAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57659              DISPLAY "Test 2 failed: " G ".".
57660           STOP RUN.
57661_ATEOF
57662
57663
57664# CHECK later...
57665#AT_DATA([prog3.cob], [
57666#       IDENTIFICATION   DIVISION.
57667#       PROGRAM-ID.      prog3.
57668#       DATA             DIVISION.
57669#       WORKING-STORAGE  SECTION.
57670#       77 NUM           PIC 9 COMP-5 VALUE 3.
57671#       77 NUM2          PIC 9 COMP-5 VALUE 5.
57672#       01 G.
57673#         02 G2          OCCURS 0 TO 3 DEPENDING ON NUM.
57674#           03 X         PIC 9.
57675#           03 Y         PIC X VALUE 'Z'.
57676#           03 Z         OCCURS 1 TO 6 DEPENDING ON NUM2.
57677#              05  Z1    PIC 9 VALUE 9.
57678#              05  Z2    PIC X.
57679#       PROCEDURE        DIVISION.
57680#           MOVE ALL "A" TO G2(1)
57681#           MOVE ALL "B" TO G2(2)
57682#           MOVE ALL "C" TO G2(3)
57683#           INITIALIZE Y (2).
57684#           IF G NOT = "AAAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57685#              DISPLAY "Test 1 failed: " G ".".
57686#           MOVE ALL "A" TO G2(1)
57687#           MOVE ALL "B" TO G2(2)
57688#           MOVE ALL "C" TO G2(3)
57689#           MOVE 2       TO X(1)
57690#           INITIALIZE Y (X(1)).
57691#           IF G NOT = "2AAAAAAAAAAAB0 0 0 0 0 BCCCCCCCCCCCC"
57692#              DISPLAY "Test 2 failed: " G ".".
57693#           STOP RUN.
57694#])
57695
57696{ set +x
57697$as_echo "$at_srcdir/run_initialize.at:313: \$COMPILE prog.cob"
57698at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:313"
57699( $at_check_trace; $COMPILE prog.cob
57700) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57701at_status=$? at_failed=false
57702$at_check_filter
57703at_fn_diff_devnull "$at_stderr" || at_failed=:
57704at_fn_diff_devnull "$at_stdout" || at_failed=:
57705at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:313"
57706$at_failed && at_fn_log_failure
57707$at_traceon; }
57708
57709{ set +x
57710$as_echo "$at_srcdir/run_initialize.at:314: \$COBCRUN_DIRECT ./prog"
57711at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:314"
57712( $at_check_trace; $COBCRUN_DIRECT ./prog
57713) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57714at_status=$? at_failed=false
57715$at_check_filter
57716at_fn_diff_devnull "$at_stderr" || at_failed=:
57717at_fn_diff_devnull "$at_stdout" || at_failed=:
57718at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:314"
57719$at_failed && at_fn_log_failure
57720$at_traceon; }
57721
57722{ set +x
57723$as_echo "$at_srcdir/run_initialize.at:315: \$COMPILE prog2.cob"
57724at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_initialize.at:315"
57725( $at_check_trace; $COMPILE prog2.cob
57726) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57727at_status=$? at_failed=false
57728$at_check_filter
57729at_fn_diff_devnull "$at_stderr" || at_failed=:
57730at_fn_diff_devnull "$at_stdout" || at_failed=:
57731at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:315"
57732$at_failed && at_fn_log_failure
57733$at_traceon; }
57734
57735{ set +x
57736$as_echo "$at_srcdir/run_initialize.at:316: \$COBCRUN_DIRECT ./prog2"
57737at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_initialize.at:316"
57738( $at_check_trace; $COBCRUN_DIRECT ./prog2
57739) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57740at_status=$? at_failed=false
57741$at_check_filter
57742at_fn_diff_devnull "$at_stderr" || at_failed=:
57743at_fn_diff_devnull "$at_stdout" || at_failed=:
57744at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:316"
57745$at_failed && at_fn_log_failure
57746$at_traceon; }
57747
57748# CHECKME: that should likely be implied with -std=ibm
57749#AT_CHECK([$COMPILE -std=ibm prog3.cob], [0], [], [])
57750#AT_CHECK([$COMPILE -fodoslide prog3.cob], [0], [], [])
57751#AT_CHECK([$COBCRUN_DIRECT ./prog3], [0], [], [])
57752
57753  set +x
57754  $at_times_p && times >"$at_times_file"
57755) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57756read at_status <"$at_status_file"
57757#AT_STOP_565
57758#AT_START_566
57759at_fn_group_banner 566 'run_initialize.at:325' \
57760  "INITIALIZE with REDEFINES" "                      " 4
57761at_xfail=no
57762(
57763  $as_echo "566. $at_setup_line: testing $at_desc ..."
57764  $at_traceon
57765
57766
57767
57768cat >prog.cob <<'_ATEOF'
57769
57770       IDENTIFICATION   DIVISION.
57771       PROGRAM-ID.      prog.
57772       DATA             DIVISION.
57773       WORKING-STORAGE  SECTION.
57774       01 G1.
57775         02 X           PIC X.
57776         02 Y           REDEFINES X PIC 9.
57777         02 Z           PIC 9.
57778       PROCEDURE        DIVISION.
57779           INITIALIZE G1.
57780           IF G1 NOT = " 0"
57781              DISPLAY G1 NO ADVANCING
57782              END-DISPLAY
57783           END-IF.
57784           STOP RUN.
57785_ATEOF
57786
57787
57788{ set +x
57789$as_echo "$at_srcdir/run_initialize.at:346: \$COMPILE prog.cob"
57790at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:346"
57791( $at_check_trace; $COMPILE prog.cob
57792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57793at_status=$? at_failed=false
57794$at_check_filter
57795at_fn_diff_devnull "$at_stderr" || at_failed=:
57796at_fn_diff_devnull "$at_stdout" || at_failed=:
57797at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:346"
57798$at_failed && at_fn_log_failure
57799$at_traceon; }
57800
57801{ set +x
57802$as_echo "$at_srcdir/run_initialize.at:347: \$COBCRUN_DIRECT ./prog"
57803at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:347"
57804( $at_check_trace; $COBCRUN_DIRECT ./prog
57805) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57806at_status=$? at_failed=false
57807$at_check_filter
57808at_fn_diff_devnull "$at_stderr" || at_failed=:
57809at_fn_diff_devnull "$at_stdout" || at_failed=:
57810at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:347"
57811$at_failed && at_fn_log_failure
57812$at_traceon; }
57813
57814
57815  set +x
57816  $at_times_p && times >"$at_times_file"
57817) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57818read at_status <"$at_status_file"
57819#AT_STOP_566
57820#AT_START_567
57821at_fn_group_banner 567 'run_initialize.at:352' \
57822  "INITIALIZE with FILLER" "                         " 4
57823at_xfail=no
57824(
57825  $as_echo "567. $at_setup_line: testing $at_desc ..."
57826  $at_traceon
57827
57828
57829
57830cat >prog.cob <<'_ATEOF'
57831
57832       IDENTIFICATION   DIVISION.
57833       PROGRAM-ID.      prog.
57834       DATA             DIVISION.
57835       WORKING-STORAGE  SECTION.
57836       01 G1.
57837         02 X           PIC 99.
57838         02 FILLER      PIC X.
57839         02 Z           PIC 99.
57840       01 MY-FILLER.
57841         02 FILLER      PIC 9(6) VALUE 12345.
57842       PROCEDURE        DIVISION.
57843           MOVE ALL   'A' TO G1.
57844           INITIALIZE G1.
57845           IF G1 NOT = "00A00"
57846              DISPLAY "G1 (INIT): " G1
57847              END-DISPLAY
57848           END-IF.
57849           MOVE ALL   'A' TO G1.
57850           INITIALIZE G1  WITH FILLER.
57851           IF G1 NOT = "00 00"
57852              DISPLAY "G1 (INIT FILLER):"   G1
57853              END-DISPLAY
57854           END-IF.
57855
57856           INITIALIZE MY-FILLER
57857           IF MY-FILLER NOT = "012345"
57858              DISPLAY "MY-FILLER (INIT): " MY-FILLER
57859              END-DISPLAY
57860           END-IF
57861
57862           INITIALIZE MY-FILLER WITH FILLER
57863           IF MY-FILLER NOT = "000000"
57864              DISPLAY "MY-FILLER (INIT FILLER): " MY-FILLER
57865              END-DISPLAY
57866           END-IF
57867
57868           INITIALIZE MY-FILLER ALL TO VALUE
57869           IF MY-FILLER NOT = "000000"
57870              DISPLAY "MY-FILLER (INIT TO VAL): " MY-FILLER
57871              END-DISPLAY
57872           END-IF
57873
57874           INITIALIZE MY-FILLER WITH FILLER ALL TO VALUE
57875           IF MY-FILLER NOT = "012345"
57876              DISPLAY "MY-FILLER (INIT FILLER TO VAL): " MY-FILLER
57877              END-DISPLAY
57878           END-IF
57879
57880           INITIALIZE MY-FILLER (2:3)
57881           IF MY-FILLER NOT = "0   45"
57882              DISPLAY "MY-FILLER (REF-MOD): " MY-FILLER
57883              END-DISPLAY
57884           END-IF
57885
57886           STOP RUN.
57887_ATEOF
57888
57889
57890{ set +x
57891$as_echo "$at_srcdir/run_initialize.at:413: \$COMPILE prog.cob"
57892at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:413"
57893( $at_check_trace; $COMPILE prog.cob
57894) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57895at_status=$? at_failed=false
57896$at_check_filter
57897at_fn_diff_devnull "$at_stderr" || at_failed=:
57898at_fn_diff_devnull "$at_stdout" || at_failed=:
57899at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:413"
57900$at_failed && at_fn_log_failure
57901$at_traceon; }
57902
57903{ set +x
57904$as_echo "$at_srcdir/run_initialize.at:414: \$COBCRUN_DIRECT ./prog"
57905at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:414"
57906( $at_check_trace; $COBCRUN_DIRECT ./prog
57907) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57908at_status=$? at_failed=false
57909$at_check_filter
57910at_fn_diff_devnull "$at_stderr" || at_failed=:
57911at_fn_diff_devnull "$at_stdout" || at_failed=:
57912at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:414"
57913$at_failed && at_fn_log_failure
57914$at_traceon; }
57915
57916
57917  set +x
57918  $at_times_p && times >"$at_times_file"
57919) 5>&1 2>&1 7>&- | eval $at_tee_pipe
57920read at_status <"$at_status_file"
57921#AT_STOP_567
57922#AT_START_568
57923at_fn_group_banner 568 'run_initialize.at:419' \
57924  "INITIALIZE of EXTERNAL data items" "              " 4
57925at_xfail=no
57926(
57927  $as_echo "568. $at_setup_line: testing $at_desc ..."
57928  $at_traceon
57929
57930
57931
57932cat >prog.cob <<'_ATEOF'
57933
57934       IDENTIFICATION   DIVISION.
57935       PROGRAM-ID.      prog.
57936       DATA             DIVISION.
57937       WORKING-STORAGE  SECTION.
57938       01 EXT-VAR-01    PIC X(5) EXTERNAL.
57939       01 EXT-VAR-GRP   EXTERNAL.
57940         02  EXT-FIELD1 PIC 999.
57941         02  EXT-FIELD2 PIC x(4).
57942         02  EXT-FIELD3 PIC 9(6).
57943         02  EXT-FIELD4 PIC s9(5)v99.
57944       PROCEDURE        DIVISION.
57945           MOVE "MOVE"  TO EXT-VAR-01.
57946           MOVE 1       TO EXT-FIELD1.
57947           MOVE "X"     TO EXT-FIELD2.
57948           MOVE 123     TO EXT-FIELD3.
57949           MOVE -2.1    TO EXT-FIELD4.
57950           INITIALIZE EXT-VAR-01.
57951           INITIALIZE EXT-VAR-GRP.
57952           IF EXT-VAR-01 NOT = SPACES
57953              DISPLAY "EXT-VAR-01 " EXT-VAR-01
57954              END-DISPLAY
57955           END-IF.
57956           IF EXT-FIELD1 NOT = ZERO
57957              DISPLAY "EXT-FIELD1 " EXT-FIELD1
57958              END-DISPLAY
57959           END-IF.
57960           IF EXT-FIELD2 NOT = SPACES
57961              DISPLAY "EXT-FIELD2 " EXT-FIELD2
57962              END-DISPLAY
57963           END-IF.
57964           IF EXT-FIELD3 NOT = ZERO
57965              DISPLAY "EXT-FIELD3 " EXT-FIELD3
57966              END-DISPLAY
57967           END-IF.
57968           IF EXT-FIELD4 NOT = ZERO
57969              DISPLAY "EXT-FIELD4 " EXT-FIELD4
57970              END-DISPLAY
57971           END-IF.
57972           STOP RUN.
57973_ATEOF
57974
57975
57976{ set +x
57977$as_echo "$at_srcdir/run_initialize.at:464: \$COMPILE prog.cob"
57978at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:464"
57979( $at_check_trace; $COMPILE prog.cob
57980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57981at_status=$? at_failed=false
57982$at_check_filter
57983at_fn_diff_devnull "$at_stderr" || at_failed=:
57984at_fn_diff_devnull "$at_stdout" || at_failed=:
57985at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:464"
57986$at_failed && at_fn_log_failure
57987$at_traceon; }
57988
57989{ set +x
57990$as_echo "$at_srcdir/run_initialize.at:465: \$COBCRUN_DIRECT ./prog"
57991at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:465"
57992( $at_check_trace; $COBCRUN_DIRECT ./prog
57993) >>"$at_stdout" 2>>"$at_stderr" 5>&-
57994at_status=$? at_failed=false
57995$at_check_filter
57996at_fn_diff_devnull "$at_stderr" || at_failed=:
57997at_fn_diff_devnull "$at_stdout" || at_failed=:
57998at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:465"
57999$at_failed && at_fn_log_failure
58000$at_traceon; }
58001
58002
58003  set +x
58004  $at_times_p && times >"$at_times_file"
58005) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58006read at_status <"$at_status_file"
58007#AT_STOP_568
58008#AT_START_569
58009at_fn_group_banner 569 'run_initialize.at:470' \
58010  "INITIALIZE with reference modification" "         " 4
58011at_xfail=no
58012(
58013  $as_echo "569. $at_setup_line: testing $at_desc ..."
58014  $at_traceon
58015
58016
58017
58018cat >prog.cob <<'_ATEOF'
58019
58020       IDENTIFICATION   DIVISION.
58021       PROGRAM-ID.      prog.
58022       DATA             DIVISION.
58023       WORKING-STORAGE  SECTION.
58024       01  MY-FLD       PIC X(6) VALUE "ABCDEF".
58025       01  MY-OTHER-FLD PIC 9(4) VALUE ZERO.
58026       PROCEDURE        DIVISION.
58027       ASTART SECTION.
58028       A01.
58029           INITIALIZE MY-FLD (1:2).
58030           IF MY-FLD NOT = "  CDEF"
58031              DISPLAY "MY-FLD: " MY-FLD
58032              END-DISPLAY
58033           END-IF
58034
58035      *>  note: INITIALIZE with refmod => handle field as alphanumeric
58036           INITIALIZE MY-OTHER-FLD (2:2)
58037           MOVE "0  0" TO MY-FLD
58038           IF MY-OTHER-FLD NOT = MY-FLD (1:4)
58039               DISPLAY "MY-OTHER-FLD: " MY-OTHER-FLD
58040               END-DISPLAY
58041           END-IF
58042
58043           STOP RUN.
58044_ATEOF
58045
58046
58047{ set +x
58048$as_echo "$at_srcdir/run_initialize.at:500: \$COMPILE prog.cob"
58049at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:500"
58050( $at_check_trace; $COMPILE prog.cob
58051) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58052at_status=$? at_failed=false
58053$at_check_filter
58054at_fn_diff_devnull "$at_stderr" || at_failed=:
58055at_fn_diff_devnull "$at_stdout" || at_failed=:
58056at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:500"
58057$at_failed && at_fn_log_failure
58058$at_traceon; }
58059
58060{ set +x
58061$as_echo "$at_srcdir/run_initialize.at:501: \$COBCRUN_DIRECT ./prog"
58062at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:501"
58063( $at_check_trace; $COBCRUN_DIRECT ./prog
58064) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58065at_status=$? at_failed=false
58066$at_check_filter
58067at_fn_diff_devnull "$at_stderr" || at_failed=:
58068at_fn_diff_devnull "$at_stdout" || at_failed=:
58069at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:501"
58070$at_failed && at_fn_log_failure
58071$at_traceon; }
58072
58073
58074  set +x
58075  $at_times_p && times >"$at_times_file"
58076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58077read at_status <"$at_status_file"
58078#AT_STOP_569
58079#AT_START_570
58080at_fn_group_banner 570 'run_misc.at:23' \
58081  "Comma separator without space" "                  " 4
58082at_xfail=no
58083(
58084  $as_echo "570. $at_setup_line: testing $at_desc ..."
58085  $at_traceon
58086
58087
58088
58089cat >prog.cob <<'_ATEOF'
58090
58091       IDENTIFICATION   DIVISION.
58092       PROGRAM-ID.      prog.
58093       PROCEDURE        DIVISION.
58094           DISPLAY 1,1,1 NO ADVANCING
58095           END-DISPLAY.
58096           STOP RUN.
58097_ATEOF
58098
58099
58100{ set +x
58101$as_echo "$at_srcdir/run_misc.at:35: \$COMPILE prog.cob"
58102at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:35"
58103( $at_check_trace; $COMPILE prog.cob
58104) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58105at_status=$? at_failed=false
58106$at_check_filter
58107at_fn_diff_devnull "$at_stderr" || at_failed=:
58108at_fn_diff_devnull "$at_stdout" || at_failed=:
58109at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:35"
58110$at_failed && at_fn_log_failure
58111$at_traceon; }
58112
58113{ set +x
58114$as_echo "$at_srcdir/run_misc.at:36: \$COBCRUN_DIRECT ./prog"
58115at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:36"
58116( $at_check_trace; $COBCRUN_DIRECT ./prog
58117) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58118at_status=$? at_failed=false
58119$at_check_filter
58120at_fn_diff_devnull "$at_stderr" || at_failed=:
58121echo >>"$at_stdout"; $as_echo "111" | \
58122  $at_diff - "$at_stdout" || at_failed=:
58123at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:36"
58124$at_failed && at_fn_log_failure
58125$at_traceon; }
58126
58127
58128  set +x
58129  $at_times_p && times >"$at_times_file"
58130) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58131read at_status <"$at_status_file"
58132#AT_STOP_570
58133#AT_START_571
58134at_fn_group_banner 571 'run_misc.at:44' \
58135  "DECIMAL-POINT is COMMA (1)" "                     " 4
58136at_xfail=no
58137(
58138  $as_echo "571. $at_setup_line: testing $at_desc ..."
58139  $at_traceon
58140
58141
58142
58143cat >prog.cob <<'_ATEOF'
58144
58145       IDENTIFICATION   DIVISION.
58146       PROGRAM-ID.      prog.
58147       ENVIRONMENT      DIVISION.
58148       CONFIGURATION    SECTION.
58149       SPECIAL-NAMES.
58150           DECIMAL-POINT    IS COMMA.
58151       DATA             DIVISION.
58152       WORKING-STORAGE  SECTION.
58153       01  X            PIC 99V99.
58154       PROCEDURE        DIVISION.
58155           MOVE FUNCTION MIN (3,,,,,,5) TO X.
58156           DISPLAY X
58157           END-DISPLAY.
58158           STOP RUN.
58159_ATEOF
58160
58161
58162{ set +x
58163$as_echo "$at_srcdir/run_misc.at:64: \$COMPILE prog.cob"
58164at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:64"
58165( $at_check_trace; $COMPILE prog.cob
58166) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58167at_status=$? at_failed=false
58168$at_check_filter
58169at_fn_diff_devnull "$at_stderr" || at_failed=:
58170at_fn_diff_devnull "$at_stdout" || at_failed=:
58171at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:64"
58172$at_failed && at_fn_log_failure
58173$at_traceon; }
58174
58175{ set +x
58176$as_echo "$at_srcdir/run_misc.at:65: \$COBCRUN_DIRECT ./prog"
58177at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:65"
58178( $at_check_trace; $COBCRUN_DIRECT ./prog
58179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58180at_status=$? at_failed=false
58181$at_check_filter
58182at_fn_diff_devnull "$at_stderr" || at_failed=:
58183echo >>"$at_stdout"; $as_echo "00,50
58184" | \
58185  $at_diff - "$at_stdout" || at_failed=:
58186at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:65"
58187$at_failed && at_fn_log_failure
58188$at_traceon; }
58189
58190
58191  set +x
58192  $at_times_p && times >"$at_times_file"
58193) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58194read at_status <"$at_status_file"
58195#AT_STOP_571
58196#AT_START_572
58197at_fn_group_banner 572 'run_misc.at:72' \
58198  "DECIMAL-POINT is COMMA (2)" "                     " 4
58199at_xfail=no
58200(
58201  $as_echo "572. $at_setup_line: testing $at_desc ..."
58202  $at_traceon
58203
58204
58205
58206cat >prog.cob <<'_ATEOF'
58207
58208       IDENTIFICATION   DIVISION.
58209       PROGRAM-ID.      prog.
58210       ENVIRONMENT      DIVISION.
58211       CONFIGURATION    SECTION.
58212       SPECIAL-NAMES.
58213           DECIMAL-POINT    IS COMMA.
58214       DATA             DIVISION.
58215       WORKING-STORAGE  SECTION.
58216       01  X            PIC 99V99.
58217       PROCEDURE        DIVISION.
58218           MOVE FUNCTION MIN (3,,,,,, 5) TO X.
58219           DISPLAY X
58220           END-DISPLAY.
58221           STOP RUN.
58222_ATEOF
58223
58224
58225{ set +x
58226$as_echo "$at_srcdir/run_misc.at:92: \$COMPILE prog.cob"
58227at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:92"
58228( $at_check_trace; $COMPILE prog.cob
58229) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58230at_status=$? at_failed=false
58231$at_check_filter
58232at_fn_diff_devnull "$at_stderr" || at_failed=:
58233at_fn_diff_devnull "$at_stdout" || at_failed=:
58234at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:92"
58235$at_failed && at_fn_log_failure
58236$at_traceon; }
58237
58238{ set +x
58239$as_echo "$at_srcdir/run_misc.at:93: \$COBCRUN_DIRECT ./prog"
58240at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:93"
58241( $at_check_trace; $COBCRUN_DIRECT ./prog
58242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58243at_status=$? at_failed=false
58244$at_check_filter
58245at_fn_diff_devnull "$at_stderr" || at_failed=:
58246echo >>"$at_stdout"; $as_echo "03,00
58247" | \
58248  $at_diff - "$at_stdout" || at_failed=:
58249at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:93"
58250$at_failed && at_fn_log_failure
58251$at_traceon; }
58252
58253
58254  set +x
58255  $at_times_p && times >"$at_times_file"
58256) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58257read at_status <"$at_status_file"
58258#AT_STOP_572
58259#AT_START_573
58260at_fn_group_banner 573 'run_misc.at:100' \
58261  "DECIMAL-POINT is COMMA (3)" "                     " 4
58262at_xfail=no
58263(
58264  $as_echo "573. $at_setup_line: testing $at_desc ..."
58265  $at_traceon
58266
58267
58268
58269cat >prog.cob <<'_ATEOF'
58270
58271       IDENTIFICATION   DIVISION.
58272       PROGRAM-ID.      prog.
58273       ENVIRONMENT      DIVISION.
58274       CONFIGURATION    SECTION.
58275       SPECIAL-NAMES.
58276           DECIMAL-POINT    IS COMMA.
58277       DATA             DIVISION.
58278       WORKING-STORAGE  SECTION.
58279       01  X            PIC 99V99.
58280       PROCEDURE        DIVISION.
58281           MOVE FUNCTION MIN (3,,,,,, 1,5) TO X.
58282           DISPLAY X
58283           END-DISPLAY.
58284           STOP RUN.
58285_ATEOF
58286
58287
58288{ set +x
58289$as_echo "$at_srcdir/run_misc.at:120: \$COMPILE prog.cob"
58290at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:120"
58291( $at_check_trace; $COMPILE prog.cob
58292) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58293at_status=$? at_failed=false
58294$at_check_filter
58295at_fn_diff_devnull "$at_stderr" || at_failed=:
58296at_fn_diff_devnull "$at_stdout" || at_failed=:
58297at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:120"
58298$at_failed && at_fn_log_failure
58299$at_traceon; }
58300
58301{ set +x
58302$as_echo "$at_srcdir/run_misc.at:121: \$COBCRUN_DIRECT ./prog"
58303at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:121"
58304( $at_check_trace; $COBCRUN_DIRECT ./prog
58305) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58306at_status=$? at_failed=false
58307$at_check_filter
58308at_fn_diff_devnull "$at_stderr" || at_failed=:
58309echo >>"$at_stdout"; $as_echo "01,50
58310" | \
58311  $at_diff - "$at_stdout" || at_failed=:
58312at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:121"
58313$at_failed && at_fn_log_failure
58314$at_traceon; }
58315
58316
58317  set +x
58318  $at_times_p && times >"$at_times_file"
58319) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58320read at_status <"$at_status_file"
58321#AT_STOP_573
58322#AT_START_574
58323at_fn_group_banner 574 'run_misc.at:128' \
58324  "DECIMAL-POINT is COMMA (4)" "                     " 4
58325at_xfail=no
58326(
58327  $as_echo "574. $at_setup_line: testing $at_desc ..."
58328  $at_traceon
58329
58330
58331
58332cat >prog.cob <<'_ATEOF'
58333
58334       IDENTIFICATION   DIVISION.
58335       PROGRAM-ID.      prog.
58336       ENVIRONMENT      DIVISION.
58337       CONFIGURATION    SECTION.
58338       SPECIAL-NAMES.
58339           DECIMAL-POINT    IS COMMA.
58340       DATA             DIVISION.
58341       WORKING-STORAGE  SECTION.
58342       01  X            PIC 99V99.
58343       PROCEDURE        DIVISION.
58344           MOVE FUNCTION MIN (3,,,,,,1,5) TO X.
58345           DISPLAY X
58346           END-DISPLAY.
58347           STOP RUN.
58348_ATEOF
58349
58350
58351{ set +x
58352$as_echo "$at_srcdir/run_misc.at:148: \$COMPILE prog.cob"
58353at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:148"
58354( $at_check_trace; $COMPILE prog.cob
58355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58356at_status=$? at_failed=false
58357$at_check_filter
58358at_fn_diff_devnull "$at_stderr" || at_failed=:
58359at_fn_diff_devnull "$at_stdout" || at_failed=:
58360at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:148"
58361$at_failed && at_fn_log_failure
58362$at_traceon; }
58363
58364{ set +x
58365$as_echo "$at_srcdir/run_misc.at:149: \$COBCRUN_DIRECT ./prog"
58366at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:149"
58367( $at_check_trace; $COBCRUN_DIRECT ./prog
58368) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58369at_status=$? at_failed=false
58370$at_check_filter
58371at_fn_diff_devnull "$at_stderr" || at_failed=:
58372echo >>"$at_stdout"; $as_echo "00,10
58373" | \
58374  $at_diff - "$at_stdout" || at_failed=:
58375at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:149"
58376$at_failed && at_fn_log_failure
58377$at_traceon; }
58378
58379
58380  set +x
58381  $at_times_p && times >"$at_times_file"
58382) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58383read at_status <"$at_status_file"
58384#AT_STOP_574
58385#AT_START_575
58386at_fn_group_banner 575 'run_misc.at:156' \
58387  "DECIMAL-POINT is COMMA (5)" "                     " 4
58388at_xfail=no
58389(
58390  $as_echo "575. $at_setup_line: testing $at_desc ..."
58391  $at_traceon
58392
58393
58394
58395cat >prog.cob <<'_ATEOF'
58396
58397       IDENTIFICATION   DIVISION.
58398       PROGRAM-ID.      prog.
58399       ENVIRONMENT      DIVISION.
58400       CONFIGURATION    SECTION.
58401       SPECIAL-NAMES.
58402           DECIMAL-POINT    IS COMMA.
58403       DATA             DIVISION.
58404       WORKING-STORAGE  SECTION.
58405       01  X            PIC 99V99.
58406       PROCEDURE        DIVISION.
58407           COMPUTE X=1 + ,1
58408           END-COMPUTE
58409           DISPLAY X
58410           END-DISPLAY.
58411           COMPUTE X=1*,1
58412           END-COMPUTE
58413           DISPLAY X
58414           END-DISPLAY.
58415           STOP RUN.
58416_ATEOF
58417
58418
58419{ set +x
58420$as_echo "$at_srcdir/run_misc.at:181: \$COMPILE prog.cob"
58421at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:181"
58422( $at_check_trace; $COMPILE prog.cob
58423) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58424at_status=$? at_failed=false
58425$at_check_filter
58426at_fn_diff_devnull "$at_stderr" || at_failed=:
58427at_fn_diff_devnull "$at_stdout" || at_failed=:
58428at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:181"
58429$at_failed && at_fn_log_failure
58430$at_traceon; }
58431
58432{ set +x
58433$as_echo "$at_srcdir/run_misc.at:182: \$COBCRUN_DIRECT ./prog"
58434at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:182"
58435( $at_check_trace; $COBCRUN_DIRECT ./prog
58436) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58437at_status=$? at_failed=false
58438$at_check_filter
58439at_fn_diff_devnull "$at_stderr" || at_failed=:
58440echo >>"$at_stdout"; $as_echo "01,10
5844100,10
58442" | \
58443  $at_diff - "$at_stdout" || at_failed=:
58444at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:182"
58445$at_failed && at_fn_log_failure
58446$at_traceon; }
58447
58448
58449  set +x
58450  $at_times_p && times >"$at_times_file"
58451) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58452read at_status <"$at_status_file"
58453#AT_STOP_575
58454#AT_START_576
58455at_fn_group_banner 576 'run_misc.at:190' \
58456  "CURRENCY SIGN" "                                  " 4
58457at_xfail=no
58458(
58459  $as_echo "576. $at_setup_line: testing $at_desc ..."
58460  $at_traceon
58461
58462
58463
58464cat >prog.cob <<'_ATEOF'
58465
58466       PROGRAM-ID.   prog.
58467
58468       ENVIRONMENT DIVISION.
58469       CONFIGURATION SECTION.
58470       SPECIAL-NAMES.
58471           CURRENCY SIGN IS "Y".
58472
58473       DATA DIVISION.
58474       WORKING-STORAGE SECTION.
58475       77  amount    pic Y(6)9.99.
58476
58477       PROCEDURE DIVISION.
58478           Move 1512.34 to Amount
58479           Display "Amount is #" Amount '#' with no advancing.
58480
58481           GOBACK
58482           .
58483       END PROGRAM prog.
58484_ATEOF
58485
58486
58487{ set +x
58488$as_echo "$at_srcdir/run_misc.at:214: \$COMPILE prog.cob"
58489at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:214"
58490( $at_check_trace; $COMPILE prog.cob
58491) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58492at_status=$? at_failed=false
58493$at_check_filter
58494at_fn_diff_devnull "$at_stderr" || at_failed=:
58495at_fn_diff_devnull "$at_stdout" || at_failed=:
58496at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:214"
58497$at_failed && at_fn_log_failure
58498$at_traceon; }
58499
58500{ set +x
58501$as_echo "$at_srcdir/run_misc.at:215: \$COBCRUN_DIRECT ./prog"
58502at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:215"
58503( $at_check_trace; $COBCRUN_DIRECT ./prog
58504) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58505at_status=$? at_failed=false
58506$at_check_filter
58507at_fn_diff_devnull "$at_stderr" || at_failed=:
58508echo >>"$at_stdout"; $as_echo "Amount is #  Y1512.34#" | \
58509  $at_diff - "$at_stdout" || at_failed=:
58510at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:215"
58511$at_failed && at_fn_log_failure
58512$at_traceon; }
58513
58514
58515  set +x
58516  $at_times_p && times >"$at_times_file"
58517) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58518read at_status <"$at_status_file"
58519#AT_STOP_576
58520#AT_START_577
58521at_fn_group_banner 577 'run_misc.at:221' \
58522  "CURRENCY SIGN WITH PICTURE SYMBOL" "              " 4
58523at_xfail=yes
58524(
58525  $as_echo "577. $at_setup_line: testing $at_desc ..."
58526  $at_traceon
58527
58528
58529
58530# FIXME - see FR #246
58531
58532
58533cat >prog.cob <<'_ATEOF'
58534
58535       PROGRAM-ID.   prog.
58536
58537       ENVIRONMENT DIVISION.
58538       CONFIGURATION SECTION.
58539       SPECIAL-NAMES.
58540           *> note the space after EUR / before ct.
58541           CURRENCY SIGN IS "EUR "      WITH PICTURE SYMBOL "U",
58542           CURRENCY SIGN IS " ct (EUR)" WITH PICTURE SYMBOL "c",
58543           Currency Sign is "$US" with Picture Symbol "$".
58544
58545       DATA DIVISION.
58546       WORKING-STORAGE SECTION.
58547       77  EUROS    PIC U99v99.
58548       77  cents    PIC c9,999.
58549       77  DOLLARS  Pic $$,$$9.99.
58550
58551       PROCEDURE DIVISION.
58552           MOVE 12.34 TO EUROS
58553           MULTIPLY euros BY 1000 GIVING cents.
58554           DISPLAY "#" EUROS "# equal #" cents '#'.
58555           Move 1500 to Invoice-Amount
58556           Display "Invoice amount #1 is " Invoice-Amount '.'.
58557           Move 12.34 to Invoice-Amount
58558           Display "Invoice amount #2 is " Invoice-Amount '.'.
58559
58560           GOBACK
58561           .
58562       END PROGRAM prog.
58563_ATEOF
58564
58565
58566{ set +x
58567$as_echo "$at_srcdir/run_misc.at:258: \$COMPILE prog.cob"
58568at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:258"
58569( $at_check_trace; $COMPILE prog.cob
58570) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58571at_status=$? at_failed=false
58572$at_check_filter
58573at_fn_diff_devnull "$at_stderr" || at_failed=:
58574at_fn_diff_devnull "$at_stdout" || at_failed=:
58575at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:258"
58576$at_failed && at_fn_log_failure
58577$at_traceon; }
58578
58579{ set +x
58580$as_echo "$at_srcdir/run_misc.at:259: \$COBCRUN_DIRECT ./prog"
58581at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:259"
58582( $at_check_trace; $COBCRUN_DIRECT ./prog
58583) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58584at_status=$? at_failed=false
58585$at_check_filter
58586at_fn_diff_devnull "$at_stderr" || at_failed=:
58587echo >>"$at_stdout"; $as_echo "#EUR 12.34# equal #1,234 ct (EUR)#
58588Invoice amount #1 is  \$US1,500.00.
58589Invoice amount #2 is     \$US12.34.
58590" | \
58591  $at_diff - "$at_stdout" || at_failed=:
58592at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:259"
58593$at_failed && at_fn_log_failure
58594$at_traceon; }
58595
58596
58597  set +x
58598  $at_times_p && times >"$at_times_file"
58599) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58600read at_status <"$at_status_file"
58601#AT_STOP_577
58602#AT_START_578
58603at_fn_group_banner 578 'run_misc.at:268' \
58604  "LOCAL-STORAGE (1)" "                              " 4
58605at_xfail=no
58606(
58607  $as_echo "578. $at_setup_line: testing $at_desc ..."
58608  $at_traceon
58609
58610
58611
58612cat >callee.cob <<'_ATEOF'
58613
58614       IDENTIFICATION   DIVISION.
58615       PROGRAM-ID.      callee.
58616       DATA             DIVISION.
58617       WORKING-STORAGE  SECTION.
58618       01 WRK-X         PIC XXX VALUE "abc".
58619       LOCAL-STORAGE    SECTION.
58620       01 LCL-X         PIC XXX VALUE "abc".
58621       PROCEDURE        DIVISION.
58622           DISPLAY WRK-X LCL-X NO ADVANCING
58623           END-DISPLAY.
58624           MOVE ZERO TO WRK-X LCL-X.
58625           EXIT PROGRAM.
58626_ATEOF
58627
58628
58629cat >caller.cob <<'_ATEOF'
58630
58631       IDENTIFICATION   DIVISION.
58632       PROGRAM-ID.      caller.
58633       PROCEDURE        DIVISION.
58634           CALL "callee"
58635           END-CALL.
58636           CALL "callee"
58637           END-CALL.
58638           STOP RUN.
58639_ATEOF
58640
58641
58642{ set +x
58643$as_echo "$at_srcdir/run_misc.at:297: \$COMPILE_MODULE callee.cob"
58644at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:297"
58645( $at_check_trace; $COMPILE_MODULE callee.cob
58646) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58647at_status=$? at_failed=false
58648$at_check_filter
58649at_fn_diff_devnull "$at_stderr" || at_failed=:
58650at_fn_diff_devnull "$at_stdout" || at_failed=:
58651at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:297"
58652$at_failed && at_fn_log_failure
58653$at_traceon; }
58654
58655{ set +x
58656$as_echo "$at_srcdir/run_misc.at:298: \$COMPILE -o prog caller.cob"
58657at_fn_check_prepare_dynamic "$COMPILE -o prog caller.cob" "run_misc.at:298"
58658( $at_check_trace; $COMPILE -o prog caller.cob
58659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58660at_status=$? at_failed=false
58661$at_check_filter
58662at_fn_diff_devnull "$at_stderr" || at_failed=:
58663at_fn_diff_devnull "$at_stdout" || at_failed=:
58664at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:298"
58665$at_failed && at_fn_log_failure
58666$at_traceon; }
58667
58668{ set +x
58669$as_echo "$at_srcdir/run_misc.at:299: \$COBCRUN_DIRECT ./prog"
58670at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:299"
58671( $at_check_trace; $COBCRUN_DIRECT ./prog
58672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58673at_status=$? at_failed=false
58674$at_check_filter
58675at_fn_diff_devnull "$at_stderr" || at_failed=:
58676echo >>"$at_stdout"; $as_echo "abcabc000abc" | \
58677  $at_diff - "$at_stdout" || at_failed=:
58678at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:299"
58679$at_failed && at_fn_log_failure
58680$at_traceon; }
58681
58682
58683  set +x
58684  $at_times_p && times >"$at_times_file"
58685) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58686read at_status <"$at_status_file"
58687#AT_STOP_578
58688#AT_START_579
58689at_fn_group_banner 579 'run_misc.at:304' \
58690  "LOCAL-STORAGE (2)" "                              " 4
58691at_xfail=no
58692(
58693  $as_echo "579. $at_setup_line: testing $at_desc ..."
58694  $at_traceon
58695
58696
58697
58698cat >callee2.cob <<'_ATEOF'
58699
58700       IDENTIFICATION   DIVISION.
58701       PROGRAM-ID.      callee2.
58702       DATA             DIVISION.
58703       LINKAGE          SECTION.
58704       01 LNK-X         PIC XXX.
58705       PROCEDURE        DIVISION USING LNK-X.
58706           DISPLAY LNK-X NO ADVANCING
58707           END-DISPLAY.
58708           EXIT PROGRAM.
58709_ATEOF
58710
58711
58712cat >callee.cob <<'_ATEOF'
58713
58714       IDENTIFICATION   DIVISION.
58715       PROGRAM-ID.      callee.
58716       DATA             DIVISION.
58717       LOCAL-STORAGE    SECTION.
58718       01 LCL-X.
58719          05 FILLER     PIC XXX VALUE "abc".
58720       PROCEDURE        DIVISION.
58721           CALL "callee2" USING LCL-X
58722           END-CALL.
58723           MOVE ZERO TO LCL-X.
58724           CALL "callee2" USING LCL-X
58725           END-CALL.
58726           EXIT PROGRAM.
58727_ATEOF
58728
58729
58730cat >caller.cob <<'_ATEOF'
58731
58732       IDENTIFICATION   DIVISION.
58733       PROGRAM-ID.      caller.
58734       PROCEDURE        DIVISION.
58735           CALL "callee"
58736           END-CALL.
58737           STOP RUN.
58738_ATEOF
58739
58740
58741{ set +x
58742$as_echo "$at_srcdir/run_misc.at:344: \$COMPILE_MODULE callee2.cob"
58743at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:344"
58744( $at_check_trace; $COMPILE_MODULE callee2.cob
58745) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58746at_status=$? at_failed=false
58747$at_check_filter
58748at_fn_diff_devnull "$at_stderr" || at_failed=:
58749at_fn_diff_devnull "$at_stdout" || at_failed=:
58750at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:344"
58751$at_failed && at_fn_log_failure
58752$at_traceon; }
58753
58754{ set +x
58755$as_echo "$at_srcdir/run_misc.at:345: \$COMPILE_MODULE callee.cob"
58756at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:345"
58757( $at_check_trace; $COMPILE_MODULE callee.cob
58758) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58759at_status=$? at_failed=false
58760$at_check_filter
58761at_fn_diff_devnull "$at_stderr" || at_failed=:
58762at_fn_diff_devnull "$at_stdout" || at_failed=:
58763at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:345"
58764$at_failed && at_fn_log_failure
58765$at_traceon; }
58766
58767{ set +x
58768$as_echo "$at_srcdir/run_misc.at:346: \$COMPILE -o prog caller.cob"
58769at_fn_check_prepare_dynamic "$COMPILE -o prog caller.cob" "run_misc.at:346"
58770( $at_check_trace; $COMPILE -o prog caller.cob
58771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58772at_status=$? at_failed=false
58773$at_check_filter
58774at_fn_diff_devnull "$at_stderr" || at_failed=:
58775at_fn_diff_devnull "$at_stdout" || at_failed=:
58776at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:346"
58777$at_failed && at_fn_log_failure
58778$at_traceon; }
58779
58780{ set +x
58781$as_echo "$at_srcdir/run_misc.at:347: \$COBCRUN_DIRECT ./prog"
58782at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:347"
58783( $at_check_trace; $COBCRUN_DIRECT ./prog
58784) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58785at_status=$? at_failed=false
58786$at_check_filter
58787at_fn_diff_devnull "$at_stderr" || at_failed=:
58788echo >>"$at_stdout"; $as_echo "abc000" | \
58789  $at_diff - "$at_stdout" || at_failed=:
58790at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:347"
58791$at_failed && at_fn_log_failure
58792$at_traceon; }
58793
58794
58795  set +x
58796  $at_times_p && times >"$at_times_file"
58797) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58798read at_status <"$at_status_file"
58799#AT_STOP_579
58800#AT_START_580
58801at_fn_group_banner 580 'run_misc.at:352' \
58802  "EXTERNAL data item" "                             " 4
58803at_xfail=no
58804(
58805  $as_echo "580. $at_setup_line: testing $at_desc ..."
58806  $at_traceon
58807
58808
58809
58810cat >callee.cob <<'_ATEOF'
58811
58812       IDENTIFICATION   DIVISION.
58813       PROGRAM-ID.      callee.
58814       DATA             DIVISION.
58815       WORKING-STORAGE  SECTION.
58816       01 EXT-VAR       PIC X(5) EXTERNAL.
58817       PROCEDURE        DIVISION.
58818           IF EXT-VAR NOT = "Hello"
58819              DISPLAY EXT-VAR
58820              END-DISPLAY
58821           END-IF.
58822           MOVE "World" TO EXT-VAR.
58823           EXIT PROGRAM.
58824_ATEOF
58825
58826
58827cat >caller.cob <<'_ATEOF'
58828
58829       IDENTIFICATION   DIVISION.
58830       PROGRAM-ID.      caller.
58831       DATA             DIVISION.
58832       WORKING-STORAGE  SECTION.
58833       01 EXT-VAR       PIC X(5) EXTERNAL.
58834       PROCEDURE        DIVISION.
58835           MOVE "Hello" TO EXT-VAR.
58836           CALL "callee"
58837           END-CALL.
58838           IF EXT-VAR NOT = "World"
58839              DISPLAY EXT-VAR
58840              END-DISPLAY
58841           END-IF.
58842           STOP RUN.
58843_ATEOF
58844
58845
58846{ set +x
58847$as_echo "$at_srcdir/run_misc.at:387: \$COMPILE_MODULE callee.cob"
58848at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:387"
58849( $at_check_trace; $COMPILE_MODULE callee.cob
58850) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58851at_status=$? at_failed=false
58852$at_check_filter
58853at_fn_diff_devnull "$at_stderr" || at_failed=:
58854at_fn_diff_devnull "$at_stdout" || at_failed=:
58855at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:387"
58856$at_failed && at_fn_log_failure
58857$at_traceon; }
58858
58859{ set +x
58860$as_echo "$at_srcdir/run_misc.at:388: \$COMPILE caller.cob"
58861at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:388"
58862( $at_check_trace; $COMPILE caller.cob
58863) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58864at_status=$? at_failed=false
58865$at_check_filter
58866at_fn_diff_devnull "$at_stderr" || at_failed=:
58867at_fn_diff_devnull "$at_stdout" || at_failed=:
58868at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:388"
58869$at_failed && at_fn_log_failure
58870$at_traceon; }
58871
58872{ set +x
58873$as_echo "$at_srcdir/run_misc.at:389: \$COBCRUN_DIRECT ./caller"
58874at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:389"
58875( $at_check_trace; $COBCRUN_DIRECT ./caller
58876) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58877at_status=$? at_failed=false
58878$at_check_filter
58879at_fn_diff_devnull "$at_stderr" || at_failed=:
58880at_fn_diff_devnull "$at_stdout" || at_failed=:
58881at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:389"
58882$at_failed && at_fn_log_failure
58883$at_traceon; }
58884
58885
58886  set +x
58887  $at_times_p && times >"$at_times_file"
58888) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58889read at_status <"$at_status_file"
58890#AT_STOP_580
58891#AT_START_581
58892at_fn_group_banner 581 'run_misc.at:394' \
58893  "EXTERNAL AS data item" "                          " 4
58894at_xfail=no
58895(
58896  $as_echo "581. $at_setup_line: testing $at_desc ..."
58897  $at_traceon
58898
58899
58900
58901cat >callee.cob <<'_ATEOF'
58902
58903       IDENTIFICATION   DIVISION.
58904       PROGRAM-ID.      callee.
58905       DATA             DIVISION.
58906       WORKING-STORAGE  SECTION.
58907       01 PRG-VAR       PIC X(5) EXTERNAL AS "WRK-VAR".
58908       01 EXT-VAR       PIC X(5) EXTERNAL.
58909       PROCEDURE        DIVISION.
58910           IF PRG-VAR NOT = "Extrn"
58911              DISPLAY PRG-VAR
58912              END-DISPLAY
58913           END-IF.
58914           IF EXT-VAR NOT = "Hello"
58915              DISPLAY EXT-VAR
58916              END-DISPLAY
58917           END-IF.
58918           MOVE "World" TO EXT-VAR.
58919           EXIT PROGRAM.
58920_ATEOF
58921
58922
58923cat >caller.cob <<'_ATEOF'
58924
58925       IDENTIFICATION   DIVISION.
58926       PROGRAM-ID.      caller.
58927       DATA             DIVISION.
58928       WORKING-STORAGE  SECTION.
58929       01 MYVAR         PIC X(5) EXTERNAL AS "EXT-VAR".
58930       01 WRK-VAR       PIC X(5) EXTERNAL.
58931       PROCEDURE        DIVISION.
58932           MOVE "Extrn" TO WRK-VAR.
58933           MOVE "Hello" TO MYVAR.
58934           CALL "callee"
58935           END-CALL.
58936           IF MYVAR NOT = "World"
58937              DISPLAY MYVAR
58938              END-DISPLAY
58939           END-IF.
58940           STOP RUN.
58941_ATEOF
58942
58943
58944{ set +x
58945$as_echo "$at_srcdir/run_misc.at:436: \$COMPILE_MODULE callee.cob"
58946at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:436"
58947( $at_check_trace; $COMPILE_MODULE callee.cob
58948) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58949at_status=$? at_failed=false
58950$at_check_filter
58951at_fn_diff_devnull "$at_stderr" || at_failed=:
58952at_fn_diff_devnull "$at_stdout" || at_failed=:
58953at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:436"
58954$at_failed && at_fn_log_failure
58955$at_traceon; }
58956
58957{ set +x
58958$as_echo "$at_srcdir/run_misc.at:437: \$COMPILE caller.cob"
58959at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:437"
58960( $at_check_trace; $COMPILE caller.cob
58961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58962at_status=$? at_failed=false
58963$at_check_filter
58964at_fn_diff_devnull "$at_stderr" || at_failed=:
58965at_fn_diff_devnull "$at_stdout" || at_failed=:
58966at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:437"
58967$at_failed && at_fn_log_failure
58968$at_traceon; }
58969
58970{ set +x
58971$as_echo "$at_srcdir/run_misc.at:438: \$COBCRUN_DIRECT ./caller"
58972at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:438"
58973( $at_check_trace; $COBCRUN_DIRECT ./caller
58974) >>"$at_stdout" 2>>"$at_stderr" 5>&-
58975at_status=$? at_failed=false
58976$at_check_filter
58977at_fn_diff_devnull "$at_stderr" || at_failed=:
58978at_fn_diff_devnull "$at_stdout" || at_failed=:
58979at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:438"
58980$at_failed && at_fn_log_failure
58981$at_traceon; }
58982
58983
58984  set +x
58985  $at_times_p && times >"$at_times_file"
58986) 5>&1 2>&1 7>&- | eval $at_tee_pipe
58987read at_status <"$at_status_file"
58988#AT_STOP_581
58989#AT_START_582
58990at_fn_group_banner 582 'run_misc.at:443' \
58991  "EXTERNAL data item size mismatch" "               " 4
58992at_xfail=yes
58993(
58994  $as_echo "582. $at_setup_line: testing $at_desc ..."
58995  $at_traceon
58996
58997
58998
58999# FIXME - see Bug #445
59000
59001
59002cat >callee.cob <<'_ATEOF'
59003
59004       IDENTIFICATION   DIVISION.
59005       PROGRAM-ID.      callee.
59006       DATA             DIVISION.
59007       WORKING-STORAGE  SECTION.
59008       01 PRG-VAR       PIC X(8) EXTERNAL AS "WRK-VAR".
59009       01 COB-VAR       PIC X(8) EXTERNAL.
59010       01 EXT-VAR       PIC X(8) EXTERNAL.
59011       PROCEDURE        DIVISION.
59012           IF PRG-VAR NOT = "Extrn"
59013              DISPLAY PRG-VAR
59014              END-DISPLAY
59015           END-IF.
59016           IF EXT-VAR NOT = "Hello"
59017              DISPLAY EXT-VAR
59018              END-DISPLAY
59019           END-IF.
59020           MOVE "World" TO EXT-VAR.
59021           EXIT PROGRAM.
59022_ATEOF
59023
59024
59025cat >bigger.cob <<'_ATEOF'
59026
59027       IDENTIFICATION   DIVISION.
59028       PROGRAM-ID.      error.
59029       DATA             DIVISION.
59030       WORKING-STORAGE  SECTION.
59031       01 MYVAR         PIC X(10) EXTERNAL AS "COB-VAR".
59032       01 WRK-VAR       PIC X(10) EXTERNAL.
59033       01 EXT-VAR       PIC X(10) EXTERNAL.
59034       PROCEDURE        DIVISION.
59035           MOVE "Extrn" TO WRK-VAR.
59036           MOVE "Hello" TO MYVAR.
59037           CALL "callee"
59038           END-CALL.
59039           IF MYVAR NOT = "World"
59040              DISPLAY MYVAR
59041              END-DISPLAY
59042           END-IF.
59043           STOP RUN.
59044_ATEOF
59045
59046
59047cat >smaller.cob <<'_ATEOF'
59048
59049       IDENTIFICATION   DIVISION.
59050       PROGRAM-ID.      error.
59051       DATA             DIVISION.
59052       WORKING-STORAGE  SECTION.
59053       01 MYVAR         PIC X(5) EXTERNAL AS "COB-VAR".
59054       01 WRK-VAR       PIC X(5) EXTERNAL.
59055       01 EXT-VAR       PIC X(5) EXTERNAL.
59056       PROCEDURE        DIVISION.
59057           MOVE "Extrn" TO WRK-VAR.
59058           MOVE "Hello" TO MYVAR.
59059           CALL "callee"
59060           END-CALL.
59061           IF MYVAR NOT = "World"
59062              DISPLAY MYVAR
59063              END-DISPLAY
59064           END-IF.
59065           STOP RUN.
59066_ATEOF
59067
59068
59069{ set +x
59070$as_echo "$at_srcdir/run_misc.at:510: \$COMPILE_MODULE callee.cob"
59071at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:510"
59072( $at_check_trace; $COMPILE_MODULE callee.cob
59073) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59074at_status=$? at_failed=false
59075$at_check_filter
59076at_fn_diff_devnull "$at_stderr" || at_failed=:
59077at_fn_diff_devnull "$at_stdout" || at_failed=:
59078at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:510"
59079$at_failed && at_fn_log_failure
59080$at_traceon; }
59081
59082{ set +x
59083$as_echo "$at_srcdir/run_misc.at:511: \$COMPILE bigger.cob"
59084at_fn_check_prepare_dynamic "$COMPILE bigger.cob" "run_misc.at:511"
59085( $at_check_trace; $COMPILE bigger.cob
59086) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59087at_status=$? at_failed=false
59088$at_check_filter
59089at_fn_diff_devnull "$at_stderr" || at_failed=:
59090at_fn_diff_devnull "$at_stdout" || at_failed=:
59091at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:511"
59092$at_failed && at_fn_log_failure
59093$at_traceon; }
59094
59095{ set +x
59096$as_echo "$at_srcdir/run_misc.at:512: \$COBCRUN_DIRECT ./bigger"
59097at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./bigger" "run_misc.at:512"
59098( $at_check_trace; $COBCRUN_DIRECT ./bigger
59099) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59100at_status=$? at_failed=false
59101$at_check_filter
59102echo >>"$at_stderr"; $as_echo "libcob: callee.cob:6: warning: EXTERNAL item 'WRK-VAR' previously allocated with size 10, requested size is 8
59103libcob: callee.cob:7: warning: EXTERNAL item 'EXT-VAR' previously allocated with size 10, requested size is 8
59104libcob: callee.cob:8: warning: EXTERNAL item 'EXT-VAR' previously allocated with size 10, requested size is 8
59105" | \
59106  $at_diff - "$at_stderr" || at_failed=:
59107at_fn_diff_devnull "$at_stdout" || at_failed=:
59108at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:512"
59109$at_failed && at_fn_log_failure
59110$at_traceon; }
59111
59112
59113{ set +x
59114$as_echo "$at_srcdir/run_misc.at:518: \$COMPILE smaller.cob"
59115at_fn_check_prepare_dynamic "$COMPILE smaller.cob" "run_misc.at:518"
59116( $at_check_trace; $COMPILE smaller.cob
59117) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59118at_status=$? at_failed=false
59119$at_check_filter
59120at_fn_diff_devnull "$at_stderr" || at_failed=:
59121at_fn_diff_devnull "$at_stdout" || at_failed=:
59122at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:518"
59123$at_failed && at_fn_log_failure
59124$at_traceon; }
59125
59126{ set +x
59127$as_echo "$at_srcdir/run_misc.at:519: \$COBCRUN_DIRECT ./smaller"
59128at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./smaller" "run_misc.at:519"
59129( $at_check_trace; $COBCRUN_DIRECT ./smaller
59130) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59131at_status=$? at_failed=false
59132$at_check_filter
59133echo >>"$at_stderr"; $as_echo "libcob: callee.cob:6: error: EXTERNAL item 'WRK-VAR' previously allocated with size 5, requested size is 8
59134" | \
59135  $at_diff - "$at_stderr" || at_failed=:
59136at_fn_diff_devnull "$at_stdout" || at_failed=:
59137at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:519"
59138$at_failed && at_fn_log_failure
59139$at_traceon; }
59140
59141
59142  set +x
59143  $at_times_p && times >"$at_times_file"
59144) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59145read at_status <"$at_status_file"
59146#AT_STOP_582
59147#AT_START_583
59148at_fn_group_banner 583 'run_misc.at:528' \
59149  "MOVE to itself" "                                 " 4
59150at_xfail=no
59151(
59152  $as_echo "583. $at_setup_line: testing $at_desc ..."
59153  $at_traceon
59154
59155
59156
59157cat >prog.cob <<'_ATEOF'
59158
59159       IDENTIFICATION   DIVISION.
59160       PROGRAM-ID.      prog.
59161       DATA             DIVISION.
59162       WORKING-STORAGE  SECTION.
59163       01 X             PIC 99 VALUE 12.
59164       PROCEDURE        DIVISION.
59165           MOVE X TO X.
59166           IF X NOT = 12
59167              DISPLAY X NO ADVANCING
59168              END-DISPLAY
59169           END-IF.
59170           STOP RUN.
59171_ATEOF
59172
59173
59174{ set +x
59175$as_echo "$at_srcdir/run_misc.at:546: \$COMPILE prog.cob"
59176at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:546"
59177( $at_check_trace; $COMPILE prog.cob
59178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59179at_status=$? at_failed=false
59180$at_check_filter
59181echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: overlapping MOVE may produce unpredictable results
59182" | \
59183  $at_diff - "$at_stderr" || at_failed=:
59184at_fn_diff_devnull "$at_stdout" || at_failed=:
59185at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:546"
59186$at_failed && at_fn_log_failure
59187$at_traceon; }
59188
59189{ set +x
59190$as_echo "$at_srcdir/run_misc.at:549: \$COBCRUN_DIRECT ./prog"
59191at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:549"
59192( $at_check_trace; $COBCRUN_DIRECT ./prog
59193) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59194at_status=$? at_failed=false
59195$at_check_filter
59196at_fn_diff_devnull "$at_stderr" || at_failed=:
59197at_fn_diff_devnull "$at_stdout" || at_failed=:
59198at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:549"
59199$at_failed && at_fn_log_failure
59200$at_traceon; }
59201
59202
59203  set +x
59204  $at_times_p && times >"$at_times_file"
59205) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59206read at_status <"$at_status_file"
59207#AT_STOP_583
59208#AT_START_584
59209at_fn_group_banner 584 'run_misc.at:554' \
59210  "MOVE with refmod" "                               " 4
59211at_xfail=no
59212(
59213  $as_echo "584. $at_setup_line: testing $at_desc ..."
59214  $at_traceon
59215
59216
59217
59218cat >prog.cob <<'_ATEOF'
59219
59220       IDENTIFICATION   DIVISION.
59221       PROGRAM-ID.      prog.
59222       DATA             DIVISION.
59223       WORKING-STORAGE  SECTION.
59224       01 X             PIC 9(4) VALUE 0.
59225       PROCEDURE        DIVISION.
59226           MOVE "1" TO X(1:1).
59227           IF X NOT = 1000
59228              DISPLAY X NO ADVANCING
59229              END-DISPLAY
59230           END-IF.
59231           STOP RUN.
59232_ATEOF
59233
59234
59235{ set +x
59236$as_echo "$at_srcdir/run_misc.at:572: \$COMPILE prog.cob"
59237at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:572"
59238( $at_check_trace; $COMPILE prog.cob
59239) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59240at_status=$? at_failed=false
59241$at_check_filter
59242at_fn_diff_devnull "$at_stderr" || at_failed=:
59243at_fn_diff_devnull "$at_stdout" || at_failed=:
59244at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:572"
59245$at_failed && at_fn_log_failure
59246$at_traceon; }
59247
59248{ set +x
59249$as_echo "$at_srcdir/run_misc.at:573: \$COBCRUN_DIRECT ./prog"
59250at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:573"
59251( $at_check_trace; $COBCRUN_DIRECT ./prog
59252) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59253at_status=$? at_failed=false
59254$at_check_filter
59255at_fn_diff_devnull "$at_stderr" || at_failed=:
59256at_fn_diff_devnull "$at_stdout" || at_failed=:
59257at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:573"
59258$at_failed && at_fn_log_failure
59259$at_traceon; }
59260
59261
59262  set +x
59263  $at_times_p && times >"$at_times_file"
59264) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59265read at_status <"$at_status_file"
59266#AT_STOP_584
59267#AT_START_585
59268at_fn_group_banner 585 'run_misc.at:578' \
59269  "MOVE with refmod (variable)" "                    " 4
59270at_xfail=no
59271(
59272  $as_echo "585. $at_setup_line: testing $at_desc ..."
59273  $at_traceon
59274
59275
59276
59277cat >prog.cob <<'_ATEOF'
59278
59279       IDENTIFICATION   DIVISION.
59280       PROGRAM-ID.      prog.
59281       DATA             DIVISION.
59282       WORKING-STORAGE  SECTION.
59283       01 X             PIC X(4) VALUE "1234".
59284       01 Y             PIC X(4) VALUE "abcd".
59285       01 I             PIC 9 VALUE 1.
59286       PROCEDURE        DIVISION.
59287           MOVE X(1:I) TO Y.
59288           IF Y NOT = "1   "
59289              DISPLAY Y NO ADVANCING
59290              END-DISPLAY
59291           END-IF.
59292           STOP RUN.
59293_ATEOF
59294
59295
59296{ set +x
59297$as_echo "$at_srcdir/run_misc.at:598: \$COMPILE prog.cob"
59298at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:598"
59299( $at_check_trace; $COMPILE prog.cob
59300) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59301at_status=$? at_failed=false
59302$at_check_filter
59303at_fn_diff_devnull "$at_stderr" || at_failed=:
59304at_fn_diff_devnull "$at_stdout" || at_failed=:
59305at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:598"
59306$at_failed && at_fn_log_failure
59307$at_traceon; }
59308
59309{ set +x
59310$as_echo "$at_srcdir/run_misc.at:599: \$COBCRUN_DIRECT ./prog"
59311at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:599"
59312( $at_check_trace; $COBCRUN_DIRECT ./prog
59313) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59314at_status=$? at_failed=false
59315$at_check_filter
59316at_fn_diff_devnull "$at_stderr" || at_failed=:
59317at_fn_diff_devnull "$at_stdout" || at_failed=:
59318at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:599"
59319$at_failed && at_fn_log_failure
59320$at_traceon; }
59321
59322
59323  set +x
59324  $at_times_p && times >"$at_times_file"
59325) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59326read at_status <"$at_status_file"
59327#AT_STOP_585
59328#AT_START_586
59329at_fn_group_banner 586 'run_misc.at:604' \
59330  "MOVE with group refmod" "                         " 4
59331at_xfail=no
59332(
59333  $as_echo "586. $at_setup_line: testing $at_desc ..."
59334  $at_traceon
59335
59336
59337
59338cat >prog.cob <<'_ATEOF'
59339
59340       IDENTIFICATION   DIVISION.
59341       PROGRAM-ID.      prog.
59342       DATA             DIVISION.
59343       WORKING-STORAGE  SECTION.
59344       01 G.
59345         02 X           PIC 9999 VALUE 1234.
59346       PROCEDURE        DIVISION.
59347           MOVE "99" TO G(3:2).
59348           IF G NOT = "1299"
59349              DISPLAY G NO ADVANCING
59350              END-DISPLAY
59351           END-IF.
59352           STOP RUN.
59353_ATEOF
59354
59355
59356{ set +x
59357$as_echo "$at_srcdir/run_misc.at:623: \$COMPILE prog.cob"
59358at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:623"
59359( $at_check_trace; $COMPILE prog.cob
59360) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59361at_status=$? at_failed=false
59362$at_check_filter
59363at_fn_diff_devnull "$at_stderr" || at_failed=:
59364at_fn_diff_devnull "$at_stdout" || at_failed=:
59365at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:623"
59366$at_failed && at_fn_log_failure
59367$at_traceon; }
59368
59369{ set +x
59370$as_echo "$at_srcdir/run_misc.at:624: \$COBCRUN_DIRECT ./prog"
59371at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:624"
59372( $at_check_trace; $COBCRUN_DIRECT ./prog
59373) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59374at_status=$? at_failed=false
59375$at_check_filter
59376at_fn_diff_devnull "$at_stderr" || at_failed=:
59377at_fn_diff_devnull "$at_stdout" || at_failed=:
59378at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:624"
59379$at_failed && at_fn_log_failure
59380$at_traceon; }
59381
59382
59383  set +x
59384  $at_times_p && times >"$at_times_file"
59385) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59386read at_status <"$at_status_file"
59387#AT_STOP_586
59388#AT_START_587
59389at_fn_group_banner 587 'run_misc.at:629' \
59390  "MOVE indexes" "                                   " 4
59391at_xfail=no
59392(
59393  $as_echo "587. $at_setup_line: testing $at_desc ..."
59394  $at_traceon
59395
59396
59397
59398cat >prog.cob <<'_ATEOF'
59399
59400       IDENTIFICATION   DIVISION.
59401       PROGRAM-ID.      prog.
59402       DATA             DIVISION.
59403       WORKING-STORAGE  SECTION.
59404       01 G.
59405         02 X           PIC X OCCURS 10 INDEXED I.
59406       PROCEDURE        DIVISION.
59407           SET I TO ZERO.
59408           MOVE I TO X(1).
59409           IF X(1) NOT = "0"
59410              DISPLAY X(1) NO ADVANCING
59411              END-DISPLAY
59412           END-IF.
59413           STOP RUN.
59414_ATEOF
59415
59416
59417{ set +x
59418$as_echo "$at_srcdir/run_misc.at:649: \$COMPILE prog.cob"
59419at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:649"
59420( $at_check_trace; $COMPILE prog.cob
59421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59422at_status=$? at_failed=false
59423$at_check_filter
59424at_fn_diff_devnull "$at_stderr" || at_failed=:
59425at_fn_diff_devnull "$at_stdout" || at_failed=:
59426at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:649"
59427$at_failed && at_fn_log_failure
59428$at_traceon; }
59429
59430{ set +x
59431$as_echo "$at_srcdir/run_misc.at:650: \$COBCRUN_DIRECT ./prog"
59432at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:650"
59433( $at_check_trace; $COBCRUN_DIRECT ./prog
59434) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59435at_status=$? at_failed=false
59436$at_check_filter
59437at_fn_diff_devnull "$at_stderr" || at_failed=:
59438at_fn_diff_devnull "$at_stdout" || at_failed=:
59439at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:650"
59440$at_failed && at_fn_log_failure
59441$at_traceon; }
59442
59443
59444  set +x
59445  $at_times_p && times >"$at_times_file"
59446) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59447read at_status <"$at_status_file"
59448#AT_STOP_587
59449#AT_START_588
59450at_fn_group_banner 588 'run_misc.at:655' \
59451  "MOVE X'00'" "                                     " 4
59452at_xfail=no
59453(
59454  $as_echo "588. $at_setup_line: testing $at_desc ..."
59455  $at_traceon
59456
59457
59458
59459cat >dump.c <<'_ATEOF'
59460
59461#include <stdio.h>
59462#include <libcob.h>
59463
59464COB_EXT_EXPORT int
59465dump (unsigned char *data)
59466{
59467  printf ("%02x%02x%02x", data[0], data[1], data[2]);
59468  return 0;
59469}
59470_ATEOF
59471
59472
59473cat >prog.cob <<'_ATEOF'
59474
59475       IDENTIFICATION   DIVISION.
59476       PROGRAM-ID.      prog.
59477       DATA             DIVISION.
59478       WORKING-STORAGE  SECTION.
59479       01 X             PIC XXX.
59480       PROCEDURE        DIVISION.
59481           MOVE X"000102" TO X.
59482           CALL "dump" USING X
59483           END-CALL.
59484           STOP RUN.
59485_ATEOF
59486
59487
59488{ set +x
59489$as_echo "$at_srcdir/run_misc.at:683: \$COMPILE_MODULE dump.c"
59490at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_misc.at:683"
59491( $at_check_trace; $COMPILE_MODULE dump.c
59492) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59493at_status=$? at_failed=false
59494$at_check_filter
59495at_fn_diff_devnull "$at_stderr" || at_failed=:
59496at_fn_diff_devnull "$at_stdout" || at_failed=:
59497at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:683"
59498$at_failed && at_fn_log_failure
59499$at_traceon; }
59500
59501{ set +x
59502$as_echo "$at_srcdir/run_misc.at:684: \$COMPILE prog.cob"
59503at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:684"
59504( $at_check_trace; $COMPILE prog.cob
59505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59506at_status=$? at_failed=false
59507$at_check_filter
59508at_fn_diff_devnull "$at_stderr" || at_failed=:
59509at_fn_diff_devnull "$at_stdout" || at_failed=:
59510at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:684"
59511$at_failed && at_fn_log_failure
59512$at_traceon; }
59513
59514{ set +x
59515$as_echo "$at_srcdir/run_misc.at:685: \$COBCRUN_DIRECT ./prog"
59516at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:685"
59517( $at_check_trace; $COBCRUN_DIRECT ./prog
59518) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59519at_status=$? at_failed=false
59520$at_check_filter
59521at_fn_diff_devnull "$at_stderr" || at_failed=:
59522echo >>"$at_stdout"; $as_echo "000102" | \
59523  $at_diff - "$at_stdout" || at_failed=:
59524at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:685"
59525$at_failed && at_fn_log_failure
59526$at_traceon; }
59527
59528
59529  set +x
59530  $at_times_p && times >"$at_times_file"
59531) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59532read at_status <"$at_status_file"
59533#AT_STOP_588
59534#AT_START_589
59535at_fn_group_banner 589 'run_misc.at:690' \
59536  "MOVE Z'literal'" "                                " 4
59537at_xfail=no
59538(
59539  $as_echo "589. $at_setup_line: testing $at_desc ..."
59540  $at_traceon
59541
59542
59543
59544cat >prog.cob <<'_ATEOF'
59545
59546       IDENTIFICATION   DIVISION.
59547       PROGRAM-ID.      prog.
59548       DATA             DIVISION.
59549       WORKING-STORAGE  SECTION.
59550       01  X            PIC XXXX.
59551       01  XRED REDEFINES X.
59552           03  XBYTE1   PIC X.
59553           03  XBYTE2   PIC X.
59554           03  XBYTE3   PIC X.
59555           03  XBYTE4   PIC X.
59556       PROCEDURE        DIVISION.
59557           MOVE Z"012" TO X.
59558           IF XBYTE1 = "0" AND
59559              XBYTE2 = "1" AND
59560              XBYTE3 = "2" AND
59561              XBYTE4 = LOW-VALUE
59562              DISPLAY "OK" NO ADVANCING
59563              END-DISPLAY
59564           ELSE
59565              DISPLAY "X = " X (1:3) NO ADVANCING
59566              END-DISPLAY
59567              IF XBYTE4 = LOW-VALUE
59568                 DISPLAY " WITH LOW-VALUE"
59569                 END-DISPLAY
59570              ELSE
59571                 DISPLAY " WITHOUT LOW-VALUE BUT '" XBYTE4 "'"
59572                 END-DISPLAY
59573              END-IF
59574           END-IF.
59575           STOP RUN.
59576_ATEOF
59577
59578
59579{ set +x
59580$as_echo "$at_srcdir/run_misc.at:726: \$COMPILE prog.cob"
59581at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:726"
59582( $at_check_trace; $COMPILE prog.cob
59583) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59584at_status=$? at_failed=false
59585$at_check_filter
59586at_fn_diff_devnull "$at_stderr" || at_failed=:
59587at_fn_diff_devnull "$at_stdout" || at_failed=:
59588at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:726"
59589$at_failed && at_fn_log_failure
59590$at_traceon; }
59591
59592{ set +x
59593$as_echo "$at_srcdir/run_misc.at:727: \$COBCRUN_DIRECT ./prog"
59594at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:727"
59595( $at_check_trace; $COBCRUN_DIRECT ./prog
59596) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59597at_status=$? at_failed=false
59598$at_check_filter
59599at_fn_diff_devnull "$at_stderr" || at_failed=:
59600echo >>"$at_stdout"; $as_echo "OK" | \
59601  $at_diff - "$at_stdout" || at_failed=:
59602at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:727"
59603$at_failed && at_fn_log_failure
59604$at_traceon; }
59605
59606
59607  set +x
59608  $at_times_p && times >"$at_times_file"
59609) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59610read at_status <"$at_status_file"
59611#AT_STOP_589
59612#AT_START_590
59613at_fn_group_banner 590 'run_misc.at:732' \
59614  "Floating continuation indicator" "                " 4
59615at_xfail=no
59616(
59617  $as_echo "590. $at_setup_line: testing $at_desc ..."
59618  $at_traceon
59619
59620
59621
59622cat >prog.cob <<'_ATEOF'
59623
59624       IDENTIFICATION   DIVISION.
59625       PROGRAM-ID.      prog.
59626       DATA             DIVISION.
59627       WORKING-STORAGE  SECTION.
59628       PROCEDURE        DIVISION.
59629           DISPLAY "OK"-
59630            "OK"
59631             NO ADVANCING
59632           END-DISPLAY
59633           STOP RUN.
59634_ATEOF
59635
59636
59637{ set +x
59638$as_echo "$at_srcdir/run_misc.at:748: \$COMPILE prog.cob"
59639at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:748"
59640( $at_check_trace; $COMPILE prog.cob
59641) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59642at_status=$? at_failed=false
59643$at_check_filter
59644at_fn_diff_devnull "$at_stderr" || at_failed=:
59645at_fn_diff_devnull "$at_stdout" || at_failed=:
59646at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:748"
59647$at_failed && at_fn_log_failure
59648$at_traceon; }
59649
59650{ set +x
59651$as_echo "$at_srcdir/run_misc.at:749: \$COBCRUN_DIRECT ./prog"
59652at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:749"
59653( $at_check_trace; $COBCRUN_DIRECT ./prog
59654) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59655at_status=$? at_failed=false
59656$at_check_filter
59657at_fn_diff_devnull "$at_stderr" || at_failed=:
59658echo >>"$at_stdout"; $as_echo "OKOK" | \
59659  $at_diff - "$at_stdout" || at_failed=:
59660at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:749"
59661$at_failed && at_fn_log_failure
59662$at_traceon; }
59663
59664
59665  set +x
59666  $at_times_p && times >"$at_times_file"
59667) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59668read at_status <"$at_status_file"
59669#AT_STOP_590
59670#AT_START_591
59671at_fn_group_banner 591 'run_misc.at:754' \
59672  "Fixed continuation indicator" "                   " 4
59673at_xfail=no
59674(
59675  $as_echo "591. $at_setup_line: testing $at_desc ..."
59676  $at_traceon
59677
59678
59679cat >prog.cob <<'_ATEOF'
59680
59681       IDENTIFICATION   DIVISION.
59682       PROGRAM-ID.      prog.
59683       DATA             DIVISION.
59684       WORKING-STORAGE  SECTION.
59685       01 X             PIC X(333) VALUE
59686           '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX
59687      -    'YZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV
59688      -    'WXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST
59689      -    'UVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR
59690      -    'STUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
59691      -             'QRSTUVWXYZ'.
59692       PROCEDURE        DIVISION.
59693           DISPLAY X NO ADVANCING
59694           END-DISPLAY.
59695           DISPLAY '_'
59696           END-DISPLAY.
59697           MOVE
59698           "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
59699      -    "89abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345
59700      -    "6789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123
59701      -    "456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01
59702      -     "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
59703      -                                                               "Z
59704      -             "0123456789" TO X.
59705           DISPLAY X NO ADVANCING
59706           END-DISPLAY.
59707           DISPLAY '_'
59708           END-DISPLAY.
59709           STOP RUN.
59710_ATEOF
59711
59712
59713{ set +x
59714$as_echo "$at_srcdir/run_misc.at:788: \$COMPILE prog.cob"
59715at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:788"
59716( $at_check_trace; $COMPILE prog.cob
59717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59718at_status=$? at_failed=false
59719$at_check_filter
59720at_fn_diff_devnull "$at_stderr" || at_failed=:
59721at_fn_diff_devnull "$at_stdout" || at_failed=:
59722at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:788"
59723$at_failed && at_fn_log_failure
59724$at_traceon; }
59725
59726{ set +x
59727$as_echo "$at_srcdir/run_misc.at:789: \$COBCRUN_DIRECT ./prog"
59728at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:789"
59729( $at_check_trace; $COBCRUN_DIRECT ./prog
59730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59731at_status=$? at_failed=false
59732$at_check_filter
59733at_fn_diff_devnull "$at_stderr" || at_failed=:
59734echo >>"$at_stdout"; $as_echo "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ                       _
59735abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789                       _
59736" | \
59737  $at_diff - "$at_stdout" || at_failed=:
59738at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:789"
59739$at_failed && at_fn_log_failure
59740$at_traceon; }
59741
59742
59743  set +x
59744  $at_times_p && times >"$at_times_file"
59745) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59746read at_status <"$at_status_file"
59747#AT_STOP_591
59748#AT_START_592
59749at_fn_group_banner 592 'run_misc.at:796' \
59750  "Concatenation operator" "                         " 4
59751at_xfail=no
59752(
59753  $as_echo "592. $at_setup_line: testing $at_desc ..."
59754  $at_traceon
59755
59756
59757
59758cat >prog.cob <<'_ATEOF'
59759
59760       IDENTIFICATION   DIVISION.
59761       PROGRAM-ID.      prog.
59762       DATA             DIVISION.
59763       WORKING-STORAGE  SECTION.
59764       77 STR           PIC X(05).
59765       PROCEDURE        DIVISION.
59766           MOVE "OK" & " "
59767            & "OK"
59768             TO STR
59769           DISPLAY STR NO ADVANCING
59770           END-DISPLAY
59771           STOP RUN.
59772_ATEOF
59773
59774
59775{ set +x
59776$as_echo "$at_srcdir/run_misc.at:814: \$COMPILE prog.cob"
59777at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:814"
59778( $at_check_trace; $COMPILE prog.cob
59779) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59780at_status=$? at_failed=false
59781$at_check_filter
59782at_fn_diff_devnull "$at_stderr" || at_failed=:
59783at_fn_diff_devnull "$at_stdout" || at_failed=:
59784at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:814"
59785$at_failed && at_fn_log_failure
59786$at_traceon; }
59787
59788{ set +x
59789$as_echo "$at_srcdir/run_misc.at:815: \$COBCRUN_DIRECT ./prog"
59790at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:815"
59791( $at_check_trace; $COBCRUN_DIRECT ./prog
59792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59793at_status=$? at_failed=false
59794$at_check_filter
59795at_fn_diff_devnull "$at_stderr" || at_failed=:
59796echo >>"$at_stdout"; $as_echo "OK OK" | \
59797  $at_diff - "$at_stdout" || at_failed=:
59798at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:815"
59799$at_failed && at_fn_log_failure
59800$at_traceon; }
59801
59802
59803  set +x
59804  $at_times_p && times >"$at_times_file"
59805) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59806read at_status <"$at_status_file"
59807#AT_STOP_592
59808#AT_START_593
59809at_fn_group_banner 593 'run_misc.at:820' \
59810  "SOURCE FIXED/FREE directives" "                   " 4
59811at_xfail=no
59812(
59813  $as_echo "593. $at_setup_line: testing $at_desc ..."
59814  $at_traceon
59815
59816
59817
59818cat >prog.cob <<'_ATEOF'
59819
59820       IDENTIFICATION   DIVISION.
59821       PROGRAM-ID.      prog.
59822       >>SOURCE FREE
59823   DATA             DIVISION.
59824   WORKING-STORAGE  SECTION.
59825   >>SOURCE FIXED
59826       PROCEDURE        DIVISION.                                       FIXED
59827             DISPLAY "OK" NO ADVANCING
59828             END-DISPLAY.
59829       >>SOURCE FREE
59830                                                                        DISPLAY
59831   "OK"
59832 NO ADVANCING
59833   END-DISPLAY.
59834   >>SET SOURCEFORMAT "FIXED"
59835             DISPLAY "OK" NO ADVANCING                                  FIXED
59836             END-DISPLAY.
59837       >>SET SOURCEFORMAT "FREE"
59838                                                                        DISPLAY
59839   "OK"
59840 NO ADVANCING
59841   END-DISPLAY.
59842             STOP RUN.
59843_ATEOF
59844
59845
59846{ set +x
59847$as_echo "$at_srcdir/run_misc.at:849: \$COMPILE prog.cob"
59848at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:849"
59849( $at_check_trace; $COMPILE prog.cob
59850) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59851at_status=$? at_failed=false
59852$at_check_filter
59853at_fn_diff_devnull "$at_stderr" || at_failed=:
59854at_fn_diff_devnull "$at_stdout" || at_failed=:
59855at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:849"
59856$at_failed && at_fn_log_failure
59857$at_traceon; }
59858
59859{ set +x
59860$as_echo "$at_srcdir/run_misc.at:850: \$COBCRUN_DIRECT ./prog"
59861at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:850"
59862( $at_check_trace; $COBCRUN_DIRECT ./prog
59863) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59864at_status=$? at_failed=false
59865$at_check_filter
59866at_fn_diff_devnull "$at_stderr" || at_failed=:
59867echo >>"$at_stdout"; $as_echo "OKOKOKOK" | \
59868  $at_diff - "$at_stdout" || at_failed=:
59869at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:850"
59870$at_failed && at_fn_log_failure
59871$at_traceon; }
59872
59873
59874  set +x
59875  $at_times_p && times >"$at_times_file"
59876) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59877read at_status <"$at_status_file"
59878#AT_STOP_593
59879#AT_START_594
59880at_fn_group_banner 594 'run_misc.at:856' \
59881  "TURN directive" "                                 " 4
59882at_xfail=no
59883(
59884  $as_echo "594. $at_setup_line: testing $at_desc ..."
59885  $at_traceon
59886
59887
59888
59889# note: we only check here that the TURN directive applies
59890#       for more general tests, including command line options
59891#       and extension directives, see run_subscript.at, run_refmod.at
59892
59893cat >prog.cob <<'_ATEOF'
59894
59895       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON
59896       IDENTIFICATION DIVISION.
59897       PROGRAM-ID. prog.
59898
59899       DATA DIVISION.
59900       WORKING-STORAGE SECTION.
59901       01  x VALUE "12345!".
59902           03  y PIC X OCCURS 5 TIMES.
59903           03  z PIC X.
59904       01  idx PIC 99 VALUE 6.
59905
59906       PROCEDURE DIVISION.
59907       >>TURN EC-BOUND-SUBSCRIPT CHECKING OFF
59908           DISPLAY y (idx) WITH NO ADVANCING
59909       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON WITH LOCATION
59910       >>TURN EC-BOUND, EC-PROGRAM CHECKING OFF
59911           DISPLAY y (idx) WITH NO ADVANCING
59912       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON
59913           DISPLAY y (idx) WITH NO ADVANCING
59914           .
59915_ATEOF
59916
59917
59918{ set +x
59919$as_echo "$at_srcdir/run_misc.at:886: \$COMPILE prog.cob"
59920at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:886"
59921( $at_check_trace; $COMPILE prog.cob
59922) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59923at_status=$? at_failed=false
59924$at_check_filter
59925at_fn_diff_devnull "$at_stderr" || at_failed=:
59926at_fn_diff_devnull "$at_stdout" || at_failed=:
59927at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:886"
59928$at_failed && at_fn_log_failure
59929$at_traceon; }
59930
59931{ set +x
59932$as_echo "$at_srcdir/run_misc.at:887: \$COBCRUN_DIRECT ./prog"
59933at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:887"
59934( $at_check_trace; $COBCRUN_DIRECT ./prog
59935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59936at_status=$? at_failed=false
59937$at_check_filter
59938echo >>"$at_stderr"; $as_echo "libcob: prog.cob:20: error: subscript of 'y' out of bounds: 6
59939note: maximum subscript for 'y': 5
59940" | \
59941  $at_diff - "$at_stderr" || at_failed=:
59942echo >>"$at_stdout"; $as_echo "!!" | \
59943  $at_diff - "$at_stdout" || at_failed=:
59944at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:887"
59945$at_failed && at_fn_log_failure
59946$at_traceon; }
59947
59948
59949  set +x
59950  $at_times_p && times >"$at_times_file"
59951) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59952read at_status <"$at_status_file"
59953#AT_STOP_594
59954#AT_START_595
59955at_fn_group_banner 595 'run_misc.at:897' \
59956  "Level 01 subscripts" "                            " 4
59957at_xfail=no
59958(
59959  $as_echo "595. $at_setup_line: testing $at_desc ..."
59960  $at_traceon
59961
59962
59963
59964cat >prog.cob <<'_ATEOF'
59965
59966       IDENTIFICATION   DIVISION.
59967       PROGRAM-ID.      prog.
59968       DATA             DIVISION.
59969       WORKING-STORAGE  SECTION.
59970       01 X             PIC X OCCURS 10.
59971       PROCEDURE        DIVISION.
59972           STOP RUN.
59973_ATEOF
59974
59975
59976{ set +x
59977$as_echo "$at_srcdir/run_misc.at:910: \$COMPILE_ONLY -std=cobol2014 prog.cob"
59978at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "run_misc.at:910"
59979( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
59980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
59981at_status=$? at_failed=false
59982$at_check_filter
59983echo >>"$at_stderr"; $as_echo "prog.cob:6: error: level 01 item 'X' cannot have a OCCURS clause
59984" | \
59985  $at_diff - "$at_stderr" || at_failed=:
59986at_fn_diff_devnull "$at_stdout" || at_failed=:
59987at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:910"
59988$at_failed && at_fn_log_failure
59989$at_traceon; }
59990
59991
59992  set +x
59993  $at_times_p && times >"$at_times_file"
59994) 5>&1 2>&1 7>&- | eval $at_tee_pipe
59995read at_status <"$at_status_file"
59996#AT_STOP_595
59997#AT_START_596
59998at_fn_group_banner 596 'run_misc.at:919' \
59999  "Class check with reference modification" "        " 4
60000at_xfail=no
60001(
60002  $as_echo "596. $at_setup_line: testing $at_desc ..."
60003  $at_traceon
60004
60005
60006
60007cat >prog.cob <<'_ATEOF'
60008
60009       IDENTIFICATION   DIVISION.
60010       PROGRAM-ID.      prog.
60011       DATA             DIVISION.
60012       WORKING-STORAGE  SECTION.
60013       01 X             PIC X(6) VALUE "123   ".
60014       PROCEDURE        DIVISION.
60015           IF X(1:3) NUMERIC
60016              STOP RUN
60017           END-IF.
60018           DISPLAY "NG" NO ADVANCING
60019           END-DISPLAY.
60020           STOP RUN.
60021_ATEOF
60022
60023
60024{ set +x
60025$as_echo "$at_srcdir/run_misc.at:937: \$COMPILE prog.cob"
60026at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:937"
60027( $at_check_trace; $COMPILE prog.cob
60028) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60029at_status=$? at_failed=false
60030$at_check_filter
60031at_fn_diff_devnull "$at_stderr" || at_failed=:
60032at_fn_diff_devnull "$at_stdout" || at_failed=:
60033at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:937"
60034$at_failed && at_fn_log_failure
60035$at_traceon; }
60036
60037{ set +x
60038$as_echo "$at_srcdir/run_misc.at:938: \$COBCRUN_DIRECT ./prog"
60039at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:938"
60040( $at_check_trace; $COBCRUN_DIRECT ./prog
60041) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60042at_status=$? at_failed=false
60043$at_check_filter
60044at_fn_diff_devnull "$at_stderr" || at_failed=:
60045at_fn_diff_devnull "$at_stdout" || at_failed=:
60046at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:938"
60047$at_failed && at_fn_log_failure
60048$at_traceon; }
60049
60050
60051  set +x
60052  $at_times_p && times >"$at_times_file"
60053) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60054read at_status <"$at_status_file"
60055#AT_STOP_596
60056#AT_START_597
60057at_fn_group_banner 597 'run_misc.at:943' \
60058  "Index and parenthesized expression" "             " 4
60059at_xfail=no
60060(
60061  $as_echo "597. $at_setup_line: testing $at_desc ..."
60062  $at_traceon
60063
60064
60065
60066cat >prog.cob <<'_ATEOF'
60067
60068       IDENTIFICATION   DIVISION.
60069       PROGRAM-ID.      prog.
60070       DATA             DIVISION.
60071       WORKING-STORAGE  SECTION.
60072       01 G.
60073         02 X           PIC X OCCURS 1 INDEXED BY I.
60074       PROCEDURE        DIVISION.
60075         IF I < (I + 2)
60076           DISPLAY "OK" NO ADVANCING
60077           END-DISPLAY
60078         END-IF.
60079         STOP RUN.
60080_ATEOF
60081
60082
60083{ set +x
60084$as_echo "$at_srcdir/run_misc.at:961: \$COMPILE prog.cob"
60085at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:961"
60086( $at_check_trace; $COMPILE prog.cob
60087) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60088at_status=$? at_failed=false
60089$at_check_filter
60090at_fn_diff_devnull "$at_stderr" || at_failed=:
60091at_fn_diff_devnull "$at_stdout" || at_failed=:
60092at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:961"
60093$at_failed && at_fn_log_failure
60094$at_traceon; }
60095
60096{ set +x
60097$as_echo "$at_srcdir/run_misc.at:962: \$COBCRUN_DIRECT ./prog"
60098at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:962"
60099( $at_check_trace; $COBCRUN_DIRECT ./prog
60100) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60101at_status=$? at_failed=false
60102$at_check_filter
60103at_fn_diff_devnull "$at_stderr" || at_failed=:
60104echo >>"$at_stdout"; $as_echo "OK" | \
60105  $at_diff - "$at_stdout" || at_failed=:
60106at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:962"
60107$at_failed && at_fn_log_failure
60108$at_traceon; }
60109
60110
60111  set +x
60112  $at_times_p && times >"$at_times_file"
60113) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60114read at_status <"$at_status_file"
60115#AT_STOP_597
60116#AT_START_598
60117at_fn_group_banner 598 'run_misc.at:967' \
60118  "Alphanumeric and binary numeric" "                " 4
60119at_xfail=no
60120(
60121  $as_echo "598. $at_setup_line: testing $at_desc ..."
60122  $at_traceon
60123
60124
60125
60126cat >prog.cob <<'_ATEOF'
60127
60128       IDENTIFICATION   DIVISION.
60129       PROGRAM-ID.      prog.
60130       DATA             DIVISION.
60131       WORKING-STORAGE  SECTION.
60132       01 X-X           PIC XXXX VALUE "0001".
60133       01 X-9           PIC 9999 COMP VALUE 1.
60134       PROCEDURE        DIVISION.
60135         IF X-X = X-9
60136            STOP RUN
60137         END-IF.
60138         DISPLAY "NG" NO ADVANCING
60139         END-DISPLAY
60140         STOP RUN.
60141_ATEOF
60142
60143
60144{ set +x
60145$as_echo "$at_srcdir/run_misc.at:986: \$COMPILE prog.cob"
60146at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:986"
60147( $at_check_trace; $COMPILE prog.cob
60148) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60149at_status=$? at_failed=false
60150$at_check_filter
60151at_fn_diff_devnull "$at_stderr" || at_failed=:
60152at_fn_diff_devnull "$at_stdout" || at_failed=:
60153at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:986"
60154$at_failed && at_fn_log_failure
60155$at_traceon; }
60156
60157{ set +x
60158$as_echo "$at_srcdir/run_misc.at:987: \$COBCRUN_DIRECT ./prog"
60159at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:987"
60160( $at_check_trace; $COBCRUN_DIRECT ./prog
60161) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60162at_status=$? at_failed=false
60163$at_check_filter
60164at_fn_diff_devnull "$at_stderr" || at_failed=:
60165at_fn_diff_devnull "$at_stdout" || at_failed=:
60166at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:987"
60167$at_failed && at_fn_log_failure
60168$at_traceon; }
60169
60170
60171  set +x
60172  $at_times_p && times >"$at_times_file"
60173) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60174read at_status <"$at_status_file"
60175#AT_STOP_598
60176#AT_START_599
60177at_fn_group_banner 599 'run_misc.at:992' \
60178  "Non-numeric data in numeric items" "              " 4
60179at_xfail=no
60180(
60181  $as_echo "599. $at_setup_line: testing $at_desc ..."
60182  $at_traceon
60183
60184
60185
60186
60187cat >prog.cob <<'_ATEOF'
60188
60189       IDENTIFICATION   DIVISION.
60190       PROGRAM-ID.      prog.
60191       DATA             DIVISION.
60192       WORKING-STORAGE  SECTION.
60193       01 X.
60194          03 X-NUM      PIC 9(06) VALUE 123.
60195       77 NUM           PIC 9(06).
60196       PROCEDURE        DIVISION.
60197           MOVE x"0000" TO X (2:2)
60198           IF X-NUM NUMERIC
60199              DISPLAY "low-value is numeric" UPON SYSERR
60200              END-DISPLAY
60201           END-IF
60202           MOVE x"01" TO X (3:1)
60203           IF X-NUM NUMERIC
60204              DISPLAY "SOH is numeric" UPON SYSERR
60205              END-DISPLAY
60206           END-IF
60207           MOVE X-NUM TO NUM
60208           DISPLAY "test over"
60209           END-DISPLAY
60210      *
60211           GOBACK.
60212_ATEOF
60213
60214
60215cat >prog2.cob <<'_ATEOF'
60216
60217       IDENTIFICATION   DIVISION.
60218       PROGRAM-ID.      prog2.
60219       DATA             DIVISION.
60220       WORKING-STORAGE  SECTION.
60221       01 X.
60222          03 X-NUM      PIC 9(06) PACKED-DECIMAL VALUE 123.
60223       77 NUM           PIC 9(06).
60224       PROCEDURE        DIVISION.
60225           MOVE x"0A" TO X (2:1)
60226           IF X-NUM NUMERIC
60227              DISPLAY "bad prog"
60228              END-DISPLAY
60229           END-IF
60230           MOVE X-NUM TO NUM
60231           DISPLAY "test over"
60232           END-DISPLAY
60233      *
60234           GOBACK.
60235_ATEOF
60236
60237
60238{ set +x
60239$as_echo "$at_srcdir/run_misc.at:1043: \$COMPILE prog.cob"
60240at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1043"
60241( $at_check_trace; $COMPILE prog.cob
60242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60243at_status=$? at_failed=false
60244$at_check_filter
60245at_fn_diff_devnull "$at_stderr" || at_failed=:
60246at_fn_diff_devnull "$at_stdout" || at_failed=:
60247at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1043"
60248$at_failed && at_fn_log_failure
60249$at_traceon; }
60250
60251{ set +x
60252$as_echo "$at_srcdir/run_misc.at:1044: \$COBC -x -o unchecked_prog prog.cob"
60253at_fn_check_prepare_dynamic "$COBC -x -o unchecked_prog prog.cob" "run_misc.at:1044"
60254( $at_check_trace; $COBC -x -o unchecked_prog prog.cob
60255) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60256at_status=$? at_failed=false
60257$at_check_filter
60258at_fn_diff_devnull "$at_stderr" || at_failed=:
60259at_fn_diff_devnull "$at_stdout" || at_failed=:
60260at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1044"
60261$at_failed && at_fn_log_failure
60262$at_traceon; }
60263
60264{ set +x
60265$as_echo "$at_srcdir/run_misc.at:1045: \$COBCRUN_DIRECT ./unchecked_prog"
60266at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./unchecked_prog" "run_misc.at:1045"
60267( $at_check_trace; $COBCRUN_DIRECT ./unchecked_prog
60268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60269at_status=$? at_failed=false
60270$at_check_filter
60271at_fn_diff_devnull "$at_stderr" || at_failed=:
60272echo >>"$at_stdout"; $as_echo "test over
60273" | \
60274  $at_diff - "$at_stdout" || at_failed=:
60275at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1045"
60276$at_failed && at_fn_log_failure
60277$at_traceon; }
60278
60279{ set +x
60280$as_echo "$at_srcdir/run_misc.at:1048: \$COBCRUN_DIRECT ./prog"
60281at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1048"
60282( $at_check_trace; $COBCRUN_DIRECT ./prog
60283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60284at_status=$? at_failed=false
60285$at_check_filter
60286echo >>"$at_stderr"; $as_echo "libcob: prog.cob:20: error: 'X-NUM' (Type: NUMERIC DISPLAY) not numeric: '0\\000\\001123'
60287" | \
60288  $at_diff - "$at_stderr" || at_failed=:
60289at_fn_diff_devnull "$at_stdout" || at_failed=:
60290at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1048"
60291$at_failed && at_fn_log_failure
60292$at_traceon; }
60293
60294
60295{ set +x
60296$as_echo "$at_srcdir/run_misc.at:1052: \$COMPILE prog2.cob"
60297at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:1052"
60298( $at_check_trace; $COMPILE prog2.cob
60299) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60300at_status=$? at_failed=false
60301$at_check_filter
60302at_fn_diff_devnull "$at_stderr" || at_failed=:
60303at_fn_diff_devnull "$at_stdout" || at_failed=:
60304at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1052"
60305$at_failed && at_fn_log_failure
60306$at_traceon; }
60307
60308{ set +x
60309$as_echo "$at_srcdir/run_misc.at:1053: \$COBC -x -o unchecked_prog2 prog2.cob"
60310at_fn_check_prepare_dynamic "$COBC -x -o unchecked_prog2 prog2.cob" "run_misc.at:1053"
60311( $at_check_trace; $COBC -x -o unchecked_prog2 prog2.cob
60312) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60313at_status=$? at_failed=false
60314$at_check_filter
60315at_fn_diff_devnull "$at_stderr" || at_failed=:
60316at_fn_diff_devnull "$at_stdout" || at_failed=:
60317at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1053"
60318$at_failed && at_fn_log_failure
60319$at_traceon; }
60320
60321{ set +x
60322$as_echo "$at_srcdir/run_misc.at:1054: \$COBCRUN_DIRECT ./unchecked_prog2"
60323at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./unchecked_prog2" "run_misc.at:1054"
60324( $at_check_trace; $COBCRUN_DIRECT ./unchecked_prog2
60325) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60326at_status=$? at_failed=false
60327$at_check_filter
60328at_fn_diff_devnull "$at_stderr" || at_failed=:
60329echo >>"$at_stdout"; $as_echo "test over
60330" | \
60331  $at_diff - "$at_stdout" || at_failed=:
60332at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1054"
60333$at_failed && at_fn_log_failure
60334$at_traceon; }
60335
60336{ set +x
60337$as_echo "$at_srcdir/run_misc.at:1057: \$COBCRUN_DIRECT ./prog2"
60338at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1057"
60339( $at_check_trace; $COBCRUN_DIRECT ./prog2
60340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60341at_status=$? at_failed=false
60342$at_check_filter
60343echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:15: error: 'X-NUM' (Type: PACKED-DECIMAL) not numeric: '0x000a123f'
60344" | \
60345  $at_diff - "$at_stderr" || at_failed=:
60346at_fn_diff_devnull "$at_stdout" || at_failed=:
60347at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1057"
60348$at_failed && at_fn_log_failure
60349$at_traceon; }
60350
60351
60352  set +x
60353  $at_times_p && times >"$at_times_file"
60354) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60355read at_status <"$at_status_file"
60356#AT_STOP_599
60357#AT_START_600
60358at_fn_group_banner 600 'run_misc.at:1066' \
60359  "Dynamic call with static linking" "               " 4
60360at_xfail=no
60361(
60362  $as_echo "600. $at_setup_line: testing $at_desc ..."
60363  $at_traceon
60364
60365
60366
60367cat >callee.cob <<'_ATEOF'
60368
60369       IDENTIFICATION   DIVISION.
60370       PROGRAM-ID.      callee.
60371       PROCEDURE        DIVISION.
60372           EXIT PROGRAM.
60373_ATEOF
60374
60375
60376cat >caller.cob <<'_ATEOF'
60377
60378       IDENTIFICATION   DIVISION.
60379       PROGRAM-ID.      caller.
60380       PROCEDURE        DIVISION.
60381           CALL "callee"
60382           END-CALL.
60383           STOP RUN.
60384_ATEOF
60385
60386
60387{ set +x
60388$as_echo "$at_srcdir/run_misc.at:1085: \$COMPILE_MODULE -c callee.cob"
60389at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee.cob" "run_misc.at:1085"
60390( $at_check_trace; $COMPILE_MODULE -c callee.cob
60391) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60392at_status=$? at_failed=false
60393$at_check_filter
60394at_fn_diff_devnull "$at_stderr" || at_failed=:
60395at_fn_diff_devnull "$at_stdout" || at_failed=:
60396at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1085"
60397$at_failed && at_fn_log_failure
60398$at_traceon; }
60399
60400{ set +x
60401$as_echo "$at_srcdir/run_misc.at:1086: \$COMPILE -c caller.cob"
60402at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1086"
60403( $at_check_trace; $COMPILE -c caller.cob
60404) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60405at_status=$? at_failed=false
60406$at_check_filter
60407at_fn_diff_devnull "$at_stderr" || at_failed=:
60408at_fn_diff_devnull "$at_stdout" || at_failed=:
60409at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1086"
60410$at_failed && at_fn_log_failure
60411$at_traceon; }
60412
60413{ set +x
60414$as_echo "$at_srcdir/run_misc.at:1087: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee.\$COB_OBJECT_EXT"
60415at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT" "run_misc.at:1087"
60416( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT
60417) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60418at_status=$? at_failed=false
60419$at_check_filter
60420at_fn_diff_devnull "$at_stderr" || at_failed=:
60421at_fn_diff_devnull "$at_stdout" || at_failed=:
60422at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1087"
60423$at_failed && at_fn_log_failure
60424$at_traceon; }
60425
60426{ set +x
60427$as_echo "$at_srcdir/run_misc.at:1088: \$COBCRUN_DIRECT ./prog"
60428at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1088"
60429( $at_check_trace; $COBCRUN_DIRECT ./prog
60430) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60431at_status=$? at_failed=false
60432$at_check_filter
60433at_fn_diff_devnull "$at_stderr" || at_failed=:
60434at_fn_diff_devnull "$at_stdout" || at_failed=:
60435at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1088"
60436$at_failed && at_fn_log_failure
60437$at_traceon; }
60438
60439{ set +x
60440$as_echo "$at_srcdir/run_misc.at:1089: \$COMPILE -o prog2 caller.cob callee.cob"
60441at_fn_check_prepare_dynamic "$COMPILE -o prog2 caller.cob callee.cob" "run_misc.at:1089"
60442( $at_check_trace; $COMPILE -o prog2 caller.cob callee.cob
60443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60444at_status=$? at_failed=false
60445$at_check_filter
60446at_fn_diff_devnull "$at_stderr" || at_failed=:
60447at_fn_diff_devnull "$at_stdout" || at_failed=:
60448at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1089"
60449$at_failed && at_fn_log_failure
60450$at_traceon; }
60451
60452{ set +x
60453$as_echo "$at_srcdir/run_misc.at:1090: \$COBCRUN_DIRECT ./prog2"
60454at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1090"
60455( $at_check_trace; $COBCRUN_DIRECT ./prog2
60456) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60457at_status=$? at_failed=false
60458$at_check_filter
60459at_fn_diff_devnull "$at_stderr" || at_failed=:
60460at_fn_diff_devnull "$at_stdout" || at_failed=:
60461at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1090"
60462$at_failed && at_fn_log_failure
60463$at_traceon; }
60464
60465
60466  set +x
60467  $at_times_p && times >"$at_times_file"
60468) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60469read at_status <"$at_status_file"
60470#AT_STOP_600
60471#AT_START_601
60472at_fn_group_banner 601 'run_misc.at:1095' \
60473  "Static call with static linking" "                " 4
60474at_xfail=no
60475(
60476  $as_echo "601. $at_setup_line: testing $at_desc ..."
60477  $at_traceon
60478
60479
60480
60481cat >callee.cob <<'_ATEOF'
60482
60483       IDENTIFICATION   DIVISION.
60484       PROGRAM-ID.      callee.
60485       PROCEDURE        DIVISION.
60486           EXIT PROGRAM.
60487_ATEOF
60488
60489
60490cat >caller.cob <<'_ATEOF'
60491
60492       IDENTIFICATION   DIVISION.
60493       PROGRAM-ID.      caller.
60494       PROCEDURE        DIVISION.
60495           CALL STATIC "callee"
60496           END-CALL.
60497           STOP RUN.
60498_ATEOF
60499
60500
60501{ set +x
60502$as_echo "$at_srcdir/run_misc.at:1114: \$COMPILE_MODULE -c callee.cob"
60503at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee.cob" "run_misc.at:1114"
60504( $at_check_trace; $COMPILE_MODULE -c callee.cob
60505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60506at_status=$? at_failed=false
60507$at_check_filter
60508at_fn_diff_devnull "$at_stderr" || at_failed=:
60509at_fn_diff_devnull "$at_stdout" || at_failed=:
60510at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1114"
60511$at_failed && at_fn_log_failure
60512$at_traceon; }
60513
60514{ set +x
60515$as_echo "$at_srcdir/run_misc.at:1115: \$COMPILE -c caller.cob"
60516at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1115"
60517( $at_check_trace; $COMPILE -c caller.cob
60518) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60519at_status=$? at_failed=false
60520$at_check_filter
60521at_fn_diff_devnull "$at_stderr" || at_failed=:
60522at_fn_diff_devnull "$at_stdout" || at_failed=:
60523at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1115"
60524$at_failed && at_fn_log_failure
60525$at_traceon; }
60526
60527{ set +x
60528$as_echo "$at_srcdir/run_misc.at:1116: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee.\$COB_OBJECT_EXT"
60529at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT" "run_misc.at:1116"
60530( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT
60531) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60532at_status=$? at_failed=false
60533$at_check_filter
60534at_fn_diff_devnull "$at_stderr" || at_failed=:
60535at_fn_diff_devnull "$at_stdout" || at_failed=:
60536at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1116"
60537$at_failed && at_fn_log_failure
60538$at_traceon; }
60539
60540{ set +x
60541$as_echo "$at_srcdir/run_misc.at:1117: \$COBCRUN_DIRECT ./prog"
60542at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1117"
60543( $at_check_trace; $COBCRUN_DIRECT ./prog
60544) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60545at_status=$? at_failed=false
60546$at_check_filter
60547at_fn_diff_devnull "$at_stderr" || at_failed=:
60548at_fn_diff_devnull "$at_stdout" || at_failed=:
60549at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1117"
60550$at_failed && at_fn_log_failure
60551$at_traceon; }
60552
60553{ set +x
60554$as_echo "$at_srcdir/run_misc.at:1118: \$COMPILE -o prog2 -static caller.cob callee.cob"
60555at_fn_check_prepare_dynamic "$COMPILE -o prog2 -static caller.cob callee.cob" "run_misc.at:1118"
60556( $at_check_trace; $COMPILE -o prog2 -static caller.cob callee.cob
60557) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60558at_status=$? at_failed=false
60559$at_check_filter
60560at_fn_diff_devnull "$at_stderr" || at_failed=:
60561at_fn_diff_devnull "$at_stdout" || at_failed=:
60562at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1118"
60563$at_failed && at_fn_log_failure
60564$at_traceon; }
60565
60566{ set +x
60567$as_echo "$at_srcdir/run_misc.at:1119: \$COBCRUN_DIRECT ./prog2"
60568at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1119"
60569( $at_check_trace; $COBCRUN_DIRECT ./prog2
60570) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60571at_status=$? at_failed=false
60572$at_check_filter
60573at_fn_diff_devnull "$at_stderr" || at_failed=:
60574at_fn_diff_devnull "$at_stdout" || at_failed=:
60575at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1119"
60576$at_failed && at_fn_log_failure
60577$at_traceon; }
60578
60579{ set +x
60580$as_echo "$at_srcdir/run_misc.at:1120: \$COMPILE -o prog3 caller.cob callee.cob"
60581at_fn_check_prepare_dynamic "$COMPILE -o prog3 caller.cob callee.cob" "run_misc.at:1120"
60582( $at_check_trace; $COMPILE -o prog3 caller.cob callee.cob
60583) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60584at_status=$? at_failed=false
60585$at_check_filter
60586at_fn_diff_devnull "$at_stderr" || at_failed=:
60587at_fn_diff_devnull "$at_stdout" || at_failed=:
60588at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1120"
60589$at_failed && at_fn_log_failure
60590$at_traceon; }
60591
60592{ set +x
60593$as_echo "$at_srcdir/run_misc.at:1121: \$COBCRUN_DIRECT ./prog3"
60594at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:1121"
60595( $at_check_trace; $COBCRUN_DIRECT ./prog3
60596) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60597at_status=$? at_failed=false
60598$at_check_filter
60599at_fn_diff_devnull "$at_stderr" || at_failed=:
60600at_fn_diff_devnull "$at_stdout" || at_failed=:
60601at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1121"
60602$at_failed && at_fn_log_failure
60603$at_traceon; }
60604
60605
60606  set +x
60607  $at_times_p && times >"$at_times_file"
60608) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60609read at_status <"$at_status_file"
60610#AT_STOP_601
60611#AT_START_602
60612at_fn_group_banner 602 'run_misc.at:1126' \
60613  "Dynamic CALL with ON EXCEPTION" "                 " 4
60614at_xfail=no
60615(
60616  $as_echo "602. $at_setup_line: testing $at_desc ..."
60617  $at_traceon
60618
60619
60620
60621
60622cat >caller.cob <<'_ATEOF'
60623
60624       IDENTIFICATION   DIVISION.
60625       PROGRAM-ID.      caller.
60626       PROCEDURE        DIVISION.
60627           CALL "callee1" ON EXCEPTION
60628              CALL "callee2" ON EXCEPTION
60629                  DISPLAY "neither calee1 nor callee2 found"
60630              END-CALL
60631           END-CALL
60632           GOBACK.
60633_ATEOF
60634
60635
60636cat >callee2.cob <<'_ATEOF'
60637
60638       IDENTIFICATION   DIVISION.
60639       PROGRAM-ID.      callee2.
60640       PROCEDURE        DIVISION.
60641           DISPLAY "this is callee2" NO ADVANCING
60642           GOBACK.
60643_ATEOF
60644
60645
60646{ set +x
60647$as_echo "$at_srcdir/run_misc.at:1150: \$COMPILE caller.cob"
60648at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1150"
60649( $at_check_trace; $COMPILE caller.cob
60650) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60651at_status=$? at_failed=false
60652$at_check_filter
60653at_fn_diff_devnull "$at_stderr" || at_failed=:
60654at_fn_diff_devnull "$at_stdout" || at_failed=:
60655at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1150"
60656$at_failed && at_fn_log_failure
60657$at_traceon; }
60658
60659{ set +x
60660$as_echo "$at_srcdir/run_misc.at:1151: \$COMPILE_MODULE callee2.cob"
60661at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1151"
60662( $at_check_trace; $COMPILE_MODULE callee2.cob
60663) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60664at_status=$? at_failed=false
60665$at_check_filter
60666at_fn_diff_devnull "$at_stderr" || at_failed=:
60667at_fn_diff_devnull "$at_stdout" || at_failed=:
60668at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1151"
60669$at_failed && at_fn_log_failure
60670$at_traceon; }
60671
60672{ set +x
60673$as_echo "$at_srcdir/run_misc.at:1152: \$COBCRUN_DIRECT ./caller"
60674at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1152"
60675( $at_check_trace; $COBCRUN_DIRECT ./caller
60676) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60677at_status=$? at_failed=false
60678$at_check_filter
60679at_fn_diff_devnull "$at_stderr" || at_failed=:
60680echo >>"$at_stdout"; $as_echo "this is callee2" | \
60681  $at_diff - "$at_stdout" || at_failed=:
60682at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1152"
60683$at_failed && at_fn_log_failure
60684$at_traceon; }
60685
60686
60687  set +x
60688  $at_times_p && times >"$at_times_file"
60689) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60690read at_status <"$at_status_file"
60691#AT_STOP_602
60692#AT_START_603
60693at_fn_group_banner 603 'run_misc.at:1158' \
60694  "Static CALL with ON EXCEPTION" "                  " 4
60695at_xfail=no
60696(
60697  $as_echo "603. $at_setup_line: testing $at_desc ..."
60698  $at_traceon
60699
60700
60701
60702
60703cat >caller.cob <<'_ATEOF'
60704
60705       IDENTIFICATION   DIVISION.
60706       PROGRAM-ID.      caller.
60707       PROCEDURE        DIVISION.
60708           CALL "callee1" ON EXCEPTION
60709              CALL "callee2" ON EXCEPTION
60710                  DISPLAY "neither calee1 nor callee2 found"
60711              END-CALL
60712           END-CALL
60713           GOBACK.
60714_ATEOF
60715
60716
60717cat >callee2.cob <<'_ATEOF'
60718
60719       IDENTIFICATION   DIVISION.
60720       PROGRAM-ID.      callee2.
60721       PROCEDURE        DIVISION.
60722           DISPLAY "this is callee2" NO ADVANCING
60723           GOBACK.
60724_ATEOF
60725
60726
60727
60728{ set +x
60729$as_echo "$at_srcdir/run_misc.at:1183: \$COMPILE_MODULE -c callee2.cob"
60730at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee2.cob" "run_misc.at:1183"
60731( $at_check_trace; $COMPILE_MODULE -c callee2.cob
60732) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60733at_status=$? at_failed=false
60734$at_check_filter
60735at_fn_diff_devnull "$at_stderr" || at_failed=:
60736at_fn_diff_devnull "$at_stdout" || at_failed=:
60737at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1183"
60738$at_failed && at_fn_log_failure
60739$at_traceon; }
60740
60741{ set +x
60742$as_echo "$at_srcdir/run_misc.at:1184: \$COMPILE -c caller.cob"
60743at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1184"
60744( $at_check_trace; $COMPILE -c caller.cob
60745) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60746at_status=$? at_failed=false
60747$at_check_filter
60748at_fn_diff_devnull "$at_stderr" || at_failed=:
60749at_fn_diff_devnull "$at_stdout" || at_failed=:
60750at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1184"
60751$at_failed && at_fn_log_failure
60752$at_traceon; }
60753
60754{ set +x
60755$as_echo "$at_srcdir/run_misc.at:1185: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee2.\$COB_OBJECT_EXT"
60756at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee2.$COB_OBJECT_EXT" "run_misc.at:1185"
60757( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee2.$COB_OBJECT_EXT
60758) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60759at_status=$? at_failed=false
60760$at_check_filter
60761at_fn_diff_devnull "$at_stderr" || at_failed=:
60762at_fn_diff_devnull "$at_stdout" || at_failed=:
60763at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1185"
60764$at_failed && at_fn_log_failure
60765$at_traceon; }
60766
60767{ set +x
60768$as_echo "$at_srcdir/run_misc.at:1186: \$COBCRUN_DIRECT ./prog"
60769at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1186"
60770( $at_check_trace; $COBCRUN_DIRECT ./prog
60771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60772at_status=$? at_failed=false
60773$at_check_filter
60774at_fn_diff_devnull "$at_stderr" || at_failed=:
60775echo >>"$at_stdout"; $as_echo "this is callee2" | \
60776  $at_diff - "$at_stdout" || at_failed=:
60777at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1186"
60778$at_failed && at_fn_log_failure
60779$at_traceon; }
60780
60781{ set +x
60782$as_echo "$at_srcdir/run_misc.at:1188: \$COMPILE -o prog2 -static caller.cob callee2.cob"
60783at_fn_check_prepare_dynamic "$COMPILE -o prog2 -static caller.cob callee2.cob" "run_misc.at:1188"
60784( $at_check_trace; $COMPILE -o prog2 -static caller.cob callee2.cob
60785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60786at_status=$? at_failed=false
60787$at_check_filter
60788at_fn_diff_devnull "$at_stderr" || at_failed=:
60789at_fn_diff_devnull "$at_stdout" || at_failed=:
60790at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1188"
60791$at_failed && at_fn_log_failure
60792$at_traceon; }
60793
60794{ set +x
60795$as_echo "$at_srcdir/run_misc.at:1189: \$COBCRUN_DIRECT ./prog2"
60796at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1189"
60797( $at_check_trace; $COBCRUN_DIRECT ./prog2
60798) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60799at_status=$? at_failed=false
60800$at_check_filter
60801at_fn_diff_devnull "$at_stderr" || at_failed=:
60802echo >>"$at_stdout"; $as_echo "this is callee2" | \
60803  $at_diff - "$at_stdout" || at_failed=:
60804at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1189"
60805$at_failed && at_fn_log_failure
60806$at_traceon; }
60807
60808{ set +x
60809$as_echo "$at_srcdir/run_misc.at:1191: \$COMPILE -o prog3 caller.cob callee2.cob"
60810at_fn_check_prepare_dynamic "$COMPILE -o prog3 caller.cob callee2.cob" "run_misc.at:1191"
60811( $at_check_trace; $COMPILE -o prog3 caller.cob callee2.cob
60812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60813at_status=$? at_failed=false
60814$at_check_filter
60815at_fn_diff_devnull "$at_stderr" || at_failed=:
60816at_fn_diff_devnull "$at_stdout" || at_failed=:
60817at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1191"
60818$at_failed && at_fn_log_failure
60819$at_traceon; }
60820
60821{ set +x
60822$as_echo "$at_srcdir/run_misc.at:1192: \$COBCRUN_DIRECT ./prog3"
60823at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:1192"
60824( $at_check_trace; $COBCRUN_DIRECT ./prog3
60825) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60826at_status=$? at_failed=false
60827$at_check_filter
60828at_fn_diff_devnull "$at_stderr" || at_failed=:
60829echo >>"$at_stdout"; $as_echo "this is callee2" | \
60830  $at_diff - "$at_stdout" || at_failed=:
60831at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1192"
60832$at_failed && at_fn_log_failure
60833$at_traceon; }
60834
60835
60836  set +x
60837  $at_times_p && times >"$at_times_file"
60838) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60839read at_status <"$at_status_file"
60840#AT_STOP_603
60841#AT_START_604
60842at_fn_group_banner 604 'run_misc.at:1198' \
60843  "CALL m1. CALL m2. CALL m1." "                     " 4
60844at_xfail=no
60845(
60846  $as_echo "604. $at_setup_line: testing $at_desc ..."
60847  $at_traceon
60848
60849
60850
60851cat >m1.cob <<'_ATEOF'
60852
60853       IDENTIFICATION   DIVISION.
60854       PROGRAM-ID.      m1.
60855       DATA             DIVISION.
60856       WORKING-STORAGE  SECTION.
60857       01 X             PIC 9(4).
60858       PROCEDURE        DIVISION.
60859           COMPUTE X = 1 + 2
60860           END-COMPUTE.
60861           IF X NOT = 3
60862              DISPLAY X
60863              END-DISPLAY
60864           END-IF.
60865_ATEOF
60866
60867
60868cat >m2.cob <<'_ATEOF'
60869
60870       IDENTIFICATION   DIVISION.
60871       PROGRAM-ID.      m2.
60872       DATA             DIVISION.
60873       WORKING-STORAGE  SECTION.
60874       01 X             PIC 9(4).
60875       PROCEDURE        DIVISION.
60876           COMPUTE X = 3 + 4
60877           END-COMPUTE.
60878           IF X NOT = 7
60879              DISPLAY X
60880              END-DISPLAY
60881           END-IF.
60882_ATEOF
60883
60884
60885cat >caller.cob <<'_ATEOF'
60886
60887       IDENTIFICATION   DIVISION.
60888       PROGRAM-ID.      caller.
60889       PROCEDURE        DIVISION.
60890           CALL "m1"
60891           END-CALL.
60892           CALL "m2"
60893           END-CALL.
60894           CALL "m1"
60895           END-CALL.
60896           STOP RUN.
60897_ATEOF
60898
60899
60900{ set +x
60901$as_echo "$at_srcdir/run_misc.at:1244: \$COMPILE_MODULE m1.cob"
60902at_fn_check_prepare_dynamic "$COMPILE_MODULE m1.cob" "run_misc.at:1244"
60903( $at_check_trace; $COMPILE_MODULE m1.cob
60904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60905at_status=$? at_failed=false
60906$at_check_filter
60907at_fn_diff_devnull "$at_stderr" || at_failed=:
60908at_fn_diff_devnull "$at_stdout" || at_failed=:
60909at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1244"
60910$at_failed && at_fn_log_failure
60911$at_traceon; }
60912
60913{ set +x
60914$as_echo "$at_srcdir/run_misc.at:1245: \$COMPILE_MODULE m2.cob"
60915at_fn_check_prepare_dynamic "$COMPILE_MODULE m2.cob" "run_misc.at:1245"
60916( $at_check_trace; $COMPILE_MODULE m2.cob
60917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60918at_status=$? at_failed=false
60919$at_check_filter
60920at_fn_diff_devnull "$at_stderr" || at_failed=:
60921at_fn_diff_devnull "$at_stdout" || at_failed=:
60922at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1245"
60923$at_failed && at_fn_log_failure
60924$at_traceon; }
60925
60926{ set +x
60927$as_echo "$at_srcdir/run_misc.at:1246: \$COMPILE caller.cob"
60928at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1246"
60929( $at_check_trace; $COMPILE caller.cob
60930) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60931at_status=$? at_failed=false
60932$at_check_filter
60933at_fn_diff_devnull "$at_stderr" || at_failed=:
60934at_fn_diff_devnull "$at_stdout" || at_failed=:
60935at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1246"
60936$at_failed && at_fn_log_failure
60937$at_traceon; }
60938
60939
60940{ set +x
60941$as_echo "$at_srcdir/run_misc.at:1248: \$COBCRUN_DIRECT ./caller"
60942at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1248"
60943( $at_check_trace; $COBCRUN_DIRECT ./caller
60944) >>"$at_stdout" 2>>"$at_stderr" 5>&-
60945at_status=$? at_failed=false
60946$at_check_filter
60947at_fn_diff_devnull "$at_stderr" || at_failed=:
60948at_fn_diff_devnull "$at_stdout" || at_failed=:
60949at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1248"
60950$at_failed && at_fn_log_failure
60951$at_traceon; }
60952
60953
60954  set +x
60955  $at_times_p && times >"$at_times_file"
60956) 5>&1 2>&1 7>&- | eval $at_tee_pipe
60957read at_status <"$at_status_file"
60958#AT_STOP_604
60959#AT_START_605
60960at_fn_group_banner 605 'run_misc.at:1253' \
60961  "Recursive CALL of RECURSIVE program" "            " 4
60962at_xfail=no
60963(
60964  $as_echo "605. $at_setup_line: testing $at_desc ..."
60965  $at_traceon
60966
60967
60968
60969cat >caller.cob <<'_ATEOF'
60970
60971       IDENTIFICATION   DIVISION.
60972       PROGRAM-ID.      caller IS RECURSIVE.
60973       ENVIRONMENT      DIVISION.
60974       CONFIGURATION    SECTION.
60975       DATA             DIVISION.
60976       WORKING-STORAGE  SECTION.
60977       77  STOPPER      PIC S9 EXTERNAL.
60978       PROCEDURE        DIVISION.
60979           MOVE 0 TO STOPPER
60980           CALL "callee"
60981           DISPLAY 'OK' NO ADVANCING END-DISPLAY
60982      *> FIXME: CANCEL broken on special environments
60983      *>   CANCEL "callee" , "callee2"
60984           DISPLAY ' + FINE' NO ADVANCING END-DISPLAY
60985           STOP RUN.
60986_ATEOF
60987
60988
60989cat >callee.cob <<'_ATEOF'
60990
60991       IDENTIFICATION   DIVISION.
60992       PROGRAM-ID.      callee IS RECURSIVE.
60993       DATA             DIVISION.
60994       WORKING-STORAGE  SECTION.
60995       77  STOPPER      PIC S9 EXTERNAL.
60996       PROCEDURE        DIVISION.
60997           IF STOPPER = 9
60998              MOVE -1 TO STOPPER
60999           ELSE
61000              ADD   1 TO STOPPER
61001              CALL "callee2"
61002           END-IF
61003           GOBACK.
61004_ATEOF
61005
61006
61007cat >callee2.cob <<'_ATEOF'
61008
61009       IDENTIFICATION   DIVISION.
61010       PROGRAM-ID.      callee2 IS RECURSIVE.
61011       DATA             DIVISION.
61012       WORKING-STORAGE  SECTION.
61013       77  STOPPER      PIC S9 EXTERNAL.
61014       PROCEDURE        DIVISION.
61015           IF STOPPER NOT EQUAL -1
61016             CALL "callee"
61017           END-IF
61018           GOBACK.
61019_ATEOF
61020
61021
61022{ set +x
61023$as_echo "$at_srcdir/run_misc.at:1303: \$COMPILE caller.cob"
61024at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1303"
61025( $at_check_trace; $COMPILE caller.cob
61026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61027at_status=$? at_failed=false
61028$at_check_filter
61029at_fn_diff_devnull "$at_stderr" || at_failed=:
61030at_fn_diff_devnull "$at_stdout" || at_failed=:
61031at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1303"
61032$at_failed && at_fn_log_failure
61033$at_traceon; }
61034
61035{ set +x
61036$as_echo "$at_srcdir/run_misc.at:1304: \$COMPILE_MODULE callee.cob"
61037at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1304"
61038( $at_check_trace; $COMPILE_MODULE callee.cob
61039) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61040at_status=$? at_failed=false
61041$at_check_filter
61042at_fn_diff_devnull "$at_stderr" || at_failed=:
61043at_fn_diff_devnull "$at_stdout" || at_failed=:
61044at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1304"
61045$at_failed && at_fn_log_failure
61046$at_traceon; }
61047
61048{ set +x
61049$as_echo "$at_srcdir/run_misc.at:1305: \$COMPILE_MODULE callee2.cob"
61050at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1305"
61051( $at_check_trace; $COMPILE_MODULE callee2.cob
61052) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61053at_status=$? at_failed=false
61054$at_check_filter
61055at_fn_diff_devnull "$at_stderr" || at_failed=:
61056at_fn_diff_devnull "$at_stdout" || at_failed=:
61057at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1305"
61058$at_failed && at_fn_log_failure
61059$at_traceon; }
61060
61061{ set +x
61062$as_echo "$at_srcdir/run_misc.at:1306: \$COBCRUN_DIRECT ./caller"
61063at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1306"
61064( $at_check_trace; $COBCRUN_DIRECT ./caller
61065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61066at_status=$? at_failed=false
61067$at_check_filter
61068at_fn_diff_devnull "$at_stderr" || at_failed=:
61069echo >>"$at_stdout"; $as_echo "OK + FINE" | \
61070  $at_diff - "$at_stdout" || at_failed=:
61071at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1306"
61072$at_failed && at_fn_log_failure
61073$at_traceon; }
61074
61075
61076  set +x
61077  $at_times_p && times >"$at_times_file"
61078) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61079read at_status <"$at_status_file"
61080#AT_STOP_605
61081#AT_START_606
61082at_fn_group_banner 606 'run_misc.at:1311' \
61083  "Recursive CALL of INITIAL program" "              " 4
61084at_xfail=no
61085(
61086  $as_echo "606. $at_setup_line: testing $at_desc ..."
61087  $at_traceon
61088
61089
61090
61091cat >caller.cob <<'_ATEOF'
61092
61093       IDENTIFICATION   DIVISION.
61094       PROGRAM-ID.      caller.
61095       DATA             DIVISION.
61096       WORKING-STORAGE  SECTION.
61097       77  STOPPER      PIC 9 EXTERNAL.
61098       PROCEDURE        DIVISION.
61099           MOVE 0 TO STOPPER
61100           CALL "callee" END-CALL.
61101           GOBACK.
61102_ATEOF
61103
61104
61105cat >callee.cob <<'_ATEOF'
61106
61107       IDENTIFICATION   DIVISION.
61108       PROGRAM-ID.      callee IS INITIAL.
61109       DATA             DIVISION.
61110       WORKING-STORAGE  SECTION.
61111       77  STOPPER      PIC 9 EXTERNAL.
61112       PROCEDURE        DIVISION.
61113           IF STOPPER = 1
61114              DISPLAY 'INITIAL prog was called RECURSIVE'
61115              END-DISPLAY
61116              STOP RUN RETURNING 1
61117           ELSE
61118              MOVE 1 TO STOPPER
61119              CALL "callee2" END-CALL
61120           END-IF.
61121           GOBACK.
61122_ATEOF
61123
61124
61125cat >callee2.cob <<'_ATEOF'
61126
61127       IDENTIFICATION   DIVISION.
61128       PROGRAM-ID.      callee2.
61129       PROCEDURE        DIVISION.
61130           CALL "callee" END-CALL.
61131           GOBACK.
61132_ATEOF
61133
61134
61135{ set +x
61136$as_echo "$at_srcdir/run_misc.at:1352: \$COMPILE caller.cob"
61137at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1352"
61138( $at_check_trace; $COMPILE caller.cob
61139) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61140at_status=$? at_failed=false
61141$at_check_filter
61142at_fn_diff_devnull "$at_stderr" || at_failed=:
61143at_fn_diff_devnull "$at_stdout" || at_failed=:
61144at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1352"
61145$at_failed && at_fn_log_failure
61146$at_traceon; }
61147
61148{ set +x
61149$as_echo "$at_srcdir/run_misc.at:1353: \$COMPILE_MODULE callee.cob"
61150at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1353"
61151( $at_check_trace; $COMPILE_MODULE callee.cob
61152) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61153at_status=$? at_failed=false
61154$at_check_filter
61155at_fn_diff_devnull "$at_stderr" || at_failed=:
61156at_fn_diff_devnull "$at_stdout" || at_failed=:
61157at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1353"
61158$at_failed && at_fn_log_failure
61159$at_traceon; }
61160
61161{ set +x
61162$as_echo "$at_srcdir/run_misc.at:1354: \$COMPILE_MODULE callee2.cob"
61163at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1354"
61164( $at_check_trace; $COMPILE_MODULE callee2.cob
61165) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61166at_status=$? at_failed=false
61167$at_check_filter
61168at_fn_diff_devnull "$at_stderr" || at_failed=:
61169at_fn_diff_devnull "$at_stdout" || at_failed=:
61170at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1354"
61171$at_failed && at_fn_log_failure
61172$at_traceon; }
61173
61174{ set +x
61175$as_echo "$at_srcdir/run_misc.at:1355: \$COBCRUN_DIRECT ./caller"
61176at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1355"
61177( $at_check_trace; $COBCRUN_DIRECT ./caller
61178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61179at_status=$? at_failed=false
61180$at_check_filter
61181echo >>"$at_stderr"; $as_echo "libcob: callee2.cob:5: error: recursive CALL from 'callee2' to 'callee' which is NOT RECURSIVE
61182" | \
61183  $at_diff - "$at_stderr" || at_failed=:
61184at_fn_diff_devnull "$at_stdout" || at_failed=:
61185at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1355"
61186$at_failed && at_fn_log_failure
61187$at_traceon; }
61188
61189
61190  set +x
61191  $at_times_p && times >"$at_times_file"
61192) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61193read at_status <"$at_status_file"
61194#AT_STOP_606
61195#AT_START_607
61196at_fn_group_banner 607 'run_misc.at:1362' \
61197  "Recursive CALL with RECURSIVE assumed" "          " 4
61198at_xfail=no
61199(
61200  $as_echo "607. $at_setup_line: testing $at_desc ..."
61201  $at_traceon
61202
61203
61204
61205cat >caller.cob <<'_ATEOF'
61206
61207       IDENTIFICATION   DIVISION.
61208       PROGRAM-ID.      caller.
61209       DATA             DIVISION.
61210       WORKING-STORAGE  SECTION.
61211       77  STOPPER      PIC 9 EXTERNAL.
61212       PROCEDURE        DIVISION.
61213           MOVE 0 TO STOPPER
61214           CALL "callee" END-CALL.
61215           GOBACK.
61216_ATEOF
61217
61218
61219cat >callee.cob <<'_ATEOF'
61220
61221       IDENTIFICATION   DIVISION.
61222       PROGRAM-ID.      callee IS INITIAL.
61223       DATA             DIVISION.
61224       WORKING-STORAGE  SECTION.
61225       77  STOPPER      PIC 9 EXTERNAL.
61226       PROCEDURE        DIVISION.
61227           IF STOPPER = 8
61228              DISPLAY 'OK' NO ADVANCING END-DISPLAY.
61229           IF STOPPER NOT = 9
61230              ADD  1 TO STOPPER END-ADD
61231              CALL "callee2" END-CALL.
61232           GOBACK.
61233_ATEOF
61234
61235
61236cat >callee2.cob <<'_ATEOF'
61237
61238       IDENTIFICATION   DIVISION.
61239       PROGRAM-ID.      callee2.
61240       PROCEDURE        DIVISION.
61241           CALL "callee" END-CALL.
61242           GOBACK.
61243_ATEOF
61244
61245
61246{ set +x
61247$as_echo "$at_srcdir/run_misc.at:1400: \$COMPILE caller.cob"
61248at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1400"
61249( $at_check_trace; $COMPILE caller.cob
61250) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61251at_status=$? at_failed=false
61252$at_check_filter
61253at_fn_diff_devnull "$at_stderr" || at_failed=:
61254at_fn_diff_devnull "$at_stdout" || at_failed=:
61255at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1400"
61256$at_failed && at_fn_log_failure
61257$at_traceon; }
61258
61259{ set +x
61260$as_echo "$at_srcdir/run_misc.at:1401: \$COMPILE_MODULE -fno-recursive-check callee.cob"
61261at_fn_check_prepare_dynamic "$COMPILE_MODULE -fno-recursive-check callee.cob" "run_misc.at:1401"
61262( $at_check_trace; $COMPILE_MODULE -fno-recursive-check callee.cob
61263) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61264at_status=$? at_failed=false
61265$at_check_filter
61266at_fn_diff_devnull "$at_stderr" || at_failed=:
61267at_fn_diff_devnull "$at_stdout" || at_failed=:
61268at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1401"
61269$at_failed && at_fn_log_failure
61270$at_traceon; }
61271
61272{ set +x
61273$as_echo "$at_srcdir/run_misc.at:1402: \$COMPILE_MODULE -fno-recursive-check callee2.cob"
61274at_fn_check_prepare_dynamic "$COMPILE_MODULE -fno-recursive-check callee2.cob" "run_misc.at:1402"
61275( $at_check_trace; $COMPILE_MODULE -fno-recursive-check callee2.cob
61276) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61277at_status=$? at_failed=false
61278$at_check_filter
61279at_fn_diff_devnull "$at_stderr" || at_failed=:
61280at_fn_diff_devnull "$at_stdout" || at_failed=:
61281at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1402"
61282$at_failed && at_fn_log_failure
61283$at_traceon; }
61284
61285{ set +x
61286$as_echo "$at_srcdir/run_misc.at:1403: \$COBCRUN_DIRECT ./caller"
61287at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1403"
61288( $at_check_trace; $COBCRUN_DIRECT ./caller
61289) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61290at_status=$? at_failed=false
61291$at_check_filter
61292at_fn_diff_devnull "$at_stderr" || at_failed=:
61293echo >>"$at_stdout"; $as_echo "OK" | \
61294  $at_diff - "$at_stdout" || at_failed=:
61295at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1403"
61296$at_failed && at_fn_log_failure
61297$at_traceon; }
61298
61299
61300  set +x
61301  $at_times_p && times >"$at_times_file"
61302) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61303read at_status <"$at_status_file"
61304#AT_STOP_607
61305#AT_START_608
61306at_fn_group_banner 608 'run_misc.at:1408' \
61307  "Recursive CALL with ON EXCEPTION" "               " 4
61308at_xfail=no
61309(
61310  $as_echo "608. $at_setup_line: testing $at_desc ..."
61311  $at_traceon
61312
61313
61314
61315
61316cat >caller.cob <<'_ATEOF'
61317
61318       IDENTIFICATION   DIVISION.
61319       PROGRAM-ID.      caller.
61320       DATA             DIVISION.
61321       WORKING-STORAGE  SECTION.
61322       77  STOPPER      PIC 9 EXTERNAL.
61323       PROCEDURE        DIVISION.
61324           MOVE 0 TO STOPPER
61325           CALL "callee" END-CALL.
61326           GOBACK.
61327_ATEOF
61328
61329
61330cat >callee.cob <<'_ATEOF'
61331
61332       IDENTIFICATION   DIVISION.
61333       PROGRAM-ID.      callee IS INITIAL.
61334       DATA             DIVISION.
61335       WORKING-STORAGE  SECTION.
61336       77  STOPPER      PIC 9 EXTERNAL.
61337       PROCEDURE        DIVISION.
61338           IF STOPPER = 1
61339              DISPLAY 'INITIAL prog was called RECURSIVE'
61340              END-DISPLAY
61341              STOP RUN RETURNING 1
61342           ELSE
61343              MOVE 1 TO STOPPER
61344              CALL "callee2" END-CALL
61345           END-IF.
61346           GOBACK.
61347_ATEOF
61348
61349
61350cat >callee2.cob <<'_ATEOF'
61351
61352       IDENTIFICATION   DIVISION.
61353       PROGRAM-ID.      callee2.
61354       PROCEDURE        DIVISION.
61355           CALL "callee"
61356           ON EXCEPTION
61357              DISPLAY "Exception " FUNCTION EXCEPTION-STATUS ";"
61358                 UPON SYSERR
61359              STOP RUN RETURNING 1
61360           END-CALL.
61361           GOBACK.
61362_ATEOF
61363
61364
61365{ set +x
61366$as_echo "$at_srcdir/run_misc.at:1455: \$COMPILE caller.cob"
61367at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1455"
61368( $at_check_trace; $COMPILE caller.cob
61369) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61370at_status=$? at_failed=false
61371$at_check_filter
61372at_fn_diff_devnull "$at_stderr" || at_failed=:
61373at_fn_diff_devnull "$at_stdout" || at_failed=:
61374at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1455"
61375$at_failed && at_fn_log_failure
61376$at_traceon; }
61377
61378{ set +x
61379$as_echo "$at_srcdir/run_misc.at:1456: \$COMPILE_MODULE callee.cob"
61380at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1456"
61381( $at_check_trace; $COMPILE_MODULE callee.cob
61382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61383at_status=$? at_failed=false
61384$at_check_filter
61385at_fn_diff_devnull "$at_stderr" || at_failed=:
61386at_fn_diff_devnull "$at_stdout" || at_failed=:
61387at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1456"
61388$at_failed && at_fn_log_failure
61389$at_traceon; }
61390
61391{ set +x
61392$as_echo "$at_srcdir/run_misc.at:1457: \$COMPILE_MODULE callee2.cob"
61393at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1457"
61394( $at_check_trace; $COMPILE_MODULE callee2.cob
61395) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61396at_status=$? at_failed=false
61397$at_check_filter
61398at_fn_diff_devnull "$at_stderr" || at_failed=:
61399at_fn_diff_devnull "$at_stdout" || at_failed=:
61400at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1457"
61401$at_failed && at_fn_log_failure
61402$at_traceon; }
61403
61404{ set +x
61405$as_echo "$at_srcdir/run_misc.at:1458: \$COBCRUN_DIRECT ./caller"
61406at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1458"
61407( $at_check_trace; $COBCRUN_DIRECT ./caller
61408) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61409at_status=$? at_failed=false
61410$at_check_filter
61411echo >>"$at_stderr"; $as_echo "Exception EC-PROGRAM-RECURSIVE-CALL      ;
61412" | \
61413  $at_diff - "$at_stderr" || at_failed=:
61414at_fn_diff_devnull "$at_stdout" || at_failed=:
61415at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1458"
61416$at_failed && at_fn_log_failure
61417$at_traceon; }
61418
61419
61420  set +x
61421  $at_times_p && times >"$at_times_file"
61422) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61423read at_status <"$at_status_file"
61424#AT_STOP_608
61425#AT_START_609
61426at_fn_group_banner 609 'run_misc.at:1465' \
61427  "Multiple calls of INITIAL program" "              " 4
61428at_xfail=no
61429(
61430  $as_echo "609. $at_setup_line: testing $at_desc ..."
61431  $at_traceon
61432
61433
61434
61435cat >caller.cob <<'_ATEOF'
61436
61437       IDENTIFICATION   DIVISION.
61438       PROGRAM-ID.      caller.
61439       DATA             DIVISION.
61440       WORKING-STORAGE  SECTION.
61441       01  PARAM1       PIC X(08).
61442       01  PARAM2       PIC 9999 COMP VALUE 08.
61443       PROCEDURE        DIVISION.
61444           MOVE ' PARAM 1' TO PARAM1
61445           PERFORM 10 TIMES
61446              CALL "callee" USING PARAM1 PARAM2 END-CALL
61447           END-PERFORM
61448           DISPLAY 'PARAM1 = ' PARAM1
61449           END-DISPLAY
61450           STOP RUN.
61451_ATEOF
61452
61453
61454cat >callee.cob <<'_ATEOF'
61455
61456       IDENTIFICATION   DIVISION.
61457       PROGRAM-ID.      callee IS INITIAL.
61458       DATA             DIVISION.
61459       WORKING-STORAGE  SECTION.
61460       01  COUNTER      PIC 999 VALUE ZERO.
61461       01  LPARAM       PIC 9(8) COMP.
61462       LINKAGE SECTION.
61463       01  PARAM1       PIC X(08).
61464       01  PARAM2       PIC 9999 COMP.
61465       PROCEDURE        DIVISION USING PARAM1 PARAM2.
61466           ADD 1 TO COUNTER END-ADD
61467           CALL 'C$PARAMSIZE' USING 1 GIVING LPARAM END-CALL
61468           DISPLAY 'COUNTER = ' COUNTER ' LPARAM1 = ' LPARAM
61469                   ' PARAM1 = ' PARAM1
61470           END-DISPLAY
61471           GOBACK.
61472_ATEOF
61473
61474
61475{ set +x
61476$as_echo "$at_srcdir/run_misc.at:1504: \$COMPILE caller.cob"
61477at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1504"
61478( $at_check_trace; $COMPILE caller.cob
61479) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61480at_status=$? at_failed=false
61481$at_check_filter
61482at_fn_diff_devnull "$at_stderr" || at_failed=:
61483at_fn_diff_devnull "$at_stdout" || at_failed=:
61484at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1504"
61485$at_failed && at_fn_log_failure
61486$at_traceon; }
61487
61488{ set +x
61489$as_echo "$at_srcdir/run_misc.at:1505: \$COMPILE_MODULE callee.cob"
61490at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1505"
61491( $at_check_trace; $COMPILE_MODULE callee.cob
61492) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61493at_status=$? at_failed=false
61494$at_check_filter
61495at_fn_diff_devnull "$at_stderr" || at_failed=:
61496at_fn_diff_devnull "$at_stdout" || at_failed=:
61497at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1505"
61498$at_failed && at_fn_log_failure
61499$at_traceon; }
61500
61501{ set +x
61502$as_echo "$at_srcdir/run_misc.at:1506: \$COBCRUN_DIRECT ./caller"
61503at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1506"
61504( $at_check_trace; $COBCRUN_DIRECT ./caller
61505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61506at_status=$? at_failed=false
61507$at_check_filter
61508at_fn_diff_devnull "$at_stderr" || at_failed=:
61509echo >>"$at_stdout"; $as_echo "COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61510COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61511COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61512COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61513COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61514COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61515COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61516COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61517COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61518COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
61519PARAM1 =  PARAM 1
61520" | \
61521  $at_diff - "$at_stdout" || at_failed=:
61522at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1506"
61523$at_failed && at_fn_log_failure
61524$at_traceon; }
61525
61526
61527  set +x
61528  $at_times_p && times >"$at_times_file"
61529) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61530read at_status <"$at_status_file"
61531#AT_STOP_609
61532#AT_START_610
61533at_fn_group_banner 610 'run_misc.at:1522' \
61534  "CALL binary literal parameter/LENGTH OF" "        " 4
61535at_xfail=no
61536(
61537  $as_echo "610. $at_setup_line: testing $at_desc ..."
61538  $at_traceon
61539
61540
61541
61542cat >dump.c <<'_ATEOF'
61543
61544#include <stdio.h>
61545#include <libcob.h>
61546
61547COB_EXT_EXPORT int
61548dump (int *p)
61549{
61550  printf ("%8.8d\n", *p);
61551  return 0;
61552}
61553_ATEOF
61554
61555
61556cat >prog.cob <<'_ATEOF'
61557
61558       IDENTIFICATION   DIVISION.
61559       PROGRAM-ID.      prog.
61560       DATA             DIVISION.
61561       WORKING-STORAGE  SECTION.
61562       01  MYOCC        PIC 9(8) COMP.
61563       01  MYTAB.
61564           03  MYBYTE   PIC X OCCURS 1 TO 20
61565                        DEPENDING ON MYOCC.
61566       PROCEDURE        DIVISION.
61567           MOVE 9 TO MYOCC.
61568           CALL "dump" USING BY CONTENT 1
61569           END-CALL.
61570           CALL "dump" USING BY CONTENT LENGTH OF MYTAB
61571           END-CALL.
61572           CALL "dump" USING BY CONTENT LENGTH OF MYOCC
61573           END-CALL.
61574           STOP RUN.
61575_ATEOF
61576
61577
61578{ set +x
61579$as_echo "$at_srcdir/run_misc.at:1557: \$COMPILE_MODULE dump.c"
61580at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_misc.at:1557"
61581( $at_check_trace; $COMPILE_MODULE dump.c
61582) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61583at_status=$? at_failed=false
61584$at_check_filter
61585at_fn_diff_devnull "$at_stderr" || at_failed=:
61586at_fn_diff_devnull "$at_stdout" || at_failed=:
61587at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1557"
61588$at_failed && at_fn_log_failure
61589$at_traceon; }
61590
61591{ set +x
61592$as_echo "$at_srcdir/run_misc.at:1558: \$COMPILE prog.cob"
61593at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1558"
61594( $at_check_trace; $COMPILE prog.cob
61595) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61596at_status=$? at_failed=false
61597$at_check_filter
61598at_fn_diff_devnull "$at_stderr" || at_failed=:
61599at_fn_diff_devnull "$at_stdout" || at_failed=:
61600at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1558"
61601$at_failed && at_fn_log_failure
61602$at_traceon; }
61603
61604{ set +x
61605$as_echo "$at_srcdir/run_misc.at:1559: \$COBCRUN_DIRECT ./prog"
61606at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1559"
61607( $at_check_trace; $COBCRUN_DIRECT ./prog
61608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61609at_status=$? at_failed=false
61610$at_check_filter
61611at_fn_diff_devnull "$at_stderr" || at_failed=:
61612echo >>"$at_stdout"; $as_echo "00000001
6161300000009
6161400000004
61615" | \
61616  $at_diff - "$at_stdout" || at_failed=:
61617at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1559"
61618$at_failed && at_fn_log_failure
61619$at_traceon; }
61620
61621{ set +x
61622$as_echo "$at_srcdir/run_misc.at:1564: \$COMPILE -fbinary-byteorder=native prog.cob -o prog2"
61623at_fn_check_prepare_dynamic "$COMPILE -fbinary-byteorder=native prog.cob -o prog2" "run_misc.at:1564"
61624( $at_check_trace; $COMPILE -fbinary-byteorder=native prog.cob -o prog2
61625) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61626at_status=$? at_failed=false
61627$at_check_filter
61628at_fn_diff_devnull "$at_stderr" || at_failed=:
61629at_fn_diff_devnull "$at_stdout" || at_failed=:
61630at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1564"
61631$at_failed && at_fn_log_failure
61632$at_traceon; }
61633
61634{ set +x
61635$as_echo "$at_srcdir/run_misc.at:1565: \$COBCRUN_DIRECT ./prog2"
61636at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1565"
61637( $at_check_trace; $COBCRUN_DIRECT ./prog2
61638) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61639at_status=$? at_failed=false
61640$at_check_filter
61641at_fn_diff_devnull "$at_stderr" || at_failed=:
61642echo >>"$at_stdout"; $as_echo "00000001
6164300000009
6164400000004
61645" | \
61646  $at_diff - "$at_stdout" || at_failed=:
61647at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1565"
61648$at_failed && at_fn_log_failure
61649$at_traceon; }
61650
61651
61652  set +x
61653  $at_times_p && times >"$at_times_file"
61654) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61655read at_status <"$at_status_file"
61656#AT_STOP_610
61657#AT_START_611
61658at_fn_group_banner 611 'run_misc.at:1576' \
61659  "INSPECT REPLACING LEADING ZEROS BY SPACES" "      " 4
61660at_xfail=no
61661(
61662  $as_echo "611. $at_setup_line: testing $at_desc ..."
61663  $at_traceon
61664
61665
61666
61667cat >prog.cob <<'_ATEOF'
61668
61669       IDENTIFICATION   DIVISION.
61670       PROGRAM-ID.      prog.
61671       DATA             DIVISION.
61672       WORKING-STORAGE  SECTION.
61673       01 X             PIC X(4) VALUE "0001".
61674       PROCEDURE        DIVISION.
61675           INSPECT X REPLACING LEADING ZEROS BY SPACES.
61676           IF X NOT = "   1"
61677              DISPLAY "Should be '   1' but is '" X "'".
61678           STOP RUN.
61679_ATEOF
61680
61681
61682{ set +x
61683$as_echo "$at_srcdir/run_misc.at:1592: \$COMPILE prog.cob"
61684at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1592"
61685( $at_check_trace; $COMPILE prog.cob
61686) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61687at_status=$? at_failed=false
61688$at_check_filter
61689at_fn_diff_devnull "$at_stderr" || at_failed=:
61690at_fn_diff_devnull "$at_stdout" || at_failed=:
61691at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1592"
61692$at_failed && at_fn_log_failure
61693$at_traceon; }
61694
61695{ set +x
61696$as_echo "$at_srcdir/run_misc.at:1593: \$COBCRUN_DIRECT ./prog"
61697at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1593"
61698( $at_check_trace; $COBCRUN_DIRECT ./prog
61699) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61700at_status=$? at_failed=false
61701$at_check_filter
61702at_fn_diff_devnull "$at_stderr" || at_failed=:
61703at_fn_diff_devnull "$at_stdout" || at_failed=:
61704at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1593"
61705$at_failed && at_fn_log_failure
61706$at_traceon; }
61707
61708
61709  set +x
61710  $at_times_p && times >"$at_times_file"
61711) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61712read at_status <"$at_status_file"
61713#AT_STOP_611
61714#AT_START_612
61715at_fn_group_banner 612 'run_misc.at:1598' \
61716  "INSPECT No repeat conversion check" "             " 4
61717at_xfail=no
61718(
61719  $as_echo "612. $at_setup_line: testing $at_desc ..."
61720  $at_traceon
61721
61722
61723
61724cat >prog.cob <<'_ATEOF'
61725
61726       IDENTIFICATION   DIVISION.
61727       PROGRAM-ID.      prog.
61728       DATA             DIVISION.
61729       WORKING-STORAGE  SECTION.
61730       01 X             PIC X(3) VALUE "BCA".
61731       01 Y             PIC X(6) VALUE "   BCA".
61732       PROCEDURE        DIVISION.
61733           INSPECT X CONVERTING "ABC" TO "BCD".
61734           IF X NOT = "CDB"
61735              DISPLAY "X: " X.
61736           INSPECT Y CONVERTING "ABC" TO "BCD".
61737           IF Y NOT = "   CDB"
61738              DISPLAY "Y: " Y.
61739           STOP RUN.
61740_ATEOF
61741
61742
61743{ set +x
61744$as_echo "$at_srcdir/run_misc.at:1618: \$COMPILE prog.cob"
61745at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1618"
61746( $at_check_trace; $COMPILE prog.cob
61747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61748at_status=$? at_failed=false
61749$at_check_filter
61750at_fn_diff_devnull "$at_stderr" || at_failed=:
61751at_fn_diff_devnull "$at_stdout" || at_failed=:
61752at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1618"
61753$at_failed && at_fn_log_failure
61754$at_traceon; }
61755
61756{ set +x
61757$as_echo "$at_srcdir/run_misc.at:1619: \$COBCRUN_DIRECT ./prog"
61758at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1619"
61759( $at_check_trace; $COBCRUN_DIRECT ./prog
61760) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61761at_status=$? at_failed=false
61762$at_check_filter
61763at_fn_diff_devnull "$at_stderr" || at_failed=:
61764at_fn_diff_devnull "$at_stdout" || at_failed=:
61765at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1619"
61766$at_failed && at_fn_log_failure
61767$at_traceon; }
61768
61769
61770  set +x
61771  $at_times_p && times >"$at_times_file"
61772) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61773read at_status <"$at_status_file"
61774#AT_STOP_612
61775#AT_START_613
61776at_fn_group_banner 613 'run_misc.at:1624' \
61777  "INSPECT CONVERTING alphabet" "                    " 4
61778at_xfail=no
61779(
61780  $as_echo "613. $at_setup_line: testing $at_desc ..."
61781  $at_traceon
61782
61783
61784
61785cat >prog.cob <<'_ATEOF'
61786
61787       IDENTIFICATION DIVISION.
61788       PROGRAM-ID. charset.
61789
61790       ENVIRONMENT DIVISION.
61791       CONFIGURATION SECTION.
61792       SPECIAL-NAMES.
61793           ALPHABET ALPHA IS ASCII.
61794           ALPHABET BETA  IS EBCDIC.
61795
61796       DATA DIVISION.
61797       WORKING-STORAGE SECTION.
61798
61799       01 TESTHEX PIC X(10) VALUE X'C17BD6F2F0F1F8404040'.
61800
61801       procedure division.
61802       sample-main.
61803
61804           INSPECT testhex CONVERTING BETA TO ALPHA
61805           DISPLAY 'Converted: "' TESTHEX '"' WITH NO ADVANCING
61806
61807           GOBACK.
61808       END PROGRAM charset.
61809_ATEOF
61810
61811
61812{ set +x
61813$as_echo "$at_srcdir/run_misc.at:1652: \$COMPILE prog.cob"
61814at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1652"
61815( $at_check_trace; $COMPILE prog.cob
61816) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61817at_status=$? at_failed=false
61818$at_check_filter
61819at_fn_diff_devnull "$at_stderr" || at_failed=:
61820at_fn_diff_devnull "$at_stdout" || at_failed=:
61821at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1652"
61822$at_failed && at_fn_log_failure
61823$at_traceon; }
61824
61825{ set +x
61826$as_echo "$at_srcdir/run_misc.at:1653: \$COBCRUN_DIRECT ./prog"
61827at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1653"
61828( $at_check_trace; $COBCRUN_DIRECT ./prog
61829) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61830at_status=$? at_failed=false
61831$at_check_filter
61832at_fn_diff_devnull "$at_stderr" || at_failed=:
61833echo >>"$at_stdout"; $as_echo "Converted: \"A#O2018   \"" | \
61834  $at_diff - "$at_stdout" || at_failed=:
61835at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1653"
61836$at_failed && at_fn_log_failure
61837$at_traceon; }
61838
61839
61840  set +x
61841  $at_times_p && times >"$at_times_file"
61842) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61843read at_status <"$at_status_file"
61844#AT_STOP_613
61845#AT_START_614
61846at_fn_group_banner 614 'run_misc.at:1659' \
61847  "INSPECT CONVERTING TO figurative constant" "      " 4
61848at_xfail=no
61849(
61850  $as_echo "614. $at_setup_line: testing $at_desc ..."
61851  $at_traceon
61852
61853
61854
61855cat >prog.cob <<'_ATEOF'
61856
61857       IDENTIFICATION   DIVISION.
61858       PROGRAM-ID.      prog.
61859       DATA             DIVISION.
61860       WORKING-STORAGE  SECTION.
61861       01 X             PIC X(3) VALUE "BCA".
61862       PROCEDURE        DIVISION.
61863           INSPECT X CONVERTING "ABC" TO SPACES.
61864           IF X NOT = SPACES
61865              DISPLAY X NO ADVANCING
61866              END-DISPLAY
61867           END-IF.
61868           STOP RUN.
61869_ATEOF
61870
61871
61872{ set +x
61873$as_echo "$at_srcdir/run_misc.at:1677: \$COMPILE prog.cob"
61874at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1677"
61875( $at_check_trace; $COMPILE prog.cob
61876) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61877at_status=$? at_failed=false
61878$at_check_filter
61879at_fn_diff_devnull "$at_stderr" || at_failed=:
61880at_fn_diff_devnull "$at_stdout" || at_failed=:
61881at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1677"
61882$at_failed && at_fn_log_failure
61883$at_traceon; }
61884
61885{ set +x
61886$as_echo "$at_srcdir/run_misc.at:1678: \$COBCRUN_DIRECT ./prog"
61887at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1678"
61888( $at_check_trace; $COBCRUN_DIRECT ./prog
61889) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61890at_status=$? at_failed=false
61891$at_check_filter
61892at_fn_diff_devnull "$at_stderr" || at_failed=:
61893at_fn_diff_devnull "$at_stdout" || at_failed=:
61894at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1678"
61895$at_failed && at_fn_log_failure
61896$at_traceon; }
61897
61898
61899  set +x
61900  $at_times_p && times >"$at_times_file"
61901) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61902read at_status <"$at_status_file"
61903#AT_STOP_614
61904#AT_START_615
61905at_fn_group_banner 615 'run_misc.at:1683' \
61906  "INSPECT CONVERTING NULL" "                        " 4
61907at_xfail=no
61908(
61909  $as_echo "615. $at_setup_line: testing $at_desc ..."
61910  $at_traceon
61911
61912
61913
61914cat >prog.cob <<'_ATEOF'
61915
61916       IDENTIFICATION   DIVISION.
61917       PROGRAM-ID.      prog.
61918       DATA             DIVISION.
61919       WORKING-STORAGE  SECTION.
61920       01 X             PIC X(3) VALUE LOW-VALUES.
61921       PROCEDURE        DIVISION.
61922           INSPECT X CONVERTING NULL TO "A".
61923           IF X NOT = "AAA"
61924              DISPLAY X NO ADVANCING
61925              END-DISPLAY
61926           END-IF.
61927           STOP RUN.
61928_ATEOF
61929
61930
61931{ set +x
61932$as_echo "$at_srcdir/run_misc.at:1701: \$COMPILE prog.cob"
61933at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1701"
61934( $at_check_trace; $COMPILE prog.cob
61935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61936at_status=$? at_failed=false
61937$at_check_filter
61938at_fn_diff_devnull "$at_stderr" || at_failed=:
61939at_fn_diff_devnull "$at_stdout" || at_failed=:
61940at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1701"
61941$at_failed && at_fn_log_failure
61942$at_traceon; }
61943
61944{ set +x
61945$as_echo "$at_srcdir/run_misc.at:1702: \$COBCRUN_DIRECT ./prog"
61946at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1702"
61947( $at_check_trace; $COBCRUN_DIRECT ./prog
61948) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61949at_status=$? at_failed=false
61950$at_check_filter
61951at_fn_diff_devnull "$at_stderr" || at_failed=:
61952at_fn_diff_devnull "$at_stdout" || at_failed=:
61953at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1702"
61954$at_failed && at_fn_log_failure
61955$at_traceon; }
61956
61957
61958  set +x
61959  $at_times_p && times >"$at_times_file"
61960) 5>&1 2>&1 7>&- | eval $at_tee_pipe
61961read at_status <"$at_status_file"
61962#AT_STOP_615
61963#AT_START_616
61964at_fn_group_banner 616 'run_misc.at:1707' \
61965  "INSPECT CONVERTING TO NULL" "                     " 4
61966at_xfail=no
61967(
61968  $as_echo "616. $at_setup_line: testing $at_desc ..."
61969  $at_traceon
61970
61971
61972
61973cat >prog.cob <<'_ATEOF'
61974
61975       IDENTIFICATION   DIVISION.
61976       PROGRAM-ID.      prog.
61977       DATA             DIVISION.
61978       WORKING-STORAGE  SECTION.
61979       01 X             PIC X(3) VALUE "AAA".
61980       PROCEDURE        DIVISION.
61981           INSPECT X CONVERTING "A" TO NULL.
61982           IF X NOT = LOW-VALUES
61983              DISPLAY "NG" NO ADVANCING
61984              END-DISPLAY
61985           END-IF.
61986           STOP RUN.
61987_ATEOF
61988
61989
61990{ set +x
61991$as_echo "$at_srcdir/run_misc.at:1725: \$COMPILE prog.cob"
61992at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1725"
61993( $at_check_trace; $COMPILE prog.cob
61994) >>"$at_stdout" 2>>"$at_stderr" 5>&-
61995at_status=$? at_failed=false
61996$at_check_filter
61997at_fn_diff_devnull "$at_stderr" || at_failed=:
61998at_fn_diff_devnull "$at_stdout" || at_failed=:
61999at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1725"
62000$at_failed && at_fn_log_failure
62001$at_traceon; }
62002
62003{ set +x
62004$as_echo "$at_srcdir/run_misc.at:1726: \$COBCRUN_DIRECT ./prog"
62005at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1726"
62006( $at_check_trace; $COBCRUN_DIRECT ./prog
62007) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62008at_status=$? at_failed=false
62009$at_check_filter
62010at_fn_diff_devnull "$at_stderr" || at_failed=:
62011at_fn_diff_devnull "$at_stdout" || at_failed=:
62012at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1726"
62013$at_failed && at_fn_log_failure
62014$at_traceon; }
62015
62016
62017  set +x
62018  $at_times_p && times >"$at_times_file"
62019) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62020read at_status <"$at_status_file"
62021#AT_STOP_616
62022#AT_START_617
62023at_fn_group_banner 617 'run_misc.at:1731' \
62024  "INSPECT REPLACING figurative constant" "          " 4
62025at_xfail=no
62026(
62027  $as_echo "617. $at_setup_line: testing $at_desc ..."
62028  $at_traceon
62029
62030
62031
62032cat >prog.cob <<'_ATEOF'
62033
62034       IDENTIFICATION   DIVISION.
62035       PROGRAM-ID.      prog.
62036       DATA             DIVISION.
62037       WORKING-STORAGE  SECTION.
62038       01 X             PIC X(3) VALUE "BCA".
62039       PROCEDURE        DIVISION.
62040           INSPECT X REPLACING ALL "BC" BY SPACE.
62041           IF X NOT = "  A"
62042              DISPLAY X NO ADVANCING
62043              END-DISPLAY
62044           END-IF.
62045           STOP RUN.
62046_ATEOF
62047
62048
62049{ set +x
62050$as_echo "$at_srcdir/run_misc.at:1749: \$COMPILE prog.cob"
62051at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1749"
62052( $at_check_trace; $COMPILE prog.cob
62053) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62054at_status=$? at_failed=false
62055$at_check_filter
62056at_fn_diff_devnull "$at_stderr" || at_failed=:
62057at_fn_diff_devnull "$at_stdout" || at_failed=:
62058at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1749"
62059$at_failed && at_fn_log_failure
62060$at_traceon; }
62061
62062{ set +x
62063$as_echo "$at_srcdir/run_misc.at:1750: \$COBCRUN_DIRECT ./prog"
62064at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1750"
62065( $at_check_trace; $COBCRUN_DIRECT ./prog
62066) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62067at_status=$? at_failed=false
62068$at_check_filter
62069at_fn_diff_devnull "$at_stderr" || at_failed=:
62070at_fn_diff_devnull "$at_stdout" || at_failed=:
62071at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1750"
62072$at_failed && at_fn_log_failure
62073$at_traceon; }
62074
62075
62076  set +x
62077  $at_times_p && times >"$at_times_file"
62078) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62079read at_status <"$at_status_file"
62080#AT_STOP_617
62081#AT_START_618
62082at_fn_group_banner 618 'run_misc.at:1755' \
62083  "INSPECT TALLYING BEFORE" "                        " 4
62084at_xfail=no
62085(
62086  $as_echo "618. $at_setup_line: testing $at_desc ..."
62087  $at_traceon
62088
62089
62090
62091cat >prog.cob <<'_ATEOF'
62092
62093       IDENTIFICATION   DIVISION.
62094       PROGRAM-ID.      prog.
62095       DATA             DIVISION.
62096       WORKING-STORAGE  SECTION.
62097       01 X             PIC X(4) VALUE "ABC ".
62098       01 TAL           PIC 999 VALUE 0.
62099       PROCEDURE        DIVISION.
62100           MOVE 0 TO TAL.
62101           INSPECT X TALLYING TAL FOR CHARACTERS
62102                     BEFORE INITIAL " ".
62103           IF TAL NOT = 3
62104              DISPLAY TAL NO ADVANCING
62105              END-DISPLAY
62106           END-IF.
62107           MOVE 0 TO TAL.
62108           MOVE " ABC" TO X.
62109           INSPECT X TALLYING TAL FOR CHARACTERS
62110                     BEFORE INITIAL " ".
62111           IF TAL NOT = 0
62112              DISPLAY TAL NO ADVANCING
62113              END-DISPLAY
62114           END-IF.
62115           STOP RUN.
62116_ATEOF
62117
62118
62119{ set +x
62120$as_echo "$at_srcdir/run_misc.at:1784: \$COMPILE prog.cob"
62121at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1784"
62122( $at_check_trace; $COMPILE prog.cob
62123) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62124at_status=$? at_failed=false
62125$at_check_filter
62126at_fn_diff_devnull "$at_stderr" || at_failed=:
62127at_fn_diff_devnull "$at_stdout" || at_failed=:
62128at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1784"
62129$at_failed && at_fn_log_failure
62130$at_traceon; }
62131
62132{ set +x
62133$as_echo "$at_srcdir/run_misc.at:1785: \$COBCRUN_DIRECT ./prog"
62134at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1785"
62135( $at_check_trace; $COBCRUN_DIRECT ./prog
62136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62137at_status=$? at_failed=false
62138$at_check_filter
62139at_fn_diff_devnull "$at_stderr" || at_failed=:
62140at_fn_diff_devnull "$at_stdout" || at_failed=:
62141at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1785"
62142$at_failed && at_fn_log_failure
62143$at_traceon; }
62144
62145
62146  set +x
62147  $at_times_p && times >"$at_times_file"
62148) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62149read at_status <"$at_status_file"
62150#AT_STOP_618
62151#AT_START_619
62152at_fn_group_banner 619 'run_misc.at:1790' \
62153  "INSPECT TALLYING AFTER" "                         " 4
62154at_xfail=no
62155(
62156  $as_echo "619. $at_setup_line: testing $at_desc ..."
62157  $at_traceon
62158
62159
62160
62161cat >prog.cob <<'_ATEOF'
62162
62163       IDENTIFICATION   DIVISION.
62164       PROGRAM-ID.      prog.
62165       DATA             DIVISION.
62166       WORKING-STORAGE  SECTION.
62167       01 X             PIC X(4) VALUE "ABC ".
62168       01 TAL           PIC 999 VALUE 0.
62169       PROCEDURE        DIVISION.
62170           MOVE 0 TO TAL.
62171           INSPECT X TALLYING TAL FOR CHARACTERS
62172                     AFTER INITIAL " ".
62173           IF TAL NOT = 0
62174              DISPLAY TAL NO ADVANCING
62175              END-DISPLAY
62176           END-IF.
62177           MOVE 0 TO TAL.
62178           MOVE " ABC" TO X.
62179           INSPECT X TALLYING TAL FOR CHARACTERS
62180                     AFTER INITIAL " ".
62181           IF TAL NOT = 3
62182              DISPLAY TAL NO ADVANCING
62183              END-DISPLAY
62184           END-IF.
62185           STOP RUN.
62186_ATEOF
62187
62188
62189{ set +x
62190$as_echo "$at_srcdir/run_misc.at:1819: \$COMPILE prog.cob"
62191at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1819"
62192( $at_check_trace; $COMPILE prog.cob
62193) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62194at_status=$? at_failed=false
62195$at_check_filter
62196at_fn_diff_devnull "$at_stderr" || at_failed=:
62197at_fn_diff_devnull "$at_stdout" || at_failed=:
62198at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1819"
62199$at_failed && at_fn_log_failure
62200$at_traceon; }
62201
62202{ set +x
62203$as_echo "$at_srcdir/run_misc.at:1820: \$COBCRUN_DIRECT ./prog"
62204at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1820"
62205( $at_check_trace; $COBCRUN_DIRECT ./prog
62206) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62207at_status=$? at_failed=false
62208$at_check_filter
62209at_fn_diff_devnull "$at_stderr" || at_failed=:
62210at_fn_diff_devnull "$at_stdout" || at_failed=:
62211at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1820"
62212$at_failed && at_fn_log_failure
62213$at_traceon; }
62214
62215
62216  set +x
62217  $at_times_p && times >"$at_times_file"
62218) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62219read at_status <"$at_status_file"
62220#AT_STOP_619
62221#AT_START_620
62222at_fn_group_banner 620 'run_misc.at:1825' \
62223  "INSPECT REPLACING TRAILING ZEROS BY SPACES" "     " 4
62224at_xfail=no
62225(
62226  $as_echo "620. $at_setup_line: testing $at_desc ..."
62227  $at_traceon
62228
62229
62230
62231cat >prog.cob <<'_ATEOF'
62232
62233       IDENTIFICATION   DIVISION.
62234       PROGRAM-ID.      prog.
62235       DATA             DIVISION.
62236       WORKING-STORAGE  SECTION.
62237       01 X             PIC X(4) VALUE "1000".
62238       PROCEDURE        DIVISION.
62239           INSPECT X REPLACING TRAILING ZEROS BY SPACES.
62240           IF X NOT = "1   "
62241              DISPLAY X NO ADVANCING
62242              END-DISPLAY
62243           END-IF.
62244           STOP RUN.
62245_ATEOF
62246
62247
62248{ set +x
62249$as_echo "$at_srcdir/run_misc.at:1843: \$COMPILE prog.cob"
62250at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1843"
62251( $at_check_trace; $COMPILE prog.cob
62252) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62253at_status=$? at_failed=false
62254$at_check_filter
62255at_fn_diff_devnull "$at_stderr" || at_failed=:
62256at_fn_diff_devnull "$at_stdout" || at_failed=:
62257at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1843"
62258$at_failed && at_fn_log_failure
62259$at_traceon; }
62260
62261{ set +x
62262$as_echo "$at_srcdir/run_misc.at:1844: \$COBCRUN_DIRECT ./prog"
62263at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1844"
62264( $at_check_trace; $COBCRUN_DIRECT ./prog
62265) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62266at_status=$? at_failed=false
62267$at_check_filter
62268at_fn_diff_devnull "$at_stderr" || at_failed=:
62269at_fn_diff_devnull "$at_stdout" || at_failed=:
62270at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1844"
62271$at_failed && at_fn_log_failure
62272$at_traceon; }
62273
62274
62275  set +x
62276  $at_times_p && times >"$at_times_file"
62277) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62278read at_status <"$at_status_file"
62279#AT_STOP_620
62280#AT_START_621
62281at_fn_group_banner 621 'run_misc.at:1849' \
62282  "INSPECT REPLACING complex" "                      " 4
62283at_xfail=no
62284(
62285  $as_echo "621. $at_setup_line: testing $at_desc ..."
62286  $at_traceon
62287
62288
62289
62290cat >prog.cob <<'_ATEOF'
62291
62292       IDENTIFICATION   DIVISION.
62293       PROGRAM-ID.      prog.
62294       DATA             DIVISION.
62295       WORKING-STORAGE  SECTION.
62296       01 X             PIC X(12) VALUE "AAABBCDCCCCC".
62297       PROCEDURE        DIVISION.
62298           INSPECT X REPLACING
62299             ALL      "A" BY "Z"
62300                      "B" BY "Y"
62301             TRAILING "C" BY "X".
62302           IF X NOT = "ZZZYYCDXXXXX"
62303              DISPLAY X NO ADVANCING
62304              END-DISPLAY
62305           END-IF.
62306           STOP RUN.
62307_ATEOF
62308
62309
62310{ set +x
62311$as_echo "$at_srcdir/run_misc.at:1870: \$COMPILE prog.cob"
62312at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1870"
62313( $at_check_trace; $COMPILE prog.cob
62314) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62315at_status=$? at_failed=false
62316$at_check_filter
62317at_fn_diff_devnull "$at_stderr" || at_failed=:
62318at_fn_diff_devnull "$at_stdout" || at_failed=:
62319at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1870"
62320$at_failed && at_fn_log_failure
62321$at_traceon; }
62322
62323{ set +x
62324$as_echo "$at_srcdir/run_misc.at:1871: \$COBCRUN_DIRECT ./prog"
62325at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1871"
62326( $at_check_trace; $COBCRUN_DIRECT ./prog
62327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62328at_status=$? at_failed=false
62329$at_check_filter
62330at_fn_diff_devnull "$at_stderr" || at_failed=:
62331at_fn_diff_devnull "$at_stdout" || at_failed=:
62332at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1871"
62333$at_failed && at_fn_log_failure
62334$at_traceon; }
62335
62336  set +x
62337  $at_times_p && times >"$at_times_file"
62338) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62339read at_status <"$at_status_file"
62340#AT_STOP_621
62341#AT_START_622
62342at_fn_group_banner 622 'run_misc.at:1875' \
62343  "SWITCHES (environment COB_SWITCH_n and SET)" "    " 4
62344at_xfail=no
62345(
62346  $as_echo "622. $at_setup_line: testing $at_desc ..."
62347  $at_traceon
62348
62349
62350
62351cat >prog.cob <<'_ATEOF'
62352
62353       IDENTIFICATION   DIVISION.
62354       PROGRAM-ID.      prog.
62355       ENVIRONMENT DIVISION.
62356       CONFIGURATION SECTION.
62357       SPECIAL-NAMES.
62358           SWITCH-1 IS SWIT1
62359             ON  IS SWIT1-ON
62360             OFF IS SWIT1-OFF
62361           SWITCH-2 IS SWIT2
62362             ON  IS SWIT2-ON
62363             OFF IS SWIT2-OFF
62364           SWITCH-3
62365             ON  IS SWIT3-ON
62366             OFF IS SWIT3-OFF
62367           SWITCH-4 IS SWIT4
62368             OFF IS SWIT4-OFF
62369           SWITCH-31
62370             ON  IS SWIT31-ON
62371           SWITCH-36 IS SWIT36
62372             OFF IS SWIT36-OFF.
62373       DATA             DIVISION.
62374       WORKING-STORAGE  SECTION.
62375       PROCEDURE        DIVISION.
62376           IF SWIT1-ON
62377              DISPLAY "ON" NO ADVANCING
62378              END-DISPLAY
62379           ELSE
62380              DISPLAY "OFF" NO ADVANCING
62381              END-DISPLAY
62382           END-IF.
62383           IF SWIT2-ON
62384              DISPLAY " ON" NO ADVANCING
62385              END-DISPLAY
62386           ELSE
62387              DISPLAY " OFF" NO ADVANCING
62388              END-DISPLAY
62389           END-IF.
62390           IF SWIT3-ON
62391              DISPLAY " ON" NO ADVANCING
62392              END-DISPLAY
62393           ELSE
62394              DISPLAY " OFF" NO ADVANCING
62395              END-DISPLAY
62396           END-IF.
62397           IF NOT SWIT4-OFF
62398              DISPLAY " ON" NO ADVANCING
62399              END-DISPLAY
62400           ELSE
62401              DISPLAY " OFF" NO ADVANCING
62402              END-DISPLAY
62403           END-IF.
62404           SET SWIT1 TO OFF.
62405           SET SWIT2 TO ON.
62406           IF SWIT1-ON
62407              DISPLAY " ON" NO ADVANCING
62408              END-DISPLAY
62409           ELSE
62410              DISPLAY " OFF" NO ADVANCING
62411              END-DISPLAY
62412           END-IF.
62413           IF SWIT2-ON
62414              DISPLAY " ON" NO ADVANCING
62415              END-DISPLAY
62416           ELSE
62417              DISPLAY " OFF" NO ADVANCING
62418              END-DISPLAY
62419           END-IF
62420           IF SWIT31-ON
62421              DISPLAY " ON" NO ADVANCING
62422              END-DISPLAY
62423           ELSE
62424              DISPLAY " OFF" NO ADVANCING
62425              END-DISPLAY
62426           END-IF.
62427           IF NOT SWIT36-OFF
62428              DISPLAY " ON" NO ADVANCING
62429              END-DISPLAY
62430           ELSE
62431              DISPLAY " OFF" NO ADVANCING
62432              END-DISPLAY
62433           END-IF.
62434           STOP RUN.
62435_ATEOF
62436
62437
62438{ set +x
62439$as_echo "$at_srcdir/run_misc.at:1963: \$COMPILE prog.cob"
62440at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1963"
62441( $at_check_trace; $COMPILE prog.cob
62442) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62443at_status=$? at_failed=false
62444$at_check_filter
62445at_fn_diff_devnull "$at_stderr" || at_failed=:
62446at_fn_diff_devnull "$at_stdout" || at_failed=:
62447at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1963"
62448$at_failed && at_fn_log_failure
62449$at_traceon; }
62450
62451{ set +x
62452$as_echo "$at_srcdir/run_misc.at:1964: COB_SWITCH_1=1 COB_SWITCH_2=0 COB_SWITCH_3=OFF COB_SWITCH_4=ON COB_SWITCH_36=ON ./prog"
62453at_fn_check_prepare_trace "run_misc.at:1964"
62454( $at_check_trace; COB_SWITCH_1=1 COB_SWITCH_2=0 COB_SWITCH_3=OFF COB_SWITCH_4=ON COB_SWITCH_36=ON ./prog
62455) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62456at_status=$? at_failed=false
62457$at_check_filter
62458at_fn_diff_devnull "$at_stderr" || at_failed=:
62459echo >>"$at_stdout"; $as_echo "ON OFF OFF ON OFF ON OFF ON" | \
62460  $at_diff - "$at_stdout" || at_failed=:
62461at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1964"
62462$at_failed && at_fn_log_failure
62463$at_traceon; }
62464
62465
62466  set +x
62467  $at_times_p && times >"$at_times_file"
62468) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62469read at_status <"$at_status_file"
62470#AT_STOP_622
62471#AT_START_623
62472at_fn_group_banner 623 'run_misc.at:1972' \
62473  "Nested PERFORM" "                                 " 4
62474at_xfail=no
62475(
62476  $as_echo "623. $at_setup_line: testing $at_desc ..."
62477  $at_traceon
62478
62479
62480
62481cat >prog.cob <<'_ATEOF'
62482
62483       IDENTIFICATION   DIVISION.
62484       PROGRAM-ID.      prog.
62485       PROCEDURE        DIVISION.
62486           PERFORM 2 TIMES
62487             DISPLAY "X" NO ADVANCING
62488             END-DISPLAY
62489             PERFORM 2 TIMES
62490               DISPLAY "Y" NO ADVANCING
62491               END-DISPLAY
62492             END-PERFORM
62493           END-PERFORM.
62494           STOP RUN.
62495_ATEOF
62496
62497
62498{ set +x
62499$as_echo "$at_srcdir/run_misc.at:1990: \$COMPILE prog.cob"
62500at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1990"
62501( $at_check_trace; $COMPILE prog.cob
62502) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62503at_status=$? at_failed=false
62504$at_check_filter
62505at_fn_diff_devnull "$at_stderr" || at_failed=:
62506at_fn_diff_devnull "$at_stdout" || at_failed=:
62507at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1990"
62508$at_failed && at_fn_log_failure
62509$at_traceon; }
62510
62511{ set +x
62512$as_echo "$at_srcdir/run_misc.at:1991: \$COBCRUN_DIRECT ./prog"
62513at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1991"
62514( $at_check_trace; $COBCRUN_DIRECT ./prog
62515) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62516at_status=$? at_failed=false
62517$at_check_filter
62518at_fn_diff_devnull "$at_stderr" || at_failed=:
62519echo >>"$at_stdout"; $as_echo "XYYXYY" | \
62520  $at_diff - "$at_stdout" || at_failed=:
62521at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1991"
62522$at_failed && at_fn_log_failure
62523$at_traceon; }
62524
62525
62526  set +x
62527  $at_times_p && times >"$at_times_file"
62528) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62529read at_status <"$at_status_file"
62530#AT_STOP_623
62531#AT_START_624
62532at_fn_group_banner 624 'run_misc.at:1996' \
62533  "PERFORM VARYING BY -0.2" "                        " 4
62534at_xfail=no
62535(
62536  $as_echo "624. $at_setup_line: testing $at_desc ..."
62537  $at_traceon
62538
62539
62540
62541cat >prog.cob <<'_ATEOF'
62542
62543       IDENTIFICATION   DIVISION.
62544       PROGRAM-ID.      prog.
62545       DATA             DIVISION.
62546       WORKING-STORAGE  SECTION.
62547	   77 X             PIC 9v9.
62548       PROCEDURE        DIVISION.
62549           PERFORM VARYING X FROM 0.8 BY -0.2
62550                   UNTIL   X < 0.4
62551             DISPLAY "X" NO ADVANCING
62552             END-DISPLAY
62553           END-PERFORM.
62554		   IF X NOT = 0.2
62555		     DISPLAY "WRONG X: " X END-DISPLAY
62556		   END-IF
62557           STOP RUN.
62558_ATEOF
62559
62560
62561{ set +x
62562$as_echo "$at_srcdir/run_misc.at:2017: \$COMPILE prog.cob"
62563at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2017"
62564( $at_check_trace; $COMPILE prog.cob
62565) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62566at_status=$? at_failed=false
62567$at_check_filter
62568at_fn_diff_devnull "$at_stderr" || at_failed=:
62569at_fn_diff_devnull "$at_stdout" || at_failed=:
62570at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2017"
62571$at_failed && at_fn_log_failure
62572$at_traceon; }
62573
62574{ set +x
62575$as_echo "$at_srcdir/run_misc.at:2018: \$COBCRUN_DIRECT ./prog"
62576at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2018"
62577( $at_check_trace; $COBCRUN_DIRECT ./prog
62578) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62579at_status=$? at_failed=false
62580$at_check_filter
62581at_fn_diff_devnull "$at_stderr" || at_failed=:
62582echo >>"$at_stdout"; $as_echo "XXX" | \
62583  $at_diff - "$at_stdout" || at_failed=:
62584at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2018"
62585$at_failed && at_fn_log_failure
62586$at_traceon; }
62587
62588
62589  set +x
62590  $at_times_p && times >"$at_times_file"
62591) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62592read at_status <"$at_status_file"
62593#AT_STOP_624
62594#AT_START_625
62595at_fn_group_banner 625 'run_misc.at:2023' \
62596  "PERFORM VARYING BY phrase omitted" "              " 4
62597at_xfail=no
62598(
62599  $as_echo "625. $at_setup_line: testing $at_desc ..."
62600  $at_traceon
62601
62602
62603
62604cat >prog.cob <<'_ATEOF'
62605
62606       IDENTIFICATION   DIVISION.
62607       PROGRAM-ID.      prog.
62608       DATA             DIVISION.
62609       WORKING-STORAGE  SECTION.
62610	   77 X             PIC 9.
62611       PROCEDURE        DIVISION.
62612           PERFORM VARYING X FROM 4
62613                   UNTIL   X > 6
62614             DISPLAY "X" NO ADVANCING
62615           END-PERFORM.
62616		   IF X NOT = 7
62617		     DISPLAY "WRONG X: " X
62618		   END-IF
62619           STOP RUN.
62620_ATEOF
62621
62622
62623{ set +x
62624$as_echo "$at_srcdir/run_misc.at:2043: \$COMPILE_ONLY -std=cobol85 prog.cob"
62625at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "run_misc.at:2043"
62626( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
62627) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62628at_status=$? at_failed=false
62629$at_check_filter
62630echo >>"$at_stderr"; $as_echo "prog.cob:9: error: PERFORM VARYING without BY phrase does not conform to COBOL 85
62631" | \
62632  $at_diff - "$at_stderr" || at_failed=:
62633at_fn_diff_devnull "$at_stdout" || at_failed=:
62634at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:2043"
62635$at_failed && at_fn_log_failure
62636$at_traceon; }
62637
62638{ set +x
62639$as_echo "$at_srcdir/run_misc.at:2046: \$COMPILE prog.cob"
62640at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2046"
62641( $at_check_trace; $COMPILE prog.cob
62642) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62643at_status=$? at_failed=false
62644$at_check_filter
62645at_fn_diff_devnull "$at_stderr" || at_failed=:
62646at_fn_diff_devnull "$at_stdout" || at_failed=:
62647at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2046"
62648$at_failed && at_fn_log_failure
62649$at_traceon; }
62650
62651{ set +x
62652$as_echo "$at_srcdir/run_misc.at:2047: \$COBCRUN_DIRECT ./prog"
62653at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2047"
62654( $at_check_trace; $COBCRUN_DIRECT ./prog
62655) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62656at_status=$? at_failed=false
62657$at_check_filter
62658at_fn_diff_devnull "$at_stderr" || at_failed=:
62659echo >>"$at_stdout"; $as_echo "XXX" | \
62660  $at_diff - "$at_stdout" || at_failed=:
62661at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2047"
62662$at_failed && at_fn_log_failure
62663$at_traceon; }
62664
62665
62666  set +x
62667  $at_times_p && times >"$at_times_file"
62668) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62669read at_status <"$at_status_file"
62670#AT_STOP_625
62671#AT_START_626
62672at_fn_group_banner 626 'run_misc.at:2054' \
62673  "EXIT PERFORM" "                                   " 4
62674at_xfail=no
62675(
62676  $as_echo "626. $at_setup_line: testing $at_desc ..."
62677  $at_traceon
62678
62679
62680
62681cat >prog.cob <<'_ATEOF'
62682
62683       IDENTIFICATION   DIVISION.
62684       PROGRAM-ID.      prog.
62685       PROCEDURE        DIVISION.
62686           PERFORM 2 TIMES
62687             DISPLAY "OK" NO ADVANCING
62688             END-DISPLAY
62689             EXIT PERFORM
62690             DISPLAY "NOT OK"
62691             END-DISPLAY
62692           END-PERFORM
62693           STOP RUN.
62694_ATEOF
62695
62696
62697{ set +x
62698$as_echo "$at_srcdir/run_misc.at:2071: \$COMPILE prog.cob"
62699at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2071"
62700( $at_check_trace; $COMPILE prog.cob
62701) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62702at_status=$? at_failed=false
62703$at_check_filter
62704at_fn_diff_devnull "$at_stderr" || at_failed=:
62705at_fn_diff_devnull "$at_stdout" || at_failed=:
62706at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2071"
62707$at_failed && at_fn_log_failure
62708$at_traceon; }
62709
62710{ set +x
62711$as_echo "$at_srcdir/run_misc.at:2072: \$COBCRUN_DIRECT ./prog"
62712at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2072"
62713( $at_check_trace; $COBCRUN_DIRECT ./prog
62714) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62715at_status=$? at_failed=false
62716$at_check_filter
62717at_fn_diff_devnull "$at_stderr" || at_failed=:
62718echo >>"$at_stdout"; $as_echo "OK" | \
62719  $at_diff - "$at_stdout" || at_failed=:
62720at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2072"
62721$at_failed && at_fn_log_failure
62722$at_traceon; }
62723
62724
62725  set +x
62726  $at_times_p && times >"$at_times_file"
62727) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62728read at_status <"$at_status_file"
62729#AT_STOP_626
62730#AT_START_627
62731at_fn_group_banner 627 'run_misc.at:2079' \
62732  "EXIT PERFORM CYCLE" "                             " 4
62733at_xfail=no
62734(
62735  $as_echo "627. $at_setup_line: testing $at_desc ..."
62736  $at_traceon
62737
62738
62739
62740cat >prog.cob <<'_ATEOF'
62741
62742       IDENTIFICATION   DIVISION.
62743       PROGRAM-ID.      prog.
62744       PROCEDURE        DIVISION.
62745           PERFORM 2 TIMES
62746             DISPLAY "OK" NO ADVANCING
62747             END-DISPLAY
62748             EXIT PERFORM CYCLE
62749             DISPLAY "NOT OK"
62750             END-DISPLAY
62751           END-PERFORM
62752           STOP RUN.
62753_ATEOF
62754
62755
62756{ set +x
62757$as_echo "$at_srcdir/run_misc.at:2096: \$COMPILE prog.cob"
62758at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2096"
62759( $at_check_trace; $COMPILE prog.cob
62760) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62761at_status=$? at_failed=false
62762$at_check_filter
62763at_fn_diff_devnull "$at_stderr" || at_failed=:
62764at_fn_diff_devnull "$at_stdout" || at_failed=:
62765at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2096"
62766$at_failed && at_fn_log_failure
62767$at_traceon; }
62768
62769{ set +x
62770$as_echo "$at_srcdir/run_misc.at:2097: \$COBCRUN_DIRECT ./prog"
62771at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2097"
62772( $at_check_trace; $COBCRUN_DIRECT ./prog
62773) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62774at_status=$? at_failed=false
62775$at_check_filter
62776at_fn_diff_devnull "$at_stderr" || at_failed=:
62777echo >>"$at_stdout"; $as_echo "OKOK" | \
62778  $at_diff - "$at_stdout" || at_failed=:
62779at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2097"
62780$at_failed && at_fn_log_failure
62781$at_traceon; }
62782
62783
62784  set +x
62785  $at_times_p && times >"$at_times_file"
62786) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62787read at_status <"$at_status_file"
62788#AT_STOP_627
62789#AT_START_628
62790at_fn_group_banner 628 'run_misc.at:2104' \
62791  "EXIT PARAGRAPH" "                                 " 4
62792at_xfail=no
62793(
62794  $as_echo "628. $at_setup_line: testing $at_desc ..."
62795  $at_traceon
62796
62797
62798
62799cat >prog.cob <<'_ATEOF'
62800
62801       IDENTIFICATION   DIVISION.
62802       PROGRAM-ID.      prog.
62803       DATA             DIVISION.
62804       WORKING-STORAGE  SECTION.
62805       01 INDVAL        PIC 9(4).
62806       PROCEDURE        DIVISION.
62807       A01.
62808           PERFORM VARYING INDVAL FROM 1 BY 1 UNTIL INDVAL > 10
62809            IF INDVAL > 2
62810               EXIT PARAGRAPH
62811            END-IF
62812           END-PERFORM.
62813       A02.
62814           IF INDVAL NOT = 3
62815              DISPLAY INDVAL NO ADVANCING
62816              END-DISPLAY
62817           END-IF.
62818           STOP RUN.
62819_ATEOF
62820
62821
62822{ set +x
62823$as_echo "$at_srcdir/run_misc.at:2128: \$COMPILE prog.cob"
62824at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2128"
62825( $at_check_trace; $COMPILE prog.cob
62826) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62827at_status=$? at_failed=false
62828$at_check_filter
62829at_fn_diff_devnull "$at_stderr" || at_failed=:
62830at_fn_diff_devnull "$at_stdout" || at_failed=:
62831at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2128"
62832$at_failed && at_fn_log_failure
62833$at_traceon; }
62834
62835{ set +x
62836$as_echo "$at_srcdir/run_misc.at:2129: \$COBCRUN_DIRECT ./prog"
62837at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2129"
62838( $at_check_trace; $COBCRUN_DIRECT ./prog
62839) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62840at_status=$? at_failed=false
62841$at_check_filter
62842at_fn_diff_devnull "$at_stderr" || at_failed=:
62843at_fn_diff_devnull "$at_stdout" || at_failed=:
62844at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2129"
62845$at_failed && at_fn_log_failure
62846$at_traceon; }
62847
62848
62849  set +x
62850  $at_times_p && times >"$at_times_file"
62851) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62852read at_status <"$at_status_file"
62853#AT_STOP_628
62854#AT_START_629
62855at_fn_group_banner 629 'run_misc.at:2136' \
62856  "EXIT SECTION" "                                   " 4
62857at_xfail=no
62858(
62859  $as_echo "629. $at_setup_line: testing $at_desc ..."
62860  $at_traceon
62861
62862
62863
62864cat >prog.cob <<'_ATEOF'
62865
62866       IDENTIFICATION   DIVISION.
62867       PROGRAM-ID.      prog.
62868       DATA             DIVISION.
62869       WORKING-STORAGE  SECTION.
62870       01 INDVAL        PIC 9(4).
62871       PROCEDURE        DIVISION.
62872       A01 SECTION.
62873       A011.
62874           PERFORM VARYING INDVAL FROM 1 BY 1 UNTIL INDVAL > 10
62875            IF INDVAL > 2
62876               EXIT SECTION
62877            END-IF
62878           END-PERFORM.
62879       A012.
62880           DISPLAY INDVAL NO ADVANCING
62881           END-DISPLAY.
62882       A02 SECTION.
62883           IF INDVAL NOT = 3
62884              DISPLAY INDVAL NO ADVANCING
62885              END-DISPLAY
62886           END-IF.
62887           STOP RUN.
62888_ATEOF
62889
62890
62891{ set +x
62892$as_echo "$at_srcdir/run_misc.at:2164: \$COMPILE prog.cob"
62893at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2164"
62894( $at_check_trace; $COMPILE prog.cob
62895) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62896at_status=$? at_failed=false
62897$at_check_filter
62898at_fn_diff_devnull "$at_stderr" || at_failed=:
62899at_fn_diff_devnull "$at_stdout" || at_failed=:
62900at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2164"
62901$at_failed && at_fn_log_failure
62902$at_traceon; }
62903
62904{ set +x
62905$as_echo "$at_srcdir/run_misc.at:2165: \$COBCRUN_DIRECT ./prog"
62906at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2165"
62907( $at_check_trace; $COBCRUN_DIRECT ./prog
62908) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62909at_status=$? at_failed=false
62910$at_check_filter
62911at_fn_diff_devnull "$at_stderr" || at_failed=:
62912at_fn_diff_devnull "$at_stdout" || at_failed=:
62913at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2165"
62914$at_failed && at_fn_log_failure
62915$at_traceon; }
62916
62917
62918  set +x
62919  $at_times_p && times >"$at_times_file"
62920) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62921read at_status <"$at_status_file"
62922#AT_STOP_629
62923#AT_START_630
62924at_fn_group_banner 630 'run_misc.at:2170' \
62925  "PERFORM FOREVER / PERFORM UNTIL EXIT" "           " 4
62926at_xfail=no
62927(
62928  $as_echo "630. $at_setup_line: testing $at_desc ..."
62929  $at_traceon
62930
62931
62932
62933cat >prog.cob <<'_ATEOF'
62934
62935       IDENTIFICATION   DIVISION.
62936       PROGRAM-ID.      prog.
62937       DATA             DIVISION.
62938       WORKING-STORAGE  SECTION.
62939       01  INDVAL       PIC 9(4).
62940       PROCEDURE        DIVISION.
62941       A01.
62942           MOVE 0 TO INDVAL
62943           PERFORM UNTIL EXIT
62944            ADD 1 TO INDVAL
62945            IF INDVAL > 2
62946               EXIT PERFORM
62947            END-IF
62948           END-PERFORM
62949           IF INDVAL NOT = 3
62950              DISPLAY "1: " INDVAL
62951              END-DISPLAY
62952           END-IF
62953           PERFORM FOREVER
62954            ADD 1 TO INDVAL
62955            IF INDVAL > 4
62956               EXIT PERFORM
62957            END-IF
62958           END-PERFORM
62959           IF INDVAL NOT = 5
62960              DISPLAY "2: " INDVAL
62961              END-DISPLAY
62962           END-IF
62963           STOP RUN.
62964_ATEOF
62965
62966
62967{ set +x
62968$as_echo "$at_srcdir/run_misc.at:2205: \$COMPILE prog.cob"
62969at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2205"
62970( $at_check_trace; $COMPILE prog.cob
62971) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62972at_status=$? at_failed=false
62973$at_check_filter
62974at_fn_diff_devnull "$at_stderr" || at_failed=:
62975at_fn_diff_devnull "$at_stdout" || at_failed=:
62976at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2205"
62977$at_failed && at_fn_log_failure
62978$at_traceon; }
62979
62980{ set +x
62981$as_echo "$at_srcdir/run_misc.at:2206: \$COBCRUN_DIRECT ./prog"
62982at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2206"
62983( $at_check_trace; $COBCRUN_DIRECT ./prog
62984) >>"$at_stdout" 2>>"$at_stderr" 5>&-
62985at_status=$? at_failed=false
62986$at_check_filter
62987at_fn_diff_devnull "$at_stderr" || at_failed=:
62988at_fn_diff_devnull "$at_stdout" || at_failed=:
62989at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2206"
62990$at_failed && at_fn_log_failure
62991$at_traceon; }
62992
62993
62994  set +x
62995  $at_times_p && times >"$at_times_file"
62996) 5>&1 2>&1 7>&- | eval $at_tee_pipe
62997read at_status <"$at_status_file"
62998#AT_STOP_630
62999#AT_START_631
63000at_fn_group_banner 631 'run_misc.at:2211' \
63001  "PERFORM inline (1)" "                             " 4
63002at_xfail=no
63003(
63004  $as_echo "631. $at_setup_line: testing $at_desc ..."
63005  $at_traceon
63006
63007
63008
63009cat >prog.cob <<'_ATEOF'
63010
63011       IDENTIFICATION   DIVISION.
63012       PROGRAM-ID.      prog.
63013       DATA             DIVISION.
63014       WORKING-STORAGE  SECTION.
63015       01  INDVAL       PIC 9(4).
63016       PROCEDURE        DIVISION.
63017           PERFORM VARYING INDVAL FROM 1
63018            BY 1 UNTIL INDVAL > 2
63019           END-PERFORM
63020           IF INDVAL NOT = 3
63021              DISPLAY INDVAL NO ADVANCING
63022              END-DISPLAY
63023           END-IF
63024           STOP RUN
63025           .
63026_ATEOF
63027
63028
63029{ set +x
63030$as_echo "$at_srcdir/run_misc.at:2232: \$COMPILE -fmissing-statement=ok prog.cob"
63031at_fn_check_prepare_dynamic "$COMPILE -fmissing-statement=ok prog.cob" "run_misc.at:2232"
63032( $at_check_trace; $COMPILE -fmissing-statement=ok prog.cob
63033) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63034at_status=$? at_failed=false
63035$at_check_filter
63036at_fn_diff_devnull "$at_stderr" || at_failed=:
63037at_fn_diff_devnull "$at_stdout" || at_failed=:
63038at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2232"
63039$at_failed && at_fn_log_failure
63040$at_traceon; }
63041
63042{ set +x
63043$as_echo "$at_srcdir/run_misc.at:2233: \$COBCRUN_DIRECT ./prog"
63044at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2233"
63045( $at_check_trace; $COBCRUN_DIRECT ./prog
63046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63047at_status=$? at_failed=false
63048$at_check_filter
63049at_fn_diff_devnull "$at_stderr" || at_failed=:
63050at_fn_diff_devnull "$at_stdout" || at_failed=:
63051at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2233"
63052$at_failed && at_fn_log_failure
63053$at_traceon; }
63054
63055
63056  set +x
63057  $at_times_p && times >"$at_times_file"
63058) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63059read at_status <"$at_status_file"
63060#AT_STOP_631
63061#AT_START_632
63062at_fn_group_banner 632 'run_misc.at:2238' \
63063  "PERFORM inline (2)" "                             " 4
63064at_xfail=no
63065(
63066  $as_echo "632. $at_setup_line: testing $at_desc ..."
63067  $at_traceon
63068
63069
63070
63071cat >prog.cob <<'_ATEOF'
63072
63073       IDENTIFICATION   DIVISION.
63074       PROGRAM-ID.      prog.
63075       DATA             DIVISION.
63076       WORKING-STORAGE  SECTION.
63077       01  INDVAL       PIC 9(4).
63078       PROCEDURE        DIVISION.
63079           PERFORM VARYING INDVAL FROM 1
63080            BY 1 UNTIL INDVAL > 2.
63081           IF INDVAL NOT = 3
63082              DISPLAY INDVAL NO ADVANCING
63083              END-DISPLAY
63084           END-IF
63085           .
63086_ATEOF
63087
63088
63089{ set +x
63090$as_echo "$at_srcdir/run_misc.at:2257: \$COMPILE -frelax-syntax-checks -w prog.cob"
63091at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks -w prog.cob" "run_misc.at:2257"
63092( $at_check_trace; $COMPILE -frelax-syntax-checks -w prog.cob
63093) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63094at_status=$? at_failed=false
63095$at_check_filter
63096at_fn_diff_devnull "$at_stderr" || at_failed=:
63097at_fn_diff_devnull "$at_stdout" || at_failed=:
63098at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2257"
63099$at_failed && at_fn_log_failure
63100$at_traceon; }
63101
63102{ set +x
63103$as_echo "$at_srcdir/run_misc.at:2258: \$COBCRUN_DIRECT ./prog"
63104at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2258"
63105( $at_check_trace; $COBCRUN_DIRECT ./prog
63106) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63107at_status=$? at_failed=false
63108$at_check_filter
63109at_fn_diff_devnull "$at_stderr" || at_failed=:
63110at_fn_diff_devnull "$at_stdout" || at_failed=:
63111at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2258"
63112$at_failed && at_fn_log_failure
63113$at_traceon; }
63114
63115
63116  set +x
63117  $at_times_p && times >"$at_times_file"
63118) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63119read at_status <"$at_status_file"
63120#AT_STOP_632
63121#AT_START_633
63122at_fn_group_banner 633 'run_misc.at:2263' \
63123  "Non-overflow after overflow" "                    " 4
63124at_xfail=no
63125(
63126  $as_echo "633. $at_setup_line: testing $at_desc ..."
63127  $at_traceon
63128
63129
63130
63131cat >prog.cob <<'_ATEOF'
63132
63133       IDENTIFICATION   DIVISION.
63134       PROGRAM-ID.      prog.
63135       DATA             DIVISION.
63136       WORKING-STORAGE  SECTION.
63137       01  X            PIC 9(2) VALUE 0.
63138       01  Y            PIC 9(2) VALUE 0.
63139       PROCEDURE        DIVISION.
63140           COMPUTE X = 100
63141           END-COMPUTE.
63142           COMPUTE Y = 99
63143           END-COMPUTE.
63144           IF Y NOT = 99
63145              DISPLAY Y NO ADVANCING
63146              END-DISPLAY
63147           END-IF.
63148           STOP RUN.
63149_ATEOF
63150
63151
63152{ set +x
63153$as_echo "$at_srcdir/run_misc.at:2285: \$COMPILE prog.cob"
63154at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2285"
63155( $at_check_trace; $COMPILE prog.cob
63156) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63157at_status=$? at_failed=false
63158$at_check_filter
63159at_fn_diff_devnull "$at_stderr" || at_failed=:
63160at_fn_diff_devnull "$at_stdout" || at_failed=:
63161at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2285"
63162$at_failed && at_fn_log_failure
63163$at_traceon; }
63164
63165{ set +x
63166$as_echo "$at_srcdir/run_misc.at:2286: \$COBCRUN_DIRECT ./prog"
63167at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2286"
63168( $at_check_trace; $COBCRUN_DIRECT ./prog
63169) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63170at_status=$? at_failed=false
63171$at_check_filter
63172at_fn_diff_devnull "$at_stderr" || at_failed=:
63173at_fn_diff_devnull "$at_stdout" || at_failed=:
63174at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2286"
63175$at_failed && at_fn_log_failure
63176$at_traceon; }
63177
63178
63179  set +x
63180  $at_times_p && times >"$at_times_file"
63181) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63182read at_status <"$at_status_file"
63183#AT_STOP_633
63184#AT_START_634
63185at_fn_group_banner 634 'run_misc.at:2293' \
63186  "PERFORM ... CONTINUE" "                           " 4
63187at_xfail=no
63188(
63189  $as_echo "634. $at_setup_line: testing $at_desc ..."
63190  $at_traceon
63191
63192
63193
63194cat >prog.cob <<'_ATEOF'
63195
63196       IDENTIFICATION   DIVISION.
63197       PROGRAM-ID.      prog.
63198       PROCEDURE        DIVISION.
63199           PERFORM 2 TIMES
63200             CONTINUE
63201           END-PERFORM.
63202_ATEOF
63203
63204
63205{ set +x
63206$as_echo "$at_srcdir/run_misc.at:2305: \$COMPILE_ONLY prog.cob"
63207at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "run_misc.at:2305"
63208( $at_check_trace; $COMPILE_ONLY prog.cob
63209) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63210at_status=$? at_failed=false
63211$at_check_filter
63212at_fn_diff_devnull "$at_stderr" || at_failed=:
63213at_fn_diff_devnull "$at_stdout" || at_failed=:
63214at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2305"
63215$at_failed && at_fn_log_failure
63216$at_traceon; }
63217
63218
63219  set +x
63220  $at_times_p && times >"$at_times_file"
63221) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63222read at_status <"$at_status_file"
63223#AT_STOP_634
63224#AT_START_635
63225at_fn_group_banner 635 'run_misc.at:2310' \
63226  "STRING with subscript reference" "                " 4
63227at_xfail=no
63228(
63229  $as_echo "635. $at_setup_line: testing $at_desc ..."
63230  $at_traceon
63231
63232
63233
63234cat >prog.cob <<'_ATEOF'
63235
63236       IDENTIFICATION   DIVISION.
63237       PROGRAM-ID.      prog.
63238       DATA             DIVISION.
63239       WORKING-STORAGE  SECTION.
63240       01  G.
63241           02 X         PIC X(3) OCCURS 3.
63242       PROCEDURE        DIVISION.
63243           MOVE   SPACES TO G.
63244           STRING "abc" INTO X(2)
63245           END-STRING.
63246           IF G NOT = "   abc   "
63247              DISPLAY X(1) NO ADVANCING
63248              END-DISPLAY
63249           END-IF.
63250           STOP RUN.
63251_ATEOF
63252
63253
63254{ set +x
63255$as_echo "$at_srcdir/run_misc.at:2331: \$COMPILE prog.cob"
63256at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2331"
63257( $at_check_trace; $COMPILE prog.cob
63258) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63259at_status=$? at_failed=false
63260$at_check_filter
63261at_fn_diff_devnull "$at_stderr" || at_failed=:
63262at_fn_diff_devnull "$at_stdout" || at_failed=:
63263at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2331"
63264$at_failed && at_fn_log_failure
63265$at_traceon; }
63266
63267{ set +x
63268$as_echo "$at_srcdir/run_misc.at:2332: \$COBCRUN_DIRECT ./prog"
63269at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2332"
63270( $at_check_trace; $COBCRUN_DIRECT ./prog
63271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63272at_status=$? at_failed=false
63273$at_check_filter
63274at_fn_diff_devnull "$at_stderr" || at_failed=:
63275at_fn_diff_devnull "$at_stdout" || at_failed=:
63276at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2332"
63277$at_failed && at_fn_log_failure
63278$at_traceon; }
63279
63280
63281  set +x
63282  $at_times_p && times >"$at_times_file"
63283) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63284read at_status <"$at_status_file"
63285#AT_STOP_635
63286#AT_START_636
63287at_fn_group_banner 636 'run_misc.at:2337' \
63288  "STRING / UNSTRING NOT ON OVERFLOW" "              " 4
63289at_xfail=no
63290(
63291  $as_echo "636. $at_setup_line: testing $at_desc ..."
63292  $at_traceon
63293
63294
63295
63296cat >prog.cob <<'_ATEOF'
63297
63298       identification division.
63299       program-id. prog.
63300       data division.
63301       working-storage section.
63302       77 simple-str     pic x(20).
63303       77 err-str        pic x(50).
63304      *-----------------------------------------------------------------
63305       procedure division.
63306      *    STRING test
63307           move spaces to simple-str
63308           string 'data'
63309             delimited by size
63310             into simple-str
63311             on overflow
63312               move spaces to err-str
63313               string 'STRING OVERFLOW'
63314                  delimited by size
63315                  into err-str
63316               end-string
63317               display err-str upon syserr
63318               end-display
63319               display '1 failed'
63320               end-display
63321             not on overflow
63322               display '1 passed'
63323               end-display
63324           end-string
63325           if simple-str not = 'data'
63326             display 'STRING ERROR (1): "' simple-str '"'
63327             end-display
63328           end-if
63329      *
63330           move spaces to simple-str
63331           string 'data is too big here...'
63332             delimited by size
63333             into simple-str
63334             on overflow
63335               display '2 passed'
63336               end-display
63337             not on overflow
63338               display '2 failed'
63339               end-display
63340               move spaces to err-str
63341               string 'missing OVERFLOW'
63342                  delimited by size
63343                  into err-str
63344               end-string
63345               display err-str upon syserr
63346               end-display
63347           end-string
63348           if simple-str not = 'data is too big here'
63349             display 'STRING ERROR (2): "' simple-str '"'
63350             end-display
63351           end-if
63352      *
63353      *    UNSTRING test
63354           move spaces to simple-str
63355           unstring 'data'
63356             into simple-str
63357             on overflow
63358               move spaces to err-str
63359               unstring 'UNSTRING OVERFLOW'
63360                  into err-str
63361               end-unstring
63362               display err-str upon syserr
63363               end-display
63364               display '3 failed'
63365               end-display
63366             not on overflow
63367               display '3 passed'
63368               end-display
63369           end-unstring
63370           if simple-str not = 'data'
63371             display 'UNSTRING ERROR (1): "' simple-str '"'
63372             end-display
63373           end-if
63374      *
63375           move spaces to simple-str
63376           unstring 'data is too big here...'
63377             into simple-str
63378             on overflow
63379               display '4 passed'
63380               end-display
63381             not on overflow
63382               display '4 failed'
63383               end-display
63384               move spaces to err-str
63385               string 'missing OVERFLOW'
63386                  delimited by size
63387                  into err-str
63388               end-string
63389               display err-str upon syserr
63390               end-display
63391           end-unstring
63392           if simple-str not = 'data is too big here'
63393             display 'UNSTRING ERROR (2): "' simple-str '"'
63394             end-display
63395           end-if
63396      *
63397           STOP RUN.
63398_ATEOF
63399
63400
63401{ set +x
63402$as_echo "$at_srcdir/run_misc.at:2443: \$COMPILE prog.cob"
63403at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2443"
63404( $at_check_trace; $COMPILE prog.cob
63405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63406at_status=$? at_failed=false
63407$at_check_filter
63408at_fn_diff_devnull "$at_stderr" || at_failed=:
63409at_fn_diff_devnull "$at_stdout" || at_failed=:
63410at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2443"
63411$at_failed && at_fn_log_failure
63412$at_traceon; }
63413
63414{ set +x
63415$as_echo "$at_srcdir/run_misc.at:2444: \$COBCRUN_DIRECT ./prog"
63416at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2444"
63417( $at_check_trace; $COBCRUN_DIRECT ./prog
63418) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63419at_status=$? at_failed=false
63420$at_check_filter
63421at_fn_diff_devnull "$at_stderr" || at_failed=:
63422echo >>"$at_stdout"; $as_echo "1 passed
634232 passed
634243 passed
634254 passed
63426" | \
63427  $at_diff - "$at_stdout" || at_failed=:
63428at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2444"
63429$at_failed && at_fn_log_failure
63430$at_traceon; }
63431
63432
63433  set +x
63434  $at_times_p && times >"$at_times_file"
63435) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63436read at_status <"$at_status_file"
63437#AT_STOP_636
63438#AT_START_637
63439at_fn_group_banner 637 'run_misc.at:2454' \
63440  "UNSTRING DELIMITED ALL LOW-VALUE" "               " 4
63441at_xfail=no
63442(
63443  $as_echo "637. $at_setup_line: testing $at_desc ..."
63444  $at_traceon
63445
63446
63447
63448cat >prog.cob <<'_ATEOF'
63449
63450       IDENTIFICATION   DIVISION.
63451       PROGRAM-ID.      prog.
63452       DATA             DIVISION.
63453       WORKING-STORAGE  SECTION.
63454       01  G.
63455           03 FILLER    PIC XXX VALUE "ABC".
63456           03 FILLER    PIC XX  VALUE LOW-VALUES.
63457           03 FILLER    PIC XXX VALUE "DEF".
63458       01  A            PIC XXX.
63459       01  B            PIC XXX.
63460       PROCEDURE        DIVISION.
63461           UNSTRING G DELIMITED BY ALL LOW-VALUES
63462                      INTO A B
63463           END-UNSTRING.
63464           IF A NOT = "ABC"
63465              DISPLAY A
63466              END-DISPLAY
63467           END-IF.
63468           IF B NOT = "DEF"
63469              DISPLAY B
63470              END-DISPLAY
63471           END-IF.
63472           STOP RUN.
63473_ATEOF
63474
63475
63476{ set +x
63477$as_echo "$at_srcdir/run_misc.at:2483: \$COMPILE prog.cob"
63478at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2483"
63479( $at_check_trace; $COMPILE prog.cob
63480) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63481at_status=$? at_failed=false
63482$at_check_filter
63483at_fn_diff_devnull "$at_stderr" || at_failed=:
63484at_fn_diff_devnull "$at_stdout" || at_failed=:
63485at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2483"
63486$at_failed && at_fn_log_failure
63487$at_traceon; }
63488
63489{ set +x
63490$as_echo "$at_srcdir/run_misc.at:2484: \$COBCRUN_DIRECT ./prog"
63491at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2484"
63492( $at_check_trace; $COBCRUN_DIRECT ./prog
63493) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63494at_status=$? at_failed=false
63495$at_check_filter
63496at_fn_diff_devnull "$at_stderr" || at_failed=:
63497at_fn_diff_devnull "$at_stdout" || at_failed=:
63498at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2484"
63499$at_failed && at_fn_log_failure
63500$at_traceon; }
63501
63502
63503  set +x
63504  $at_times_p && times >"$at_times_file"
63505) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63506read at_status <"$at_status_file"
63507#AT_STOP_637
63508#AT_START_638
63509at_fn_group_banner 638 'run_misc.at:2489' \
63510  "UNSTRING DELIMITED ALL SPACE-2" "                 " 4
63511at_xfail=no
63512(
63513  $as_echo "638. $at_setup_line: testing $at_desc ..."
63514  $at_traceon
63515
63516
63517
63518cat >prog.cob <<'_ATEOF'
63519
63520       IDENTIFICATION  DIVISION.
63521       PROGRAM-ID.     prog.
63522       ENVIRONMENT     DIVISION.
63523       DATA            DIVISION.
63524       WORKING-STORAGE SECTION.
63525       01  WS-RECORD.
63526           02 VALUE SPACE           PIC X(04).
63527           02 VALUE "ABC AND DE"    PIC X(10).
63528           02 VALUE SPACE           PIC X(07).
63529           02 VALUE "FG AND HIJ"    PIC X(10).
63530           02 VALUE SPACE           PIC X(08).
63531       01  SPACE-2                  PIC X(02) VALUE SPACE.
63532       01  WS-DUMMY                 PIC X(15).
63533       01  WS-POINTER               PIC 99.
63534       PROCEDURE       DIVISION.
63535           MOVE 1 TO WS-POINTER.
63536      *
63537           PERFORM 0001-SUB.
63538           IF WS-DUMMY NOT = SPACE
63539              DISPLAY "Expected space - Got " WS-DUMMY
63540              END-DISPLAY
63541           END-IF.
63542           IF WS-POINTER NOT = 5
63543              DISPLAY "Expected 5 - Got " WS-POINTER
63544              END-DISPLAY
63545           END-IF.
63546      *
63547           PERFORM 0001-SUB.
63548           IF WS-DUMMY NOT = "ABC AND DE"
63549              DISPLAY "Expected ABC AND DE - Got " WS-DUMMY
63550              END-DISPLAY
63551           END-IF.
63552           IF WS-POINTER NOT = 21
63553              DISPLAY "Expected 21 - Got " WS-POINTER
63554              END-DISPLAY
63555           END-IF.
63556      *
63557           PERFORM 0001-SUB.
63558           IF WS-DUMMY NOT = " FG AND HIJ"
63559              DISPLAY "Expected  FG AND HIJ - Got " WS-DUMMY
63560              END-DISPLAY
63561           END-IF.
63562           IF WS-POINTER NOT = 40
63563              DISPLAY "Expected 40 - Got " WS-POINTER
63564              END-DISPLAY
63565           END-IF.
63566           STOP RUN.
63567       0001-SUB.
63568           UNSTRING WS-RECORD
63569                    DELIMITED BY ALL SPACE-2
63570              INTO WS-DUMMY
63571              POINTER WS-POINTER
63572           END-UNSTRING.
63573_ATEOF
63574
63575
63576{ set +x
63577$as_echo "$at_srcdir/run_misc.at:2548: \$COMPILE prog.cob"
63578at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2548"
63579( $at_check_trace; $COMPILE prog.cob
63580) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63581at_status=$? at_failed=false
63582$at_check_filter
63583at_fn_diff_devnull "$at_stderr" || at_failed=:
63584at_fn_diff_devnull "$at_stdout" || at_failed=:
63585at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2548"
63586$at_failed && at_fn_log_failure
63587$at_traceon; }
63588
63589{ set +x
63590$as_echo "$at_srcdir/run_misc.at:2549: \$COBCRUN_DIRECT ./prog"
63591at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2549"
63592( $at_check_trace; $COBCRUN_DIRECT ./prog
63593) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63594at_status=$? at_failed=false
63595$at_check_filter
63596at_fn_diff_devnull "$at_stderr" || at_failed=:
63597at_fn_diff_devnull "$at_stdout" || at_failed=:
63598at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2549"
63599$at_failed && at_fn_log_failure
63600$at_traceon; }
63601
63602
63603  set +x
63604  $at_times_p && times >"$at_times_file"
63605) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63606read at_status <"$at_status_file"
63607#AT_STOP_638
63608#AT_START_639
63609at_fn_group_banner 639 'run_misc.at:2554' \
63610  "UNSTRING DELIMITED POINTER" "                     " 4
63611at_xfail=no
63612(
63613  $as_echo "639. $at_setup_line: testing $at_desc ..."
63614  $at_traceon
63615
63616
63617
63618cat >prog.cob <<'_ATEOF'
63619
63620       IDENTIFICATION  DIVISION.
63621       PROGRAM-ID.     prog.
63622       ENVIRONMENT     DIVISION.
63623       DATA            DIVISION.
63624       WORKING-STORAGE SECTION.
63625       01  WS-LAY-RECORD            PIC X(66).
63626       01  WS-DUMMY                 PIC X(50).
63627       01  WS-KEYWORD               PIC X(32).
63628       01  WS-POINTER               PIC 99.
63629       PROCEDURE       DIVISION.
63630           MOVE
63631       '        10  AF-RECORD-TYPE-SEQUENCE-04     PIC   9(05) COMP-3.'
63632                  TO WS-LAY-RECORD.
63633           MOVE 1 TO WS-POINTER.
63634           PERFORM 0001-SUB.
63635           IF WS-POINTER NOT = 48
63636              DISPLAY "Expected 48 - Got " WS-POINTER
63637              END-DISPLAY
63638           END-IF.
63639           ADD 7  TO WS-POINTER
63640           END-ADD.
63641           PERFORM 0001-SUB.
63642           IF WS-POINTER NOT = 62
63643              DISPLAY "Expected 62 - Got " WS-POINTER
63644              END-DISPLAY
63645           END-IF.
63646           PERFORM 0001-SUB.
63647           IF WS-POINTER NOT = 63
63648              DISPLAY "Expected 63 - Got " WS-POINTER
63649              END-DISPLAY
63650           END-IF.
63651           STOP RUN.
63652       0001-SUB.
63653           UNSTRING WS-LAY-RECORD
63654                    DELIMITED
63655                    BY ' PIC '
63656                    OR ' COMP-3'
63657                    OR '.'
63658              INTO WS-DUMMY
63659              DELIMITER WS-KEYWORD
63660              POINTER WS-POINTER
63661           END-UNSTRING.
63662_ATEOF
63663
63664
63665{ set +x
63666$as_echo "$at_srcdir/run_misc.at:2602: \$COMPILE prog.cob"
63667at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2602"
63668( $at_check_trace; $COMPILE prog.cob
63669) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63670at_status=$? at_failed=false
63671$at_check_filter
63672at_fn_diff_devnull "$at_stderr" || at_failed=:
63673at_fn_diff_devnull "$at_stdout" || at_failed=:
63674at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2602"
63675$at_failed && at_fn_log_failure
63676$at_traceon; }
63677
63678{ set +x
63679$as_echo "$at_srcdir/run_misc.at:2603: \$COBCRUN_DIRECT ./prog"
63680at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2603"
63681( $at_check_trace; $COBCRUN_DIRECT ./prog
63682) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63683at_status=$? at_failed=false
63684$at_check_filter
63685at_fn_diff_devnull "$at_stderr" || at_failed=:
63686at_fn_diff_devnull "$at_stdout" || at_failed=:
63687at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2603"
63688$at_failed && at_fn_log_failure
63689$at_traceon; }
63690
63691
63692  set +x
63693  $at_times_p && times >"$at_times_file"
63694) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63695read at_status <"$at_status_file"
63696#AT_STOP_639
63697#AT_START_640
63698at_fn_group_banner 640 'run_misc.at:2608' \
63699  "UNSTRING DELIMITER IN" "                          " 4
63700at_xfail=no
63701(
63702  $as_echo "640. $at_setup_line: testing $at_desc ..."
63703  $at_traceon
63704
63705
63706
63707cat >prog.cob <<'_ATEOF'
63708
63709       IDENTIFICATION   DIVISION.
63710       PROGRAM-ID.      prog.
63711       ENVIRONMENT      DIVISION.
63712       DATA             DIVISION.
63713       WORKING-STORAGE SECTION.
63714       01  WK-CMD       PIC X(8) VALUE "WWADDBCC".
63715       01  WK-SIGNS     PIC XX   VALUE "AB".
63716       01  WKS REDEFINES WK-SIGNS.
63717           03 WK-SIGN   PIC X OCCURS 2.
63718       01  WK-DELIM     PIC X OCCURS 2.
63719       01  WK-DATA      PIC X(2) OCCURS 3.
63720       PROCEDURE        DIVISION.
63721           UNSTRING WK-CMD DELIMITED BY WK-SIGN(1) OR WK-SIGN(2)
63722           INTO WK-DATA(1) DELIMITER IN WK-DELIM(1)
63723                WK-DATA(2) DELIMITER IN WK-DELIM(2)
63724                WK-DATA(3)
63725           END-UNSTRING
63726           IF  WK-DATA(1)   NOT = "WW"
63727            OR WK-DATA(2)   NOT = "DD"
63728            OR WK-DATA(3)   NOT = "CC"
63729            OR WK-DELIM(1)  NOT = "A"
63730            OR WK-DELIM(2)  NOT = "B"
63731               DISPLAY WK-DATA(1)
63732                       WK-DATA(2)
63733                       WK-DATA(3)
63734                       WK-DELIM(1)
63735                       WK-DELIM(2)
63736               END-DISPLAY
63737           END-IF.
63738           STOP RUN.
63739_ATEOF
63740
63741
63742{ set +x
63743$as_echo "$at_srcdir/run_misc.at:2644: \$COMPILE -ftop-level-occurs-clause=ok prog.cob"
63744at_fn_check_prepare_dynamic "$COMPILE -ftop-level-occurs-clause=ok prog.cob" "run_misc.at:2644"
63745( $at_check_trace; $COMPILE -ftop-level-occurs-clause=ok prog.cob
63746) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63747at_status=$? at_failed=false
63748$at_check_filter
63749at_fn_diff_devnull "$at_stderr" || at_failed=:
63750at_fn_diff_devnull "$at_stdout" || at_failed=:
63751at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2644"
63752$at_failed && at_fn_log_failure
63753$at_traceon; }
63754
63755{ set +x
63756$as_echo "$at_srcdir/run_misc.at:2645: \$COBCRUN_DIRECT ./prog"
63757at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2645"
63758( $at_check_trace; $COBCRUN_DIRECT ./prog
63759) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63760at_status=$? at_failed=false
63761$at_check_filter
63762at_fn_diff_devnull "$at_stderr" || at_failed=:
63763at_fn_diff_devnull "$at_stdout" || at_failed=:
63764at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2645"
63765$at_failed && at_fn_log_failure
63766$at_traceon; }
63767
63768
63769  set +x
63770  $at_times_p && times >"$at_times_file"
63771) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63772read at_status <"$at_status_file"
63773#AT_STOP_640
63774#AT_START_641
63775at_fn_group_banner 641 'run_misc.at:2650' \
63776  "UNSTRING with FUNCTION / literal" "               " 4
63777at_xfail=no
63778(
63779  $as_echo "641. $at_setup_line: testing $at_desc ..."
63780  $at_traceon
63781
63782
63783
63784cat >prog.cob <<'_ATEOF'
63785
63786       IDENTIFICATION DIVISION.
63787       PROGRAM-ID. prog.
63788       DATA  DIVISION.
63789       WORKING-STORAGE SECTION.
63790       01  FILLER.
63791         05  TSTUNS PIC X(479).
63792         05  PRM    PIC X(16) OCCURS 4 TIMES.
63793       PROCEDURE DIVISION.
63794           MOVE "The,Quick,Brown,Fox" TO TSTUNS.
63795           UNSTRING TSTUNS DELIMITED BY ','
63796              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
63797           DISPLAY "PRM(1) is " PRM(1) ":".
63798           DISPLAY "PRM(2) is " PRM(2) ":".
63799           DISPLAY "PRM(3) is " PRM(3) ":".
63800           DISPLAY "PRM(4) is " PRM(4) ":".
63801           UNSTRING FUNCTION UPPER-CASE(TSTUNS) DELIMITED BY ','
63802              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
63803           DISPLAY "Now using UPPER-CASE"
63804           DISPLAY "PRM(1) is " PRM(1) ":".
63805           DISPLAY "PRM(2) is " PRM(2) ":".
63806           DISPLAY "PRM(3) is " PRM(3) ":".
63807           DISPLAY "PRM(4) is " PRM(4) ":".
63808           UNSTRING "Daddy,was,a,Rolling stone" DELIMITED BY ','
63809              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
63810           DISPLAY "Now using Literal"
63811           DISPLAY "PRM(1) is " PRM(1) ":".
63812           DISPLAY "PRM(2) is " PRM(2) ":".
63813           DISPLAY "PRM(3) is " PRM(3) ":".
63814           DISPLAY "PRM(4) is " PRM(4) ":".
63815           UNSTRING FUNCTION LOWER-CASE("Daddy,was,a,Rolling stone")
63816                DELIMITED BY ','
63817              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
63818           DISPLAY "Now using Literal + LOWER-CASE"
63819           DISPLAY "PRM(1) is " PRM(1) ":".
63820           DISPLAY "PRM(2) is " PRM(2) ":".
63821           DISPLAY "PRM(3) is " PRM(3) ":".
63822           DISPLAY "PRM(4) is " PRM(4) ":".
63823           STOP RUN.
63824_ATEOF
63825
63826
63827{ set +x
63828$as_echo "$at_srcdir/run_misc.at:2694: \$COMPILE prog.cob"
63829at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2694"
63830( $at_check_trace; $COMPILE prog.cob
63831) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63832at_status=$? at_failed=false
63833$at_check_filter
63834at_fn_diff_devnull "$at_stderr" || at_failed=:
63835at_fn_diff_devnull "$at_stdout" || at_failed=:
63836at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2694"
63837$at_failed && at_fn_log_failure
63838$at_traceon; }
63839
63840{ set +x
63841$as_echo "$at_srcdir/run_misc.at:2695: \$COBCRUN_DIRECT ./prog"
63842at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2695"
63843( $at_check_trace; $COBCRUN_DIRECT ./prog
63844) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63845at_status=$? at_failed=false
63846$at_check_filter
63847at_fn_diff_devnull "$at_stderr" || at_failed=:
63848echo >>"$at_stdout"; $as_echo "PRM(1) is The             :
63849PRM(2) is Quick           :
63850PRM(3) is Brown           :
63851PRM(4) is Fox             :
63852Now using UPPER-CASE
63853PRM(1) is THE             :
63854PRM(2) is QUICK           :
63855PRM(3) is BROWN           :
63856PRM(4) is FOX             :
63857Now using Literal
63858PRM(1) is Daddy           :
63859PRM(2) is was             :
63860PRM(3) is a               :
63861PRM(4) is Rolling stone   :
63862Now using Literal + LOWER-CASE
63863PRM(1) is daddy           :
63864PRM(2) is was             :
63865PRM(3) is a               :
63866PRM(4) is rolling stone   :
63867" | \
63868  $at_diff - "$at_stdout" || at_failed=:
63869at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2695"
63870$at_failed && at_fn_log_failure
63871$at_traceon; }
63872
63873
63874  set +x
63875  $at_times_p && times >"$at_times_file"
63876) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63877read at_status <"$at_status_file"
63878#AT_STOP_641
63879#AT_START_642
63880at_fn_group_banner 642 'run_misc.at:2720' \
63881  "SORT: table sort" "                               " 4
63882at_xfail=no
63883(
63884  $as_echo "642. $at_setup_line: testing $at_desc ..."
63885  $at_traceon
63886
63887
63888
63889cat >prog.cob <<'_ATEOF'
63890
63891       IDENTIFICATION   DIVISION.
63892       PROGRAM-ID.      prog.
63893       DATA             DIVISION.
63894       WORKING-STORAGE  SECTION.
63895       01 G             VALUE "d4b2e1a3c5".
63896         02 TBL         OCCURS 5.
63897           03 X         PIC X.
63898           03 Y         PIC 9.
63899       PROCEDURE        DIVISION.
63900           SORT TBL ASCENDING KEY X.
63901           IF G NOT = "a3b2c5d4e1"
63902              DISPLAY G
63903              END-DISPLAY
63904           END-IF.
63905           SORT TBL DESCENDING KEY Y.
63906           IF G NOT = "c5d4a3b2e1"
63907              DISPLAY G
63908              END-DISPLAY
63909           END-IF.
63910           SORT TBL ASCENDING KEY TBL.
63911           IF G NOT = "a3b2c5d4e1"
63912              DISPLAY G
63913              END-DISPLAY
63914           END-IF.
63915           SORT TBL DESCENDING KEY.
63916           IF G NOT = "e1d4c5b2a3"
63917              DISPLAY G
63918              END-DISPLAY
63919           END-IF.
63920           STOP RUN.
63921_ATEOF
63922
63923
63924{ set +x
63925$as_echo "$at_srcdir/run_misc.at:2756: \$COMPILE prog.cob"
63926at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2756"
63927( $at_check_trace; $COMPILE prog.cob
63928) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63929at_status=$? at_failed=false
63930$at_check_filter
63931at_fn_diff_devnull "$at_stderr" || at_failed=:
63932at_fn_diff_devnull "$at_stdout" || at_failed=:
63933at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2756"
63934$at_failed && at_fn_log_failure
63935$at_traceon; }
63936
63937{ set +x
63938$as_echo "$at_srcdir/run_misc.at:2757: \$COBCRUN_DIRECT ./prog"
63939at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2757"
63940( $at_check_trace; $COBCRUN_DIRECT ./prog
63941) >>"$at_stdout" 2>>"$at_stderr" 5>&-
63942at_status=$? at_failed=false
63943$at_check_filter
63944at_fn_diff_devnull "$at_stderr" || at_failed=:
63945at_fn_diff_devnull "$at_stdout" || at_failed=:
63946at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2757"
63947$at_failed && at_fn_log_failure
63948$at_traceon; }
63949
63950
63951  set +x
63952  $at_times_p && times >"$at_times_file"
63953) 5>&1 2>&1 7>&- | eval $at_tee_pipe
63954read at_status <"$at_status_file"
63955#AT_STOP_642
63956#AT_START_643
63957at_fn_group_banner 643 'run_misc.at:2762' \
63958  "SORT: table sort (2)" "                           " 4
63959at_xfail=no
63960(
63961  $as_echo "643. $at_setup_line: testing $at_desc ..."
63962  $at_traceon
63963
63964
63965
63966cat >prog.cob <<'_ATEOF'
63967
63968       IDENTIFICATION DIVISION.
63969       PROGRAM-ID. prog.
63970       ENVIRONMENT DIVISION.
63971       DATA DIVISION.
63972       WORKING-STORAGE SECTION.
63973       01 K                 PIC 9(2).
63974
63975       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
63976       01 TAB1.
63977          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
63978                                 DESCENDING TAB1-NR.
63979             10 TAB1-NR     PIC 99.
63980
63981       01 TAB2.
63982          05 CNT2           PIC 9(9) COMP-5 VALUE 4.
63983          05 ROW2 OCCURS 1 TO 4 DEPENDING CNT2
63984                                 DESCENDING TAB2-NR.
63985             10 TAB2-NR PIC 99.
63986
63987       01 TAB3.
63988          05 CNT3           PIC 9(9) COMP-5 VALUE 10.
63989          05 ROW3 OCCURS 1 TO 10 DEPENDING CNT3
63990                                  DESCENDING TAB3-NR
63991                                  ASCENDING TAB3-DATA.
63992             10 TAB3-NR     PIC 99.
63993             10 FILLER      PIC X(2).
63994             10 TAB3-DATA   PIC X(5).
63995             10 FILLER      PIC X(2).
63996             10 TAB3-DATA2  PIC X(5).
63997
63998
63999       PROCEDURE DIVISION.
64000       A.
64001           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64002             MOVE K TO TAB1-NR(K), TAB2-NR(K)
64003           END-PERFORM
64004
64005           MOVE 1 TO TAB3-NR(1).
64006           MOVE 1 TO TAB3-NR(8).
64007           MOVE 1 TO TAB3-NR(4).
64008           MOVE 6 TO TAB3-NR(2).
64009           MOVE 5 TO TAB3-NR(3).
64010           MOVE 5 TO TAB3-NR(9).
64011           MOVE 2 TO TAB3-NR(5).
64012           MOVE 2 TO TAB3-NR(10).
64013           MOVE 4 TO TAB3-NR(6).
64014           MOVE 3 TO TAB3-NR(7).
64015
64016           MOVE "abcde" TO TAB3-DATA(1).
64017           MOVE "AbCde" TO TAB3-DATA(2).
64018           MOVE "abcde" TO TAB3-DATA(3).
64019           MOVE "zyx" TO TAB3-DATA(4).
64020           MOVE "12345" TO TAB3-DATA(5).
64021           MOVE "zyx" TO TAB3-DATA(6).
64022           MOVE "abcde" TO TAB3-DATA(7).
64023           MOVE "AbCde" TO TAB3-DATA(8).
64024           MOVE "abc" TO TAB3-DATA(9).
64025           MOVE "12346" TO TAB3-DATA(10).
64026
64027           MOVE "day" TO TAB3-DATA2(1).
64028           MOVE "The" TO TAB3-DATA2(2).
64029           MOVE "eats" TO TAB3-DATA2(3).
64030           MOVE "." TO TAB3-DATA2(4).
64031           MOVE "mooos" TO TAB3-DATA2(5).
64032           MOVE "grass" TO TAB3-DATA2(6).
64033           MOVE "and" TO TAB3-DATA2(7).
64034           MOVE "whole" TO TAB3-DATA2(8).
64035           MOVE "cow" TO TAB3-DATA2(9).
64036           MOVE "the" TO TAB3-DATA2(10).
64037
64038           SORT ROW1 DESCENDING TAB1-NR
64039           SORT ROW2 DESCENDING TAB2-NR
64040
64041           DISPLAY "SINGLE TABLE" END-DISPLAY
64042           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64043             DISPLAY  FUNCTION TRIM(TAB1-NR(K)) END-DISPLAY
64044           END-PERFORM
64045
64046           DISPLAY "LOWER LEVEL TABLE" END-DISPLAY
64047           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64048             DISPLAY  FUNCTION TRIM(TAB2-NR(K)) END-DISPLAY
64049           END-PERFORM
64050
64051           SORT ROW3 DESCENDING TAB3-NR ASCENDING TAB3-DATA
64052
64053           DISPLAY "MULTY KEY SORT" END-DISPLAY
64054           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 10
64055             DISPLAY  FUNCTION TRIM(ROW3(K))
64056             END-DISPLAY
64057           END-PERFORM
64058
64059           STOP RUN.
64060_ATEOF
64061
64062
64063{ set +x
64064$as_echo "$at_srcdir/run_misc.at:2860: \$COMPILE prog.cob"
64065at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2860"
64066( $at_check_trace; $COMPILE prog.cob
64067) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64068at_status=$? at_failed=false
64069$at_check_filter
64070at_fn_diff_devnull "$at_stderr" || at_failed=:
64071at_fn_diff_devnull "$at_stdout" || at_failed=:
64072at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2860"
64073$at_failed && at_fn_log_failure
64074$at_traceon; }
64075
64076{ set +x
64077$as_echo "$at_srcdir/run_misc.at:2861: \$COBCRUN_DIRECT ./prog"
64078at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2861"
64079( $at_check_trace; $COBCRUN_DIRECT ./prog
64080) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64081at_status=$? at_failed=false
64082$at_check_filter
64083at_fn_diff_devnull "$at_stderr" || at_failed=:
64084echo >>"$at_stdout"; $as_echo "SINGLE TABLE
6408504
6408603
6408702
6408801
64089LOWER LEVEL TABLE
6409004
6409103
6409202
6409301
64094MULTY KEY SORT
6409506  AbCde  The
6409605  abc    cow
6409705  abcde  eats
6409804  zyx    grass
6409903  abcde  and
6410002  12345  mooos
6410102  12346  the
6410201  AbCde  whole
6410301  abcde  day
6410401  zyx    .
64105" | \
64106  $at_diff - "$at_stdout" || at_failed=:
64107at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2861"
64108$at_failed && at_fn_log_failure
64109$at_traceon; }
64110
64111
64112  set +x
64113  $at_times_p && times >"$at_times_file"
64114) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64115read at_status <"$at_status_file"
64116#AT_STOP_643
64117#AT_START_644
64118at_fn_group_banner 644 'run_misc.at:2887' \
64119  "SORT: table sort (3)" "                           " 4
64120at_xfail=no
64121(
64122  $as_echo "644. $at_setup_line: testing $at_desc ..."
64123  $at_traceon
64124
64125
64126
64127
64128cat >prog.cob <<'_ATEOF'
64129
64130       IDENTIFICATION DIVISION.
64131       PROGRAM-ID. prog.
64132       ENVIRONMENT DIVISION.
64133       DATA DIVISION.
64134       WORKING-STORAGE SECTION.
64135       01 K                 PIC 9(2).
64136
64137       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
64138       01 TAB1.
64139          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
64140                                  DESCENDING TAB1-NR.
64141             10 TAB1-NR     PIC 99.
64142             10 TAB-DATA    PIC X(5).
64143       01 TAB2.
64144          05 ROW2 OCCURS 1 TO 4 DEPENDING CNT1
64145                                  ASCENDING ROW2.
64146             10 TAB2-NR     PIC 99.
64147             10 TAB2-DATA   PIC X(5).
64148
64149       PROCEDURE DIVISION.
64150       A.
64151           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64152             MOVE K     TO TAB1-NR (K)
64153             MOVE 'BLA' TO TAB-DATA(K)
64154           END-PERFORM
64155
64156           SORT ROW1
64157
64158           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64159             DISPLAY TAB1-NR(K) NO ADVANCING END-DISPLAY
64160           END-PERFORM
64161
64162           MOVE TAB1 TO TAB2
64163           SORT ROW2
64164
64165           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64166             DISPLAY TAB2-NR(K) NO ADVANCING END-DISPLAY
64167           END-PERFORM
64168
64169           STOP RUN.
64170_ATEOF
64171
64172
64173cat >prog2.cob <<'_ATEOF'
64174
64175       IDENTIFICATION DIVISION.
64176       PROGRAM-ID. prog2.
64177       ENVIRONMENT DIVISION.
64178       DATA DIVISION.
64179       WORKING-STORAGE SECTION.
64180       01 K                 PIC 9(2).
64181
64182       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
64183       01 TAB1.
64184          05 ROW1 OCCURS 5        DESCENDING TAB1-NR.
64185             10 TAB1-NR     PIC 99 VALUE ZERO.
64186             10 TAB-DATA    PIC X(5).
64187       01 TAB2.
64188          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
64189                                  DESCENDING TAB1-NR.
64190             10 TAB1-NR     PIC 99.
64191             10 TAB-DATA    PIC X(5).
64192
64193       PROCEDURE DIVISION.
64194       A.
64195           DISPLAY TAB1-NR OF TAB1 (2) NO ADVANCING END-DISPLAY
64196
64197           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64198             MOVE K     TO TAB1-NR  OF TAB2(K)
64199             MOVE 'BLA' TO TAB-DATA OF TAB2(K)
64200           END-PERFORM
64201
64202           SORT ROW1 OF TAB2.
64203
64204           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
64205             DISPLAY TAB1-NR OF TAB2(K) NO ADVANCING END-DISPLAY
64206           END-PERFORM
64207
64208           STOP RUN.
64209_ATEOF
64210
64211
64212{ set +x
64213$as_echo "$at_srcdir/run_misc.at:2971: \$COMPILE prog.cob"
64214at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2971"
64215( $at_check_trace; $COMPILE prog.cob
64216) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64217at_status=$? at_failed=false
64218$at_check_filter
64219at_fn_diff_devnull "$at_stderr" || at_failed=:
64220at_fn_diff_devnull "$at_stdout" || at_failed=:
64221at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2971"
64222$at_failed && at_fn_log_failure
64223$at_traceon; }
64224
64225{ set +x
64226$as_echo "$at_srcdir/run_misc.at:2972: \$COBCRUN_DIRECT ./prog"
64227at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2972"
64228( $at_check_trace; $COBCRUN_DIRECT ./prog
64229) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64230at_status=$? at_failed=false
64231$at_check_filter
64232at_fn_diff_devnull "$at_stderr" || at_failed=:
64233echo >>"$at_stdout"; $as_echo "0403020101020304" | \
64234  $at_diff - "$at_stdout" || at_failed=:
64235at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2972"
64236$at_failed && at_fn_log_failure
64237$at_traceon; }
64238
64239
64240{ set +x
64241$as_echo "$at_srcdir/run_misc.at:2974: \$COMPILE prog2.cob"
64242at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:2974"
64243( $at_check_trace; $COMPILE prog2.cob
64244) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64245at_status=$? at_failed=false
64246$at_check_filter
64247at_fn_diff_devnull "$at_stderr" || at_failed=:
64248at_fn_diff_devnull "$at_stdout" || at_failed=:
64249at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2974"
64250$at_failed && at_fn_log_failure
64251$at_traceon; }
64252
64253{ set +x
64254$as_echo "$at_srcdir/run_misc.at:2975: \$COBCRUN_DIRECT ./prog2"
64255at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:2975"
64256( $at_check_trace; $COBCRUN_DIRECT ./prog2
64257) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64258at_status=$? at_failed=false
64259$at_check_filter
64260at_fn_diff_devnull "$at_stderr" || at_failed=:
64261echo >>"$at_stdout"; $as_echo "0004030201" | \
64262  $at_diff - "$at_stdout" || at_failed=:
64263at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2975"
64264$at_failed && at_fn_log_failure
64265$at_traceon; }
64266
64267
64268  set +x
64269  $at_times_p && times >"$at_times_file"
64270) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64271read at_status <"$at_status_file"
64272#AT_STOP_644
64273#AT_START_645
64274at_fn_group_banner 645 'run_misc.at:2980' \
64275  "SORT: EBCDIC table sort" "                        " 4
64276at_xfail=no
64277(
64278  $as_echo "645. $at_setup_line: testing $at_desc ..."
64279  $at_traceon
64280
64281
64282
64283cat >prog.cob <<'_ATEOF'
64284
64285       IDENTIFICATION   DIVISION.
64286       PROGRAM-ID.      prog.
64287       ENVIRONMENT DIVISION.
64288       CONFIGURATION SECTION.
64289       SPECIAL-NAMES.
64290           ALPHABET ALPHA IS EBCDIC.
64291       DATA             DIVISION.
64292       WORKING-STORAGE  SECTION.
64293       01 Z  PIC X(10)  VALUE "d4b2e1a3c5".
64294       01 G.
64295         02 TBL         OCCURS 10.
64296           03 X         PIC X.
64297       PROCEDURE        DIVISION.
64298           MOVE Z TO G.
64299           SORT TBL ASCENDING KEY X SEQUENCE ALPHA.
64300           IF G NOT = "abcde12345"
64301              DISPLAY G
64302              END-DISPLAY
64303           END-IF.
64304           MOVE Z TO G.
64305           SORT TBL DESCENDING KEY X SEQUENCE ALPHA.
64306           IF G NOT = "54321edcba"
64307              DISPLAY G
64308              END-DISPLAY
64309           END-IF.
64310           STOP RUN.
64311_ATEOF
64312
64313
64314cat >prog2.cob <<'_ATEOF'
64315
64316       IDENTIFICATION   DIVISION.
64317       PROGRAM-ID.      prog2.
64318       ENVIRONMENT DIVISION.
64319       CONFIGURATION SECTION.
64320           OBJECT-COMPUTER.
64321             x86 PROGRAM COLLATING SEQUENCE IS EBCDIC-CODE.
64322       SPECIAL-NAMES.
64323           ALPHABET EBCDIC-CODE IS EBCDIC.
64324       DATA             DIVISION.
64325       WORKING-STORAGE  SECTION.
64326       01 Z  PIC X(10)  VALUE "d4b2e1a3c5".
64327       01 G.
64328         02 TBL         OCCURS 10.
64329           03 X         PIC X.
64330       PROCEDURE        DIVISION.
64331           MOVE Z TO G.
64332           SORT TBL ASCENDING KEY X.
64333           IF G NOT = "abcde12345"
64334              DISPLAY G.
64335           MOVE Z TO G.
64336           SORT TBL DESCENDING KEY X.
64337           IF G NOT = "54321edcba"
64338              DISPLAY G.
64339           STOP RUN.
64340_ATEOF
64341
64342
64343{ set +x
64344$as_echo "$at_srcdir/run_misc.at:3039: \$COMPILE prog.cob"
64345at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3039"
64346( $at_check_trace; $COMPILE prog.cob
64347) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64348at_status=$? at_failed=false
64349$at_check_filter
64350at_fn_diff_devnull "$at_stderr" || at_failed=:
64351at_fn_diff_devnull "$at_stdout" || at_failed=:
64352at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3039"
64353$at_failed && at_fn_log_failure
64354$at_traceon; }
64355
64356{ set +x
64357$as_echo "$at_srcdir/run_misc.at:3040: \$COBCRUN_DIRECT ./prog"
64358at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3040"
64359( $at_check_trace; $COBCRUN_DIRECT ./prog
64360) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64361at_status=$? at_failed=false
64362$at_check_filter
64363at_fn_diff_devnull "$at_stderr" || at_failed=:
64364at_fn_diff_devnull "$at_stdout" || at_failed=:
64365at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3040"
64366$at_failed && at_fn_log_failure
64367$at_traceon; }
64368
64369{ set +x
64370$as_echo "$at_srcdir/run_misc.at:3041: \$COMPILE prog2.cob"
64371at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:3041"
64372( $at_check_trace; $COMPILE prog2.cob
64373) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64374at_status=$? at_failed=false
64375$at_check_filter
64376at_fn_diff_devnull "$at_stderr" || at_failed=:
64377at_fn_diff_devnull "$at_stdout" || at_failed=:
64378at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3041"
64379$at_failed && at_fn_log_failure
64380$at_traceon; }
64381
64382{ set +x
64383$as_echo "$at_srcdir/run_misc.at:3042: \$COBCRUN_DIRECT ./prog2"
64384at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:3042"
64385( $at_check_trace; $COBCRUN_DIRECT ./prog2
64386) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64387at_status=$? at_failed=false
64388$at_check_filter
64389at_fn_diff_devnull "$at_stderr" || at_failed=:
64390at_fn_diff_devnull "$at_stdout" || at_failed=:
64391at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3042"
64392$at_failed && at_fn_log_failure
64393$at_traceon; }
64394
64395
64396  set +x
64397  $at_times_p && times >"$at_times_file"
64398) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64399read at_status <"$at_status_file"
64400#AT_STOP_645
64401#AT_START_646
64402at_fn_group_banner 646 'run_misc.at:3047' \
64403  "PIC ZZZ-, ZZZ+" "                                 " 4
64404at_xfail=no
64405(
64406  $as_echo "646. $at_setup_line: testing $at_desc ..."
64407  $at_traceon
64408
64409
64410
64411cat >prog.cob <<'_ATEOF'
64412
64413       IDENTIFICATION   DIVISION.
64414       PROGRAM-ID.      prog.
64415       DATA             DIVISION.
64416       WORKING-STORAGE  SECTION.
64417       01  X-ZZZN                    PIC ZZZ-.
64418       01  XZN-RED REDEFINES X-ZZZN  PIC X(4).
64419       01  X-ZZZP                    PIC ZZZ+.
64420       01  XZP-RED REDEFINES X-ZZZP  PIC X(4).
64421       PROCEDURE        DIVISION.
64422           MOVE -1 TO X-ZZZN.
64423           IF XZN-RED NOT = "  1-"
64424              DISPLAY "(" X-ZZZN ")"
64425              END-DISPLAY
64426           END-IF.
64427           MOVE  0 TO X-ZZZN.
64428           IF XZN-RED NOT = "    "
64429              DISPLAY "(" X-ZZZN ")"
64430              END-DISPLAY
64431           END-IF.
64432           MOVE +1 TO X-ZZZN.
64433           IF XZN-RED NOT = "  1 "
64434              DISPLAY "(" X-ZZZN ")"
64435              END-DISPLAY
64436           END-IF.
64437
64438           MOVE -1 TO X-ZZZP.
64439           IF XZP-RED NOT = "  1-"
64440              DISPLAY "(" X-ZZZP ")"
64441              END-DISPLAY
64442           END-IF.
64443           MOVE  0 TO X-ZZZP.
64444           IF XZP-RED NOT = "    "
64445              DISPLAY "(" X-ZZZP ")"
64446              END-DISPLAY
64447           END-IF.
64448           MOVE +1 TO X-ZZZP.
64449           IF XZP-RED NOT = "  1+"
64450              DISPLAY "(" X-ZZZP ")"
64451              END-DISPLAY
64452           END-IF.
64453           STOP RUN.
64454_ATEOF
64455
64456
64457{ set +x
64458$as_echo "$at_srcdir/run_misc.at:3094: \$COMPILE prog.cob"
64459at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3094"
64460( $at_check_trace; $COMPILE prog.cob
64461) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64462at_status=$? at_failed=false
64463$at_check_filter
64464at_fn_diff_devnull "$at_stderr" || at_failed=:
64465at_fn_diff_devnull "$at_stdout" || at_failed=:
64466at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3094"
64467$at_failed && at_fn_log_failure
64468$at_traceon; }
64469
64470{ set +x
64471$as_echo "$at_srcdir/run_misc.at:3095: \$COBCRUN_DIRECT ./prog"
64472at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3095"
64473( $at_check_trace; $COBCRUN_DIRECT ./prog
64474) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64475at_status=$? at_failed=false
64476$at_check_filter
64477at_fn_diff_devnull "$at_stderr" || at_failed=:
64478at_fn_diff_devnull "$at_stdout" || at_failed=:
64479at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3095"
64480$at_failed && at_fn_log_failure
64481$at_traceon; }
64482
64483
64484  set +x
64485  $at_times_p && times >"$at_times_file"
64486) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64487read at_status <"$at_status_file"
64488#AT_STOP_646
64489#AT_START_647
64490at_fn_group_banner 647 'run_misc.at:3100' \
64491  "PERFORM type OSVS" "                              " 4
64492at_xfail=no
64493(
64494  $as_echo "647. $at_setup_line: testing $at_desc ..."
64495  $at_traceon
64496
64497
64498
64499cat >prog.cob <<'_ATEOF'
64500
64501       IDENTIFICATION   DIVISION.
64502       PROGRAM-ID.      prog.
64503       DATA             DIVISION.
64504       WORKING-STORAGE  SECTION.
64505       01  MYOCC        PIC 9(8) COMP VALUE 0.
64506       PROCEDURE        DIVISION.
64507       ASTART SECTION.
64508       A01.
64509           PERFORM BTEST.
64510           IF MYOCC NOT = 2
64511              DISPLAY MYOCC
64512              END-DISPLAY
64513           END-IF.
64514           STOP RUN.
64515       BTEST SECTION.
64516       B01.
64517           PERFORM B02 VARYING MYOCC FROM 1 BY 1
64518                   UNTIL MYOCC > 5.
64519           GO TO B99.
64520       B02.
64521           IF MYOCC > 1
64522              GO TO B99
64523           END-IF.
64524       B99.
64525           EXIT.
64526_ATEOF
64527
64528
64529{ set +x
64530$as_echo "$at_srcdir/run_misc.at:3131: \$COMPILE -fperform-osvs prog.cob"
64531at_fn_check_prepare_dynamic "$COMPILE -fperform-osvs prog.cob" "run_misc.at:3131"
64532( $at_check_trace; $COMPILE -fperform-osvs prog.cob
64533) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64534at_status=$? at_failed=false
64535$at_check_filter
64536at_fn_diff_devnull "$at_stderr" || at_failed=:
64537at_fn_diff_devnull "$at_stdout" || at_failed=:
64538at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3131"
64539$at_failed && at_fn_log_failure
64540$at_traceon; }
64541
64542{ set +x
64543$as_echo "$at_srcdir/run_misc.at:3132: \$COBCRUN_DIRECT ./prog"
64544at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3132"
64545( $at_check_trace; $COBCRUN_DIRECT ./prog
64546) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64547at_status=$? at_failed=false
64548$at_check_filter
64549at_fn_diff_devnull "$at_stderr" || at_failed=:
64550at_fn_diff_devnull "$at_stdout" || at_failed=:
64551at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3132"
64552$at_failed && at_fn_log_failure
64553$at_traceon; }
64554
64555
64556  set +x
64557  $at_times_p && times >"$at_times_file"
64558) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64559read at_status <"$at_status_file"
64560#AT_STOP_647
64561#AT_START_648
64562at_fn_group_banner 648 'run_misc.at:3137' \
64563  "Sticky LINKAGE" "                                 " 4
64564at_xfail=no
64565(
64566  $as_echo "648. $at_setup_line: testing $at_desc ..."
64567  $at_traceon
64568
64569
64570
64571cat >callee.cob <<'_ATEOF'
64572
64573       IDENTIFICATION   DIVISION.
64574       PROGRAM-ID.      callee.
64575       DATA             DIVISION.
64576       LINKAGE          SECTION.
64577       01 P1            PIC X.
64578       01 P2            PIC X(6).
64579       01 P3            PIC X(6).
64580       PROCEDURE        DIVISION USING P1 P2.
64581           IF P1 = "A"
64582              SET ADDRESS OF P3 TO ADDRESS OF P2
64583           ELSE
64584              IF P3 NOT = "OKOKOK"
64585                 DISPLAY P3
64586                 END-DISPLAY
64587              END-IF
64588           END-IF.
64589           EXIT PROGRAM.
64590_ATEOF
64591
64592
64593cat >caller.cob <<'_ATEOF'
64594
64595       IDENTIFICATION   DIVISION.
64596       PROGRAM-ID.      caller.
64597       DATA             DIVISION.
64598       WORKING-STORAGE  SECTION.
64599       01 P1            PIC X    VALUE "A".
64600       01 P2            PIC X(6) VALUE "NOT OK".
64601       PROCEDURE        DIVISION.
64602           CALL "callee" USING P1 P2
64603           END-CALL.
64604           MOVE "B"      TO P1.
64605           MOVE "OKOKOK" TO P2.
64606           CALL "callee" USING P1
64607           END-CALL.
64608           STOP RUN.
64609_ATEOF
64610
64611
64612{ set +x
64613$as_echo "$at_srcdir/run_misc.at:3177: \$COMPILE_MODULE -fsticky-linkage callee.cob"
64614at_fn_check_prepare_dynamic "$COMPILE_MODULE -fsticky-linkage callee.cob" "run_misc.at:3177"
64615( $at_check_trace; $COMPILE_MODULE -fsticky-linkage callee.cob
64616) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64617at_status=$? at_failed=false
64618$at_check_filter
64619at_fn_diff_devnull "$at_stderr" || at_failed=:
64620at_fn_diff_devnull "$at_stdout" || at_failed=:
64621at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3177"
64622$at_failed && at_fn_log_failure
64623$at_traceon; }
64624
64625{ set +x
64626$as_echo "$at_srcdir/run_misc.at:3178: \$COMPILE -fsticky-linkage caller.cob"
64627at_fn_check_prepare_dynamic "$COMPILE -fsticky-linkage caller.cob" "run_misc.at:3178"
64628( $at_check_trace; $COMPILE -fsticky-linkage caller.cob
64629) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64630at_status=$? at_failed=false
64631$at_check_filter
64632at_fn_diff_devnull "$at_stderr" || at_failed=:
64633at_fn_diff_devnull "$at_stdout" || at_failed=:
64634at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3178"
64635$at_failed && at_fn_log_failure
64636$at_traceon; }
64637
64638{ set +x
64639$as_echo "$at_srcdir/run_misc.at:3179: \$COBCRUN_DIRECT ./caller"
64640at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3179"
64641( $at_check_trace; $COBCRUN_DIRECT ./caller
64642) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64643at_status=$? at_failed=false
64644$at_check_filter
64645at_fn_diff_devnull "$at_stderr" || at_failed=:
64646at_fn_diff_devnull "$at_stdout" || at_failed=:
64647at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3179"
64648$at_failed && at_fn_log_failure
64649$at_traceon; }
64650
64651
64652  set +x
64653  $at_times_p && times >"$at_times_file"
64654) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64655read at_status <"$at_status_file"
64656#AT_STOP_648
64657#AT_START_649
64658at_fn_group_banner 649 'run_misc.at:3184' \
64659  "COB_PRE_LOAD" "                                   " 4
64660at_xfail=no
64661(
64662  $as_echo "649. $at_setup_line: testing $at_desc ..."
64663  $at_traceon
64664
64665
64666
64667cat >callee.cob <<'_ATEOF'
64668
64669       IDENTIFICATION   DIVISION.
64670       PROGRAM-ID.      callee2.
64671       PROCEDURE        DIVISION.
64672           EXIT PROGRAM.
64673_ATEOF
64674
64675
64676cat >caller.cob <<'_ATEOF'
64677
64678       IDENTIFICATION   DIVISION.
64679       PROGRAM-ID.      caller.
64680       PROCEDURE        DIVISION.
64681           CALL "callee2"
64682           END-CALL.
64683           STOP RUN.
64684_ATEOF
64685
64686
64687{ set +x
64688$as_echo "$at_srcdir/run_misc.at:3203: \$COMPILE_MODULE callee.cob"
64689at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:3203"
64690( $at_check_trace; $COMPILE_MODULE callee.cob
64691) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64692at_status=$? at_failed=false
64693$at_check_filter
64694at_fn_diff_devnull "$at_stderr" || at_failed=:
64695at_fn_diff_devnull "$at_stdout" || at_failed=:
64696at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3203"
64697$at_failed && at_fn_log_failure
64698$at_traceon; }
64699
64700{ set +x
64701$as_echo "$at_srcdir/run_misc.at:3204: \$COMPILE caller.cob"
64702at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3204"
64703( $at_check_trace; $COMPILE caller.cob
64704) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64705at_status=$? at_failed=false
64706$at_check_filter
64707at_fn_diff_devnull "$at_stderr" || at_failed=:
64708at_fn_diff_devnull "$at_stdout" || at_failed=:
64709at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3204"
64710$at_failed && at_fn_log_failure
64711$at_traceon; }
64712
64713{ set +x
64714$as_echo "$at_srcdir/run_misc.at:3205: COB_PRE_LOAD=callee \$COBCRUN_DIRECT ./caller"
64715at_fn_check_prepare_dynamic "COB_PRE_LOAD=callee $COBCRUN_DIRECT ./caller" "run_misc.at:3205"
64716( $at_check_trace; COB_PRE_LOAD=callee $COBCRUN_DIRECT ./caller
64717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64718at_status=$? at_failed=false
64719$at_check_filter
64720at_fn_diff_devnull "$at_stderr" || at_failed=:
64721at_fn_diff_devnull "$at_stdout" || at_failed=:
64722at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3205"
64723$at_failed && at_fn_log_failure
64724$at_traceon; }
64725
64726
64727  set +x
64728  $at_times_p && times >"$at_times_file"
64729) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64730read at_status <"$at_status_file"
64731#AT_STOP_649
64732#AT_START_650
64733at_fn_group_banner 650 'run_misc.at:3210' \
64734  "COB_PRE_LOAD with entry points" "                 " 4
64735at_xfail=no
64736(
64737  $as_echo "650. $at_setup_line: testing $at_desc ..."
64738  $at_traceon
64739
64740
64741
64742cat >prog.cob <<'_ATEOF'
64743
64744        IDENTIFICATION DIVISION.
64745        PROGRAM-ID. prog.
64746
64747        DATA DIVISION.
64748        WORKING-STORAGE SECTION.
64749
64750        01 VAR1 PIC X(5) VALUE '12abc'.
64751        01 VAR2 PIC X(2) VALUE '11'.
64752
64753        PROCEDURE DIVISION.
64754
64755        ENTRY 'ent1'.
64756        DISPLAY VAR1 END-DISPLAY
64757        GOBACK.
64758
64759        ENTRY 'ent2'.
64760        DISPLAY VAR2 END-DISPLAY
64761        GOBACK.
64762_ATEOF
64763
64764
64765cat >prog1.cob <<'_ATEOF'
64766
64767        IDENTIFICATION DIVISION.
64768        PROGRAM-ID. prog1.
64769
64770        DATA DIVISION.
64771        WORKING-STORAGE SECTION.
64772
64773        01 VAR2 PIC X(2) VALUE '55'.
64774        01 VAR3 PIC X(5) VALUE 'xxxxx'.
64775
64776        PROCEDURE DIVISION.
64777
64778        ENTRY 'ent2'.
64779        DISPLAY VAR2 END-DISPLAY
64780        GOBACK.
64781
64782        ENTRY 'ent3'.
64783        DISPLAY VAR3 END-DISPLAY
64784        GOBACK.
64785_ATEOF
64786
64787
64788cat >main-prog.cob <<'_ATEOF'
64789
64790        IDENTIFICATION DIVISION.
64791        PROGRAM-ID. main-prog.
64792        DATA DIVISION.
64793        WORKING-STORAGE SECTION.
64794        PROCEDURE DIVISION.
64795
64796        CALL 'ent1' END-CALL
64797        CALL 'ent2' END-CALL
64798        CALL 'ent3' END-CALL
64799
64800        STOP RUN.
64801_ATEOF
64802
64803
64804{ set +x
64805$as_echo "$at_srcdir/run_misc.at:3269: \$COMPILE_MODULE prog.cob"
64806at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "run_misc.at:3269"
64807( $at_check_trace; $COMPILE_MODULE prog.cob
64808) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64809at_status=$? at_failed=false
64810$at_check_filter
64811at_fn_diff_devnull "$at_stderr" || at_failed=:
64812at_fn_diff_devnull "$at_stdout" || at_failed=:
64813at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3269"
64814$at_failed && at_fn_log_failure
64815$at_traceon; }
64816
64817{ set +x
64818$as_echo "$at_srcdir/run_misc.at:3270: \$COMPILE_MODULE prog1.cob"
64819at_fn_check_prepare_dynamic "$COMPILE_MODULE prog1.cob" "run_misc.at:3270"
64820( $at_check_trace; $COMPILE_MODULE prog1.cob
64821) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64822at_status=$? at_failed=false
64823$at_check_filter
64824at_fn_diff_devnull "$at_stderr" || at_failed=:
64825at_fn_diff_devnull "$at_stdout" || at_failed=:
64826at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3270"
64827$at_failed && at_fn_log_failure
64828$at_traceon; }
64829
64830{ set +x
64831$as_echo "$at_srcdir/run_misc.at:3271: \$COMPILE main-prog.cob"
64832at_fn_check_prepare_dynamic "$COMPILE main-prog.cob" "run_misc.at:3271"
64833( $at_check_trace; $COMPILE main-prog.cob
64834) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64835at_status=$? at_failed=false
64836$at_check_filter
64837at_fn_diff_devnull "$at_stderr" || at_failed=:
64838at_fn_diff_devnull "$at_stdout" || at_failed=:
64839at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3271"
64840$at_failed && at_fn_log_failure
64841$at_traceon; }
64842
64843{ set +x
64844$as_echo "$at_srcdir/run_misc.at:3272: COB_PRE_LOAD=\"prog\"\$PATHSEP\"prog1\" \$COBCRUN_DIRECT ./main-prog"
64845at_fn_check_prepare_dynamic "COB_PRE_LOAD=\"prog\"$PATHSEP\"prog1\" $COBCRUN_DIRECT ./main-prog" "run_misc.at:3272"
64846( $at_check_trace; COB_PRE_LOAD="prog"$PATHSEP"prog1" $COBCRUN_DIRECT ./main-prog
64847) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64848at_status=$? at_failed=false
64849$at_check_filter
64850at_fn_diff_devnull "$at_stderr" || at_failed=:
64851echo >>"$at_stdout"; $as_echo "12abc
6485211
64853xxxxx
64854" | \
64855  $at_diff - "$at_stdout" || at_failed=:
64856at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3272"
64857$at_failed && at_fn_log_failure
64858$at_traceon; }
64859
64860
64861  set +x
64862  $at_times_p && times >"$at_times_file"
64863) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64864read at_status <"$at_status_file"
64865#AT_STOP_650
64866#AT_START_651
64867at_fn_group_banner 651 'run_misc.at:3281' \
64868  "Lookup ENTRY from main executable" "              " 4
64869at_xfail=no
64870(
64871  $as_echo "651. $at_setup_line: testing $at_desc ..."
64872  $at_traceon
64873
64874
64875
64876cat >prog.cob <<'_ATEOF'
64877
64878       IDENTIFICATION DIVISION.
64879       PROGRAM-ID. prog.
64880
64881       DATA DIVISION.
64882       WORKING-STORAGE SECTION.
64883       01 PROGRAM-LINK         USAGE PROGRAM-POINTER.
64884
64885       PROCEDURE DIVISION.
64886       SET PROGRAM-LINK TO ENTRY "subprogram"
64887       IF PROGRAM-LINK EQUAL NULL THEN
64888           DISPLAY "error: no subprogram linkage" UPON SYSERR
64889           END-DISPLAY
64890       ELSE
64891           CALL PROGRAM-LINK
64892               ON EXCEPTION
64893                   DISPLAY "hard error: unable to invoke subprogram"
64894                      UPON SYSERR
64895                   END-DISPLAY
64896           END-CALL
64897           DISPLAY RETURN-CODE WITH NO ADVANCING
64898           END-DISPLAY
64899       END-IF
64900       GOBACK.
64901
64902       ENTRY "subprogram".
64903           DISPLAY "subprogram" WITH NO ADVANCING
64904           END-DISPLAY
64905           SET RETURN-CODE TO 42
64906       .
64907_ATEOF
64908
64909
64910{ set +x
64911$as_echo "$at_srcdir/run_misc.at:3316: \$COMPILE prog.cob"
64912at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3316"
64913( $at_check_trace; $COMPILE prog.cob
64914) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64915at_status=$? at_failed=false
64916$at_check_filter
64917at_fn_diff_devnull "$at_stderr" || at_failed=:
64918at_fn_diff_devnull "$at_stdout" || at_failed=:
64919at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3316"
64920$at_failed && at_fn_log_failure
64921$at_traceon; }
64922
64923{ set +x
64924$as_echo "$at_srcdir/run_misc.at:3317: \$COBCRUN_DIRECT ./prog"
64925at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3317"
64926( $at_check_trace; $COBCRUN_DIRECT ./prog
64927) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64928at_status=$? at_failed=false
64929$at_check_filter
64930at_fn_diff_devnull "$at_stderr" || at_failed=:
64931echo >>"$at_stdout"; $as_echo "subprogram+000000042" | \
64932  $at_diff - "$at_stdout" || at_failed=:
64933at_fn_check_status 42 $at_status "$at_srcdir/run_misc.at:3317"
64934$at_failed && at_fn_log_failure
64935$at_traceon; }
64936
64937
64938  set +x
64939  $at_times_p && times >"$at_times_file"
64940) 5>&1 2>&1 7>&- | eval $at_tee_pipe
64941read at_status <"$at_status_file"
64942#AT_STOP_651
64943#AT_START_652
64944at_fn_group_banner 652 'run_misc.at:3322' \
64945  "COB_LOAD_CASE=UPPER test" "                       " 4
64946at_xfail=no
64947(
64948  $as_echo "652. $at_setup_line: testing $at_desc ..."
64949  $at_traceon
64950
64951
64952
64953cat >CALLEE.cob <<'_ATEOF'
64954
64955       IDENTIFICATION   DIVISION.
64956       PROGRAM-ID.      callee.
64957       PROCEDURE        DIVISION.
64958           EXIT PROGRAM.
64959_ATEOF
64960
64961
64962cat >caller.cob <<'_ATEOF'
64963
64964       IDENTIFICATION   DIVISION.
64965       PROGRAM-ID.      caller.
64966       PROCEDURE        DIVISION.
64967           CALL "callee"
64968           END-CALL.
64969           STOP RUN.
64970_ATEOF
64971
64972
64973{ set +x
64974$as_echo "$at_srcdir/run_misc.at:3341: \$COMPILE_MODULE CALLEE.cob"
64975at_fn_check_prepare_dynamic "$COMPILE_MODULE CALLEE.cob" "run_misc.at:3341"
64976( $at_check_trace; $COMPILE_MODULE CALLEE.cob
64977) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64978at_status=$? at_failed=false
64979$at_check_filter
64980at_fn_diff_devnull "$at_stderr" || at_failed=:
64981at_fn_diff_devnull "$at_stdout" || at_failed=:
64982at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3341"
64983$at_failed && at_fn_log_failure
64984$at_traceon; }
64985
64986{ set +x
64987$as_echo "$at_srcdir/run_misc.at:3342: \$COMPILE caller.cob"
64988at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3342"
64989( $at_check_trace; $COMPILE caller.cob
64990) >>"$at_stdout" 2>>"$at_stderr" 5>&-
64991at_status=$? at_failed=false
64992$at_check_filter
64993at_fn_diff_devnull "$at_stderr" || at_failed=:
64994at_fn_diff_devnull "$at_stdout" || at_failed=:
64995at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3342"
64996$at_failed && at_fn_log_failure
64997$at_traceon; }
64998
64999{ set +x
65000$as_echo "$at_srcdir/run_misc.at:3343: COB_LOAD_CASE=UPPER ./caller"
65001at_fn_check_prepare_trace "run_misc.at:3343"
65002( $at_check_trace; COB_LOAD_CASE=UPPER ./caller
65003) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65004at_status=$? at_failed=false
65005$at_check_filter
65006at_fn_diff_devnull "$at_stderr" || at_failed=:
65007at_fn_diff_devnull "$at_stdout" || at_failed=:
65008at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3343"
65009$at_failed && at_fn_log_failure
65010$at_traceon; }
65011
65012
65013  set +x
65014  $at_times_p && times >"$at_times_file"
65015) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65016read at_status <"$at_status_file"
65017#AT_STOP_652
65018#AT_START_653
65019at_fn_group_banner 653 'run_misc.at:3348' \
65020  "ALLOCATE / FREE with BASED item (1)" "            " 4
65021at_xfail=no
65022(
65023  $as_echo "653. $at_setup_line: testing $at_desc ..."
65024  $at_traceon
65025
65026
65027
65028cat >prog.cob <<'_ATEOF'
65029
65030       IDENTIFICATION   DIVISION.
65031       PROGRAM-ID.      prog.
65032       DATA             DIVISION.
65033       LINKAGE          SECTION.
65034       01  MYFLD        PIC X(6) BASED VALUE "ABCDEF".
65035       PROCEDURE        DIVISION.
65036       ASTART SECTION.
65037       A01.
65038           ALLOCATE MYFLD INITIALIZED.
65039           IF MYFLD NOT = "ABCDEF"
65040              DISPLAY MYFLD
65041              END-DISPLAY
65042           END-IF.
65043           FREE ADDRESS OF MYFLD.
65044           STOP RUN.
65045_ATEOF
65046
65047
65048{ set +x
65049$as_echo "$at_srcdir/run_misc.at:3369: \$COMPILE prog.cob"
65050at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3369"
65051( $at_check_trace; $COMPILE prog.cob
65052) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65053at_status=$? at_failed=false
65054$at_check_filter
65055at_fn_diff_devnull "$at_stderr" || at_failed=:
65056at_fn_diff_devnull "$at_stdout" || at_failed=:
65057at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3369"
65058$at_failed && at_fn_log_failure
65059$at_traceon; }
65060
65061{ set +x
65062$as_echo "$at_srcdir/run_misc.at:3370: \$COBCRUN_DIRECT ./prog"
65063at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3370"
65064( $at_check_trace; $COBCRUN_DIRECT ./prog
65065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65066at_status=$? at_failed=false
65067$at_check_filter
65068at_fn_diff_devnull "$at_stderr" || at_failed=:
65069at_fn_diff_devnull "$at_stdout" || at_failed=:
65070at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3370"
65071$at_failed && at_fn_log_failure
65072$at_traceon; }
65073
65074
65075  set +x
65076  $at_times_p && times >"$at_times_file"
65077) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65078read at_status <"$at_status_file"
65079#AT_STOP_653
65080#AT_START_654
65081at_fn_group_banner 654 'run_misc.at:3375' \
65082  "ALLOCATE / FREE with BASED item (2)" "            " 4
65083at_xfail=no
65084(
65085  $as_echo "654. $at_setup_line: testing $at_desc ..."
65086  $at_traceon
65087
65088
65089
65090cat >prog.cob <<'_ATEOF'
65091
65092       IDENTIFICATION   DIVISION.
65093       PROGRAM-ID.      prog.
65094       DATA             DIVISION.
65095       WORKING-STORAGE  SECTION.
65096       01 MYFLD         BASED.
65097             03 MYFLDX  PIC X.
65098             03 MYFLD9  PIC 9.
65099       PROCEDURE        DIVISION.
65100           IF ADDRESS OF MYFLD NOT = NULL
65101              DISPLAY "BASED ITEM WITH ADDRESS ON START"
65102              END-DISPLAY
65103           END-IF.
65104           FREE MYFLD.
65105           ALLOCATE MYFLD.
65106           IF ADDRESS OF MYFLD = NULL
65107              DISPLAY "BASED ITEM WITHOUT ADDRESS AFTER ALLOCATE"
65108              END-DISPLAY
65109           END-IF.
65110           INITIALIZE MYFLD.
65111           IF MYFLD NOT = " 0"
65112              DISPLAY "BASED ITEM INITIALIZED WRONG: "
65113                 WITH NO ADVANCING
65114              END-DISPLAY
65115              DISPLAY MYFLD
65116              END-DISPLAY
65117           END-IF.
65118
65119           FREE ADDRESS OF MYFLD.
65120           IF ADDRESS OF MYFLD NOT = NULL
65121              DISPLAY "BASED ITEM WITH ADDRESS AFTER FREE"
65122              END-DISPLAY
65123           END-IF.
65124_ATEOF
65125
65126
65127{ set +x
65128$as_echo "$at_srcdir/run_misc.at:3413: \$COMPILE prog.cob"
65129at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3413"
65130( $at_check_trace; $COMPILE prog.cob
65131) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65132at_status=$? at_failed=false
65133$at_check_filter
65134at_fn_diff_devnull "$at_stderr" || at_failed=:
65135at_fn_diff_devnull "$at_stdout" || at_failed=:
65136at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3413"
65137$at_failed && at_fn_log_failure
65138$at_traceon; }
65139
65140{ set +x
65141$as_echo "$at_srcdir/run_misc.at:3414: \$COBCRUN_DIRECT ./prog"
65142at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3414"
65143( $at_check_trace; $COBCRUN_DIRECT ./prog
65144) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65145at_status=$? at_failed=false
65146$at_check_filter
65147at_fn_diff_devnull "$at_stderr" || at_failed=:
65148at_fn_diff_devnull "$at_stdout" || at_failed=:
65149at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3414"
65150$at_failed && at_fn_log_failure
65151$at_traceon; }
65152
65153# Run both executable and module as we have a different code generation here
65154{ set +x
65155$as_echo "$at_srcdir/run_misc.at:3416: \$COMPILE_MODULE prog.cob"
65156at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "run_misc.at:3416"
65157( $at_check_trace; $COMPILE_MODULE prog.cob
65158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65159at_status=$? at_failed=false
65160$at_check_filter
65161at_fn_diff_devnull "$at_stderr" || at_failed=:
65162at_fn_diff_devnull "$at_stdout" || at_failed=:
65163at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3416"
65164$at_failed && at_fn_log_failure
65165$at_traceon; }
65166
65167{ set +x
65168$as_echo "$at_srcdir/run_misc.at:3417: \$COBCRUN prog"
65169at_fn_check_prepare_dynamic "$COBCRUN prog" "run_misc.at:3417"
65170( $at_check_trace; $COBCRUN prog
65171) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65172at_status=$? at_failed=false
65173$at_check_filter
65174at_fn_diff_devnull "$at_stderr" || at_failed=:
65175at_fn_diff_devnull "$at_stdout" || at_failed=:
65176at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3417"
65177$at_failed && at_fn_log_failure
65178$at_traceon; }
65179
65180
65181  set +x
65182  $at_times_p && times >"$at_times_file"
65183) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65184read at_status <"$at_status_file"
65185#AT_STOP_654
65186#AT_START_655
65187at_fn_group_banner 655 'run_misc.at:3422' \
65188  "ALLOCATE CHARACTERS INITIALIZED TO" "             " 4
65189at_xfail=no
65190(
65191  $as_echo "655. $at_setup_line: testing $at_desc ..."
65192  $at_traceon
65193
65194
65195
65196cat >prog.cob <<'_ATEOF'
65197
65198       IDENTIFICATION   DIVISION.
65199       PROGRAM-ID.      prog.
65200       DATA             DIVISION.
65201       WORKING-STORAGE  SECTION.
65202       01  MYPTR        USAGE POINTER.
65203       LINKAGE          SECTION.
65204       01  MYFLD        PIC X(4).
65205       PROCEDURE        DIVISION.
65206       ASTART SECTION.
65207       A01.
65208           ALLOCATE 4 CHARACTERS
65209                    INITIALIZED TO "ABCD"
65210                    RETURNING MYPTR.
65211           SET ADDRESS OF MYFLD TO MYPTR.
65212           IF MYFLD NOT = "ABCD"
65213              DISPLAY MYFLD
65214              END-DISPLAY
65215           END-IF.
65216           FREE MYPTR.
65217           ALLOCATE 4 CHARACTERS
65218                    INITIALIZED TO ALL "Z"
65219                    RETURNING MYPTR.
65220           SET ADDRESS OF MYFLD TO MYPTR.
65221           IF MYFLD NOT = "ZZZZ"
65222              DISPLAY MYFLD
65223              END-DISPLAY
65224           END-IF.
65225           FREE MYPTR.
65226           STOP RUN.
65227_ATEOF
65228
65229
65230{ set +x
65231$as_echo "$at_srcdir/run_misc.at:3457: \$COMPILE prog.cob"
65232at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3457"
65233( $at_check_trace; $COMPILE prog.cob
65234) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65235at_status=$? at_failed=false
65236$at_check_filter
65237at_fn_diff_devnull "$at_stderr" || at_failed=:
65238at_fn_diff_devnull "$at_stdout" || at_failed=:
65239at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3457"
65240$at_failed && at_fn_log_failure
65241$at_traceon; }
65242
65243{ set +x
65244$as_echo "$at_srcdir/run_misc.at:3458: \$COBCRUN_DIRECT ./prog"
65245at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3458"
65246( $at_check_trace; $COBCRUN_DIRECT ./prog
65247) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65248at_status=$? at_failed=false
65249$at_check_filter
65250at_fn_diff_devnull "$at_stderr" || at_failed=:
65251at_fn_diff_devnull "$at_stdout" || at_failed=:
65252at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3458"
65253$at_failed && at_fn_log_failure
65254$at_traceon; }
65255
65256
65257  set +x
65258  $at_times_p && times >"$at_times_file"
65259) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65260read at_status <"$at_status_file"
65261#AT_STOP_655
65262#AT_START_656
65263at_fn_group_banner 656 'run_misc.at:3463' \
65264  "Initialized value with defaultbyte" "             " 4
65265at_xfail=no
65266(
65267  $as_echo "656. $at_setup_line: testing $at_desc ..."
65268  $at_traceon
65269
65270
65271
65272cat >prog.cob <<'_ATEOF'
65273
65274       IDENTIFICATION   DIVISION.
65275       PROGRAM-ID.      prog.
65276       DATA             DIVISION.
65277       WORKING-STORAGE  SECTION.
65278       01  MYFLD        PIC X(6).
65279       PROCEDURE        DIVISION.
65280       ASTART SECTION.
65281       A01.
65282           IF MYFLD NOT = "AAAAAA"
65283              DISPLAY MYFLD
65284              END-DISPLAY
65285           END-IF.
65286           STOP RUN.
65287_ATEOF
65288
65289
65290{ set +x
65291$as_echo "$at_srcdir/run_misc.at:3482: \$COMPILE -fdefaultbyte=A prog.cob"
65292at_fn_check_prepare_dynamic "$COMPILE -fdefaultbyte=A prog.cob" "run_misc.at:3482"
65293( $at_check_trace; $COMPILE -fdefaultbyte=A prog.cob
65294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65295at_status=$? at_failed=false
65296$at_check_filter
65297at_fn_diff_devnull "$at_stderr" || at_failed=:
65298at_fn_diff_devnull "$at_stdout" || at_failed=:
65299at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3482"
65300$at_failed && at_fn_log_failure
65301$at_traceon; }
65302
65303{ set +x
65304$as_echo "$at_srcdir/run_misc.at:3483: \$COBCRUN_DIRECT ./prog"
65305at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3483"
65306( $at_check_trace; $COBCRUN_DIRECT ./prog
65307) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65308at_status=$? at_failed=false
65309$at_check_filter
65310at_fn_diff_devnull "$at_stderr" || at_failed=:
65311at_fn_diff_devnull "$at_stdout" || at_failed=:
65312at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3483"
65313$at_failed && at_fn_log_failure
65314$at_traceon; }
65315
65316
65317  set +x
65318  $at_times_p && times >"$at_times_file"
65319) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65320read at_status <"$at_status_file"
65321#AT_STOP_656
65322#AT_START_657
65323at_fn_group_banner 657 'run_misc.at:3488' \
65324  "CALL with OMITTED parameter" "                    " 4
65325at_xfail=no
65326(
65327  $as_echo "657. $at_setup_line: testing $at_desc ..."
65328  $at_traceon
65329
65330
65331
65332cat >callee.cob <<'_ATEOF'
65333
65334       IDENTIFICATION   DIVISION.
65335       PROGRAM-ID.      callee.
65336       DATA             DIVISION.
65337       LINKAGE          SECTION.
65338       01 P1            PIC X.
65339       01 P2            PIC X(6).
65340       PROCEDURE        DIVISION USING P1 OPTIONAL P2.
65341           IF P2 NOT OMITTED
65342              DISPLAY P2
65343              END-DISPLAY
65344           END-IF.
65345           EXIT PROGRAM.
65346_ATEOF
65347
65348
65349cat >caller.cob <<'_ATEOF'
65350
65351       IDENTIFICATION   DIVISION.
65352       PROGRAM-ID.      caller.
65353       DATA             DIVISION.
65354       WORKING-STORAGE  SECTION.
65355       01 P1            PIC X    VALUE "A".
65356       PROCEDURE        DIVISION.
65357           CALL "callee" USING P1
65358           END-CALL.
65359           CALL "callee" USING P1 OMITTED
65360           END-CALL.
65361           STOP RUN.
65362_ATEOF
65363
65364
65365{ set +x
65366$as_echo "$at_srcdir/run_misc.at:3520: \$COMPILE_MODULE callee.cob"
65367at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:3520"
65368( $at_check_trace; $COMPILE_MODULE callee.cob
65369) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65370at_status=$? at_failed=false
65371$at_check_filter
65372at_fn_diff_devnull "$at_stderr" || at_failed=:
65373at_fn_diff_devnull "$at_stdout" || at_failed=:
65374at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3520"
65375$at_failed && at_fn_log_failure
65376$at_traceon; }
65377
65378{ set +x
65379$as_echo "$at_srcdir/run_misc.at:3521: \$COMPILE caller.cob"
65380at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3521"
65381( $at_check_trace; $COMPILE caller.cob
65382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65383at_status=$? at_failed=false
65384$at_check_filter
65385at_fn_diff_devnull "$at_stderr" || at_failed=:
65386at_fn_diff_devnull "$at_stdout" || at_failed=:
65387at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3521"
65388$at_failed && at_fn_log_failure
65389$at_traceon; }
65390
65391{ set +x
65392$as_echo "$at_srcdir/run_misc.at:3522: \$COBCRUN_DIRECT ./caller"
65393at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3522"
65394( $at_check_trace; $COBCRUN_DIRECT ./caller
65395) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65396at_status=$? at_failed=false
65397$at_check_filter
65398at_fn_diff_devnull "$at_stderr" || at_failed=:
65399at_fn_diff_devnull "$at_stdout" || at_failed=:
65400at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3522"
65401$at_failed && at_fn_log_failure
65402$at_traceon; }
65403
65404
65405  set +x
65406  $at_times_p && times >"$at_times_file"
65407) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65408read at_status <"$at_status_file"
65409#AT_STOP_657
65410#AT_START_658
65411at_fn_group_banner 658 'run_misc.at:3527' \
65412  "CALL in from C, cob_call_params explicitly set" " " 4
65413at_xfail=no
65414(
65415  $as_echo "658. $at_setup_line: testing $at_desc ..."
65416  $at_traceon
65417
65418
65419
65420cat >callee.cob <<'_ATEOF'
65421
65422       IDENTIFICATION   DIVISION.
65423       PROGRAM-ID.      callee.
65424       DATA             DIVISION.
65425       LINKAGE          SECTION.
65426       01 P1            PIC X.
65427       01 P2            PIC X(6).
65428       PROCEDURE        DIVISION USING P1 OPTIONAL P2.
65429           IF P2 NOT OMITTED
65430              DISPLAY 'UNEXPECTED P2: ' P2
65431              END-DISPLAY
65432           END-IF
65433           DISPLAY 'P1: ' P1 WITH NO ADVANCING
65434           END-DISPLAY.
65435           EXIT PROGRAM.
65436_ATEOF
65437
65438
65439cat >caller.c <<'_ATEOF'
65440
65441#include <stdio.h>
65442#include <libcob.h>
65443
65444int callee (char *, char *);
65445
65446#ifndef NULL
65447#define NULL (void*)0
65448#endif
65449
65450int
65451main (int argc, char **argv)
65452{
65453   cob_global *cobol_global;
65454   /* for storing COBOL return code */
65455   int cob_ret;
65456
65457   /* initialize parameters */
65458   char *p1 = "A";
65459
65460   /* initialize the COBOL run-time library */
65461   cob_init(argc, argv);
65462
65463   /* setup for COBOL parameter handling */
65464   cobol_global = cob_get_global_ptr ();
65465   cobol_global->cob_call_params = 1;
65466
65467   /* call COBOL program */
65468   cob_ret = callee (p1, NULL);
65469
65470   /* Clean up and terminate - This does not return */
65471   cob_stop_run (cob_ret);
65472}
65473_ATEOF
65474
65475
65476{ set +x
65477$as_echo "$at_srcdir/run_misc.at:3582: \$COMPILE -o caller caller.c callee.cob"
65478at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3582"
65479( $at_check_trace; $COMPILE -o caller caller.c callee.cob
65480) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65481at_status=$? at_failed=false
65482$at_check_filter
65483at_fn_diff_devnull "$at_stderr" || at_failed=:
65484at_fn_diff_devnull "$at_stdout" || at_failed=:
65485at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3582"
65486$at_failed && at_fn_log_failure
65487$at_traceon; }
65488
65489{ set +x
65490$as_echo "$at_srcdir/run_misc.at:3583: \$COBCRUN_DIRECT ./caller"
65491at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3583"
65492( $at_check_trace; $COBCRUN_DIRECT ./caller
65493) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65494at_status=$? at_failed=false
65495$at_check_filter
65496at_fn_diff_devnull "$at_stderr" || at_failed=:
65497echo >>"$at_stdout"; $as_echo "P1: A" | \
65498  $at_diff - "$at_stdout" || at_failed=:
65499at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3583"
65500$at_failed && at_fn_log_failure
65501$at_traceon; }
65502
65503
65504  set +x
65505  $at_times_p && times >"$at_times_file"
65506) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65507read at_status <"$at_status_file"
65508#AT_STOP_658
65509#AT_START_659
65510at_fn_group_banner 659 'run_misc.at:3588' \
65511  "CALL in from C, cob_call_params unknown" "        " 4
65512at_xfail=no
65513(
65514  $as_echo "659. $at_setup_line: testing $at_desc ..."
65515  $at_traceon
65516
65517
65518
65519cat >callee.cob <<'_ATEOF'
65520
65521       IDENTIFICATION   DIVISION.
65522       PROGRAM-ID.      callee.
65523       DATA             DIVISION.
65524       LINKAGE          SECTION.
65525       01 P1            PIC X.
65526       01 P2            PIC X(6).
65527       PROCEDURE        DIVISION USING P1 P2.
65528           IF P1 NOT EQUAL "A"
65529              DISPLAY P1
65530              END-DISPLAY
65531           END-IF.
65532           IF P2 NOT EQUAL "FROM C"
65533              DISPLAY P2
65534              END-DISPLAY
65535           ELSE
65536              DISPLAY "OK" WITH NO ADVANCING
65537              END-DISPLAY
65538           END-IF.
65539           EXIT PROGRAM.
65540_ATEOF
65541
65542
65543cat >caller.c <<'_ATEOF'
65544
65545#include <stdio.h>
65546#include <libcob.h>
65547
65548int callee (char *, char *);
65549
65550int
65551main (int argc, char **argv)
65552{
65553   /* for storing COBOL return code */
65554   int cob_ret;
65555
65556   /* initialize parameters */
65557   char *p1 = "A";
65558   char *p2 = "FROM C";
65559
65560   /* initialize the COBOL run-time library */
65561   cob_init (argc, argv);
65562
65563   /* call COBOL program */
65564   cob_ret = callee (p1, p2);
65565
65566   /* Clean up and terminate - This does not return */
65567   cob_stop_run (cob_ret);
65568}
65569_ATEOF
65570
65571
65572{ set +x
65573$as_echo "$at_srcdir/run_misc.at:3640: \$COMPILE -o caller caller.c callee.cob"
65574at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3640"
65575( $at_check_trace; $COMPILE -o caller caller.c callee.cob
65576) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65577at_status=$? at_failed=false
65578$at_check_filter
65579at_fn_diff_devnull "$at_stderr" || at_failed=:
65580at_fn_diff_devnull "$at_stdout" || at_failed=:
65581at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3640"
65582$at_failed && at_fn_log_failure
65583$at_traceon; }
65584
65585{ set +x
65586$as_echo "$at_srcdir/run_misc.at:3641: \$COBCRUN_DIRECT ./caller"
65587at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3641"
65588( $at_check_trace; $COBCRUN_DIRECT ./caller
65589) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65590at_status=$? at_failed=false
65591$at_check_filter
65592at_fn_diff_devnull "$at_stderr" || at_failed=:
65593echo >>"$at_stdout"; $as_echo "OK" | \
65594  $at_diff - "$at_stdout" || at_failed=:
65595at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3641"
65596$at_failed && at_fn_log_failure
65597$at_traceon; }
65598
65599
65600  set +x
65601  $at_times_p && times >"$at_times_file"
65602) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65603read at_status <"$at_status_file"
65604#AT_STOP_659
65605#AT_START_660
65606at_fn_group_banner 660 'run_misc.at:3646' \
65607  "CALL C with callback, PROCEDURE DIVISION EXTERN" "" 4
65608at_xfail=no
65609(
65610  $as_echo "660. $at_setup_line: testing $at_desc ..."
65611  $at_traceon
65612
65613
65614
65615cat >prog.cob <<'_ATEOF'
65616
65617       IDENTIFICATION   DIVISION.
65618       PROGRAM-ID.      prog.
65619       DATA             DIVISION.
65620       WORKING-STORAGE  SECTION.
65621       01 CB            USAGE PROGRAM-POINTER.
65622       PROCEDURE        DIVISION.
65623           SET CB TO ENTRY "callback"
65624           CALL STATIC "cprog" USING BY VALUE CB
65625           END-CALL
65626           EXIT PROGRAM.
65627       END PROGRAM prog.
65628
65629       IDENTIFICATION   DIVISION.
65630       PROGRAM-ID.      callback.
65631       ENVIRONMENT DIVISION.
65632       CONFIGURATION SECTION.
65633       SPECIAL-NAMES.
65634           CALL-CONVENTION 0 IS EXTERN.
65635       DATA             DIVISION.
65636       LINKAGE          SECTION.
65637       01 P1            USAGE POINTER.
65638       01 P2            USAGE BINARY-LONG.
65639       01 P3            PIC X(8).
65640       PROCEDURE        DIVISION EXTERN USING
65641                        BY VALUE P1 P2 BY REFERENCE P3.
65642           IF P1 NOT EQUAL ADDRESS OF P3
65643              DISPLAY P1
65644              END-DISPLAY
65645           END-IF
65646           IF P2 NOT EQUAL 42
65647              DISPLAY P2
65648              END-DISPLAY
65649           END-IF
65650           IF P3 NOT EQUAL "CALLBACK"
65651              DISPLAY P3
65652              END-DISPLAY
65653           END-IF
65654           EXIT PROGRAM.
65655_ATEOF
65656
65657
65658cat >cprog.c <<'_ATEOF'
65659
65660#include <stdio.h>
65661#include <libcob.h>
65662
65663COB_EXT_EXPORT int
65664cprog (void *cb)
65665{
65666   char *p1;
65667   int  p2 = 42;
65668   char *p3 = "CALLBACK";
65669
65670   p1 = p3;
65671   ((int (*)(char *, int, char *))cb)(p1, p2, p3);
65672   return 0;
65673}
65674_ATEOF
65675
65676
65677{ set +x
65678$as_echo "$at_srcdir/run_misc.at:3707: \$COMPILE -Wno-unfinished -o prog prog.cob cprog.c"
65679at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog.cob cprog.c" "run_misc.at:3707"
65680( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog.cob cprog.c
65681) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65682at_status=$? at_failed=false
65683$at_check_filter
65684at_fn_diff_devnull "$at_stderr" || at_failed=:
65685at_fn_diff_devnull "$at_stdout" || at_failed=:
65686at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3707"
65687$at_failed && at_fn_log_failure
65688$at_traceon; }
65689
65690{ set +x
65691$as_echo "$at_srcdir/run_misc.at:3708: \$COBCRUN_DIRECT ./prog"
65692at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3708"
65693( $at_check_trace; $COBCRUN_DIRECT ./prog
65694) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65695at_status=$? at_failed=false
65696$at_check_filter
65697at_fn_diff_devnull "$at_stderr" || at_failed=:
65698at_fn_diff_devnull "$at_stdout" || at_failed=:
65699at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3708"
65700$at_failed && at_fn_log_failure
65701$at_traceon; }
65702
65703
65704  set +x
65705  $at_times_p && times >"$at_times_file"
65706) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65707read at_status <"$at_status_file"
65708#AT_STOP_660
65709#AT_START_661
65710at_fn_group_banner 661 'run_misc.at:3713' \
65711  "CALL C with callback, ENTRY-CONVENTION EXTERN" "  " 4
65712at_xfail=no
65713(
65714  $as_echo "661. $at_setup_line: testing $at_desc ..."
65715  $at_traceon
65716
65717
65718
65719cat >prog.cob <<'_ATEOF'
65720
65721       IDENTIFICATION   DIVISION.
65722       PROGRAM-ID.      prog.
65723       OPTIONS.
65724           ENTRY-CONVENTION COBOL.
65725       DATA             DIVISION.
65726       WORKING-STORAGE  SECTION.
65727       01 CB            USAGE PROGRAM-POINTER.
65728       PROCEDURE        DIVISION.
65729           SET CB TO ENTRY "callback"
65730           CALL STATIC "cprog" USING BY VALUE CB
65731           END-CALL
65732           EXIT PROGRAM.
65733       END PROGRAM prog.
65734
65735       IDENTIFICATION   DIVISION.
65736       PROGRAM-ID.      callback.
65737       OPTIONS.
65738           ENTRY-CONVENTION EXTERN.
65739       DATA             DIVISION.
65740       LINKAGE          SECTION.
65741       01 P1            USAGE POINTER.
65742       01 P2            USAGE BINARY-LONG.
65743       01 P3            PIC X(8).
65744       PROCEDURE        DIVISION USING
65745                        BY VALUE P1 P2 BY REFERENCE P3.
65746           IF P1 NOT EQUAL ADDRESS OF P3
65747              DISPLAY P1
65748              END-DISPLAY
65749           END-IF
65750           IF P2 NOT EQUAL 42
65751              DISPLAY P2
65752              END-DISPLAY
65753           END-IF
65754           IF P3 NOT EQUAL "CALLBACK"
65755              DISPLAY P3
65756              END-DISPLAY
65757           END-IF
65758           EXIT PROGRAM.
65759_ATEOF
65760
65761
65762cat >cprog.c <<'_ATEOF'
65763
65764#include <stdio.h>
65765#include <libcob.h>
65766
65767COB_EXT_EXPORT int
65768cprog (void *cb)
65769{
65770   char *p1;
65771   int  p2 = 42;
65772   char *p3 = "CALLBACK";
65773
65774   p1 = p3;
65775   ((int (*)(char *, int, char *))cb)(p1, p2, p3);
65776   return 0;
65777}
65778_ATEOF
65779
65780
65781{ set +x
65782$as_echo "$at_srcdir/run_misc.at:3774: \$COMPILE -Wno-unfinished -o prog prog.cob cprog.c"
65783at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog.cob cprog.c" "run_misc.at:3774"
65784( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog.cob cprog.c
65785) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65786at_status=$? at_failed=false
65787$at_check_filter
65788at_fn_diff_devnull "$at_stderr" || at_failed=:
65789at_fn_diff_devnull "$at_stdout" || at_failed=:
65790at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3774"
65791$at_failed && at_fn_log_failure
65792$at_traceon; }
65793
65794{ set +x
65795$as_echo "$at_srcdir/run_misc.at:3775: \$COBCRUN_DIRECT ./prog"
65796at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3775"
65797( $at_check_trace; $COBCRUN_DIRECT ./prog
65798) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65799at_status=$? at_failed=false
65800$at_check_filter
65801at_fn_diff_devnull "$at_stderr" || at_failed=:
65802at_fn_diff_devnull "$at_stdout" || at_failed=:
65803at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3775"
65804$at_failed && at_fn_log_failure
65805$at_traceon; }
65806
65807
65808cat >prog2.cob <<'_ATEOF'
65809
65810       IDENTIFICATION   DIVISION.
65811       PROGRAM-ID.      prog.
65812       DATA             DIVISION.
65813       WORKING-STORAGE  SECTION.
65814       01 CB            USAGE PROGRAM-POINTER.
65815       PROCEDURE        DIVISION.
65816           SET CB TO ENTRY "callback"
65817           CALL STATIC "cprog" USING BY VALUE CB
65818           END-CALL
65819           EXIT PROGRAM.
65820       END PROGRAM prog.
65821
65822       IDENTIFICATION   DIVISION.
65823       PROGRAM-ID.      callback.
65824       DATA             DIVISION.
65825       LINKAGE          SECTION.
65826       01 P1            USAGE POINTER.
65827       01 P2            USAGE BINARY-LONG.
65828       01 P3            PIC X(8).
65829       PROCEDURE        DIVISION WITH C LINKAGE
65830                        USING BY VALUE P1 P2 BY REFERENCE P3.
65831           IF P1 NOT EQUAL ADDRESS OF P3
65832              DISPLAY P1
65833              END-DISPLAY
65834           END-IF
65835           IF P2 NOT EQUAL 42
65836              DISPLAY P2
65837              END-DISPLAY
65838           END-IF
65839           IF P3 NOT EQUAL "CALLBACK"
65840              DISPLAY P3
65841              END-DISPLAY
65842           END-IF
65843           EXIT PROGRAM.
65844_ATEOF
65845
65846
65847cat >prog3.cob <<'_ATEOF'
65848
65849       IDENTIFICATION   DIVISION.
65850       PROGRAM-ID.      prog.
65851       DATA             DIVISION.
65852       WORKING-STORAGE  SECTION.
65853       01 CB            USAGE PROGRAM-POINTER.
65854       PROCEDURE        DIVISION.
65855           SET CB TO ENTRY "callback"
65856           CALL STATIC "cprog" USING BY VALUE CB
65857           END-CALL
65858           EXIT PROGRAM.
65859       END PROGRAM prog.
65860
65861       IDENTIFICATION   DIVISION.
65862       PROGRAM-ID.      callback.
65863       ENVIRONMENT DIVISION.
65864       CONFIGURATION SECTION.
65865       SPECIAL-NAMES.
65866           CALL-CONVENTION 0 IS EXTERN.
65867       DATA             DIVISION.
65868       LINKAGE          SECTION.
65869       01 P1            USAGE POINTER.
65870       01 P2            USAGE BINARY-LONG.
65871       01 P3            PIC X(8).
65872       PROCEDURE        DIVISION EXTERN
65873                        USING BY VALUE P1 P2 BY REFERENCE P3.
65874           IF P1 NOT EQUAL ADDRESS OF P3
65875              DISPLAY P1
65876              END-DISPLAY
65877           END-IF
65878           IF P2 NOT EQUAL 42
65879              DISPLAY P2
65880              END-DISPLAY
65881           END-IF
65882           IF P3 NOT EQUAL "CALLBACK"
65883              DISPLAY P3
65884              END-DISPLAY
65885           END-IF
65886           EXIT PROGRAM.
65887_ATEOF
65888
65889
65890{ set +x
65891$as_echo "$at_srcdir/run_misc.at:3855: \$COMPILE -Wno-unfinished -o prog prog2.cob cprog.c"
65892at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog2.cob cprog.c" "run_misc.at:3855"
65893( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog2.cob cprog.c
65894) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65895at_status=$? at_failed=false
65896$at_check_filter
65897at_fn_diff_devnull "$at_stderr" || at_failed=:
65898at_fn_diff_devnull "$at_stdout" || at_failed=:
65899at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3855"
65900$at_failed && at_fn_log_failure
65901$at_traceon; }
65902
65903{ set +x
65904$as_echo "$at_srcdir/run_misc.at:3856: \$COBCRUN_DIRECT ./prog"
65905at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3856"
65906( $at_check_trace; $COBCRUN_DIRECT ./prog
65907) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65908at_status=$? at_failed=false
65909$at_check_filter
65910at_fn_diff_devnull "$at_stderr" || at_failed=:
65911at_fn_diff_devnull "$at_stdout" || at_failed=:
65912at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3856"
65913$at_failed && at_fn_log_failure
65914$at_traceon; }
65915
65916
65917{ set +x
65918$as_echo "$at_srcdir/run_misc.at:3858: \$COMPILE -Wno-unfinished -o prog prog3.cob cprog.c"
65919at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog3.cob cprog.c" "run_misc.at:3858"
65920( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog3.cob cprog.c
65921) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65922at_status=$? at_failed=false
65923$at_check_filter
65924at_fn_diff_devnull "$at_stderr" || at_failed=:
65925at_fn_diff_devnull "$at_stdout" || at_failed=:
65926at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3858"
65927$at_failed && at_fn_log_failure
65928$at_traceon; }
65929
65930{ set +x
65931$as_echo "$at_srcdir/run_misc.at:3859: \$COBCRUN_DIRECT ./prog"
65932at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3859"
65933( $at_check_trace; $COBCRUN_DIRECT ./prog
65934) >>"$at_stdout" 2>>"$at_stderr" 5>&-
65935at_status=$? at_failed=false
65936$at_check_filter
65937at_fn_diff_devnull "$at_stderr" || at_failed=:
65938at_fn_diff_devnull "$at_stdout" || at_failed=:
65939at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3859"
65940$at_failed && at_fn_log_failure
65941$at_traceon; }
65942
65943
65944  set +x
65945  $at_times_p && times >"$at_times_file"
65946) 5>&1 2>&1 7>&- | eval $at_tee_pipe
65947read at_status <"$at_status_file"
65948#AT_STOP_661
65949#AT_START_662
65950at_fn_group_banner 662 'run_misc.at:3864' \
65951  "CALL in from C with init missing / implicit" "    " 4
65952at_xfail=no
65953(
65954  $as_echo "662. $at_setup_line: testing $at_desc ..."
65955  $at_traceon
65956
65957
65958
65959cat >callee.cob <<'_ATEOF'
65960
65961       IDENTIFICATION   DIVISION.
65962       PROGRAM-ID.      callee.
65963       DATA             DIVISION.
65964       LINKAGE          SECTION.
65965       01 P1            PIC X.
65966       01 P2            PIC X(6).
65967       PROCEDURE        DIVISION USING P1 P2.
65968           IF P1 NOT EQUAL "A"
65969              DISPLAY P1
65970              END-DISPLAY
65971           END-IF.
65972           IF P2 NOT EQUAL "FROM C"
65973              DISPLAY P2
65974              END-DISPLAY
65975           ELSE
65976              DISPLAY "OK" WITH NO ADVANCING
65977              END-DISPLAY
65978           END-IF.
65979           STOP RUN.
65980_ATEOF
65981
65982
65983cat >caller.c <<'_ATEOF'
65984
65985int callee (char *, char *);
65986
65987int
65988main (int argc, char **argv)
65989{
65990   /* initialize parameters */
65991   char *p1 = "A";
65992   char *p2 = "FROM C";
65993
65994   /* call COBOL program (initialization missing)
65995      note: COBOL program terminates the program by STOP RUN */
65996   (void)callee (p1, p2);
65997}
65998_ATEOF
65999
66000
66001{ set +x
66002$as_echo "$at_srcdir/run_misc.at:3905: \$COMPILE -o caller caller.c callee.cob"
66003at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3905"
66004( $at_check_trace; $COMPILE -o caller caller.c callee.cob
66005) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66006at_status=$? at_failed=false
66007$at_check_filter
66008at_fn_diff_devnull "$at_stderr" || at_failed=:
66009at_fn_diff_devnull "$at_stdout" || at_failed=:
66010at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3905"
66011$at_failed && at_fn_log_failure
66012$at_traceon; }
66013
66014{ set +x
66015$as_echo "$at_srcdir/run_misc.at:3906: \$COBCRUN_DIRECT ./caller"
66016at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3906"
66017( $at_check_trace; $COBCRUN_DIRECT ./caller
66018) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66019at_status=$? at_failed=false
66020$at_check_filter
66021echo >>"$at_stderr"; $as_echo "libcob: error: cob_init() has not been called
66022" | \
66023  $at_diff - "$at_stderr" || at_failed=:
66024at_fn_diff_devnull "$at_stdout" || at_failed=:
66025at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:3906"
66026$at_failed && at_fn_log_failure
66027$at_traceon; }
66028
66029
66030{ set +x
66031$as_echo "$at_srcdir/run_misc.at:3910: \$COMPILE -fimplicit-init -o caller caller.c callee.cob"
66032at_fn_check_prepare_dynamic "$COMPILE -fimplicit-init -o caller caller.c callee.cob" "run_misc.at:3910"
66033( $at_check_trace; $COMPILE -fimplicit-init -o caller caller.c callee.cob
66034) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66035at_status=$? at_failed=false
66036$at_check_filter
66037at_fn_diff_devnull "$at_stderr" || at_failed=:
66038at_fn_diff_devnull "$at_stdout" || at_failed=:
66039at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3910"
66040$at_failed && at_fn_log_failure
66041$at_traceon; }
66042
66043{ set +x
66044$as_echo "$at_srcdir/run_misc.at:3911: \$COBCRUN_DIRECT ./caller"
66045at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3911"
66046( $at_check_trace; $COBCRUN_DIRECT ./caller
66047) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66048at_status=$? at_failed=false
66049$at_check_filter
66050at_fn_diff_devnull "$at_stderr" || at_failed=:
66051echo >>"$at_stdout"; $as_echo "OK" | \
66052  $at_diff - "$at_stdout" || at_failed=:
66053at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3911"
66054$at_failed && at_fn_log_failure
66055$at_traceon; }
66056
66057
66058  set +x
66059  $at_times_p && times >"$at_times_file"
66060) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66061read at_status <"$at_status_file"
66062#AT_STOP_662
66063#AT_START_663
66064at_fn_group_banner 663 'run_misc.at:3916' \
66065  "CALL STATIC C from COBOL" "                       " 4
66066at_xfail=no
66067(
66068  $as_echo "663. $at_setup_line: testing $at_desc ..."
66069  $at_traceon
66070
66071
66072
66073cat >caller.cob <<'_ATEOF'
66074
66075       IDENTIFICATION   DIVISION.
66076       PROGRAM-ID.      caller.
66077       DATA             DIVISION.
66078       WORKING-STORAGE  SECTION.
66079       01 P1            PIC X VALUE "A".
66080       01 P2            PIC X(7).
66081       77 P2-COB        PIC X(7).
66082       PROCEDURE        DIVISION.
66083           CALL STATIC 'callee' USING P1 P2
66084           IF P1 NOT EQUAL "B"
66085              DISPLAY 'NOT A: ' P1
66086              END-DISPLAY
66087           END-IF
66088           UNSTRING P2 DELIMITED BY LOW-VALUE
66089              INTO P2-COB
66090           END-UNSTRING
66091           EVALUATE TRUE
66092              WHEN P2-COB NOT EQUAL "FROM C"
66093                 DISPLAY P2-COB '-' P2
66094                 END-DISPLAY
66095              WHEN RETURN-CODE NOT = 3
66096                 DISPLAY RETURN-CODE
66097                 END-DISPLAY
66098              WHEN OTHER
66099                 DISPLAY 'OK'  WITH NO ADVANCING
66100                 END-DISPLAY
66101                 MOVE 0  TO RETURN-CODE
66102           END-EVALUATE
66103           EXIT PROGRAM.
66104_ATEOF
66105
66106
66107cat >callee.c <<'_ATEOF'
66108
66109#include <string.h>
66110
66111int
66112callee (char *p1, char *p2)
66113{
66114   if (p1[0] == 'A') {
66115      p1[0] = 'B';
66116   }
66117   memcpy (p2, "FROM C", 6);
66118
66119   return 3;
66120}
66121_ATEOF
66122
66123
66124{ set +x
66125$as_echo "$at_srcdir/run_misc.at:3966: \$COMPILE -o caller caller.cob callee.c"
66126at_fn_check_prepare_dynamic "$COMPILE -o caller caller.cob callee.c" "run_misc.at:3966"
66127( $at_check_trace; $COMPILE -o caller caller.cob callee.c
66128) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66129at_status=$? at_failed=false
66130$at_check_filter
66131at_fn_diff_devnull "$at_stderr" || at_failed=:
66132at_fn_diff_devnull "$at_stdout" || at_failed=:
66133at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3966"
66134$at_failed && at_fn_log_failure
66135$at_traceon; }
66136
66137{ set +x
66138$as_echo "$at_srcdir/run_misc.at:3967: \$COBCRUN_DIRECT ./caller"
66139at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3967"
66140( $at_check_trace; $COBCRUN_DIRECT ./caller
66141) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66142at_status=$? at_failed=false
66143$at_check_filter
66144at_fn_diff_devnull "$at_stderr" || at_failed=:
66145echo >>"$at_stdout"; $as_echo "OK" | \
66146  $at_diff - "$at_stdout" || at_failed=:
66147at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3967"
66148$at_failed && at_fn_log_failure
66149$at_traceon; }
66150
66151
66152  set +x
66153  $at_times_p && times >"$at_times_file"
66154) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66155read at_status <"$at_status_file"
66156#AT_STOP_663
66157#AT_START_664
66158at_fn_group_banner 664 'run_misc.at:3972' \
66159  "ANY LENGTH (1)" "                                 " 4
66160at_xfail=no
66161(
66162  $as_echo "664. $at_setup_line: testing $at_desc ..."
66163  $at_traceon
66164
66165
66166
66167cat >callee.cob <<'_ATEOF'
66168
66169       IDENTIFICATION   DIVISION.
66170       PROGRAM-ID.      callee.
66171       DATA             DIVISION.
66172       WORKING-STORAGE  SECTION.
66173       01 P2            PIC 99.
66174       LINKAGE          SECTION.
66175       01 P1            PIC X ANY LENGTH.
66176       PROCEDURE        DIVISION USING P1.
66177           MOVE LENGTH OF P1 TO P2.
66178           IF P2 NOT = 6
66179              DISPLAY P2
66180              END-DISPLAY
66181           END-IF.
66182           IF P1 NOT = "OKOKOK"
66183              DISPLAY P1
66184              END-DISPLAY
66185           END-IF.
66186           EXIT PROGRAM.
66187_ATEOF
66188
66189
66190cat >caller.cob <<'_ATEOF'
66191
66192       IDENTIFICATION   DIVISION.
66193       PROGRAM-ID.      caller.
66194       DATA             DIVISION.
66195       WORKING-STORAGE  SECTION.
66196       01 P1            PIC X(6) VALUE "OKOKOK".
66197       PROCEDURE        DIVISION.
66198           CALL "callee" USING P1
66199           END-CALL.
66200           STOP RUN.
66201_ATEOF
66202
66203
66204{ set +x
66205$as_echo "$at_srcdir/run_misc.at:4008: \$COMPILE_MODULE callee.cob"
66206at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4008"
66207( $at_check_trace; $COMPILE_MODULE callee.cob
66208) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66209at_status=$? at_failed=false
66210$at_check_filter
66211at_fn_diff_devnull "$at_stderr" || at_failed=:
66212at_fn_diff_devnull "$at_stdout" || at_failed=:
66213at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4008"
66214$at_failed && at_fn_log_failure
66215$at_traceon; }
66216
66217{ set +x
66218$as_echo "$at_srcdir/run_misc.at:4009: \$COMPILE caller.cob"
66219at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4009"
66220( $at_check_trace; $COMPILE caller.cob
66221) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66222at_status=$? at_failed=false
66223$at_check_filter
66224at_fn_diff_devnull "$at_stderr" || at_failed=:
66225at_fn_diff_devnull "$at_stdout" || at_failed=:
66226at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4009"
66227$at_failed && at_fn_log_failure
66228$at_traceon; }
66229
66230{ set +x
66231$as_echo "$at_srcdir/run_misc.at:4010: \$COBCRUN_DIRECT ./caller"
66232at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4010"
66233( $at_check_trace; $COBCRUN_DIRECT ./caller
66234) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66235at_status=$? at_failed=false
66236$at_check_filter
66237at_fn_diff_devnull "$at_stderr" || at_failed=:
66238at_fn_diff_devnull "$at_stdout" || at_failed=:
66239at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4010"
66240$at_failed && at_fn_log_failure
66241$at_traceon; }
66242
66243
66244  set +x
66245  $at_times_p && times >"$at_times_file"
66246) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66247read at_status <"$at_status_file"
66248#AT_STOP_664
66249#AT_START_665
66250at_fn_group_banner 665 'run_misc.at:4015' \
66251  "ANY LENGTH (2)" "                                 " 4
66252at_xfail=no
66253(
66254  $as_echo "665. $at_setup_line: testing $at_desc ..."
66255  $at_traceon
66256
66257
66258
66259cat >callee.cob <<'_ATEOF'
66260
66261       IDENTIFICATION   DIVISION.
66262       PROGRAM-ID.      callee.
66263       DATA             DIVISION.
66264       WORKING-STORAGE  SECTION.
66265       01 P2            PIC XXX.
66266       LINKAGE          SECTION.
66267       01 P1            PIC X ANY LENGTH.
66268       PROCEDURE        DIVISION USING P1.
66269           MOVE P1 TO P2.
66270           IF P2 NOT = "OK "
66271              DISPLAY P2
66272              END-DISPLAY
66273           END-IF.
66274           MOVE SPACE TO P1.
66275           EXIT PROGRAM.
66276_ATEOF
66277
66278
66279cat >caller.cob <<'_ATEOF'
66280
66281       IDENTIFICATION   DIVISION.
66282       PROGRAM-ID.      caller.
66283       DATA             DIVISION.
66284       WORKING-STORAGE  SECTION.
66285       01 P1            PIC X(2) VALUE "OK".
66286       PROCEDURE        DIVISION.
66287           CALL "callee" USING P1
66288           END-CALL.
66289           IF P1 NOT = SPACE
66290              DISPLAY P1
66291              END-DISPLAY
66292           END-IF.
66293           STOP RUN.
66294_ATEOF
66295
66296
66297{ set +x
66298$as_echo "$at_srcdir/run_misc.at:4052: \$COMPILE_MODULE callee.cob"
66299at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4052"
66300( $at_check_trace; $COMPILE_MODULE callee.cob
66301) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66302at_status=$? at_failed=false
66303$at_check_filter
66304at_fn_diff_devnull "$at_stderr" || at_failed=:
66305at_fn_diff_devnull "$at_stdout" || at_failed=:
66306at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4052"
66307$at_failed && at_fn_log_failure
66308$at_traceon; }
66309
66310{ set +x
66311$as_echo "$at_srcdir/run_misc.at:4053: \$COMPILE caller.cob"
66312at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4053"
66313( $at_check_trace; $COMPILE caller.cob
66314) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66315at_status=$? at_failed=false
66316$at_check_filter
66317at_fn_diff_devnull "$at_stderr" || at_failed=:
66318at_fn_diff_devnull "$at_stdout" || at_failed=:
66319at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4053"
66320$at_failed && at_fn_log_failure
66321$at_traceon; }
66322
66323{ set +x
66324$as_echo "$at_srcdir/run_misc.at:4054: \$COBCRUN_DIRECT ./caller"
66325at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4054"
66326( $at_check_trace; $COBCRUN_DIRECT ./caller
66327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66328at_status=$? at_failed=false
66329$at_check_filter
66330at_fn_diff_devnull "$at_stderr" || at_failed=:
66331at_fn_diff_devnull "$at_stdout" || at_failed=:
66332at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4054"
66333$at_failed && at_fn_log_failure
66334$at_traceon; }
66335
66336
66337  set +x
66338  $at_times_p && times >"$at_times_file"
66339) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66340read at_status <"$at_status_file"
66341#AT_STOP_665
66342#AT_START_666
66343at_fn_group_banner 666 'run_misc.at:4059' \
66344  "ANY LENGTH (3)" "                                 " 4
66345at_xfail=no
66346(
66347  $as_echo "666. $at_setup_line: testing $at_desc ..."
66348  $at_traceon
66349
66350
66351
66352cat >prog.cob <<'_ATEOF'
66353
66354       IDENTIFICATION DIVISION.
66355       PROGRAM-ID. prog.
66356
66357       DATA DIVISION.
66358       WORKING-STORAGE SECTION.
66359       01 str PIC X(20) VALUE ALL "X".
66360
66361       PROCEDURE DIVISION.
66362           CALL "subprog" USING str
66363           .
66364       END PROGRAM prog.
66365
66366       IDENTIFICATION DIVISION.
66367       PROGRAM-ID. subprog.
66368
66369       DATA DIVISION.
66370       LINKAGE SECTION.
66371       01 str PIC X ANY LENGTH.
66372
66373       PROCEDURE DIVISION USING str.
66374           MOVE "abcd" TO str
66375           DISPLAY FUNCTION TRIM (str)
66376           MOVE "abcd" TO str (5:)
66377           DISPLAY FUNCTION TRIM (str)
66378           MOVE ALL "a" TO str
66379           DISPLAY FUNCTION TRIM (str)
66380           .
66381       END PROGRAM subprog.
66382_ATEOF
66383
66384
66385{ set +x
66386$as_echo "$at_srcdir/run_misc.at:4093: \$COMPILE prog.cob"
66387at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4093"
66388( $at_check_trace; $COMPILE prog.cob
66389) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66390at_status=$? at_failed=false
66391$at_check_filter
66392at_fn_diff_devnull "$at_stderr" || at_failed=:
66393at_fn_diff_devnull "$at_stdout" || at_failed=:
66394at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4093"
66395$at_failed && at_fn_log_failure
66396$at_traceon; }
66397
66398{ set +x
66399$as_echo "$at_srcdir/run_misc.at:4094: \$COBCRUN_DIRECT ./prog"
66400at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4094"
66401( $at_check_trace; $COBCRUN_DIRECT ./prog
66402) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66403at_status=$? at_failed=false
66404$at_check_filter
66405at_fn_diff_devnull "$at_stderr" || at_failed=:
66406echo >>"$at_stdout"; $as_echo "abcd
66407abcdabcd
66408aaaaaaaaaaaaaaaaaaaa
66409" | \
66410  $at_diff - "$at_stdout" || at_failed=:
66411at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4094"
66412$at_failed && at_fn_log_failure
66413$at_traceon; }
66414
66415  set +x
66416  $at_times_p && times >"$at_times_file"
66417) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66418read at_status <"$at_status_file"
66419#AT_STOP_666
66420#AT_START_667
66421at_fn_group_banner 667 'run_misc.at:4102' \
66422  "ANY LENGTH (4)" "                                 " 4
66423at_xfail=no
66424(
66425  $as_echo "667. $at_setup_line: testing $at_desc ..."
66426  $at_traceon
66427
66428
66429
66430# comparision of any length was done only for first character - see bug 511
66431
66432cat >prog.cob <<'_ATEOF'
66433
66434       IDENTIFICATION DIVISION.
66435       PROGRAM-ID. prog.
66436
66437       DATA DIVISION.
66438       WORKING-STORAGE SECTION.
66439       01 str PIC X(20) VALUE ALL "X".
66440
66441       PROCEDURE DIVISION.
66442           CALL "subprog" USING str
66443           move '   45'   to str
66444           CALL "subprog" USING str
66445           .
66446       END PROGRAM prog.
66447
66448       IDENTIFICATION DIVISION.
66449       PROGRAM-ID. subprog.
66450
66451       DATA DIVISION.
66452       LINKAGE SECTION.
66453       01 str PIC X ANY LENGTH.
66454
66455       PROCEDURE DIVISION USING str.
66456           IF str = 'X'
66457             DISPLAY 'X is X'
66458           END-IF
66459           IF str = space
66460             DISPLAY 'X is space'
66461           END-IF
66462           .
66463       END PROGRAM subprog.
66464_ATEOF
66465
66466
66467{ set +x
66468$as_echo "$at_srcdir/run_misc.at:4140: \$COMPILE prog.cob"
66469at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4140"
66470( $at_check_trace; $COMPILE prog.cob
66471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66472at_status=$? at_failed=false
66473$at_check_filter
66474at_fn_diff_devnull "$at_stderr" || at_failed=:
66475at_fn_diff_devnull "$at_stdout" || at_failed=:
66476at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4140"
66477$at_failed && at_fn_log_failure
66478$at_traceon; }
66479
66480{ set +x
66481$as_echo "$at_srcdir/run_misc.at:4141: \$COBCRUN_DIRECT ./prog"
66482at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4141"
66483( $at_check_trace; $COBCRUN_DIRECT ./prog
66484) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66485at_status=$? at_failed=false
66486$at_check_filter
66487at_fn_diff_devnull "$at_stderr" || at_failed=:
66488at_fn_diff_devnull "$at_stdout" || at_failed=:
66489at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4141"
66490$at_failed && at_fn_log_failure
66491$at_traceon; }
66492
66493  set +x
66494  $at_times_p && times >"$at_times_file"
66495) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66496read at_status <"$at_status_file"
66497#AT_STOP_667
66498#AT_START_668
66499at_fn_group_banner 668 'run_misc.at:4145' \
66500  "ANY LENGTH (5)" "                                 " 4
66501at_xfail=no
66502(
66503  $as_echo "668. $at_setup_line: testing $at_desc ..."
66504  $at_traceon
66505
66506
66507
66508# any length variables resulted in SIGSEGV when module was first program called
66509
66510cat >subprog.cob <<'_ATEOF'
66511
66512       IDENTIFICATION DIVISION.
66513       PROGRAM-ID. subprog.
66514
66515       DATA DIVISION.
66516       LINKAGE SECTION.
66517       01 str1 PIC X ANY LENGTH.
66518       01 str2 PIC X ANY LENGTH.
66519
66520       PROCEDURE DIVISION USING str1 str2.
66521           DISPLAY 'IN' WITH NO ADVANCING
66522           .
66523       END PROGRAM subprog.
66524_ATEOF
66525
66526
66527{ set +x
66528$as_echo "$at_srcdir/run_misc.at:4165: \$COMPILE_MODULE subprog.cob"
66529at_fn_check_prepare_dynamic "$COMPILE_MODULE subprog.cob" "run_misc.at:4165"
66530( $at_check_trace; $COMPILE_MODULE subprog.cob
66531) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66532at_status=$? at_failed=false
66533$at_check_filter
66534at_fn_diff_devnull "$at_stderr" || at_failed=:
66535at_fn_diff_devnull "$at_stdout" || at_failed=:
66536at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4165"
66537$at_failed && at_fn_log_failure
66538$at_traceon; }
66539
66540{ set +x
66541$as_echo "$at_srcdir/run_misc.at:4166: \$COBCRUN subprog some test stuff"
66542at_fn_check_prepare_dynamic "$COBCRUN subprog some test stuff" "run_misc.at:4166"
66543( $at_check_trace; $COBCRUN subprog some test stuff
66544) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66545at_status=$? at_failed=false
66546$at_check_filter
66547at_fn_diff_devnull "$at_stderr" || at_failed=:
66548echo >>"$at_stdout"; $as_echo "IN" | \
66549  $at_diff - "$at_stdout" || at_failed=:
66550at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4166"
66551$at_failed && at_fn_log_failure
66552$at_traceon; }
66553
66554  set +x
66555  $at_times_p && times >"$at_times_file"
66556) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66557read at_status <"$at_status_file"
66558#AT_STOP_668
66559#AT_START_669
66560at_fn_group_banner 669 'run_misc.at:4170' \
66561  "access to BASED item without allocation" "        " 4
66562at_xfail=no
66563(
66564  $as_echo "669. $at_setup_line: testing $at_desc ..."
66565  $at_traceon
66566
66567
66568
66569cat >prog.cob <<'_ATEOF'
66570
66571       IDENTIFICATION   DIVISION.
66572       PROGRAM-ID.      prog.
66573       DATA             DIVISION.
66574       WORKING-STORAGE  SECTION.
66575       01 X             PIC X(4) BASED.
66576       PROCEDURE        DIVISION.
66577           DISPLAY X NO ADVANCING
66578           END-DISPLAY.
66579           STOP RUN.
66580_ATEOF
66581
66582
66583cat >prog2.cob <<'_ATEOF'
66584
66585       IDENTIFICATION   DIVISION.
66586       PROGRAM-ID.      prog2.
66587       DATA             DIVISION.
66588       WORKING-STORAGE  SECTION.
66589       01 X             BASED.
66590          05 Y          PIC X(4).
66591       PROCEDURE        DIVISION.
66592           DISPLAY Y NO ADVANCING
66593           END-DISPLAY.
66594           STOP RUN.
66595_ATEOF
66596
66597
66598{ set +x
66599$as_echo "$at_srcdir/run_misc.at:4198: \$COMPILE prog.cob"
66600at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4198"
66601( $at_check_trace; $COMPILE prog.cob
66602) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66603at_status=$? at_failed=false
66604$at_check_filter
66605at_fn_diff_devnull "$at_stderr" || at_failed=:
66606at_fn_diff_devnull "$at_stdout" || at_failed=:
66607at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4198"
66608$at_failed && at_fn_log_failure
66609$at_traceon; }
66610
66611{ set +x
66612$as_echo "$at_srcdir/run_misc.at:4199: \$COMPILE prog2.cob"
66613at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:4199"
66614( $at_check_trace; $COMPILE prog2.cob
66615) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66616at_status=$? at_failed=false
66617$at_check_filter
66618at_fn_diff_devnull "$at_stderr" || at_failed=:
66619at_fn_diff_devnull "$at_stdout" || at_failed=:
66620at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4199"
66621$at_failed && at_fn_log_failure
66622$at_traceon; }
66623
66624
66625{ set +x
66626$as_echo "$at_srcdir/run_misc.at:4201: \$COBCRUN_DIRECT ./prog"
66627at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4201"
66628( $at_check_trace; $COBCRUN_DIRECT ./prog
66629) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66630at_status=$? at_failed=false
66631$at_check_filter
66632echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: BASED/LINKAGE item 'X' has NULL address
66633" | \
66634  $at_diff - "$at_stderr" || at_failed=:
66635at_fn_diff_devnull "$at_stdout" || at_failed=:
66636at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4201"
66637$at_failed && at_fn_log_failure
66638$at_traceon; }
66639
66640{ set +x
66641$as_echo "$at_srcdir/run_misc.at:4204: \$COBCRUN_DIRECT ./prog2"
66642at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:4204"
66643( $at_check_trace; $COBCRUN_DIRECT ./prog2
66644) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66645at_status=$? at_failed=false
66646$at_check_filter
66647echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:9: error: BASED/LINKAGE item 'X' (accessed by 'Y') has NULL address
66648" | \
66649  $at_diff - "$at_stderr" || at_failed=:
66650at_fn_diff_devnull "$at_stdout" || at_failed=:
66651at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4204"
66652$at_failed && at_fn_log_failure
66653$at_traceon; }
66654
66655
66656  set +x
66657  $at_times_p && times >"$at_times_file"
66658) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66659read at_status <"$at_status_file"
66660#AT_STOP_669
66661#AT_START_670
66662at_fn_group_banner 670 'run_misc.at:4211' \
66663  "access to OPTIONAL LINKAGE item not passed" "     " 4
66664at_xfail=no
66665(
66666  $as_echo "670. $at_setup_line: testing $at_desc ..."
66667  $at_traceon
66668
66669
66670
66671cat >caller.cob <<'_ATEOF'
66672
66673       IDENTIFICATION   DIVISION.
66674       PROGRAM-ID.      caller.
66675       DATA             DIVISION.
66676       WORKING-STORAGE  SECTION.
66677       01 X             PIC X(4) VALUE '9876'.
66678       PROCEDURE        DIVISION.
66679           CALL 'callee' USING X
66680           END-CALL
66681           CALL 'callee' USING OMITTED
66682           END-CALL
66683           STOP RUN.
66684_ATEOF
66685
66686
66687cat >callee.cob <<'_ATEOF'
66688
66689       IDENTIFICATION   DIVISION.
66690       PROGRAM-ID.      callee.
66691       DATA             DIVISION.
66692       LINKAGE          SECTION.
66693       01 X.
66694          05 Y          PIC X(4).
66695       PROCEDURE        DIVISION USING OPTIONAL X.
66696           IF Y NOT = '9876'
66697              DISPLAY Y NO ADVANCING
66698              END-DISPLAY
66699           END-IF.
66700           GOBACK.
66701_ATEOF
66702
66703
66704{ set +x
66705$as_echo "$at_srcdir/run_misc.at:4243: \$COMPILE caller.cob"
66706at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4243"
66707( $at_check_trace; $COMPILE caller.cob
66708) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66709at_status=$? at_failed=false
66710$at_check_filter
66711at_fn_diff_devnull "$at_stderr" || at_failed=:
66712at_fn_diff_devnull "$at_stdout" || at_failed=:
66713at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4243"
66714$at_failed && at_fn_log_failure
66715$at_traceon; }
66716
66717{ set +x
66718$as_echo "$at_srcdir/run_misc.at:4244: \$COMPILE_MODULE callee.cob"
66719at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4244"
66720( $at_check_trace; $COMPILE_MODULE callee.cob
66721) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66722at_status=$? at_failed=false
66723$at_check_filter
66724at_fn_diff_devnull "$at_stderr" || at_failed=:
66725at_fn_diff_devnull "$at_stdout" || at_failed=:
66726at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4244"
66727$at_failed && at_fn_log_failure
66728$at_traceon; }
66729
66730
66731{ set +x
66732$as_echo "$at_srcdir/run_misc.at:4246: \$COBCRUN_DIRECT ./caller"
66733at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4246"
66734( $at_check_trace; $COBCRUN_DIRECT ./caller
66735) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66736at_status=$? at_failed=false
66737$at_check_filter
66738echo >>"$at_stderr"; $as_echo "libcob: callee.cob:9: error: LINKAGE item 'X' (accessed by 'Y') not passed by caller
66739" | \
66740  $at_diff - "$at_stderr" || at_failed=:
66741at_fn_diff_devnull "$at_stdout" || at_failed=:
66742at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4246"
66743$at_failed && at_fn_log_failure
66744$at_traceon; }
66745
66746
66747  set +x
66748  $at_times_p && times >"$at_times_file"
66749) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66750read at_status <"$at_status_file"
66751#AT_STOP_670
66752#AT_START_671
66753at_fn_group_banner 671 'run_misc.at:4253' \
66754  "STOP RUN WITH NORMAL STATUS" "                    " 4
66755at_xfail=no
66756(
66757  $as_echo "671. $at_setup_line: testing $at_desc ..."
66758  $at_traceon
66759
66760
66761
66762cat >prog.cob <<'_ATEOF'
66763
66764       IDENTIFICATION   DIVISION.
66765       PROGRAM-ID.      prog.
66766       DATA             DIVISION.
66767       WORKING-STORAGE  SECTION.
66768       PROCEDURE        DIVISION.
66769           STOP RUN WITH NORMAL STATUS.
66770_ATEOF
66771
66772
66773{ set +x
66774$as_echo "$at_srcdir/run_misc.at:4265: \$COMPILE prog.cob"
66775at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4265"
66776( $at_check_trace; $COMPILE prog.cob
66777) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66778at_status=$? at_failed=false
66779$at_check_filter
66780at_fn_diff_devnull "$at_stderr" || at_failed=:
66781at_fn_diff_devnull "$at_stdout" || at_failed=:
66782at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4265"
66783$at_failed && at_fn_log_failure
66784$at_traceon; }
66785
66786{ set +x
66787$as_echo "$at_srcdir/run_misc.at:4266: \$COBCRUN_DIRECT ./prog"
66788at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4266"
66789( $at_check_trace; $COBCRUN_DIRECT ./prog
66790) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66791at_status=$? at_failed=false
66792$at_check_filter
66793at_fn_diff_devnull "$at_stderr" || at_failed=:
66794at_fn_diff_devnull "$at_stdout" || at_failed=:
66795at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4266"
66796$at_failed && at_fn_log_failure
66797$at_traceon; }
66798
66799
66800  set +x
66801  $at_times_p && times >"$at_times_file"
66802) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66803read at_status <"$at_status_file"
66804#AT_STOP_671
66805#AT_START_672
66806at_fn_group_banner 672 'run_misc.at:4271' \
66807  "STOP RUN WITH ERROR STATUS" "                     " 4
66808at_xfail=no
66809(
66810  $as_echo "672. $at_setup_line: testing $at_desc ..."
66811  $at_traceon
66812
66813
66814
66815cat >prog.cob <<'_ATEOF'
66816
66817       IDENTIFICATION   DIVISION.
66818       PROGRAM-ID.      prog.
66819       DATA             DIVISION.
66820       WORKING-STORAGE  SECTION.
66821       PROCEDURE        DIVISION.
66822           STOP RUN WITH ERROR STATUS.
66823_ATEOF
66824
66825
66826{ set +x
66827$as_echo "$at_srcdir/run_misc.at:4283: \$COMPILE prog.cob"
66828at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4283"
66829( $at_check_trace; $COMPILE prog.cob
66830) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66831at_status=$? at_failed=false
66832$at_check_filter
66833at_fn_diff_devnull "$at_stderr" || at_failed=:
66834at_fn_diff_devnull "$at_stdout" || at_failed=:
66835at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4283"
66836$at_failed && at_fn_log_failure
66837$at_traceon; }
66838
66839{ set +x
66840$as_echo "$at_srcdir/run_misc.at:4284: \$COBCRUN_DIRECT ./prog"
66841at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4284"
66842( $at_check_trace; $COBCRUN_DIRECT ./prog
66843) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66844at_status=$? at_failed=false
66845$at_check_filter
66846at_fn_diff_devnull "$at_stderr" || at_failed=:
66847at_fn_diff_devnull "$at_stdout" || at_failed=:
66848at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4284"
66849$at_failed && at_fn_log_failure
66850$at_traceon; }
66851
66852
66853  set +x
66854  $at_times_p && times >"$at_times_file"
66855) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66856read at_status <"$at_status_file"
66857#AT_STOP_672
66858#AT_START_673
66859at_fn_group_banner 673 'run_misc.at:4289' \
66860  "SYMBOLIC clause" "                                " 4
66861at_xfail=no
66862(
66863  $as_echo "673. $at_setup_line: testing $at_desc ..."
66864  $at_traceon
66865
66866
66867
66868cat >prog.cob <<'_ATEOF'
66869
66870       IDENTIFICATION   DIVISION.
66871       PROGRAM-ID.      prog.
66872       ENVIRONMENT DIVISION.
66873       CONFIGURATION SECTION.
66874       SPECIAL-NAMES.
66875           ALPHABET A-EBC IS EBCDIC
66876           ALPHABET A-ASC IS ASCII
66877           SYMBOLIC Z-EBC IS 241 IN A-EBC
66878           SYMBOLIC Z-ASC IS  49 IN A-ASC
66879           .
66880       DATA             DIVISION.
66881       WORKING-STORAGE  SECTION.
66882       01  Z            PIC X.
66883       PROCEDURE        DIVISION.
66884           MOVE Z-ASC   TO Z.
66885           IF Z NOT = "0"
66886              DISPLAY Z
66887              END-DISPLAY
66888           END-IF.
66889           MOVE Z-EBC   TO Z.
66890           IF Z NOT = "0"
66891              DISPLAY Z
66892              END-DISPLAY
66893           END-IF.
66894           STOP RUN.
66895_ATEOF
66896
66897
66898{ set +x
66899$as_echo "$at_srcdir/run_misc.at:4320: \$COMPILE prog.cob"
66900at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4320"
66901( $at_check_trace; $COMPILE prog.cob
66902) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66903at_status=$? at_failed=false
66904$at_check_filter
66905at_fn_diff_devnull "$at_stderr" || at_failed=:
66906at_fn_diff_devnull "$at_stdout" || at_failed=:
66907at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4320"
66908$at_failed && at_fn_log_failure
66909$at_traceon; }
66910
66911{ set +x
66912$as_echo "$at_srcdir/run_misc.at:4321: \$COBCRUN_DIRECT ./prog"
66913at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4321"
66914( $at_check_trace; $COBCRUN_DIRECT ./prog
66915) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66916at_status=$? at_failed=false
66917$at_check_filter
66918at_fn_diff_devnull "$at_stderr" || at_failed=:
66919at_fn_diff_devnull "$at_stdout" || at_failed=:
66920at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4321"
66921$at_failed && at_fn_log_failure
66922$at_traceon; }
66923
66924
66925  set +x
66926  $at_times_p && times >"$at_times_file"
66927) 5>&1 2>&1 7>&- | eval $at_tee_pipe
66928read at_status <"$at_status_file"
66929#AT_STOP_673
66930#AT_START_674
66931at_fn_group_banner 674 'run_misc.at:4326' \
66932  "OCCURS clause with 1 entry" "                     " 4
66933at_xfail=no
66934(
66935  $as_echo "674. $at_setup_line: testing $at_desc ..."
66936  $at_traceon
66937
66938
66939
66940cat >prog.cob <<'_ATEOF'
66941
66942       IDENTIFICATION   DIVISION.
66943       PROGRAM-ID.      prog.
66944       DATA             DIVISION.
66945       WORKING-STORAGE  SECTION.
66946       01  D1.
66947           03  FILLER   OCCURS 1.
66948               05 D1-ENTRY   PIC X(03) value '123'.
66949       01  D2.
66950           03  D2-ENTRY   PIC X(03)  value 'ABC'  OCCURS 1.
66951       01  D1TOR.
66952           03  FILLER   PIC X(03) value '456'.
66953       01  D1-R         REDEFINES D1TOR.
66954           03  FILLER   OCCURS 1.
66955               05 D1-R-ENTRY   PIC X(03).
66956       01  D2TOR.
66957           03  FILLER   PIC X(03) value 'DEF'.
66958       01  D2-R         REDEFINES D2TOR.
66959           03  D2-R-ENTRY   PIC X(03)   OCCURS 1.
66960
66961       PROCEDURE        DIVISION.
66962           IF D1-ENTRY (1) NOT = "123"
66963              DISPLAY D1-ENTRY (1)
66964              END-DISPLAY
66965           END-IF.
66966           IF D2-ENTRY (1) NOT = "ABC"
66967              DISPLAY D2-ENTRY (1)
66968              END-DISPLAY
66969           END-IF.
66970           IF D1-R-ENTRY (1) NOT = "456"
66971              DISPLAY D1-R-ENTRY (1)
66972              END-DISPLAY
66973           END-IF.
66974           IF D2-R-ENTRY (1) NOT = "DEF"
66975              DISPLAY D2-R-ENTRY (1)
66976              END-DISPLAY
66977           END-IF.
66978           STOP RUN.
66979_ATEOF
66980
66981
66982{ set +x
66983$as_echo "$at_srcdir/run_misc.at:4369: \$COMPILE prog.cob"
66984at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4369"
66985( $at_check_trace; $COMPILE prog.cob
66986) >>"$at_stdout" 2>>"$at_stderr" 5>&-
66987at_status=$? at_failed=false
66988$at_check_filter
66989at_fn_diff_devnull "$at_stderr" || at_failed=:
66990at_fn_diff_devnull "$at_stdout" || at_failed=:
66991at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4369"
66992$at_failed && at_fn_log_failure
66993$at_traceon; }
66994
66995{ set +x
66996$as_echo "$at_srcdir/run_misc.at:4370: \$COBCRUN_DIRECT ./prog"
66997at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4370"
66998( $at_check_trace; $COBCRUN_DIRECT ./prog
66999) >>"$at_stdout" 2>>"$at_stderr" 5>&-
67000at_status=$? at_failed=false
67001$at_check_filter
67002at_fn_diff_devnull "$at_stderr" || at_failed=:
67003at_fn_diff_devnull "$at_stdout" || at_failed=:
67004at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4370"
67005$at_failed && at_fn_log_failure
67006$at_traceon; }
67007
67008
67009  set +x
67010  $at_times_p && times >"$at_times_file"
67011) 5>&1 2>&1 7>&- | eval $at_tee_pipe
67012read at_status <"$at_status_file"
67013#AT_STOP_674
67014#AT_START_675
67015at_fn_group_banner 675 'run_misc.at:4375' \
67016  "Computing of different USAGEs w/o decimal point" "" 4
67017at_xfail=no
67018(
67019  $as_echo "675. $at_setup_line: testing $at_desc ..."
67020  $at_traceon
67021
67022
67023
67024cat >prog.cob <<'_ATEOF'
67025
67026       IDENTIFICATION DIVISION.
67027       PROGRAM-ID. 'prog'.
67028       ENVIRONMENT DIVISION.
67029       DATA DIVISION.
67030       WORKING-STORAGE SECTION.
67031
67032      *
67033       77  BCL-A           BINARY-C-LONG    VALUE 1.
67034       77  BCL-B           BINARY-C-LONG    VALUE 10.
67035       77  BCL-RES         BINARY-C-LONG.
67036      *
67037       77  BC-A            BINARY-CHAR      VALUE 1.
67038       77  BC-B            BINARY-CHAR      VALUE 10.
67039       77  BC-RES          BINARY-CHAR.
67040      *
67041       77  BD-A            BINARY-DOUBLE    VALUE 1.
67042       77  BD-B            BINARY-DOUBLE    VALUE 10.
67043       77  BD-RES          BINARY-DOUBLE.
67044      *
67045       77  BL-A            BINARY-LONG      VALUE 1.
67046       77  BL-B            BINARY-LONG      VALUE 10.
67047       77  BL-RES          BINARY-LONG.
67048      *
67049       77  C-A     PIC S99 COMP             VALUE 1.
67050       77  C-B     PIC S99 COMP             VALUE 10.
67051       77  C-RES   PIC S99 COMP.
67052      *
67053       77  C1-A            COMP-1           VALUE 1.
67054       77  C1-B            COMP-1           VALUE 10.
67055       77  C1-RES          COMP-1.
67056      *
67057       77  C2-A            COMP-2           VALUE 1.
67058       77  C2-B            COMP-2           VALUE 10.
67059       77  C2-RES          COMP-2.
67060      *
67061       77  C3-A    PIC S99 COMP-3           VALUE 1.
67062       77  C3-B    PIC S99 COMP-3           VALUE 10.
67063       77  C3-RES  PIC S99 COMP-3.
67064      *
67065       77  C5-A    PIC S99 COMP-5           VALUE 1.
67066       77  C5-B    PIC S99 COMP-5           VALUE 10.
67067       77  C5-RES  PIC S99 COMP-5.
67068      *
67069       77  C6-A    PIC  99 COMP-6           VALUE 1.
67070       77  C6-B    PIC  99 COMP-6           VALUE 10.
67071       77  C6-RES  PIC  99 COMP-6.
67072      *
67073       77  CN9-A   PIC  99 COMP-N           VALUE 1.
67074       77  CN9-B   PIC  99 COMP-N           VALUE 10.
67075       77  CN9-RES PIC  99 COMP-N.
67076      *
67077       77  CNX-A   PIC  X  COMP-N           VALUE 1.
67078       77  CNX-B   PIC  X  COMP-N           VALUE 10.
67079       77  CNX-RES PIC  X  COMP-N.
67080      *
67081       77  CX9-A   PIC  99 COMP-X           VALUE 1.
67082       77  CX9-B   PIC  99 COMP-X           VALUE 10.
67083       77  CX9-RES PIC  99 COMP-X.
67084      *
67085       77  CXX-A   PIC  X  COMP-X           VALUE 1.
67086       77  CXX-B   PIC  X  COMP-X           VALUE 10.
67087       77  CXX-RES PIC  X  COMP-X.
67088      *
67089       77  D-A     PIC  S99                 VALUE 1.
67090       77  D-B     PIC  S99                 VALUE 10.
67091       77  D-RES   PIC  S99.
67092      *
67093       77  FD16-A          FLOAT-DECIMAL-16 VALUE 1.
67094       77  FD16-B          FLOAT-DECIMAL-16 VALUE 10.
67095       77  FD16-RES        FLOAT-DECIMAL-16.
67096      *
67097       77  FD34-A          FLOAT-DECIMAL-34 VALUE 1.
67098       77  FD34-B          FLOAT-DECIMAL-34 VALUE 10.
67099       77  FD34-RES        FLOAT-DECIMAL-34.
67100      *
67101       77  FL-A            FLOAT-LONG       VALUE 1.
67102       77  FL-B            FLOAT-LONG       VALUE 10.
67103       77  FL-RES          FLOAT-LONG.
67104      *
67105       77  FS-A            FLOAT-SHORT      VALUE 1.
67106       77  FS-B            FLOAT-SHORT      VALUE 10.
67107       77  FS-RES          FLOAT-SHORT.
67108      *
67109       PROCEDURE DIVISION.
67110      *
67111           ADD  BCL-B  TO BCL-A END-ADD.
67112           MOVE BCL-A  TO BCL-RES.
67113           IF BCL-RES NOT = 11
67114              DISPLAY 'ERROR BINARY-C-LONG + BINARY-C-LONG'
67115              END-DISPLAY
67116           END-IF.
67117           MOVE 1     TO BCL-A.
67118           ADD  10    TO BCL-A END-ADD.
67119           MOVE BCL-A  TO BCL-RES.
67120           IF BCL-RES NOT = 11
67121              DISPLAY 'ERROR BINARY-C-LONG + NUM'
67122              END-DISPLAY
67123           END-IF.
67124           MOVE 11    TO BCL-A.
67125           SUBTRACT BCL-B FROM BCL-A END-SUBTRACT.
67126           MOVE BCL-A  TO BCL-RES.
67127           IF BCL-RES NOT = 1
67128              DISPLAY 'ERROR BINARY-C-LONG - BINARY-C-LONG'
67129              END-DISPLAY
67130           END-IF.
67131           MOVE 11    TO BCL-A.
67132           SUBTRACT 10   FROM BCL-A END-SUBTRACT.
67133           MOVE BCL-A  TO BCL-RES.
67134           IF BCL-RES NOT = 1
67135              DISPLAY 'ERROR BINARY-C-LONG - NUM'
67136              END-DISPLAY
67137           END-IF.
67138      *
67139           ADD  BC-B  TO BC-A END-ADD.
67140           MOVE BC-A  TO BC-RES.
67141           IF BC-RES NOT = 11
67142              DISPLAY 'ERROR BINARY-CHAR + BINARY-CHAR'
67143              END-DISPLAY
67144           END-IF.
67145           MOVE 1     TO BC-A.
67146           ADD  10    TO BC-A END-ADD.
67147           MOVE BC-A  TO BC-RES.
67148           IF BC-RES NOT = 11
67149              DISPLAY 'ERROR BINARY-CHAR + NUM'
67150              END-DISPLAY
67151           END-IF.
67152           MOVE 11    TO BC-A.
67153           SUBTRACT BC-B FROM BC-A END-SUBTRACT.
67154           MOVE BC-A  TO BC-RES.
67155           IF BC-RES NOT = 1
67156              DISPLAY 'ERROR BINARY-CHAR - BINARY-CHAR'
67157              END-DISPLAY
67158           END-IF.
67159           MOVE 11    TO BC-A.
67160           SUBTRACT 10   FROM BC-A END-SUBTRACT.
67161           MOVE BC-A  TO BC-RES.
67162           IF BC-RES NOT = 1
67163              DISPLAY 'ERROR BINARY-CHAR - NUM'
67164              END-DISPLAY
67165           END-IF.
67166      *
67167           ADD  BD-B  TO BD-A END-ADD.
67168           MOVE BD-A  TO BD-RES.
67169           IF BD-RES NOT = 11
67170              DISPLAY 'ERROR BINARY-DOUBLE + BINARY-DOUBLE'
67171              END-DISPLAY
67172           END-IF.
67173           MOVE 1     TO BD-A.
67174           ADD  10    TO BD-A END-ADD.
67175           MOVE BD-A  TO BD-RES.
67176           IF BD-RES NOT = 11
67177              DISPLAY 'ERROR BINARY-DOUBLE + NUM'
67178              END-DISPLAY
67179           END-IF.
67180           MOVE 11    TO BD-A.
67181           SUBTRACT BD-B FROM BD-A END-SUBTRACT.
67182           MOVE BD-A  TO BD-RES.
67183           IF BD-RES NOT = 1
67184              DISPLAY 'ERROR BINARY-DOUBLE - BINARY-DOUBLE'
67185              END-DISPLAY
67186           END-IF.
67187           MOVE 11    TO BD-A.
67188           SUBTRACT 10   FROM BD-A END-SUBTRACT.
67189           MOVE BD-A  TO BD-RES.
67190           IF BD-RES NOT = 1
67191              DISPLAY 'ERROR BINARY-DOUBLE - NUM'
67192              END-DISPLAY
67193           END-IF.
67194      *
67195           ADD  BL-B  TO BL-A END-ADD.
67196           MOVE BL-A  TO BL-RES.
67197           IF BL-RES NOT = 11
67198              DISPLAY 'ERROR BINARY-LONG + BINARY-LONG'
67199              END-DISPLAY
67200           END-IF.
67201           MOVE 1     TO BL-A.
67202           ADD  10    TO BL-A END-ADD.
67203           MOVE BL-A  TO BL-RES.
67204           IF BL-RES NOT = 11
67205              DISPLAY 'ERROR BINARY-LONG + NUM'
67206              END-DISPLAY
67207           END-IF.
67208           MOVE 11    TO BL-A.
67209           SUBTRACT BL-B FROM BL-A END-SUBTRACT.
67210           MOVE BL-A  TO BL-RES.
67211           IF BL-RES NOT = 1
67212              DISPLAY 'ERROR BINARY-LONG - BINARY-LONG'
67213              END-DISPLAY
67214           END-IF.
67215           MOVE 11    TO BL-A.
67216           SUBTRACT 10   FROM BL-A END-SUBTRACT.
67217           MOVE BL-A  TO BL-RES.
67218           IF BL-RES NOT = 1
67219              DISPLAY 'ERROR BINARY-LONG - NUM'
67220              END-DISPLAY
67221           END-IF.
67222      *
67223           ADD  C-B  TO C-A END-ADD.
67224           MOVE C-A  TO C-RES.
67225           IF C-RES NOT = 11
67226              DISPLAY 'ERROR COMP + COMP'
67227              END-DISPLAY
67228           END-IF.
67229           MOVE 1     TO C-A.
67230           ADD  10    TO C-A END-ADD.
67231           MOVE C-A  TO C-RES.
67232           IF C-RES NOT = 11
67233              DISPLAY 'ERROR COMP + NUM'
67234              END-DISPLAY
67235           END-IF.
67236           MOVE 11    TO C-A.
67237           SUBTRACT C-B FROM C-A END-SUBTRACT.
67238           MOVE C-A  TO C-RES.
67239           IF C-RES NOT = 1
67240              DISPLAY 'ERROR COMP - COMP'
67241              END-DISPLAY
67242           END-IF.
67243           MOVE 11    TO C-A.
67244           SUBTRACT 10   FROM C-A END-SUBTRACT.
67245           MOVE C-A  TO C-RES.
67246           IF C-RES NOT = 1
67247              DISPLAY 'ERROR COMP - NUM'
67248              END-DISPLAY
67249           END-IF.
67250      *
67251           ADD  C1-B  TO C1-A END-ADD.
67252           MOVE C1-A  TO C1-RES.
67253           IF C1-RES NOT = 11
67254              DISPLAY 'ERROR COMP-1 + COMP-1'
67255              END-DISPLAY
67256           END-IF.
67257           MOVE 1     TO C1-A.
67258           ADD  10    TO C1-A END-ADD.
67259           MOVE C1-A  TO C1-RES.
67260           IF C1-RES NOT = 11
67261              DISPLAY 'ERROR COMP-1 + NUM'
67262              END-DISPLAY
67263           END-IF.
67264           MOVE 11    TO C1-A.
67265           SUBTRACT C1-B FROM C1-A END-SUBTRACT.
67266           MOVE C1-A  TO C1-RES.
67267           IF C1-RES NOT = 1
67268              DISPLAY 'ERROR COMP-1 - COMP-1'
67269              END-DISPLAY
67270           END-IF.
67271           MOVE 11    TO C1-A.
67272           SUBTRACT 10   FROM C1-A END-SUBTRACT.
67273           MOVE C1-A  TO C1-RES.
67274           IF C1-RES NOT = 1
67275              DISPLAY 'ERROR COMP-1 - NUM'
67276              END-DISPLAY
67277           END-IF.
67278      *
67279           ADD  C2-B  TO C2-A END-ADD.
67280           MOVE C2-A  TO C2-RES.
67281           IF C2-RES NOT = 11
67282              DISPLAY 'ERROR COMP-2 + COMP-2'
67283              END-DISPLAY
67284           END-IF.
67285           MOVE 1     TO C2-A.
67286           ADD  10    TO C2-A END-ADD.
67287           MOVE C2-A  TO C2-RES.
67288           IF C2-RES NOT = 11
67289              DISPLAY 'ERROR COMP-2 + NUM'
67290              END-DISPLAY
67291           END-IF.
67292           MOVE 11    TO C2-A.
67293           SUBTRACT C2-B FROM C2-A END-SUBTRACT.
67294           MOVE C2-A  TO C2-RES.
67295           IF C2-RES NOT = 1
67296              DISPLAY 'ERROR COMP-2 - COMP-2'
67297              END-DISPLAY
67298           END-IF.
67299           MOVE 11    TO C2-A.
67300           SUBTRACT 10   FROM C2-A END-SUBTRACT.
67301           MOVE C2-A  TO C2-RES.
67302           IF C2-RES NOT = 1
67303              DISPLAY 'ERROR COMP-2 - NUM'
67304              END-DISPLAY
67305           END-IF.
67306      *
67307           ADD  C3-B  TO C3-A END-ADD.
67308           MOVE C3-A  TO C3-RES.
67309           IF C3-RES NOT = 11
67310              DISPLAY 'ERROR COMP-3 + COMP-3'
67311              END-DISPLAY
67312           END-IF.
67313           MOVE 1     TO C3-A.
67314           ADD  10    TO C3-A END-ADD.
67315           MOVE C3-A  TO C3-RES.
67316           IF C3-RES NOT = 11
67317              DISPLAY 'ERROR COMP-3 + NUM'
67318              END-DISPLAY
67319           END-IF.
67320           MOVE 11    TO C3-A.
67321           SUBTRACT C3-B FROM C3-A END-SUBTRACT.
67322           MOVE C3-A  TO C3-RES.
67323           IF C3-RES NOT = 1
67324              DISPLAY 'ERROR COMP-3 - COMP-3'
67325              END-DISPLAY
67326           END-IF.
67327           MOVE 11    TO C3-A.
67328           SUBTRACT 10   FROM C3-A END-SUBTRACT.
67329           MOVE C3-A  TO C3-RES.
67330           IF C3-RES NOT = 1
67331              DISPLAY 'ERROR COMP-3 - NUM'
67332              END-DISPLAY
67333           END-IF.
67334      *
67335           ADD  C5-B  TO C5-A END-ADD.
67336           MOVE C5-A  TO C5-RES.
67337           IF C5-RES NOT = 11
67338              DISPLAY 'ERROR COMP-5 + COMP-5'
67339              END-DISPLAY
67340           END-IF.
67341           MOVE 1     TO C5-A.
67342           ADD  10    TO C5-A END-ADD.
67343           MOVE C5-A  TO C5-RES.
67344           IF C5-RES NOT = 11
67345              DISPLAY 'ERROR COMP-5 + NUM'
67346              END-DISPLAY
67347           END-IF.
67348           MOVE 11    TO C5-A.
67349           SUBTRACT C5-B FROM C5-A END-SUBTRACT.
67350           MOVE C5-A  TO C5-RES.
67351           IF C5-RES NOT = 1
67352              DISPLAY 'ERROR COMP-5 - COMP-5'
67353              END-DISPLAY
67354           END-IF.
67355           MOVE 11    TO C5-A.
67356           SUBTRACT 10   FROM C5-A END-SUBTRACT.
67357           MOVE C5-A  TO C5-RES.
67358           IF C5-RES NOT = 1
67359              DISPLAY 'ERROR COMP-5 - NUM'
67360              END-DISPLAY
67361           END-IF.
67362      *
67363           ADD  C6-B  TO C6-A END-ADD.
67364           MOVE C6-A  TO C6-RES.
67365           IF C6-RES NOT = 11
67366              DISPLAY 'ERROR COMP-6 + COMP-6'
67367              END-DISPLAY
67368           END-IF.
67369           MOVE 1     TO C6-A.
67370           ADD  10    TO C6-A END-ADD.
67371           MOVE C6-A  TO C6-RES.
67372           IF C6-RES NOT = 11
67373              DISPLAY 'ERROR COMP-6 + NUM'
67374              END-DISPLAY
67375           END-IF.
67376           MOVE 11    TO C6-A.
67377           SUBTRACT C6-B FROM C6-A END-SUBTRACT.
67378           MOVE C6-A  TO C6-RES.
67379           IF C6-RES NOT = 1
67380              DISPLAY 'ERROR COMP-6 - COMP-6'
67381              END-DISPLAY
67382           END-IF.
67383           MOVE 11    TO C6-A.
67384           SUBTRACT 10   FROM C6-A END-SUBTRACT.
67385           MOVE C6-A  TO C6-RES.
67386           IF C6-RES NOT = 1
67387              DISPLAY 'ERROR COMP-6 - NUM'
67388              END-DISPLAY
67389           END-IF.
67390      *
67391           ADD  CN9-B  TO CN9-A END-ADD.
67392           MOVE CN9-A  TO CN9-RES.
67393           IF CN9-RES NOT = 11
67394              DISPLAY 'ERROR COMP-N + COMP-N'
67395              END-DISPLAY
67396           END-IF.
67397           MOVE 1     TO CN9-A.
67398           ADD  10    TO CN9-A END-ADD.
67399           MOVE CN9-A  TO CN9-RES.
67400           IF CN9-RES NOT = 11
67401              DISPLAY 'ERROR COMP-N + NUM'
67402              END-DISPLAY
67403           END-IF.
67404           MOVE 11    TO CN9-A.
67405           SUBTRACT CN9-B FROM CN9-A END-SUBTRACT.
67406           MOVE CN9-A  TO CN9-RES.
67407           IF CN9-RES NOT = 1
67408              DISPLAY 'ERROR COMP-N - COMP-N'
67409              END-DISPLAY
67410           END-IF.
67411           MOVE 11    TO CN9-A.
67412           SUBTRACT 10   FROM CN9-A END-SUBTRACT.
67413           MOVE CN9-A  TO CN9-RES.
67414           IF CN9-RES NOT = 1
67415              DISPLAY 'ERROR COMP-N - NUM'
67416              END-DISPLAY
67417           END-IF.
67418      *
67419           ADD  CNX-B  TO CNX-A END-ADD.
67420           MOVE CNX-A  TO CNX-RES.
67421           IF CNX-RES NOT = 11
67422              DISPLAY 'ERROR COMP-N + COMP-N'
67423              END-DISPLAY
67424           END-IF.
67425           MOVE 1     TO CNX-A.
67426           ADD  10    TO CNX-A END-ADD.
67427           MOVE CNX-A  TO CNX-RES.
67428           IF CNX-RES NOT = 11
67429              DISPLAY 'ERROR COMP-N + NUM'
67430              END-DISPLAY
67431           END-IF.
67432           MOVE 11    TO CNX-A.
67433           SUBTRACT CNX-B FROM CNX-A END-SUBTRACT.
67434           MOVE CNX-A  TO CNX-RES.
67435           IF CNX-RES NOT = 1
67436              DISPLAY 'ERROR COMP-N - COMP-N'
67437              END-DISPLAY
67438           END-IF.
67439           MOVE 11    TO CNX-A.
67440           SUBTRACT 10   FROM CNX-A END-SUBTRACT.
67441           MOVE CNX-A  TO CNX-RES.
67442           IF CNX-RES NOT = 1
67443              DISPLAY 'ERROR COMP-N - NUM'
67444              END-DISPLAY
67445           END-IF.
67446      *
67447           ADD  CX9-B  TO CX9-A END-ADD.
67448           MOVE CX9-A  TO CX9-RES.
67449           IF CX9-RES NOT = 11
67450              DISPLAY 'ERROR COMP-X + COMP-X'
67451              END-DISPLAY
67452           END-IF.
67453           MOVE 1     TO CX9-A.
67454           ADD  10    TO CX9-A END-ADD.
67455           MOVE CX9-A  TO CX9-RES.
67456           IF CX9-RES NOT = 11
67457              DISPLAY 'ERROR COMP-X + NUM'
67458              END-DISPLAY
67459           END-IF.
67460           MOVE 11    TO CX9-A.
67461           SUBTRACT CX9-B FROM CX9-A END-SUBTRACT.
67462           MOVE CX9-A  TO CX9-RES.
67463           IF CX9-RES NOT = 1
67464              DISPLAY 'ERROR COMP-X - COMP-X'
67465              END-DISPLAY
67466           END-IF.
67467           MOVE 11    TO CX9-A.
67468           SUBTRACT 10   FROM CX9-A END-SUBTRACT.
67469           MOVE CX9-A  TO CX9-RES.
67470           IF CX9-RES NOT = 1
67471              DISPLAY 'ERROR COMP-X - NUM'
67472              END-DISPLAY
67473           END-IF.
67474      *
67475           ADD  CXX-B  TO CXX-A END-ADD.
67476           MOVE CXX-A  TO CXX-RES.
67477           IF CXX-RES NOT = 11
67478              DISPLAY 'ERROR COMP-X + COMP-X'
67479              END-DISPLAY
67480           END-IF.
67481           MOVE 1     TO CXX-A.
67482           ADD  10    TO CXX-A END-ADD.
67483           MOVE CXX-A  TO CXX-RES.
67484           IF CXX-RES NOT = 11
67485              DISPLAY 'ERROR COMP-X + NUM'
67486              END-DISPLAY
67487           END-IF.
67488           MOVE 11    TO CXX-A.
67489           SUBTRACT CXX-B FROM CXX-A END-SUBTRACT.
67490           MOVE CXX-A  TO CXX-RES.
67491           IF CXX-RES NOT = 1
67492              DISPLAY 'ERROR COMP-X - COMP-X'
67493              END-DISPLAY
67494           END-IF.
67495           MOVE 11    TO CXX-A.
67496           SUBTRACT 10   FROM CXX-A END-SUBTRACT.
67497           MOVE CXX-A  TO CXX-RES.
67498           IF CXX-RES NOT = 1
67499              DISPLAY 'ERROR COMP-X - NUM'
67500              END-DISPLAY
67501           END-IF.
67502      *
67503           ADD  D-B  TO D-A END-ADD.
67504           MOVE D-A  TO D-RES.
67505           IF D-RES NOT = 11
67506              DISPLAY 'ERROR DISPLAY + DISPLAY'
67507              END-DISPLAY
67508           END-IF.
67509           MOVE 1     TO D-A.
67510           ADD  10    TO D-A END-ADD.
67511           MOVE D-A  TO D-RES.
67512           IF D-RES NOT = 11
67513              DISPLAY 'ERROR DISPLAY + NUM'
67514              END-DISPLAY
67515           END-IF.
67516           MOVE 11    TO D-A.
67517           SUBTRACT D-B FROM D-A END-SUBTRACT.
67518           MOVE D-A  TO D-RES.
67519           IF D-RES NOT = 1
67520              DISPLAY 'ERROR DISPLAY - DISPLAY'
67521              END-DISPLAY
67522           END-IF.
67523           MOVE 11    TO D-A.
67524           SUBTRACT 10   FROM D-A END-SUBTRACT.
67525           MOVE D-A  TO D-RES.
67526           IF D-RES NOT = 1
67527              DISPLAY 'ERROR DISPLAY - NUM'
67528              END-DISPLAY
67529           END-IF.
67530      *
67531           ADD  FD16-B  TO FD16-A END-ADD.
67532           MOVE FD16-A  TO FD16-RES.
67533           IF FD16-RES NOT = 11
67534              DISPLAY 'ERROR FLOAT-DECIMAL-16 + FLOAT-DECIMAL-16'
67535              END-DISPLAY
67536           END-IF.
67537           MOVE 1     TO FD16-A.
67538           ADD  10    TO FD16-A END-ADD.
67539           MOVE FD16-A  TO FD16-RES.
67540           IF FD16-RES NOT = 11
67541              DISPLAY 'ERROR FLOAT-DECIMAL-16 + NUM'
67542              END-DISPLAY
67543           END-IF.
67544           MOVE 11    TO FD16-A.
67545           SUBTRACT FD16-B FROM FD16-A END-SUBTRACT.
67546           MOVE FD16-A  TO FD16-RES.
67547           IF FD16-RES NOT = 1
67548              DISPLAY 'ERROR FLOAT-DECIMAL-16 - FLOAT-DECIMAL-16'
67549              END-DISPLAY
67550           END-IF.
67551           MOVE 11    TO FD16-A.
67552           SUBTRACT 10   FROM FD16-A END-SUBTRACT.
67553           MOVE FD16-A  TO FD16-RES.
67554           IF FD16-RES NOT = 1
67555              DISPLAY 'ERROR FLOAT-DECIMAL-16 - NUM'
67556              END-DISPLAY
67557           END-IF.
67558      *
67559           ADD  FD34-B  TO FD34-A END-ADD.
67560           MOVE FD34-A  TO FD34-RES.
67561           IF FD34-RES NOT = 11
67562              DISPLAY 'ERROR FLOAT-DECIMAL-34 + FLOAT-DECIMAL-34'
67563              END-DISPLAY
67564           END-IF.
67565           MOVE 1     TO FD34-A.
67566           ADD  10    TO FD34-A END-ADD.
67567           MOVE FD34-A  TO FD34-RES.
67568           IF FD34-RES NOT = 11
67569              DISPLAY 'ERROR FLOAT-DECIMAL-34 + NUM'
67570              END-DISPLAY
67571           END-IF.
67572           MOVE 11    TO FD34-A.
67573           SUBTRACT FD34-B FROM FD34-A END-SUBTRACT.
67574           MOVE FD34-A  TO FD34-RES.
67575           IF FD34-RES NOT = 1
67576              DISPLAY 'ERROR FLOAT-DECIMAL-34 - FLOAT-DECIMAL-34'
67577              END-DISPLAY
67578           END-IF.
67579           MOVE 11    TO FD34-A.
67580           SUBTRACT 10   FROM FD34-A END-SUBTRACT.
67581           MOVE FD34-A  TO FD34-RES.
67582           IF FD34-RES NOT = 1
67583              DISPLAY 'ERROR FLOAT-DECIMAL-34 - NUM'
67584              END-DISPLAY
67585           END-IF.
67586      *
67587           ADD  FL-B  TO FL-A END-ADD.
67588           MOVE FL-A  TO FL-RES.
67589           IF FL-RES NOT = 11
67590              DISPLAY 'ERROR FLOAT-LONG + FLOAT-LONG'
67591              END-DISPLAY
67592           END-IF.
67593           MOVE 1     TO FL-A.
67594           ADD  10    TO FL-A END-ADD.
67595           MOVE FL-A  TO FL-RES.
67596           IF FL-RES NOT = 11
67597              DISPLAY 'ERROR FLOAT-LONG + NUM'
67598              END-DISPLAY
67599           END-IF.
67600           MOVE 11    TO FL-A.
67601           SUBTRACT FL-B FROM FL-A END-SUBTRACT.
67602           MOVE FL-A  TO FL-RES.
67603           IF FL-RES NOT = 1
67604              DISPLAY 'ERROR FLOAT-LONG - FLOAT-LONG'
67605              END-DISPLAY
67606           END-IF.
67607           MOVE 11    TO FL-A.
67608           SUBTRACT 10   FROM FL-A END-SUBTRACT.
67609           MOVE FL-A  TO FL-RES.
67610           IF FL-RES NOT = 1
67611              DISPLAY 'ERROR FLOAT-LONG - NUM'
67612              END-DISPLAY
67613           END-IF.
67614      *
67615           ADD  FS-B  TO FS-A END-ADD.
67616           MOVE FS-A  TO FS-RES.
67617           IF FS-RES NOT = 11
67618              DISPLAY 'ERROR FLOAT-SHORT + FLOAT-SHORT'
67619              END-DISPLAY
67620           END-IF.
67621           MOVE 1     TO FS-A.
67622           ADD  10    TO FS-A END-ADD.
67623           MOVE FS-A  TO FS-RES.
67624           IF FS-RES NOT = 11
67625              DISPLAY 'ERROR FLOAT-SHORT + NUM'
67626              END-DISPLAY
67627           END-IF.
67628           MOVE 11    TO FS-A.
67629           SUBTRACT FS-B FROM FS-A END-SUBTRACT.
67630           MOVE FS-A  TO FS-RES.
67631           IF FS-RES NOT = 1
67632              DISPLAY 'ERROR FLOAT-SHORT - FLOAT-SHORT'
67633              END-DISPLAY
67634           END-IF.
67635           MOVE 11    TO FS-A.
67636           SUBTRACT 10   FROM FS-A END-SUBTRACT.
67637           MOVE FS-A  TO FS-RES.
67638           IF FS-RES NOT = 1
67639              DISPLAY 'ERROR FLOAT-SHORT - NUM'
67640              END-DISPLAY
67641           END-IF.
67642      *
67643           STOP RUN.
67644_ATEOF
67645
67646
67647{ set +x
67648$as_echo "$at_srcdir/run_misc.at:5002: \$COMPILE prog.cob"
67649at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:5002"
67650( $at_check_trace; $COMPILE prog.cob
67651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
67652at_status=$? at_failed=false
67653$at_check_filter
67654at_fn_diff_devnull "$at_stderr" || at_failed=:
67655at_fn_diff_devnull "$at_stdout" || at_failed=:
67656at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5002"
67657$at_failed && at_fn_log_failure
67658$at_traceon; }
67659
67660{ set +x
67661$as_echo "$at_srcdir/run_misc.at:5003: \$COBCRUN_DIRECT ./prog"
67662at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5003"
67663( $at_check_trace; $COBCRUN_DIRECT ./prog
67664) >>"$at_stdout" 2>>"$at_stderr" 5>&-
67665at_status=$? at_failed=false
67666$at_check_filter
67667at_fn_diff_devnull "$at_stderr" || at_failed=:
67668at_fn_diff_devnull "$at_stdout" || at_failed=:
67669at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5003"
67670$at_failed && at_fn_log_failure
67671$at_traceon; }
67672
67673
67674{ set +x
67675$as_echo "$at_srcdir/run_misc.at:5005: \$COMPILE -fnotrunc prog.cob"
67676at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "run_misc.at:5005"
67677( $at_check_trace; $COMPILE -fnotrunc prog.cob
67678) >>"$at_stdout" 2>>"$at_stderr" 5>&-
67679at_status=$? at_failed=false
67680$at_check_filter
67681at_fn_diff_devnull "$at_stderr" || at_failed=:
67682at_fn_diff_devnull "$at_stdout" || at_failed=:
67683at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5005"
67684$at_failed && at_fn_log_failure
67685$at_traceon; }
67686
67687{ set +x
67688$as_echo "$at_srcdir/run_misc.at:5006: \$COBCRUN_DIRECT ./prog"
67689at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5006"
67690( $at_check_trace; $COBCRUN_DIRECT ./prog
67691) >>"$at_stdout" 2>>"$at_stderr" 5>&-
67692at_status=$? at_failed=false
67693$at_check_filter
67694at_fn_diff_devnull "$at_stderr" || at_failed=:
67695at_fn_diff_devnull "$at_stdout" || at_failed=:
67696at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5006"
67697$at_failed && at_fn_log_failure
67698$at_traceon; }
67699
67700
67701  set +x
67702  $at_times_p && times >"$at_times_file"
67703) 5>&1 2>&1 7>&- | eval $at_tee_pipe
67704read at_status <"$at_status_file"
67705#AT_STOP_675
67706#AT_START_676
67707at_fn_group_banner 676 'run_misc.at:5011' \
67708  "Computing of different USAGEs w/- decimal point" "" 4
67709at_xfail=no
67710(
67711  $as_echo "676. $at_setup_line: testing $at_desc ..."
67712  $at_traceon
67713
67714
67715
67716cat >prog.cob <<'_ATEOF'
67717
67718       IDENTIFICATION DIVISION.
67719       PROGRAM-ID. 'prog'.
67720       ENVIRONMENT DIVISION.
67721       DATA DIVISION.
67722       WORKING-STORAGE SECTION.
67723      *
67724       77  BCL-A           BINARY-C-LONG    VALUE 1.0.
67725       77  BCL-B           BINARY-C-LONG    VALUE 10.0.
67726       77  BCL-RES         BINARY-C-LONG.
67727      *
67728       77  BC-A            BINARY-CHAR      VALUE 1.0.
67729       77  BC-B            BINARY-CHAR      VALUE 10.0.
67730       77  BC-RES          BINARY-CHAR.
67731      *
67732       77  BD-A            BINARY-DOUBLE    VALUE 1.0.
67733       77  BD-B            BINARY-DOUBLE    VALUE 10.0.
67734       77  BD-RES          BINARY-DOUBLE.
67735      *
67736       77  BL-A            BINARY-LONG      VALUE 1.0.
67737       77  BL-B            BINARY-LONG      VALUE 10.0.
67738       77  BL-RES          BINARY-LONG.
67739      *
67740       77  C-A     PIC S99 COMP             VALUE 1.0.
67741       77  C-B     PIC S99 COMP             VALUE 10.0.
67742       77  C-RES   PIC S99 COMP.
67743      *
67744       77  C1-A            COMP-1           VALUE 1.0.
67745       77  C1-B            COMP-1           VALUE 10.0.
67746       77  C1-RES          COMP-1.
67747      *
67748       77  C2-A            COMP-2           VALUE 1.0.
67749       77  C2-B            COMP-2           VALUE 10.0.
67750       77  C2-RES          COMP-2.
67751      *
67752       77  C3-A    PIC S99 COMP-3           VALUE 1.0.
67753       77  C3-B    PIC S99 COMP-3           VALUE 10.0.
67754       77  C3-RES  PIC S99 COMP-3.
67755      *
67756       77  C5-A    PIC S99 COMP-5           VALUE 1.0.
67757       77  C5-B    PIC S99 COMP-5           VALUE 10.0.
67758       77  C5-RES  PIC S99 COMP-5.
67759      *
67760       77  C6-A    PIC  99 COMP-6           VALUE 1.0.
67761       77  C6-B    PIC  99 COMP-6           VALUE 10.0.
67762       77  C6-RES  PIC  99 COMP-6.
67763      *
67764       77  CN9-A   PIC  99 COMP-N           VALUE 1.
67765       77  CN9-B   PIC  99 COMP-N           VALUE 10.
67766       77  CN9-RES PIC  99 COMP-N.
67767      *
67768       77  CNX-A   PIC  X  COMP-N           VALUE 1.
67769       77  CNX-B   PIC  X  COMP-N           VALUE 10.
67770       77  CNX-RES PIC  X  COMP-N.
67771      *
67772       77  CX9-A   PIC  99 COMP-X           VALUE 1.
67773       77  CX9-B   PIC  99 COMP-X           VALUE 10.
67774       77  CX9-RES PIC  99 COMP-X.
67775      *
67776       77  CXX-A   PIC  X  COMP-X           VALUE 1.
67777       77  CXX-B   PIC  X  COMP-X           VALUE 10.
67778       77  CXX-RES PIC  X  COMP-X.
67779      *
67780       77  D-A     PIC  S99                 VALUE 1.0.
67781       77  D-B     PIC  S99                 VALUE 10.0.
67782       77  D-RES   PIC  S99.
67783      *
67784       77  FD16-A          FLOAT-DECIMAL-16 VALUE 1.0.
67785       77  FD16-B          FLOAT-DECIMAL-16 VALUE 10.0.
67786       77  FD16-RES        FLOAT-DECIMAL-16.
67787      *
67788       77  FD34-A          FLOAT-DECIMAL-34 VALUE 1.0.
67789       77  FD34-B          FLOAT-DECIMAL-34 VALUE 10.0.
67790       77  FD34-RES        FLOAT-DECIMAL-34.
67791      *
67792       77  FL-A            FLOAT-LONG       VALUE 1.0.
67793       77  FL-B            FLOAT-LONG       VALUE 10.0.
67794       77  FL-RES          FLOAT-LONG.
67795      *
67796       77  FS-A            FLOAT-SHORT      VALUE 1.0.
67797       77  FS-B            FLOAT-SHORT      VALUE 10.0.
67798       77  FS-RES          FLOAT-SHORT.
67799      *
67800       PROCEDURE DIVISION.
67801      *
67802           ADD  BCL-B  TO BCL-A END-ADD.
67803           MOVE BCL-A  TO BCL-RES.
67804           IF BCL-RES NOT = 11.0
67805              DISPLAY 'ERROR BINARY-C-LONG + BINARY-C-LONG'
67806              END-DISPLAY
67807           END-IF.
67808           MOVE 1.0   TO BCL-A.
67809           ADD  10.0  TO BCL-A END-ADD.
67810           MOVE BCL-A  TO BCL-RES.
67811           IF BCL-RES NOT = 11.0
67812              DISPLAY 'ERROR BINARY-C-LONG + NUM'
67813              END-DISPLAY
67814           END-IF.
67815           MOVE 11.0  TO BCL-A.
67816           SUBTRACT BCL-B FROM BCL-A END-SUBTRACT.
67817           MOVE BCL-A  TO BCL-RES.
67818           IF BCL-RES NOT = 1.0
67819              DISPLAY 'ERROR BINARY-C-LONG - BINARY-C-LONG'
67820              END-DISPLAY
67821           END-IF.
67822           MOVE 11.0  TO BCL-A.
67823           SUBTRACT 10.0 FROM BCL-A END-SUBTRACT.
67824           MOVE BCL-A  TO BCL-RES.
67825           IF BCL-RES NOT = 1.0
67826              DISPLAY 'ERROR BINARY-C-LONG - NUM'
67827              END-DISPLAY
67828           END-IF.
67829      *
67830           ADD  BC-B  TO BC-A END-ADD.
67831           MOVE BC-A  TO BC-RES.
67832           IF BC-RES NOT = 11.0
67833              DISPLAY 'ERROR BINARY-CHAR + BINARY-CHAR'
67834              END-DISPLAY
67835           END-IF.
67836           MOVE 1.0   TO BC-A.
67837           ADD  10.0  TO BC-A END-ADD.
67838           MOVE BC-A  TO BC-RES.
67839           IF BC-RES NOT = 11.0
67840              DISPLAY 'ERROR BINARY-CHAR + NUM'
67841              END-DISPLAY
67842           END-IF.
67843           MOVE 11.0  TO BC-A.
67844           SUBTRACT BC-B FROM BC-A END-SUBTRACT.
67845           MOVE BC-A  TO BC-RES.
67846           IF BC-RES NOT = 1.0
67847              DISPLAY 'ERROR BINARY-CHAR - BINARY-CHAR'
67848              END-DISPLAY
67849           END-IF.
67850           MOVE 11.0  TO BC-A.
67851           SUBTRACT 10.0 FROM BC-A END-SUBTRACT.
67852           MOVE BC-A  TO BC-RES.
67853           IF BC-RES NOT = 1.0
67854              DISPLAY 'ERROR BINARY-CHAR - NUM'
67855              END-DISPLAY
67856           END-IF.
67857      *
67858           ADD  BD-B  TO BD-A END-ADD.
67859           MOVE BD-A  TO BD-RES.
67860           IF BD-RES NOT = 11.0
67861              DISPLAY 'ERROR BINARY-DOUBLE + BINARY-DOUBLE'
67862              END-DISPLAY
67863           END-IF.
67864           MOVE 1.0   TO BD-A.
67865           ADD  10.0  TO BD-A END-ADD.
67866           MOVE BD-A  TO BD-RES.
67867           IF BD-RES NOT = 11.0
67868              DISPLAY 'ERROR BINARY-DOUBLE + NUM'
67869              END-DISPLAY
67870           END-IF.
67871           MOVE 11.0  TO BD-A.
67872           SUBTRACT BD-B FROM BD-A END-SUBTRACT.
67873           MOVE BD-A  TO BD-RES.
67874           IF BD-RES NOT = 1.0
67875              DISPLAY 'ERROR BINARY-DOUBLE - BINARY-DOUBLE'
67876              END-DISPLAY
67877           END-IF.
67878           MOVE 11.0  TO BD-A.
67879           SUBTRACT 10.0 FROM BD-A END-SUBTRACT.
67880           MOVE BD-A  TO BD-RES.
67881           IF BD-RES NOT = 1.0
67882              DISPLAY 'ERROR BINARY-DOUBLE - NUM'
67883              END-DISPLAY
67884           END-IF.
67885      *
67886           ADD  BL-B  TO BL-A END-ADD.
67887           MOVE BL-A  TO BL-RES.
67888           IF BL-RES NOT = 11.0
67889              DISPLAY 'ERROR BINARY-LONG + BINARY-LONG'
67890              END-DISPLAY
67891           END-IF.
67892           MOVE 1.0   TO BL-A.
67893           ADD  10.0  TO BL-A END-ADD.
67894           MOVE BL-A  TO BL-RES.
67895           IF BL-RES NOT = 11.0
67896              DISPLAY 'ERROR BINARY-LONG + NUM'
67897              END-DISPLAY
67898           END-IF.
67899           MOVE 11.0  TO BL-A.
67900           SUBTRACT BL-B FROM BL-A END-SUBTRACT.
67901           MOVE BL-A  TO BL-RES.
67902           IF BL-RES NOT = 1.0
67903              DISPLAY 'ERROR BINARY-LONG - BINARY-LONG'
67904              END-DISPLAY
67905           END-IF.
67906           MOVE 11.0  TO BL-A.
67907           SUBTRACT 10.0 FROM BL-A END-SUBTRACT.
67908           MOVE BL-A  TO BL-RES.
67909           IF BL-RES NOT = 1.0
67910              DISPLAY 'ERROR BINARY-LONG - NUM'
67911              END-DISPLAY
67912           END-IF.
67913      *
67914           ADD  C-B  TO C-A END-ADD.
67915           MOVE C-A  TO C-RES.
67916           IF C-RES NOT = 11.0
67917              DISPLAY 'ERROR COMP + COMP'
67918              END-DISPLAY
67919           END-IF.
67920           MOVE 1.0   TO C-A.
67921           ADD  10.0  TO C-A END-ADD.
67922           MOVE C-A  TO C-RES.
67923           IF C-RES NOT = 11.0
67924              DISPLAY 'ERROR COMP + NUM'
67925              END-DISPLAY
67926           END-IF.
67927           MOVE 11.0  TO C-A.
67928           SUBTRACT C-B FROM C-A END-SUBTRACT.
67929           MOVE C-A  TO C-RES.
67930           IF C-RES NOT = 1.0
67931              DISPLAY 'ERROR COMP - COMP'
67932              END-DISPLAY
67933           END-IF.
67934           MOVE 11.0  TO C-A.
67935           SUBTRACT 10.0 FROM C-A END-SUBTRACT.
67936           MOVE C-A  TO C-RES.
67937           IF C-RES NOT = 1.0
67938              DISPLAY 'ERROR COMP - NUM'
67939              END-DISPLAY
67940           END-IF.
67941      *
67942           ADD  C1-B  TO C1-A END-ADD.
67943           MOVE C1-A  TO C1-RES.
67944           IF C1-RES NOT = 11.0
67945              DISPLAY 'ERROR COMP-1 + COMP-1'
67946              END-DISPLAY
67947           END-IF.
67948           MOVE 1.0   TO C1-A.
67949           ADD  10.0  TO C1-A END-ADD.
67950           MOVE C1-A  TO C1-RES.
67951           IF C1-RES NOT = 11.0
67952              DISPLAY 'ERROR COMP-1 + NUM'
67953              END-DISPLAY
67954           END-IF.
67955           MOVE 11.0  TO C1-A.
67956           SUBTRACT C1-B FROM C1-A END-SUBTRACT.
67957           MOVE C1-A  TO C1-RES.
67958           IF C1-RES NOT = 1.0
67959              DISPLAY 'ERROR COMP-1 - COMP-1'
67960              END-DISPLAY
67961           END-IF.
67962           MOVE 11.0  TO C1-A.
67963           SUBTRACT 10.0 FROM C1-A END-SUBTRACT.
67964           MOVE C1-A  TO C1-RES.
67965           IF C1-RES NOT = 1.0
67966              DISPLAY 'ERROR COMP-1 - NUM'
67967              END-DISPLAY
67968           END-IF.
67969      *
67970           ADD  C2-B  TO C2-A END-ADD.
67971           MOVE C2-A  TO C2-RES.
67972           IF C2-RES NOT = 11.0
67973              DISPLAY 'ERROR COMP-2 + COMP-2'
67974              END-DISPLAY
67975           END-IF.
67976           MOVE 1.0   TO C2-A.
67977           ADD  10.0  TO C2-A END-ADD.
67978           MOVE C2-A  TO C2-RES.
67979           IF C2-RES NOT = 11.0
67980              DISPLAY 'ERROR COMP-2 + NUM'
67981              END-DISPLAY
67982           END-IF.
67983           MOVE 11.0  TO C2-A.
67984           SUBTRACT C2-B FROM C2-A END-SUBTRACT.
67985           MOVE C2-A  TO C2-RES.
67986           IF C2-RES NOT = 1.0
67987              DISPLAY 'ERROR COMP-2 - COMP-2'
67988              END-DISPLAY
67989           END-IF.
67990           MOVE 11.0  TO C2-A.
67991           SUBTRACT 10.0 FROM C2-A END-SUBTRACT.
67992           MOVE C2-A  TO C2-RES.
67993           IF C2-RES NOT = 1.0
67994              DISPLAY 'ERROR COMP-2 - NUM'
67995              END-DISPLAY
67996           END-IF.
67997      *
67998           ADD  C3-B  TO C3-A END-ADD.
67999           MOVE C3-A  TO C3-RES.
68000           IF C3-RES NOT = 11.0
68001              DISPLAY 'ERROR COMP-3 + COMP-3'
68002              END-DISPLAY
68003           END-IF.
68004           MOVE 1.0   TO C3-A.
68005           ADD  10.0  TO C3-A END-ADD.
68006           MOVE C3-A  TO C3-RES.
68007           IF C3-RES NOT = 11.0
68008              DISPLAY 'ERROR COMP-3 + NUM'
68009              END-DISPLAY
68010           END-IF.
68011           MOVE 11.0  TO C3-A.
68012           SUBTRACT C3-B FROM C3-A END-SUBTRACT.
68013           MOVE C3-A  TO C3-RES.
68014           IF C3-RES NOT = 1.0
68015              DISPLAY 'ERROR COMP-3 - COMP-3'
68016              END-DISPLAY
68017           END-IF.
68018           MOVE 11.0  TO C3-A.
68019           SUBTRACT 10.0 FROM C3-A END-SUBTRACT.
68020           MOVE C3-A  TO C3-RES.
68021           IF C3-RES NOT = 1.0
68022              DISPLAY 'ERROR COMP-3 - NUM'
68023              END-DISPLAY
68024           END-IF.
68025      *
68026           ADD  C5-B  TO C5-A END-ADD.
68027           MOVE C5-A  TO C5-RES.
68028           IF C5-RES NOT = 11.0
68029              DISPLAY 'ERROR COMP-5 + COMP-5'
68030              END-DISPLAY
68031           END-IF.
68032           MOVE 1.0   TO C5-A.
68033           ADD  10.0  TO C5-A END-ADD.
68034           MOVE C5-A  TO C5-RES.
68035           IF C5-RES NOT = 11.0
68036              DISPLAY 'ERROR COMP-5 + NUM'
68037              END-DISPLAY
68038           END-IF.
68039           MOVE 11.0  TO C5-A.
68040           SUBTRACT C5-B FROM C5-A END-SUBTRACT.
68041           MOVE C5-A  TO C5-RES.
68042           IF C5-RES NOT = 1.0
68043              DISPLAY 'ERROR COMP-5 - COMP-5'
68044              END-DISPLAY
68045           END-IF.
68046           MOVE 11.0  TO C5-A.
68047           SUBTRACT 10.0 FROM C5-A END-SUBTRACT.
68048           MOVE C5-A  TO C5-RES.
68049           IF C5-RES NOT = 1.0
68050              DISPLAY 'ERROR COMP-5 - NUM'
68051              END-DISPLAY
68052           END-IF.
68053      *
68054           ADD  C6-B  TO C6-A END-ADD.
68055           MOVE C6-A  TO C6-RES.
68056           IF C6-RES NOT = 11.0
68057              DISPLAY 'ERROR COMP-6 + COMP-6'
68058              END-DISPLAY
68059           END-IF.
68060           MOVE 1.0   TO C6-A.
68061           ADD  10.0  TO C6-A END-ADD.
68062           MOVE C6-A  TO C6-RES.
68063           IF C6-RES NOT = 11.0
68064              DISPLAY 'ERROR COMP-6 + NUM'
68065              END-DISPLAY
68066           END-IF.
68067           MOVE 11.0  TO C6-A.
68068           SUBTRACT C6-B FROM C6-A END-SUBTRACT.
68069           MOVE C6-A  TO C6-RES.
68070           IF C6-RES NOT = 1.0
68071              DISPLAY 'ERROR COMP-6 - COMP-6'
68072              END-DISPLAY
68073           END-IF.
68074           MOVE 11.0  TO C6-A.
68075           SUBTRACT 10.0 FROM C6-A END-SUBTRACT.
68076           MOVE C6-A  TO C6-RES.
68077           IF C6-RES NOT = 1.0
68078              DISPLAY 'ERROR COMP-6 - NUM'
68079              END-DISPLAY
68080           END-IF.
68081      *
68082           ADD  CN9-B  TO CN9-A END-ADD.
68083           MOVE CN9-A  TO CN9-RES.
68084           IF CN9-RES NOT = 11.0
68085              DISPLAY 'ERROR COMP-N + COMP-N'
68086              END-DISPLAY
68087           END-IF.
68088           MOVE 1.0    TO CN9-A.
68089           ADD  10.0   TO CN9-A END-ADD.
68090           MOVE CN9-A  TO CN9-RES.
68091           IF CN9-RES NOT = 11.0
68092              DISPLAY 'ERROR COMP-N + NUM'
68093              END-DISPLAY
68094           END-IF.
68095           MOVE 11.0   TO CN9-A.
68096           SUBTRACT CN9-B FROM CN9-A END-SUBTRACT.
68097           MOVE CN9-A  TO CN9-RES.
68098           IF CN9-RES NOT = 1.0
68099              DISPLAY 'ERROR COMP-N - COMP-N'
68100              END-DISPLAY
68101           END-IF.
68102           MOVE 11.0   TO CN9-A.
68103           SUBTRACT 10.0  FROM CN9-A END-SUBTRACT.
68104           MOVE CN9-A  TO CN9-RES.
68105           IF CN9-RES NOT = 1.0
68106              DISPLAY 'ERROR COMP-N - NUM'
68107              END-DISPLAY
68108           END-IF.
68109      *
68110           ADD  CNX-B  TO CNX-A END-ADD.
68111           MOVE CNX-A  TO CNX-RES.
68112           IF CNX-RES NOT = 11.0
68113              DISPLAY 'ERROR COMP-N + COMP-N'
68114              END-DISPLAY
68115           END-IF.
68116           MOVE 1.0    TO CNX-A.
68117           ADD  10.0   TO CNX-A END-ADD.
68118           MOVE CNX-A  TO CNX-RES.
68119           IF CNX-RES NOT = 11.0
68120              DISPLAY 'ERROR COMP-N + NUM'
68121              END-DISPLAY
68122           END-IF.
68123           MOVE 11.0   TO CNX-A.
68124           SUBTRACT CNX-B FROM CNX-A END-SUBTRACT.
68125           MOVE CNX-A  TO CNX-RES.
68126           IF CNX-RES NOT = 1.0
68127              DISPLAY 'ERROR COMP-N - COMP-N'
68128              END-DISPLAY
68129           END-IF.
68130           MOVE 11.0   TO CNX-A.
68131           SUBTRACT 10.0 FROM CNX-A END-SUBTRACT.
68132           MOVE CNX-A  TO CNX-RES.
68133           IF CNX-RES NOT = 1.0
68134              DISPLAY 'ERROR COMP-N - NUM'
68135              END-DISPLAY
68136           END-IF.
68137      *
68138           ADD  CX9-B  TO CX9-A END-ADD.
68139           MOVE CX9-A  TO CX9-RES.
68140           IF CX9-RES NOT = 11.0
68141              DISPLAY 'ERROR COMP-X + COMP-X'
68142              END-DISPLAY
68143           END-IF.
68144           MOVE 1.0    TO CX9-A.
68145           ADD  10.0   TO CX9-A END-ADD.
68146           MOVE CX9-A  TO CX9-RES.
68147           IF CX9-RES NOT = 11.0
68148              DISPLAY 'ERROR COMP-X + NUM'
68149              END-DISPLAY
68150           END-IF.
68151           MOVE 11.0   TO CX9-A.
68152           SUBTRACT CX9-B FROM CX9-A END-SUBTRACT.
68153           MOVE CX9-A  TO CX9-RES.
68154           IF CX9-RES NOT = 1.0
68155              DISPLAY 'ERROR COMP-X - COMP-X'
68156              END-DISPLAY
68157           END-IF.
68158           MOVE 11.0   TO CX9-A.
68159           SUBTRACT 10.0 FROM CX9-A END-SUBTRACT.
68160           MOVE CX9-A  TO CX9-RES.
68161           IF CX9-RES NOT = 1.0
68162              DISPLAY 'ERROR COMP-X - NUM'
68163              END-DISPLAY
68164           END-IF.
68165      *
68166           ADD  CXX-B  TO CXX-A END-ADD.
68167           MOVE CXX-A  TO CXX-RES.
68168           IF CXX-RES NOT = 11.0
68169              DISPLAY 'ERROR COMP-X + COMP-X'
68170              END-DISPLAY
68171           END-IF.
68172           MOVE 1.0    TO CXX-A.
68173           ADD  10.0   TO CXX-A END-ADD.
68174           MOVE CXX-A  TO CXX-RES.
68175           IF CXX-RES NOT = 11.0
68176              DISPLAY 'ERROR COMP-X + NUM'
68177              END-DISPLAY
68178           END-IF.
68179           MOVE 11.0    TO CXX-A.
68180           SUBTRACT CXX-B FROM CXX-A END-SUBTRACT.
68181           MOVE CXX-A  TO CXX-RES.
68182           IF CXX-RES NOT = 1.0
68183              DISPLAY 'ERROR COMP-X - COMP-X'
68184              END-DISPLAY
68185           END-IF.
68186           MOVE 11.0   TO CXX-A.
68187           SUBTRACT 10.0 FROM CXX-A END-SUBTRACT.
68188           MOVE CXX-A  TO CXX-RES.
68189           IF CXX-RES NOT = 1.0
68190              DISPLAY 'ERROR COMP-X - NUM'
68191              END-DISPLAY
68192           END-IF.
68193      *
68194           ADD  D-B  TO D-A END-ADD.
68195           MOVE D-A  TO D-RES.
68196           IF D-RES NOT = 11.0
68197              DISPLAY 'ERROR DISPLAY + DISPLAY'
68198              END-DISPLAY
68199           END-IF.
68200           MOVE 1.0  TO D-A.
68201           ADD  10.0 TO D-A END-ADD.
68202           MOVE D-A  TO D-RES.
68203           IF D-RES NOT = 11.0
68204              DISPLAY 'ERROR DISPLAY + NUM'
68205              END-DISPLAY
68206           END-IF.
68207           MOVE 11.0 TO D-A.
68208           SUBTRACT D-B FROM D-A END-SUBTRACT.
68209           MOVE D-A  TO D-RES.
68210           IF D-RES NOT = 1.0
68211              DISPLAY 'ERROR DISPLAY - DISPLAY'
68212              END-DISPLAY
68213           END-IF.
68214           MOVE 11.0 TO D-A.
68215           SUBTRACT 10.0 FROM D-A END-SUBTRACT.
68216           MOVE D-A  TO D-RES.
68217           IF D-RES NOT = 1.0
68218              DISPLAY 'ERROR DISPLAY - NUM'
68219              END-DISPLAY
68220           END-IF.
68221      *
68222           ADD  FD16-B  TO FD16-A END-ADD.
68223           MOVE FD16-A  TO FD16-RES.
68224           IF FD16-RES NOT = 11.0
68225              DISPLAY 'ERROR FLOAT-DECIMAL-16 + FLOAT-DECIMAL-16'
68226              END-DISPLAY
68227           END-IF.
68228           MOVE 1.0   TO FD16-A.
68229           ADD  10.0  TO FD16-A END-ADD.
68230           MOVE FD16-A  TO FD16-RES.
68231           IF FD16-RES NOT = 11.0
68232              DISPLAY 'ERROR FLOAT-DECIMAL-16 + NUM'
68233              END-DISPLAY
68234           END-IF.
68235           MOVE 11.0  TO FD16-A.
68236           SUBTRACT FD16-B FROM FD16-A END-SUBTRACT.
68237           MOVE FD16-A  TO FD16-RES.
68238           IF FD16-RES NOT = 1.0
68239              DISPLAY 'ERROR FLOAT-DECIMAL-16 - FLOAT-DECIMAL-16'
68240              END-DISPLAY
68241           END-IF.
68242           MOVE 11.0  TO FD16-A.
68243           SUBTRACT 10.0 FROM FD16-A END-SUBTRACT.
68244           MOVE FD16-A  TO FD16-RES.
68245           IF FD16-RES NOT = 1.0
68246              DISPLAY 'ERROR FLOAT-DECIMAL-16 - NUM'
68247              END-DISPLAY
68248           END-IF.
68249      *
68250           ADD  FD34-B  TO FD34-A END-ADD.
68251           MOVE FD34-A  TO FD34-RES.
68252           IF FD34-RES NOT = 11.0
68253              DISPLAY 'ERROR FLOAT-DECIMAL-34 + FLOAT-DECIMAL-34'
68254              END-DISPLAY
68255           END-IF.
68256           MOVE 1.0   TO FD34-A.
68257           ADD  10.0  TO FD34-A END-ADD.
68258           MOVE FD34-A  TO FD34-RES.
68259           IF FD34-RES NOT = 11.0
68260              DISPLAY 'ERROR FLOAT-DECIMAL-34 + NUM'
68261              END-DISPLAY
68262           END-IF.
68263           MOVE 11.0  TO FD34-A.
68264           SUBTRACT FD34-B FROM FD34-A END-SUBTRACT.
68265           MOVE FD34-A  TO FD34-RES.
68266           IF FD34-RES NOT = 1.0
68267              DISPLAY 'ERROR FLOAT-DECIMAL-34 - FLOAT-DECIMAL-34'
68268              END-DISPLAY
68269           END-IF.
68270           MOVE 11.0  TO FD34-A.
68271           SUBTRACT 10.0 FROM FD34-A END-SUBTRACT.
68272           MOVE FD34-A  TO FD34-RES.
68273           IF FD34-RES NOT = 1.0
68274              DISPLAY 'ERROR FLOAT-DECIMAL-34 - NUM'
68275              END-DISPLAY
68276           END-IF.
68277      *
68278           ADD  FL-B  TO FL-A END-ADD.
68279           MOVE FL-A  TO FL-RES.
68280           IF FL-RES NOT = 11.0
68281              DISPLAY 'ERROR FLOAT-LONG + FLOAT-LONG'
68282              END-DISPLAY
68283           END-IF.
68284           MOVE 1.0   TO FL-A.
68285           ADD  10.0  TO FL-A END-ADD.
68286           MOVE FL-A  TO FL-RES.
68287           IF FL-RES NOT = 11.0
68288              DISPLAY 'ERROR FLOAT-LONG + NUM'
68289              END-DISPLAY
68290           END-IF.
68291           MOVE 11.0  TO FL-A.
68292           SUBTRACT FL-B FROM FL-A END-SUBTRACT.
68293           MOVE FL-A  TO FL-RES.
68294           IF FL-RES NOT = 1.0
68295              DISPLAY 'ERROR FLOAT-LONG - FLOAT-LONG'
68296              END-DISPLAY
68297           END-IF.
68298           MOVE 11.0  TO FL-A.
68299           SUBTRACT 10.0 FROM FL-A END-SUBTRACT.
68300           MOVE FL-A  TO FL-RES.
68301           IF FL-RES NOT = 1.0
68302              DISPLAY 'ERROR FLOAT-LONG - NUM'
68303              END-DISPLAY
68304           END-IF.
68305      *
68306           ADD  FS-B  TO FS-A END-ADD.
68307           MOVE FS-A  TO FS-RES.
68308           IF FS-RES NOT = 11.0
68309              DISPLAY 'ERROR FLOAT-SHORT + FLOAT-SHORT'
68310              END-DISPLAY
68311           END-IF.
68312           MOVE 1.0   TO FS-A.
68313           ADD  10.0  TO FS-A END-ADD.
68314           MOVE FS-A  TO FS-RES.
68315           IF FS-RES NOT = 11.0
68316              DISPLAY 'ERROR FLOAT-SHORT + NUM'
68317              END-DISPLAY
68318           END-IF.
68319           MOVE 11.0  TO FS-A.
68320           SUBTRACT FS-B FROM FS-A END-SUBTRACT.
68321           MOVE FS-A  TO FS-RES.
68322           IF FS-RES NOT = 1.0
68323              DISPLAY 'ERROR FLOAT-SHORT - FLOAT-SHORT'
68324              END-DISPLAY
68325           END-IF.
68326           MOVE 11.0  TO FS-A.
68327           SUBTRACT 10.0 FROM FS-A END-SUBTRACT.
68328           MOVE FS-A  TO FS-RES.
68329           IF FS-RES NOT = 1.0
68330              DISPLAY 'ERROR FLOAT-SHORT - NUM'
68331              END-DISPLAY
68332           END-IF.
68333      *
68334           STOP RUN.
68335_ATEOF
68336
68337
68338{ set +x
68339$as_echo "$at_srcdir/run_misc.at:5637: \$COMPILE prog.cob"
68340at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:5637"
68341( $at_check_trace; $COMPILE prog.cob
68342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68343at_status=$? at_failed=false
68344$at_check_filter
68345at_fn_diff_devnull "$at_stderr" || at_failed=:
68346at_fn_diff_devnull "$at_stdout" || at_failed=:
68347at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5637"
68348$at_failed && at_fn_log_failure
68349$at_traceon; }
68350
68351{ set +x
68352$as_echo "$at_srcdir/run_misc.at:5638: \$COBCRUN_DIRECT ./prog"
68353at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5638"
68354( $at_check_trace; $COBCRUN_DIRECT ./prog
68355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68356at_status=$? at_failed=false
68357$at_check_filter
68358at_fn_diff_devnull "$at_stderr" || at_failed=:
68359at_fn_diff_devnull "$at_stdout" || at_failed=:
68360at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5638"
68361$at_failed && at_fn_log_failure
68362$at_traceon; }
68363
68364
68365{ set +x
68366$as_echo "$at_srcdir/run_misc.at:5640: \$COMPILE -fnotrunc prog.cob"
68367at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "run_misc.at:5640"
68368( $at_check_trace; $COMPILE -fnotrunc prog.cob
68369) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68370at_status=$? at_failed=false
68371$at_check_filter
68372at_fn_diff_devnull "$at_stderr" || at_failed=:
68373at_fn_diff_devnull "$at_stdout" || at_failed=:
68374at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5640"
68375$at_failed && at_fn_log_failure
68376$at_traceon; }
68377
68378{ set +x
68379$as_echo "$at_srcdir/run_misc.at:5641: \$COBCRUN_DIRECT ./prog"
68380at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5641"
68381( $at_check_trace; $COBCRUN_DIRECT ./prog
68382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68383at_status=$? at_failed=false
68384$at_check_filter
68385at_fn_diff_devnull "$at_stderr" || at_failed=:
68386at_fn_diff_devnull "$at_stdout" || at_failed=:
68387at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:5641"
68388$at_failed && at_fn_log_failure
68389$at_traceon; }
68390
68391
68392  set +x
68393  $at_times_p && times >"$at_times_file"
68394) 5>&1 2>&1 7>&- | eval $at_tee_pipe
68395read at_status <"$at_status_file"
68396#AT_STOP_676
68397#AT_START_677
68398at_fn_group_banner 677 'run_misc.at:5646' \
68399  "C/C++ reserved words/predefined identifiers" "    " 4
68400at_xfail=no
68401(
68402  $as_echo "677. $at_setup_line: testing $at_desc ..."
68403  $at_traceon
68404
68405
68406
68407cat >caller.cob <<'_ATEOF'
68408
68409       IDENTIFICATION   DIVISION.
68410       PROGRAM-ID.      caller.
68411       DATA             DIVISION.
68412       WORKING-STORAGE  SECTION.
68413      *
68414      * Reserved Words in C (that aren't reserved in COBOL)
68415      * var names MUST BE IN LOWER CASE (!)
68416      *
68417       77  const                       PIC X VALUE "A".
68418       77  double                      PIC X VALUE "B".
68419       77  float                       PIC X VALUE "C".
68420       77  int                         PIC X VALUE "D".
68421       77  short                       PIC X VALUE "E".
68422       77  struct                      PIC X VALUE "F".
68423       77  break                       PIC X VALUE "G".
68424       77  long                        PIC X VALUE "H".
68425       77  switch                      PIC X VALUE "I".
68426       77  void                        PIC X VALUE "J".
68427       77  case                        PIC X VALUE "K".
68428       77  enum                        PIC X VALUE "L".
68429       77  goto                        PIC X VALUE "M".
68430       77  register                    PIC X VALUE "N".
68431       77  sizeof                      PIC X VALUE "O".
68432       77  volatile                    PIC X VALUE "P".
68433       77  char                        PIC X VALUE "Q".
68434       77  do                          PIC X VALUE "R".
68435       77  extern                      PIC X VALUE "S".
68436       77  static                      PIC X VALUE "T".
68437       77  union                       PIC X VALUE "U".
68438       77  while                       PIC X VALUE "V".
68439      *
68440      * More Reserved Words in C++
68441      * var names MUST BE IN LOWER CASE (!)
68442      *
68443       77  asm                         PIC X VALUE "W".
68444       77  dynamic_cast                PIC X VALUE "X".
68445       77  namespace                   PIC X VALUE "Y".
68446       77  reinterpret_cast            PIC X VALUE "Z".
68447       77  try                         PIC X VALUE "a".
68448       77  bool                        PIC X VALUE "b".
68449       77  explicit                    PIC X VALUE "c".
68450       77  new                         PIC X VALUE "d".
68451       77  static_cast                 PIC X VALUE "e".
68452       77  typeid                      PIC X VALUE "f".
68453       77  catch                       PIC X VALUE "g".
68454       77  operator                    PIC X VALUE "h".
68455       77  template                    PIC X VALUE "i".
68456       77  typename                    PIC X VALUE "j".
68457       77  friend                      PIC X VALUE "k".
68458       77  private                     PIC X VALUE "l".
68459       77  this                        PIC X VALUE "m".
68460       77  const_cast                  PIC X VALUE "n".
68461       77  inline                      PIC X VALUE "o".
68462       77  public                      PIC X VALUE "p".
68463       77  throw                       PIC X VALUE "q".
68464       77  virtual                     PIC X VALUE "r".
68465       77  mutable                     PIC X VALUE "s".
68466       77  protected                   PIC X VALUE "t".
68467       77  wchar_t                     PIC X VALUE "u".
68468      *
68469      * More Reserved Words in C++ (not essential)
68470      * var names MUST BE IN LOWER CASE (!)
68471      *
68472       77  bitand                      PIC X VALUE "v".
68473       77  compl                       PIC X VALUE "w".
68474       77  not_eq                      PIC X VALUE "x".
68475       77  or_eq                       PIC X VALUE "y".
68476       77  xor_eq                      PIC X VALUE "z".
68477       77  and_eq                      PIC X VALUE "0".
68478       77  bitor                       PIC X VALUE "1".
68479       77  xor                         PIC X VALUE "2".
68480      *
68481       PROCEDURE        DIVISION.
68482           CALL "callee" USING   const
68483                                 double
68484                                 float
68485                                 int
68486                                 short
68487                                 struct
68488                                 break
68489                                 long
68490                                 switch
68491                                 void
68492                                 case
68493                                 enum
68494                                 goto
68495                                 register
68496                                 sizeof
68497                                 volatile
68498                                 char
68499                                 do
68500                                 *>extern
68501                                 *>static
68502                                 union
68503                                 while
68504           END-CALL.
68505           CALL "callee2" USING  asm
68506                                 dynamic_cast
68507                                 namespace
68508                                 reinterpret_cast
68509                                 try
68510                                 bool
68511                                 explicit
68512                                 new
68513                                 static_cast
68514                                 typeid
68515                                 catch
68516                                 operator
68517                                 template
68518                                 typename
68519                                 friend
68520                                 private
68521                                 this
68522                                 const_cast
68523                                 inline
68524                                 public
68525                                 throw
68526                                 virtual
68527                                 mutable
68528                                 protected
68529                                 wchar_t
68530                                 bitand
68531                                 compl
68532                                 not_eq
68533                                 or_eq
68534                                 xor_eq
68535                                 and_eq
68536                                 bitor
68537                                 xor
68538           END-CALL.
68539           MOVE x'00' TO         const
68540                                 double
68541                                 float
68542                                 int
68543                                 short
68544                                 struct
68545                                 break
68546                                 long
68547                                 switch
68548                                 void
68549                                 case
68550                                 enum
68551                                 goto
68552                                 register
68553                                 sizeof
68554                                 volatile
68555                                 char
68556                                 do
68557                                 extern
68558                                 static
68559                                 union
68560                                 while
68561                                 asm
68562                                 dynamic_cast
68563                                 namespace
68564                                 reinterpret_cast
68565                                 try
68566                                 bool
68567                                 explicit
68568                                 new
68569                                 static_cast
68570                                 typeid
68571                                 catch
68572                                 operator
68573                                 template
68574                                 typename
68575                                 friend
68576                                 private
68577                                 this
68578                                 const_cast
68579                                 inline
68580                                 public
68581                                 throw
68582                                 virtual
68583                                 mutable
68584                                 protected
68585                                 wchar_t
68586                                 bitand
68587                                 compl
68588                                 not_eq
68589                                 or_eq
68590                                 xor_eq
68591                                 and_eq
68592                                 bitor
68593                                 xor
68594                                 .
68595           STOP RUN.
68596_ATEOF
68597
68598
68599cat >callee.cob <<'_ATEOF'
68600
68601       IDENTIFICATION   DIVISION.
68602       PROGRAM-ID.      callee.
68603       DATA             DIVISION.
68604       LINKAGE SECTION.
68605      *
68606      * Reserved Words in C (that aren't reserved in COBOL)
68607      * var names MUST BE IN LOWER CASE (!)
68608      *
68609       77  const                       PIC X.
68610       77  double                      PIC X.
68611       77  float                       PIC X.
68612       77  int                         PIC X.
68613       77  short                       PIC X.
68614       77  struct                      PIC X.
68615       77  break                       PIC X.
68616       77  long                        PIC X.
68617       77  switch                      PIC X.
68618       77  void                        PIC X.
68619       77  case                        PIC X.
68620       77  enum                        PIC X.
68621       77  goto                        PIC X.
68622       77  register                    PIC X.
68623       77  sizeof                      PIC X.
68624       77  volatile                    PIC X.
68625       77  char                        PIC X.
68626       77  do                          PIC X.
68627      *77  extern                      PIC X.
68628      *77  static                      PIC X.
68629       77  union                       PIC X.
68630       77  while                       PIC X.
68631       PROCEDURE        DIVISION USING
68632                                 const
68633                                 double
68634                                 float
68635                                 int
68636                                 short
68637                                 struct
68638                                 break
68639                                 long
68640                                 switch
68641                                 void
68642                                 case
68643                                 enum
68644                                 goto
68645                                 register
68646                                 sizeof
68647                                 volatile
68648                                 char
68649                                 do
68650                                *>extern
68651                                *>static
68652                                 union
68653                                 while
68654                                 .
68655           IF (const                       NOT = "A") OR
68656              (double                      NOT = "B") OR
68657              (float                       NOT = "C") OR
68658              (int                         NOT = "D") OR
68659              (short                       NOT = "E") OR
68660              (struct                      NOT = "F") OR
68661              (break                       NOT = "G") OR
68662              (long                        NOT = "H") OR
68663              (switch                      NOT = "I") OR
68664              (void                        NOT = "J") OR
68665              (case                        NOT = "K") OR
68666              (enum                        NOT = "L") OR
68667              (goto                        NOT = "M") OR
68668              (register                    NOT = "N") OR
68669              (sizeof                      NOT = "O") OR
68670              (volatile                    NOT = "P") OR
68671              (char                        NOT = "Q") OR
68672              (do                          NOT = "R") OR
68673            *>(extern                      NOT = "S") OR
68674            *>(static                      NOT = "T") OR
68675              (union                       NOT = "U") OR
68676              (while                       NOT = "V")
68677              DISPLAY "At least one var has wrong content!"
68678              END-DISPLAY
68679           END-IF.
68680           MOVE x'FF' TO         const
68681                                 double
68682                                 float
68683                                 int
68684                                 short
68685                                 struct
68686                                 break
68687                                 long
68688                                 switch
68689                                 void
68690                                 case
68691                                 enum
68692                                 goto
68693                                 register
68694                                 sizeof
68695                                 volatile
68696                                 char
68697                                 do
68698                               *>extern
68699                               *>static
68700                                 union
68701                                 while
68702                                 .
68703           EXIT PROGRAM.
68704_ATEOF
68705
68706
68707cat >callee2.cob <<'_ATEOF'
68708
68709       IDENTIFICATION   DIVISION.
68710       PROGRAM-ID.      callee2.
68711       DATA             DIVISION.
68712       LINKAGE SECTION.
68713      *
68714      * More Reserved Words in C++
68715      * var names MUST BE IN LOWER CASE (!)
68716      *
68717       77  asm                         PIC X.
68718       77  dynamic_cast                PIC X.
68719       77  namespace                   PIC X.
68720       77  reinterpret_cast            PIC X.
68721       77  try                         PIC X.
68722       77  bool                        PIC X.
68723       77  explicit                    PIC X.
68724       77  new                         PIC X.
68725       77  static_cast                 PIC X.
68726       77  typeid                      PIC X.
68727       77  catch                       PIC X.
68728       77  operator                    PIC X.
68729       77  template                    PIC X.
68730       77  typename                    PIC X.
68731       77  friend                      PIC X.
68732       77  private                     PIC X.
68733       77  this                        PIC X.
68734       77  const_cast                  PIC X.
68735       77  inline                      PIC X.
68736       77  public                      PIC X.
68737       77  throw                       PIC X.
68738       77  virtual                     PIC X.
68739       77  mutable                     PIC X.
68740       77  protected                   PIC X.
68741       77  wchar_t                     PIC X.
68742      *
68743      * More Reserved Words in C++ (not essential)
68744      *
68745       77  bitand                      PIC X.
68746       77  compl                       PIC X.
68747       77  not_eq                      PIC X.
68748       77  or_eq                       PIC X.
68749       77  xor_eq                      PIC X.
68750       77  and_eq                      PIC X.
68751       77  bitor                       PIC X.
68752       77  xor                         PIC X.
68753       PROCEDURE        DIVISION USING
68754                                 asm
68755                                 dynamic_cast
68756                                 namespace
68757                                 reinterpret_cast
68758                                 try
68759                                 bool
68760                                 explicit
68761                                 new
68762                                 static_cast
68763                                 typeid
68764                                 catch
68765                                 operator
68766                                 template
68767                                 typename
68768                                 friend
68769                                 private
68770                                 this
68771                                 const_cast
68772                                 inline
68773                                 public
68774                                 throw
68775                                 virtual
68776                                 mutable
68777                                 protected
68778                                 wchar_t
68779                                 bitand
68780                                 compl
68781                                 not_eq
68782                                 or_eq
68783                                 xor_eq
68784                                 and_eq
68785                                 bitor
68786                                 xor
68787                                 .
68788           IF (asm                         NOT = "W") OR
68789              (dynamic_cast                NOT = "X") OR
68790              (namespace                   NOT = "Y") OR
68791              (reinterpret_cast            NOT = "Z") OR
68792              (try                         NOT = "a") OR
68793              (bool                        NOT = "b") OR
68794              (explicit                    NOT = "c") OR
68795              (new                         NOT = "d") OR
68796              (static_cast                 NOT = "e") OR
68797              (typeid                      NOT = "f") OR
68798              (catch                       NOT = "g") OR
68799              (operator                    NOT = "h") OR
68800              (template                    NOT = "i") OR
68801              (typename                    NOT = "j") OR
68802              (friend                      NOT = "k") OR
68803              (private                     NOT = "l") OR
68804              (this                        NOT = "m") OR
68805              (const_cast                  NOT = "n") OR
68806              (inline                      NOT = "o") OR
68807              (public                      NOT = "p") OR
68808              (throw                       NOT = "q") OR
68809              (virtual                     NOT = "r") OR
68810              (mutable                     NOT = "s") OR
68811              (protected                   NOT = "t") OR
68812              (wchar_t                     NOT = "u") OR
68813              (bitand                      NOT = "v") OR
68814              (compl                       NOT = "w") OR
68815              (not_eq                      NOT = "x") OR
68816              (or_eq                       NOT = "y") OR
68817              (xor_eq                      NOT = "z") OR
68818              (and_eq                      NOT = "0") OR
68819              (bitor                       NOT = "1") OR
68820              (xor                         NOT = "2")
68821              DISPLAY "At least one var has wrong content!"
68822              END-DISPLAY
68823           END-IF.
68824           MOVE x'FF' TO         asm
68825                                 dynamic_cast
68826                                 namespace
68827                                 reinterpret_cast
68828                                 try
68829                                 bool
68830                                 explicit
68831                                 new
68832                                 static_cast
68833                                 typeid
68834                                 catch
68835                                 operator
68836                                 template
68837                                 typename
68838                                 friend
68839                                 private
68840                                 this
68841                                 const_cast
68842                                 inline
68843                                 public
68844                                 throw
68845                                 virtual
68846                                 mutable
68847                                 protected
68848                                 wchar_t
68849                                 bitand
68850                                 compl
68851                                 not_eq
68852                                 or_eq
68853                                 xor_eq
68854                                 and_eq
68855                                 bitor
68856                                 xor
68857                                 .
68858           EXIT PROGRAM.
68859_ATEOF
68860
68861
68862{ set +x
68863$as_echo "$at_srcdir/run_misc.at:6098: \$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee.cob"
68864at_fn_check_prepare_dynamic "$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee.cob" "run_misc.at:6098"
68865( $at_check_trace; $COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee.cob
68866) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68867at_status=$? at_failed=false
68868$at_check_filter
68869at_fn_diff_devnull "$at_stderr" || at_failed=:
68870at_fn_diff_devnull "$at_stdout" || at_failed=:
68871at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6098"
68872$at_failed && at_fn_log_failure
68873$at_traceon; }
68874
68875{ set +x
68876$as_echo "$at_srcdir/run_misc.at:6099: \$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.cob"
68877at_fn_check_prepare_dynamic "$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.cob" "run_misc.at:6099"
68878( $at_check_trace; $COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.cob
68879) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68880at_status=$? at_failed=false
68881$at_check_filter
68882at_fn_diff_devnull "$at_stderr" || at_failed=:
68883at_fn_diff_devnull "$at_stdout" || at_failed=:
68884at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6099"
68885$at_failed && at_fn_log_failure
68886$at_traceon; }
68887
68888{ set +x
68889$as_echo "$at_srcdir/run_misc.at:6100: \$COMPILE -fnot-reserved=double,float,new,volatile -o prog caller.cob"
68890at_fn_check_prepare_dynamic "$COMPILE -fnot-reserved=double,float,new,volatile -o prog caller.cob" "run_misc.at:6100"
68891( $at_check_trace; $COMPILE -fnot-reserved=double,float,new,volatile -o prog caller.cob
68892) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68893at_status=$? at_failed=false
68894$at_check_filter
68895at_fn_diff_devnull "$at_stderr" || at_failed=:
68896at_fn_diff_devnull "$at_stdout" || at_failed=:
68897at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6100"
68898$at_failed && at_fn_log_failure
68899$at_traceon; }
68900
68901{ set +x
68902$as_echo "$at_srcdir/run_misc.at:6101: \$COBCRUN_DIRECT ./prog"
68903at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6101"
68904( $at_check_trace; $COBCRUN_DIRECT ./prog
68905) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68906at_status=$? at_failed=false
68907$at_check_filter
68908at_fn_diff_devnull "$at_stderr" || at_failed=:
68909at_fn_diff_devnull "$at_stdout" || at_failed=:
68910at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6101"
68911$at_failed && at_fn_log_failure
68912$at_traceon; }
68913
68914
68915  set +x
68916  $at_times_p && times >"$at_times_file"
68917) 5>&1 2>&1 7>&- | eval $at_tee_pipe
68918read at_status <"$at_status_file"
68919#AT_STOP_677
68920#AT_START_678
68921at_fn_group_banner 678 'run_misc.at:6106' \
68922  "ON EXCEPTION clause of DISPLAY" "                 " 4
68923at_xfail=no
68924(
68925  $as_echo "678. $at_setup_line: testing $at_desc ..."
68926  $at_traceon
68927
68928
68929
68930{ set +x
68931$as_echo "$at_srcdir/run_misc.at:6109: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
68932at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6109"
68933( $at_check_trace; test "$COB_HAS_CURSES" = "yes" || exit 77
68934) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68935at_status=$? at_failed=false
68936$at_check_filter
68937at_fn_diff_devnull "$at_stderr" || at_failed=:
68938at_fn_diff_devnull "$at_stdout" || at_failed=:
68939at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6109"
68940$at_failed && at_fn_log_failure
68941$at_traceon; }
68942
68943
68944cat >prog.cob <<'_ATEOF'
68945
68946       IDENTIFICATION   DIVISION.
68947       PROGRAM-ID.      prog.
68948
68949       PROCEDURE DIVISION.
68950           DISPLAY "hello" AT COLUMN 500
68951               ON EXCEPTION
68952                   GOBACK RETURNING 0
68953               NOT ON EXCEPTION
68954                   GOBACK RETURNING 1
68955           END-DISPLAY
68956           .
68957_ATEOF
68958
68959
68960{ set +x
68961$as_echo "$at_srcdir/run_misc.at:6125: \$COMPILE prog.cob"
68962at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6125"
68963( $at_check_trace; $COMPILE prog.cob
68964) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68965at_status=$? at_failed=false
68966$at_check_filter
68967at_fn_diff_devnull "$at_stderr" || at_failed=:
68968at_fn_diff_devnull "$at_stdout" || at_failed=:
68969at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6125"
68970$at_failed && at_fn_log_failure
68971$at_traceon; }
68972
68973{ set +x
68974$as_echo "$at_srcdir/run_misc.at:6126: COB_EXIT_WAIT=0 ./prog"
68975at_fn_check_prepare_trace "run_misc.at:6126"
68976( $at_check_trace; COB_EXIT_WAIT=0 ./prog
68977) >>"$at_stdout" 2>>"$at_stderr" 5>&-
68978at_status=$? at_failed=false
68979$at_check_filter
68980at_fn_diff_devnull "$at_stderr" || at_failed=:
68981echo stdout:; cat "$at_stdout"
68982at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6126"
68983$at_failed && at_fn_log_failure
68984$at_traceon; }
68985
68986
68987  set +x
68988  $at_times_p && times >"$at_times_file"
68989) 5>&1 2>&1 7>&- | eval $at_tee_pipe
68990read at_status <"$at_status_file"
68991#AT_STOP_678
68992#AT_START_679
68993at_fn_group_banner 679 'run_misc.at:6131' \
68994  "EC-SCREEN-LINE-NUMBER and -STARTING-COLUMN" "     " 4
68995at_xfail=no
68996(
68997  $as_echo "679. $at_setup_line: testing $at_desc ..."
68998  $at_traceon
68999
69000
69001
69002{ set +x
69003$as_echo "$at_srcdir/run_misc.at:6134: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
69004at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6134"
69005( $at_check_trace; test "$COB_HAS_CURSES" = "yes" || exit 77
69006) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69007at_status=$? at_failed=false
69008$at_check_filter
69009at_fn_diff_devnull "$at_stderr" || at_failed=:
69010at_fn_diff_devnull "$at_stdout" || at_failed=:
69011at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6134"
69012$at_failed && at_fn_log_failure
69013$at_traceon; }
69014
69015
69016cat >prog.cob <<'_ATEOF'
69017
69018       IDENTIFICATION DIVISION.
69019       PROGRAM-ID.    prog.
69020
69021       DATA           DIVISION.
69022       SCREEN         SECTION.
69023       01  invalid-line.
69024           03  a      VALUE "a" LINE 99999999.
69025       01  invalid-col.
69026           03  c      VALUE "c" COLUMN 99999999.
69027
69028       PROCEDURE      DIVISION.
69029           DISPLAY invalid-line END-DISPLAY
69030           IF FUNCTION EXCEPTION-STATUS = "EC-SCREEN-LINE-NUMBER"
69031               CONTINUE
69032           ELSE
69033               GOBACK RETURNING 1
69034           END-IF
69035
69036           DISPLAY invalid-col END-DISPLAY
69037           IF FUNCTION EXCEPTION-STATUS = "EC-SCREEN-STARTING-COLUMN"
69038               CONTINUE
69039           ELSE
69040               GOBACK RETURNING 2
69041           END-IF
69042
69043           GOBACK RETURNING 0
69044           .
69045_ATEOF
69046
69047
69048{ set +x
69049$as_echo "$at_srcdir/run_misc.at:6166: \$COMPILE prog.cob"
69050at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6166"
69051( $at_check_trace; $COMPILE prog.cob
69052) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69053at_status=$? at_failed=false
69054$at_check_filter
69055at_fn_diff_devnull "$at_stderr" || at_failed=:
69056at_fn_diff_devnull "$at_stdout" || at_failed=:
69057at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6166"
69058$at_failed && at_fn_log_failure
69059$at_traceon; }
69060
69061{ set +x
69062$as_echo "$at_srcdir/run_misc.at:6167: COB_EXIT_WAIT=0 ./prog"
69063at_fn_check_prepare_trace "run_misc.at:6167"
69064( $at_check_trace; COB_EXIT_WAIT=0 ./prog
69065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69066at_status=$? at_failed=false
69067$at_check_filter
69068at_fn_diff_devnull "$at_stderr" || at_failed=:
69069echo stdout:; cat "$at_stdout"
69070at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6167"
69071$at_failed && at_fn_log_failure
69072$at_traceon; }
69073
69074
69075  set +x
69076  $at_times_p && times >"$at_times_file"
69077) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69078read at_status <"$at_status_file"
69079#AT_STOP_679
69080#AT_START_680
69081at_fn_group_banner 680 'run_misc.at:6172' \
69082  "LINE/COLUMN 0 exceptions" "                       " 4
69083at_xfail=no
69084(
69085  $as_echo "680. $at_setup_line: testing $at_desc ..."
69086  $at_traceon
69087
69088
69089
69090{ set +x
69091$as_echo "$at_srcdir/run_misc.at:6175: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
69092at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6175"
69093( $at_check_trace; test "$COB_HAS_CURSES" = "yes" || exit 77
69094) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69095at_status=$? at_failed=false
69096$at_check_filter
69097at_fn_diff_devnull "$at_stderr" || at_failed=:
69098at_fn_diff_devnull "$at_stdout" || at_failed=:
69099at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6175"
69100$at_failed && at_fn_log_failure
69101$at_traceon; }
69102
69103
69104cat >prog.cob <<'_ATEOF'
69105
69106       IDENTIFICATION   DIVISION.
69107       PROGRAM-ID.      prog.
69108
69109       DATA DIVISION.
69110       WORKING-STORAGE SECTION.
69111       01  zero-var PIC 9 VALUE 0.
69112
69113       SCREEN SECTION.
69114       01  scr.
69115           03  VALUE "a".
69116
69117       PROCEDURE DIVISION.
69118           DISPLAY scr AT LINE zero-var
69119           IF FUNCTION EXCEPTION-STATUS <> "EC-SCREEN-LINE-NUMBER"
69120               GOBACK RETURNING 1
69121           END-IF
69122
69123           DISPLAY scr AT COLUMN zero-var
69124           IF FUNCTION EXCEPTION-STATUS <> "EC-SCREEN-STARTING-COLUMN"
69125               GOBACK RETURNING 2
69126           END-IF
69127
69128           GOBACK RETURNING 0
69129           .
69130_ATEOF
69131
69132
69133{ set +x
69134$as_echo "$at_srcdir/run_misc.at:6204: \$COMPILE  -faccept-display-extensions=error prog.cob"
69135at_fn_check_prepare_dynamic "$COMPILE  -faccept-display-extensions=error prog.cob" "run_misc.at:6204"
69136( $at_check_trace; $COMPILE  -faccept-display-extensions=error prog.cob
69137) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69138at_status=$? at_failed=false
69139$at_check_filter
69140at_fn_diff_devnull "$at_stderr" || at_failed=:
69141at_fn_diff_devnull "$at_stdout" || at_failed=:
69142at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6204"
69143$at_failed && at_fn_log_failure
69144$at_traceon; }
69145
69146{ set +x
69147$as_echo "$at_srcdir/run_misc.at:6205: COB_EXIT_WAIT=0 ./prog"
69148at_fn_check_prepare_trace "run_misc.at:6205"
69149( $at_check_trace; COB_EXIT_WAIT=0 ./prog
69150) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69151at_status=$? at_failed=false
69152$at_check_filter
69153at_fn_diff_devnull "$at_stderr" || at_failed=:
69154echo stdout:; cat "$at_stdout"
69155at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6205"
69156$at_failed && at_fn_log_failure
69157$at_traceon; }
69158
69159
69160  set +x
69161  $at_times_p && times >"$at_times_file"
69162) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69163read at_status <"$at_status_file"
69164#AT_STOP_680
69165#AT_START_681
69166at_fn_group_banner 681 'run_misc.at:6210' \
69167  "SET LAST EXCEPTION TO OFF" "                      " 4
69168at_xfail=no
69169(
69170  $as_echo "681. $at_setup_line: testing $at_desc ..."
69171  $at_traceon
69172
69173
69174
69175cat >prog.cob <<'_ATEOF'
69176
69177       IDENTIFICATION DIVISION.
69178       PROGRAM-ID. prog.
69179
69180       DATA DIVISION.
69181       WORKING-STORAGE SECTION.
69182       01  x PIC 9.
69183
69184       PROCEDURE DIVISION.
69185           COMPUTE x = 10
69186           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
69187           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
69188           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
69189           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
69190           SET LAST EXCEPTION TO OFF
69191           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
69192           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
69193           .
69194_ATEOF
69195
69196
69197{ set +x
69198$as_echo "$at_srcdir/run_misc.at:6233: \$COMPILE prog.cob"
69199at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6233"
69200( $at_check_trace; $COMPILE prog.cob
69201) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69202at_status=$? at_failed=false
69203$at_check_filter
69204at_fn_diff_devnull "$at_stderr" || at_failed=:
69205at_fn_diff_devnull "$at_stdout" || at_failed=:
69206at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6233"
69207$at_failed && at_fn_log_failure
69208$at_traceon; }
69209
69210{ set +x
69211$as_echo "$at_srcdir/run_misc.at:6234: \$COBCRUN_DIRECT ./prog"
69212at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6234"
69213( $at_check_trace; $COBCRUN_DIRECT ./prog
69214) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69215at_status=$? at_failed=false
69216$at_check_filter
69217at_fn_diff_devnull "$at_stderr" || at_failed=:
69218echo >>"$at_stdout"; $as_echo "EC-SIZE-OVERFLOW
69219prog; ; 10
69220EC-SIZE-OVERFLOW
69221prog; ; 10
69222
69223
69224" | \
69225  $at_diff - "$at_stdout" || at_failed=:
69226at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6234"
69227$at_failed && at_fn_log_failure
69228$at_traceon; }
69229
69230  set +x
69231  $at_times_p && times >"$at_times_file"
69232) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69233read at_status <"$at_status_file"
69234#AT_STOP_681
69235#AT_START_682
69236at_fn_group_banner 682 'run_misc.at:6246' \
69237  "void PROCEDURE" "                                 " 4
69238at_xfail=no
69239(
69240  $as_echo "682. $at_setup_line: testing $at_desc ..."
69241  $at_traceon
69242
69243
69244
69245cat >callee.cob <<'_ATEOF'
69246
69247       IDENTIFICATION   DIVISION.
69248       PROGRAM-ID.      callee.
69249       DATA             DIVISION.
69250       PROCEDURE        DIVISION RETURNING OMITTED.
69251           MOVE 42 TO RETURN-CODE
69252           EXIT PROGRAM.
69253_ATEOF
69254
69255
69256cat >caller.cob <<'_ATEOF'
69257
69258       IDENTIFICATION   DIVISION.
69259       PROGRAM-ID.      caller.
69260       PROCEDURE        DIVISION.
69261           CALL "callee" RETURNING OMITTED
69262           END-CALL.
69263           DISPLAY RETURN-CODE WITH NO ADVANCING
69264           STOP RUN.
69265_ATEOF
69266
69267
69268{ set +x
69269$as_echo "$at_srcdir/run_misc.at:6268: \$COMPILE_MODULE callee.cob"
69270at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6268"
69271( $at_check_trace; $COMPILE_MODULE callee.cob
69272) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69273at_status=$? at_failed=false
69274$at_check_filter
69275at_fn_diff_devnull "$at_stderr" || at_failed=:
69276at_fn_diff_devnull "$at_stdout" || at_failed=:
69277at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6268"
69278$at_failed && at_fn_log_failure
69279$at_traceon; }
69280
69281{ set +x
69282$as_echo "$at_srcdir/run_misc.at:6269: \$COMPILE caller.cob"
69283at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6269"
69284( $at_check_trace; $COMPILE caller.cob
69285) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69286at_status=$? at_failed=false
69287$at_check_filter
69288at_fn_diff_devnull "$at_stderr" || at_failed=:
69289at_fn_diff_devnull "$at_stdout" || at_failed=:
69290at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6269"
69291$at_failed && at_fn_log_failure
69292$at_traceon; }
69293
69294{ set +x
69295$as_echo "$at_srcdir/run_misc.at:6270: \$COBCRUN_DIRECT ./caller"
69296at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6270"
69297( $at_check_trace; $COBCRUN_DIRECT ./caller
69298) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69299at_status=$? at_failed=false
69300$at_check_filter
69301at_fn_diff_devnull "$at_stderr" || at_failed=:
69302echo >>"$at_stdout"; $as_echo "+000000000" | \
69303  $at_diff - "$at_stdout" || at_failed=:
69304at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6270"
69305$at_failed && at_fn_log_failure
69306$at_traceon; }
69307
69308
69309  set +x
69310  $at_times_p && times >"$at_times_file"
69311) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69312read at_status <"$at_status_file"
69313#AT_STOP_682
69314#AT_START_683
69315at_fn_group_banner 683 'run_misc.at:6275' \
69316  "Figurative constants to numeric field" "          " 4
69317at_xfail=no
69318(
69319  $as_echo "683. $at_setup_line: testing $at_desc ..."
69320  $at_traceon
69321
69322
69323
69324cat >prog.cob <<'_ATEOF'
69325
69326       IDENTIFICATION DIVISION.
69327       PROGRAM-ID. prog.
69328       DATA  DIVISION.
69329       WORKING-STORAGE SECTION.
69330       01  NUM9    PIC 9(6).
69331       PROCEDURE DIVISION.
69332           MOVE SPACES TO NUM9
69333           DISPLAY "NUM9 value SPACES is " NUM9 "." UPON SYSOUT
69334           MOVE LOW-VALUES TO NUM9
69335           IF NUM9 = LOW-VALUES
69336              DISPLAY "9(6) tests OK for LOW-VALUES" UPON SYSOUT
69337           ELSE
69338              DISPLAY "9(6) Does NOT test OK for LOW-VALUES"
69339                 UPON SYSOUT
69340              IF NUM9 = ZERO
69341                 DISPLAY "9(6) tests as ZERO instead of LOW-VALUES"
69342                    UPON SYSOUT
69343              END-IF
69344           END-IF.
69345           MOVE HIGH-VALUES TO NUM9
69346           IF NUM9 = HIGH-VALUES
69347              DISPLAY "9(6) tests OK for HIGH-VALUES" UPON SYSOUT
69348           ELSE
69349              DISPLAY "9(6) Does NOT test OK for HIGH-VALUES"
69350                 UPON SYSOUT
69351              IF NUM9 = ZERO
69352                 DISPLAY "9(6) tests as ZERO instead of HIGH-VALUES"
69353                    UPON SYSOUT
69354              END-IF
69355           END-IF.
69356           STOP RUN.
69357_ATEOF
69358
69359
69360{ set +x
69361$as_echo "$at_srcdir/run_misc.at:6312: \$COMPILE -std=mf prog.cob"
69362at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_misc.at:6312"
69363( $at_check_trace; $COMPILE -std=mf prog.cob
69364) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69365at_status=$? at_failed=false
69366$at_check_filter
69367echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: source is non-numeric - substituting zero
69368prog.cob:10: warning: source is non-numeric - substituting zero
69369prog.cob:21: warning: source is non-numeric - substituting zero
69370" | \
69371  $at_diff - "$at_stderr" || at_failed=:
69372at_fn_diff_devnull "$at_stdout" || at_failed=:
69373at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6312"
69374$at_failed && at_fn_log_failure
69375$at_traceon; }
69376
69377
69378{ set +x
69379$as_echo "$at_srcdir/run_misc.at:6318: \$COBCRUN_DIRECT ./prog"
69380at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6318"
69381( $at_check_trace; $COBCRUN_DIRECT ./prog
69382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69383at_status=$? at_failed=false
69384$at_check_filter
69385at_fn_diff_devnull "$at_stderr" || at_failed=:
69386echo >>"$at_stdout"; $as_echo "NUM9 value SPACES is 000000.
693879(6) Does NOT test OK for LOW-VALUES
693889(6) tests as ZERO instead of LOW-VALUES
693899(6) Does NOT test OK for HIGH-VALUES
693909(6) tests as ZERO instead of HIGH-VALUES
69391" | \
69392  $at_diff - "$at_stdout" || at_failed=:
69393at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6318"
69394$at_failed && at_fn_log_failure
69395$at_traceon; }
69396
69397
69398{ set +x
69399$as_echo "$at_srcdir/run_misc.at:6326: \$COMPILE -std=acu prog.cob -o aprog"
69400at_fn_check_prepare_dynamic "$COMPILE -std=acu prog.cob -o aprog" "run_misc.at:6326"
69401( $at_check_trace; $COMPILE -std=acu prog.cob -o aprog
69402) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69403at_status=$? at_failed=false
69404$at_check_filter
69405at_fn_diff_devnull "$at_stderr" || at_failed=:
69406at_fn_diff_devnull "$at_stdout" || at_failed=:
69407at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6326"
69408$at_failed && at_fn_log_failure
69409$at_traceon; }
69410
69411
69412{ set +x
69413$as_echo "$at_srcdir/run_misc.at:6328: \$COBCRUN_DIRECT ./aprog"
69414at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./aprog" "run_misc.at:6328"
69415( $at_check_trace; $COBCRUN_DIRECT ./aprog
69416) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69417at_status=$? at_failed=false
69418$at_check_filter
69419at_fn_diff_devnull "$at_stderr" || at_failed=:
69420echo >>"$at_stdout"; $as_echo "NUM9 value SPACES is       .
694219(6) tests OK for LOW-VALUES
694229(6) tests OK for HIGH-VALUES
69423" | \
69424  $at_diff - "$at_stdout" || at_failed=:
69425at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6328"
69426$at_failed && at_fn_log_failure
69427$at_traceon; }
69428
69429
69430  set +x
69431  $at_times_p && times >"$at_times_file"
69432) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69433read at_status <"$at_status_file"
69434#AT_STOP_683
69435#AT_START_684
69436at_fn_group_banner 684 'run_misc.at:6337' \
69437  "MF FIGURATIVE to NUMERIC" "                       " 4
69438at_xfail=no
69439(
69440  $as_echo "684. $at_setup_line: testing $at_desc ..."
69441  $at_traceon
69442
69443
69444
69445# FIXME: This test will NOT work on EBCDIC machines,
69446#        either add it explicit here and split into two or add
69447#        a pre-test and check the expected "native" result
69448
69449cat >prog.cob <<'_ATEOF'
69450
69451       IDENTIFICATION   DIVISION.
69452       PROGRAM-ID. prog.
69453       DATA             DIVISION.
69454       WORKING-STORAGE  SECTION.
69455       01  MYFLD        PIC 9(4) VALUE 96.
69456       01  BIGFLT       COMP-1 VALUE 543.12345E10.
69457       PROCEDURE        DIVISION.
69458       MAIN-1.
69459           DISPLAY "Initial value"
69460           PERFORM SHOW-IT.
69461           DISPLAY "MOVE BIGFLT"
69462           MOVE BIGFLT TO MYFLD.
69463           PERFORM SHOW-IT.
69464           DISPLAY "MOVE SPACES"
69465           MOVE SPACES TO MYFLD.
69466           PERFORM SHOW-IT.
69467           DISPLAY "MOVE LOW-VALUES"
69468           MOVE LOW-VALUES TO MYFLD.
69469           PERFORM SHOW-IT.
69470           DISPLAY "MOVE HIGH-VALUES"
69471           MOVE HIGH-VALUES TO MYFLD.
69472           PERFORM SHOW-IT.
69473           DISPLAY "MOVE QUOTE"
69474           MOVE QUOTE TO MYFLD.
69475           PERFORM SHOW-IT.
69476           DISPLAY "MOVE ALL *"
69477           MOVE ALL '*' TO MYFLD.
69478           PERFORM SHOW-IT.
69479           DISPLAY "MOVE ALL 0"
69480           MOVE ALL '0' TO MYFLD.
69481           PERFORM SHOW-IT.
69482           DISPLAY "MOVE ALL 'A1'"
69483           MOVE ALL 'A1' TO MYFLD.
69484           PERFORM SHOW-IT.
69485           DISPLAY "MOVE ALL '21'"
69486           MOVE ALL '21' TO MYFLD.
69487           PERFORM SHOW-IT.
69488           DISPLAY "MOVE HIGH-VALUES TO (1:)"
69489           MOVE HIGH-VALUES TO MYFLD (1:).
69490           PERFORM SHOW-IT.
69491
69492           DISPLAY "MOVE HIGH-VALUES TO BIGFLT"
69493           MOVE HIGH-VALUES TO BIGFLT.
69494           PERFORM SHOW-BIG.
69495           CALL "dump" USING BIGFLT.
69496           DISPLAY "MOVE QUOTE TO BIGFLT"
69497           MOVE QUOTE TO BIGFLT.
69498           PERFORM SHOW-BIG.
69499           CALL "dump" USING BIGFLT.
69500           DISPLAY "MOVE ALL * TO BIGFLT"
69501           MOVE ALL '*' TO BIGFLT.
69502           PERFORM SHOW-BIG.
69503      *>   Note: the next results are dependant on endianess
69504      *>         therefore no dump here
69505           DISPLAY "MOVE ALL '21' TO BIGFLT"
69506           MOVE ALL '21' TO BIGFLT.
69507           PERFORM SHOW-BIG.
69508           STOP RUN.
69509       SHOW-IT.
69510           CALL "dump" USING MYFLD.
69511       SHOW-BIG.
69512           DISPLAY "BIGFLT is " BIGFLT.
69513_ATEOF
69514
69515
69516cat >cmod.c <<'_ATEOF'
69517
69518#include <stdio.h>
69519#include <libcob.h>
69520
69521COB_EXT_EXPORT int
69522dump (unsigned char *data)
69523{
69524  int i;
69525  for (i = 0; i < 4; i++)
69526    printf ("%02X", data[i]);
69527  puts (" .");
69528  return 0;
69529}
69530_ATEOF
69531
69532
69533{ set +x
69534$as_echo "$at_srcdir/run_misc.at:6424: \$COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c"
69535at_fn_check_prepare_dynamic "$COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c" "run_misc.at:6424"
69536( $at_check_trace; $COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c
69537) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69538at_status=$? at_failed=false
69539$at_check_filter
69540echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
69541prog.cob:28: warning: numeric value is expected
69542prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
69543prog.cob:34: warning: numeric value is expected
69544prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
69545prog.cob:52: warning: numeric value is expected
69546prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
69547" | \
69548  $at_diff - "$at_stderr" || at_failed=:
69549at_fn_diff_devnull "$at_stdout" || at_failed=:
69550at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6424"
69551$at_failed && at_fn_log_failure
69552$at_traceon; }
69553
69554
69555{ set +x
69556$as_echo "$at_srcdir/run_misc.at:6434: \$COBCRUN_DIRECT ./prog"
69557at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6434"
69558( $at_check_trace; $COBCRUN_DIRECT ./prog
69559) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69560at_status=$? at_failed=false
69561$at_check_filter
69562at_fn_diff_devnull "$at_stderr" || at_failed=:
69563echo >>"$at_stdout"; $as_echo "Initial value
6956430303936 .
69565MOVE BIGFLT
6956638333034 .
69567MOVE SPACES
6956820202020 .
69569MOVE LOW-VALUES
6957000000000 .
69571MOVE HIGH-VALUES
69572FFFFFFFF .
69573MOVE QUOTE
6957422222222 .
69575MOVE ALL *
695762A2A2A2A .
69577MOVE ALL 0
6957830303030 .
69579MOVE ALL 'A1'
6958041314131 .
69581MOVE ALL '21'
6958232313231 .
69583MOVE HIGH-VALUES TO (1:)
69584FFFFFFFF .
69585MOVE HIGH-VALUES TO BIGFLT
69586BIGFLT is NaN
69587FFFFFFFF .
69588MOVE QUOTE TO BIGFLT
69589BIGFLT is 2.1973164E-18
6959022222222 .
69591MOVE ALL * TO BIGFLT
69592BIGFLT is 5.4312347E+12
69593MOVE ALL '21' TO BIGFLT
69594BIGFLT is 2.1212121E+37
69595" | \
69596  $at_diff - "$at_stdout" || at_failed=:
69597at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6434"
69598$at_failed && at_fn_log_failure
69599$at_traceon; }
69600
69601
69602  set +x
69603  $at_times_p && times >"$at_times_file"
69604) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69605read at_status <"$at_status_file"
69606#AT_STOP_684
69607#AT_START_685
69608at_fn_group_banner 685 'run_misc.at:6472' \
69609  "CALL RETURNING" "                                 " 4
69610at_xfail=no
69611(
69612  $as_echo "685. $at_setup_line: testing $at_desc ..."
69613  $at_traceon
69614
69615
69616
69617cat >callee.cob <<'_ATEOF'
69618
69619       IDENTIFICATION   DIVISION.
69620       PROGRAM-ID.      callee.
69621       PROCEDURE        DIVISION.
69622           MOVE 43 TO RETURN-CODE
69623           EXIT PROGRAM.
69624_ATEOF
69625
69626
69627cat >caller.cob <<'_ATEOF'
69628
69629       IDENTIFICATION   DIVISION.
69630       PROGRAM-ID.      caller.
69631       DATA             DIVISION.
69632       WORKING-STORAGE  SECTION.
69633       77 my-display-return   PIC 99.
69634       77 my-binary-return    USAGE BINARY-LONG.
69635       PROCEDURE        DIVISION.
69636           CALL "callee" RETURNING my-display-return
69637           END-CALL
69638           IF RETURN-CODE NOT = 0
69639              DISPLAY '1 - unexpected RETURN-CODE: ' RETURN-CODE.
69640           IF my-display-return NOT = 43
69641              DISPLAY '1- unexpected RETURNING: ' my-display-return.
69642      *>
69643           STOP RUN.
69644_ATEOF
69645
69646
69647{ set +x
69648$as_echo "$at_srcdir/run_misc.at:6501: \$COMPILE -static caller.cob callee.cob -o prog"
69649at_fn_check_prepare_dynamic "$COMPILE -static caller.cob callee.cob -o prog" "run_misc.at:6501"
69650( $at_check_trace; $COMPILE -static caller.cob callee.cob -o prog
69651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69652at_status=$? at_failed=false
69653$at_check_filter
69654at_fn_diff_devnull "$at_stderr" || at_failed=:
69655at_fn_diff_devnull "$at_stdout" || at_failed=:
69656at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6501"
69657$at_failed && at_fn_log_failure
69658$at_traceon; }
69659
69660#AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
69661{ set +x
69662$as_echo "$at_srcdir/run_misc.at:6503: \$COMPILE_MODULE callee.cob"
69663at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6503"
69664( $at_check_trace; $COMPILE_MODULE callee.cob
69665) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69666at_status=$? at_failed=false
69667$at_check_filter
69668at_fn_diff_devnull "$at_stderr" || at_failed=:
69669at_fn_diff_devnull "$at_stdout" || at_failed=:
69670at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6503"
69671$at_failed && at_fn_log_failure
69672$at_traceon; }
69673
69674{ set +x
69675$as_echo "$at_srcdir/run_misc.at:6504: \$COMPILE caller.cob"
69676at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6504"
69677( $at_check_trace; $COMPILE caller.cob
69678) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69679at_status=$? at_failed=false
69680$at_check_filter
69681at_fn_diff_devnull "$at_stderr" || at_failed=:
69682at_fn_diff_devnull "$at_stdout" || at_failed=:
69683at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6504"
69684$at_failed && at_fn_log_failure
69685$at_traceon; }
69686
69687{ set +x
69688$as_echo "$at_srcdir/run_misc.at:6505: \$COBCRUN_DIRECT ./caller"
69689at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6505"
69690( $at_check_trace; $COBCRUN_DIRECT ./caller
69691) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69692at_status=$? at_failed=false
69693$at_check_filter
69694at_fn_diff_devnull "$at_stderr" || at_failed=:
69695at_fn_diff_devnull "$at_stdout" || at_failed=:
69696at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6505"
69697$at_failed && at_fn_log_failure
69698$at_traceon; }
69699
69700
69701  set +x
69702  $at_times_p && times >"$at_times_file"
69703) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69704read at_status <"$at_status_file"
69705#AT_STOP_685
69706#AT_START_686
69707at_fn_group_banner 686 'run_misc.at:6511' \
69708  "void PROCEDURE, NOTHING return" "                 " 4
69709at_xfail=no
69710(
69711  $as_echo "686. $at_setup_line: testing $at_desc ..."
69712  $at_traceon
69713
69714
69715
69716cat >callee.cob <<'_ATEOF'
69717
69718       IDENTIFICATION   DIVISION.
69719       PROGRAM-ID.      callee.
69720       DATA             DIVISION.
69721       PROCEDURE        DIVISION RETURNING OMITTED.
69722           MOVE 43 TO RETURN-CODE
69723           EXIT PROGRAM.
69724_ATEOF
69725
69726
69727cat >caller.cob <<'_ATEOF'
69728
69729       IDENTIFICATION   DIVISION.
69730       PROGRAM-ID.      caller.
69731       PROCEDURE        DIVISION.
69732           MOVE 42 TO RETURN-CODE
69733           CALL "callee" RETURNING NOTHING
69734           END-CALL.
69735           IF RETURN-CODE NOT = 42
69736              DISPLAY 'unexpected RETURN-CODE: ' RETURN-CODE.
69737           STOP RUN.
69738_ATEOF
69739
69740
69741{ set +x
69742$as_echo "$at_srcdir/run_misc.at:6535: \$COMPILE -static caller.cob callee.cob -o prog"
69743at_fn_check_prepare_dynamic "$COMPILE -static caller.cob callee.cob -o prog" "run_misc.at:6535"
69744( $at_check_trace; $COMPILE -static caller.cob callee.cob -o prog
69745) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69746at_status=$? at_failed=false
69747$at_check_filter
69748at_fn_diff_devnull "$at_stderr" || at_failed=:
69749at_fn_diff_devnull "$at_stdout" || at_failed=:
69750at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6535"
69751$at_failed && at_fn_log_failure
69752$at_traceon; }
69753
69754{ set +x
69755$as_echo "$at_srcdir/run_misc.at:6536: \$COBCRUN_DIRECT ./prog"
69756at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6536"
69757( $at_check_trace; $COBCRUN_DIRECT ./prog
69758) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69759at_status=$? at_failed=false
69760$at_check_filter
69761at_fn_diff_devnull "$at_stderr" || at_failed=:
69762at_fn_diff_devnull "$at_stdout" || at_failed=:
69763at_fn_check_status 42 $at_status "$at_srcdir/run_misc.at:6536"
69764$at_failed && at_fn_log_failure
69765$at_traceon; }
69766
69767{ set +x
69768$as_echo "$at_srcdir/run_misc.at:6537: \$COMPILE_MODULE callee.cob"
69769at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6537"
69770( $at_check_trace; $COMPILE_MODULE callee.cob
69771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69772at_status=$? at_failed=false
69773$at_check_filter
69774at_fn_diff_devnull "$at_stderr" || at_failed=:
69775at_fn_diff_devnull "$at_stdout" || at_failed=:
69776at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6537"
69777$at_failed && at_fn_log_failure
69778$at_traceon; }
69779
69780{ set +x
69781$as_echo "$at_srcdir/run_misc.at:6538: \$COMPILE caller.cob"
69782at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6538"
69783( $at_check_trace; $COMPILE caller.cob
69784) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69785at_status=$? at_failed=false
69786$at_check_filter
69787at_fn_diff_devnull "$at_stderr" || at_failed=:
69788at_fn_diff_devnull "$at_stdout" || at_failed=:
69789at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6538"
69790$at_failed && at_fn_log_failure
69791$at_traceon; }
69792
69793{ set +x
69794$as_echo "$at_srcdir/run_misc.at:6539: \$COBCRUN_DIRECT ./caller"
69795at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6539"
69796( $at_check_trace; $COBCRUN_DIRECT ./caller
69797) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69798at_status=$? at_failed=false
69799$at_check_filter
69800at_fn_diff_devnull "$at_stderr" || at_failed=:
69801at_fn_diff_devnull "$at_stdout" || at_failed=:
69802at_fn_check_status 42 $at_status "$at_srcdir/run_misc.at:6539"
69803$at_failed && at_fn_log_failure
69804$at_traceon; }
69805
69806
69807  set +x
69808  $at_times_p && times >"$at_times_file"
69809) 5>&1 2>&1 7>&- | eval $at_tee_pipe
69810read at_status <"$at_status_file"
69811#AT_STOP_686
69812#AT_START_687
69813at_fn_group_banner 687 'run_misc.at:6546' \
69814  "READY TRACE / RESET TRACE" "                      " 4
69815at_xfail=no
69816(
69817  $as_echo "687. $at_setup_line: testing $at_desc ..."
69818  $at_traceon
69819
69820
69821
69822cat >caller.cob <<'_ATEOF'
69823
69824       IDENTIFICATION   DIVISION.
69825       PROGRAM-ID.      caller.
69826      *
69827       PROCEDURE        DIVISION.
69828           READY TRACE
69829           MOVE 1 TO RETURN-CODE
69830           RESET TRACE
69831           CALL "callee1"
69832           END-CALL
69833           READY TRACE
69834           MOVE 2 TO RETURN-CODE
69835           CALL "callee1"
69836           END-CALL
69837           CALL "callee1"
69838           CANCEL "callee1"
69839           CALL "callrec"
69840           MOVE 0 TO RETURN-CODE
69841           STOP RUN.
69842_ATEOF
69843
69844
69845cat >callee1.cob <<'_ATEOF'
69846
69847       IDENTIFICATION   DIVISION.
69848       PROGRAM-ID.      callee1.
69849       PROCEDURE        DIVISION.
69850           ADD 1 TO RETURN-CODE
69851             NOT ON SIZE ERROR
69852               IF RETURN-CODE = 1
69853                 CONTINUE
69854               ELSE IF RETURN-CODE = 2
69855                 CONTINUE
69856               ELSE
69857                 CONTINUE
69858           .
69859           EVALUATE RETURN-CODE
69860           WHEN 1
69861             CONTINUE
69862           WHEN 2
69863           WHEN 3
69864             CONTINUE
69865           WHEN OTHER
69866             CONTINUE
69867           END-EVALUATE
69868           EVALUATE TRUE
69869           WHEN RETURN-CODE = 1
69870             CONTINUE
69871           WHEN RETURN-CODE = 2
69872           WHEN RETURN-CODE = 3
69873             CONTINUE
69874           WHEN OTHER
69875             CONTINUE
69876           END-EVALUATE
69877           CALL "callee2"  END-CALL
69878           CANCEL "callee2"  CALL "callee2b" END-CALL  CANCEL "callee2b"
69879           SUBTRACT 1 FROM RETURN-CODE END-SUBTRACT
69880           EXIT PROGRAM.
69881_ATEOF
69882
69883
69884cat >callee2.cob <<'_ATEOF'
69885
69886       IDENTIFICATION   DIVISION.
69887       PROGRAM-ID.      callee2.
69888       PROCEDURE        DIVISION.
69889           COMPUTE RETURN-CODE
69890                 = 1 + 1
69891              ON SIZE ERROR
69892                 MOVE -1 TO RETURN-CODE
69893              NOT ON SIZE ERROR
69894                 COMPUTE RETURN-CODE
69895                       = 1 + 1
69896                 END-COMPUTE
69897           END-COMPUTE.
69898           CALL "callee2c" END-CALL
69899           CANCEL "callee2c"
69900           MOVE 0 TO RETURN-CODE.
69901           EXIT PROGRAM.
69902_ATEOF
69903
69904
69905cat >preload.cob <<'_ATEOF'
69906
69907       IDENTIFICATION   DIVISION.
69908       PROGRAM-ID.      callee2b.
69909       PROCEDURE        DIVISION.
69910       SOME-SEC SECTION.
69911       SOME-PAR.
69912           PERFORM OTHER-SEC
69913           MOVE 0 TO RETURN-CODE.
69914       ENTRY "LEAVE-ME".
69915       END-PAR.
69916           EXIT PROGRAM.
69917       OTHER-SEC SECTION.
69918           COMPUTE RETURN-CODE = 1 + 2 END-COMPUTE.
69919       EX. EXIT.
69920_ATEOF
69921
69922
69923cat >preload2.cob <<'_ATEOF'
69924
69925       IDENTIFICATION   DIVISION.
69926       PROGRAM-ID.      callrec IS RECURSIVE.
69927       DATA             DIVISION.
69928       WORKING-STORAGE  SECTION.
69929       01 filler        PIC 9 VALUE 0.
69930          88 first-call VALUE 0.
69931          88 called     VALUE 1.
69932       PROCEDURE        DIVISION.
69933       SOME-SEC SECTION.
69934           IF first-call
69935              SET called TO TRUE
69936              CALL 'callrec'
69937           END-IF
69938           GOBACK.
69939_ATEOF
69940
69941
69942cat >callee2c.cob <<'_ATEOF'
69943
69944       IDENTIFICATION   DIVISION.
69945       PROGRAM-ID.      callee2c.
69946       PROCEDURE        DIVISION.
69947       SOME-SEC SECTION.
69948       SOME-PAR.
69949           PERFORM OTHER-SEC
69950           MOVE 0 TO RETURN-CODE.
69951       END-PAR.
69952           EXIT PROGRAM.
69953       OTHER-SEC SECTION.
69954           COMPUTE RETURN-CODE = 1 + 2 END-COMPUTE.
69955       EX. EXIT.
69956_ATEOF
69957
69958
69959{ set +x
69960$as_echo "$at_srcdir/run_misc.at:6676: COB_OLD_TRACE=y \\
69961\$COBC -ftraceall callee1.cob"
69962at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6676"
69963( $at_check_trace; COB_OLD_TRACE=y \
69964$COBC -ftraceall callee1.cob
69965) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69966at_status=$? at_failed=false
69967$at_check_filter
69968at_fn_diff_devnull "$at_stderr" || at_failed=:
69969at_fn_diff_devnull "$at_stdout" || at_failed=:
69970at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6676"
69971$at_failed && at_fn_log_failure
69972$at_traceon; }
69973
69974{ set +x
69975$as_echo "$at_srcdir/run_misc.at:6678: COB_OLD_TRACE=y \\
69976\$COBC callee2.cob"
69977at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6678"
69978( $at_check_trace; COB_OLD_TRACE=y \
69979$COBC callee2.cob
69980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69981at_status=$? at_failed=false
69982$at_check_filter
69983at_fn_diff_devnull "$at_stderr" || at_failed=:
69984at_fn_diff_devnull "$at_stdout" || at_failed=:
69985at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6678"
69986$at_failed && at_fn_log_failure
69987$at_traceon; }
69988
69989{ set +x
69990$as_echo "$at_srcdir/run_misc.at:6680: COB_OLD_TRACE=y \\
69991\$COBC -ftrace preload.cob"
69992at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6680"
69993( $at_check_trace; COB_OLD_TRACE=y \
69994$COBC -ftrace preload.cob
69995) >>"$at_stdout" 2>>"$at_stderr" 5>&-
69996at_status=$? at_failed=false
69997$at_check_filter
69998at_fn_diff_devnull "$at_stderr" || at_failed=:
69999at_fn_diff_devnull "$at_stdout" || at_failed=:
70000at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6680"
70001$at_failed && at_fn_log_failure
70002$at_traceon; }
70003
70004{ set +x
70005$as_echo "$at_srcdir/run_misc.at:6682: COB_OLD_TRACE=y \\
70006\$COBC -ftraceall preload2.cob"
70007at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6682"
70008( $at_check_trace; COB_OLD_TRACE=y \
70009$COBC -ftraceall preload2.cob
70010) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70011at_status=$? at_failed=false
70012$at_check_filter
70013at_fn_diff_devnull "$at_stderr" || at_failed=:
70014at_fn_diff_devnull "$at_stdout" || at_failed=:
70015at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6682"
70016$at_failed && at_fn_log_failure
70017$at_traceon; }
70018
70019{ set +x
70020$as_echo "$at_srcdir/run_misc.at:6684: COB_OLD_TRACE=y \\
70021\$COBC -fsource-location callee2c.cob"
70022at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6684"
70023( $at_check_trace; COB_OLD_TRACE=y \
70024$COBC -fsource-location callee2c.cob
70025) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70026at_status=$? at_failed=false
70027$at_check_filter
70028at_fn_diff_devnull "$at_stderr" || at_failed=:
70029at_fn_diff_devnull "$at_stdout" || at_failed=:
70030at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6684"
70031$at_failed && at_fn_log_failure
70032$at_traceon; }
70033
70034{ set +x
70035$as_echo "$at_srcdir/run_misc.at:6686: COB_OLD_TRACE=y \\
70036\$COBC -x -o prog -ftraceall caller.cob"
70037at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6686"
70038( $at_check_trace; COB_OLD_TRACE=y \
70039$COBC -x -o prog -ftraceall caller.cob
70040) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70041at_status=$? at_failed=false
70042$at_check_filter
70043at_fn_diff_devnull "$at_stderr" || at_failed=:
70044at_fn_diff_devnull "$at_stdout" || at_failed=:
70045at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6686"
70046$at_failed && at_fn_log_failure
70047$at_traceon; }
70048
70049{ set +x
70050$as_echo "$at_srcdir/run_misc.at:6688: COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"\$PATHSEP\"preload2\" \$COBCRUN_DIRECT ./prog"
70051at_fn_check_prepare_dynamic "COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"$PATHSEP\"preload2\" $COBCRUN_DIRECT ./prog" "run_misc.at:6688"
70052( $at_check_trace; COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD="preload"$PATHSEP"preload2" $COBCRUN_DIRECT ./prog
70053) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70054at_status=$? at_failed=false
70055$at_check_filter
70056echo >>"$at_stderr"; $as_echo "Source :    'caller.cob'
70057Program-Id: caller           Statement: MOVE                   Line: 7
70058Program-Id: caller           Statement: RESET TRACE            Line: 8
70059Program-Id: caller           Statement: MOVE                   Line: 12
70060Program-Id: caller           Statement: CALL                   Line: 13
70061Source:     'callee1.cob'
70062Program-Id: callee1          Entry:     callee1                Line: 4
70063Program-Id: callee1          Section:   (None)                 Line: 5
70064Program-Id: callee1          Paragraph: (None)                 Line: 5
70065Program-Id: callee1          Statement: ADD                    Line: 5
70066Program-Id: callee1          Statement: IF                     Line: 7
70067Program-Id: callee1          Statement: IF                     Line: 9
70068Program-Id: callee1          Statement: CONTINUE               Line: 12
70069Program-Id: callee1          Statement: EVALUATE               Line: 14
70070Program-Id: callee1          Statement: WHEN                   Line: 15
70071Program-Id: callee1          Statement: CONTINUE               Line: 21
70072Program-Id: callee1          Statement: EVALUATE               Line: 23
70073Program-Id: callee1          Statement: WHEN                   Line: 24
70074Program-Id: callee1          Statement: WHEN                   Line: 27
70075Program-Id: callee1          Statement: CONTINUE               Line: 30
70076Program-Id: callee1          Statement: CALL                   Line: 32
70077Source :    'callee2c.cob'
70078Program-Id: callee2c         Statement: PERFORM                Line: 7
70079Program-Id: callee2c         Statement: COMPUTE                Line: 12
70080Program-Id: callee2c         Statement: EXIT                   Line: 13
70081Program-Id: callee2c         Statement: MOVE                   Line: 8
70082Program-Id: callee2c         Statement: EXIT PROGRAM           Line: 10
70083Source :    'callee1.cob'
70084Program-Id: callee1          Statement: CANCEL                 Line: 33
70085Program-Id: callee1          Statement: CALL                   Line: 33
70086Source:     'preload.cob'
70087Program-Id: callee2b         Entry:     callee2b               Line: 4
70088Program-Id: callee2b         Section:   SOME-SEC               Line: 5
70089Program-Id: callee2b         Paragraph: SOME-PAR               Line: 6
70090Program-Id: callee2b         Section:   OTHER-SEC              Line: 12
70091Program-Id: callee2b         Paragraph: (None)                 Line: 12
70092Program-Id: callee2b         Paragraph: EX                     Line: 14
70093Program-Id: callee2b         Entry:     LEAVE-ME               Line: 9
70094Program-Id: callee2b         Paragraph: END-PAR                Line: 10
70095Program-Id: callee2b         Exit:      callee2b
70096Source :    'callee1.cob'
70097Program-Id: callee1          Statement: CANCEL                 Line: 33
70098Program-Id: callee1          Statement: SUBTRACT               Line: 34
70099Program-Id: callee1          Statement: EXIT PROGRAM           Line: 35
70100Program-Id: callee1          Exit:      callee1
70101Source :    'caller.cob'
70102Program-Id: caller           Statement: CALL                   Line: 15
70103Source:     'callee1.cob'
70104Program-Id: callee1          Entry:     callee1                Line: 4
70105Program-Id: callee1          Section:   (None)                 Line: 5
70106Program-Id: callee1          Paragraph: (None)                 Line: 5
70107Program-Id: callee1          Statement: ADD                    Line: 5
70108Program-Id: callee1          Statement: IF                     Line: 7
70109Program-Id: callee1          Statement: IF                     Line: 9
70110Program-Id: callee1          Statement: CONTINUE               Line: 12
70111Program-Id: callee1          Statement: EVALUATE               Line: 14
70112Program-Id: callee1          Statement: WHEN                   Line: 15
70113Program-Id: callee1          Statement: CONTINUE               Line: 21
70114Program-Id: callee1          Statement: EVALUATE               Line: 23
70115Program-Id: callee1          Statement: WHEN                   Line: 24
70116Program-Id: callee1          Statement: WHEN                   Line: 27
70117Program-Id: callee1          Statement: CONTINUE               Line: 30
70118Program-Id: callee1          Statement: CALL                   Line: 32
70119Source :    'callee2c.cob'
70120Program-Id: callee2c         Statement: PERFORM                Line: 7
70121Program-Id: callee2c         Statement: COMPUTE                Line: 12
70122Program-Id: callee2c         Statement: EXIT                   Line: 13
70123Program-Id: callee2c         Statement: MOVE                   Line: 8
70124Program-Id: callee2c         Statement: EXIT PROGRAM           Line: 10
70125Source :    'callee1.cob'
70126Program-Id: callee1          Statement: CANCEL                 Line: 33
70127Program-Id: callee1          Statement: CALL                   Line: 33
70128Source:     'preload.cob'
70129Program-Id: callee2b         Entry:     callee2b               Line: 4
70130Program-Id: callee2b         Section:   SOME-SEC               Line: 5
70131Program-Id: callee2b         Paragraph: SOME-PAR               Line: 6
70132Program-Id: callee2b         Section:   OTHER-SEC              Line: 12
70133Program-Id: callee2b         Paragraph: (None)                 Line: 12
70134Program-Id: callee2b         Paragraph: EX                     Line: 14
70135Program-Id: callee2b         Entry:     LEAVE-ME               Line: 9
70136Program-Id: callee2b         Paragraph: END-PAR                Line: 10
70137Program-Id: callee2b         Exit:      callee2b
70138Source :    'callee1.cob'
70139Program-Id: callee1          Statement: CANCEL                 Line: 33
70140Program-Id: callee1          Statement: SUBTRACT               Line: 34
70141Program-Id: callee1          Statement: EXIT PROGRAM           Line: 35
70142Program-Id: callee1          Exit:      callee1
70143Source :    'caller.cob'
70144Program-Id: caller           Statement: CANCEL                 Line: 16
70145Program-Id: caller           Statement: CALL                   Line: 17
70146Source:     'preload2.cob'
70147Program-Id: callrec          Entry:     callrec                Line: 9
70148Program-Id: callrec          Section:   SOME-SEC               Line: 10
70149Program-Id: callrec          Paragraph: (None)                 Line: 10
70150Program-Id: callrec          Statement: IF                     Line: 11
70151Program-Id: callrec          Statement: SET                    Line: 12
70152Program-Id: callrec          Statement: CALL                   Line: 13
70153Program-Id: callrec          Entry:     callrec                Line: 9
70154Program-Id: callrec          Section:   SOME-SEC               Line: 10
70155Program-Id: callrec          Paragraph: (None)                 Line: 10
70156Program-Id: callrec          Statement: IF                     Line: 11
70157Program-Id: callrec          Statement: GOBACK                 Line: 15
70158Program-Id: callrec          Exit:      callrec
70159Program-Id: callrec          Statement: GOBACK                 Line: 15
70160Program-Id: callrec          Exit:      callrec
70161Source :    'caller.cob'
70162Program-Id: caller           Statement: MOVE                   Line: 18
70163Program-Id: caller           Statement: STOP RUN               Line: 19
70164" | \
70165  $at_diff - "$at_stderr" || at_failed=:
70166at_fn_diff_devnull "$at_stdout" || at_failed=:
70167at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6688"
70168$at_failed && at_fn_log_failure
70169$at_traceon; }
70170
70171
70172{ set +x
70173$as_echo "$at_srcdir/run_misc.at:6799: \$COBC -ftraceall callee1.cob"
70174at_fn_check_prepare_dynamic "$COBC -ftraceall callee1.cob" "run_misc.at:6799"
70175( $at_check_trace; $COBC -ftraceall callee1.cob
70176) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70177at_status=$? at_failed=false
70178$at_check_filter
70179at_fn_diff_devnull "$at_stderr" || at_failed=:
70180at_fn_diff_devnull "$at_stdout" || at_failed=:
70181at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6799"
70182$at_failed && at_fn_log_failure
70183$at_traceon; }
70184
70185{ set +x
70186$as_echo "$at_srcdir/run_misc.at:6800: \$COBC callee2.cob"
70187at_fn_check_prepare_dynamic "$COBC callee2.cob" "run_misc.at:6800"
70188( $at_check_trace; $COBC callee2.cob
70189) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70190at_status=$? at_failed=false
70191$at_check_filter
70192at_fn_diff_devnull "$at_stderr" || at_failed=:
70193at_fn_diff_devnull "$at_stdout" || at_failed=:
70194at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6800"
70195$at_failed && at_fn_log_failure
70196$at_traceon; }
70197
70198{ set +x
70199$as_echo "$at_srcdir/run_misc.at:6801: \$COBC -ftrace preload.cob"
70200at_fn_check_prepare_dynamic "$COBC -ftrace preload.cob" "run_misc.at:6801"
70201( $at_check_trace; $COBC -ftrace preload.cob
70202) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70203at_status=$? at_failed=false
70204$at_check_filter
70205at_fn_diff_devnull "$at_stderr" || at_failed=:
70206at_fn_diff_devnull "$at_stdout" || at_failed=:
70207at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6801"
70208$at_failed && at_fn_log_failure
70209$at_traceon; }
70210
70211{ set +x
70212$as_echo "$at_srcdir/run_misc.at:6802: \$COBC -ftraceall preload2.cob"
70213at_fn_check_prepare_dynamic "$COBC -ftraceall preload2.cob" "run_misc.at:6802"
70214( $at_check_trace; $COBC -ftraceall preload2.cob
70215) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70216at_status=$? at_failed=false
70217$at_check_filter
70218at_fn_diff_devnull "$at_stderr" || at_failed=:
70219at_fn_diff_devnull "$at_stdout" || at_failed=:
70220at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6802"
70221$at_failed && at_fn_log_failure
70222$at_traceon; }
70223
70224{ set +x
70225$as_echo "$at_srcdir/run_misc.at:6803: \$COBC -fsource-location callee2c.cob"
70226at_fn_check_prepare_dynamic "$COBC -fsource-location callee2c.cob" "run_misc.at:6803"
70227( $at_check_trace; $COBC -fsource-location callee2c.cob
70228) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70229at_status=$? at_failed=false
70230$at_check_filter
70231at_fn_diff_devnull "$at_stderr" || at_failed=:
70232at_fn_diff_devnull "$at_stdout" || at_failed=:
70233at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6803"
70234$at_failed && at_fn_log_failure
70235$at_traceon; }
70236
70237{ set +x
70238$as_echo "$at_srcdir/run_misc.at:6804: \$COBC -x -o prog -ftraceall caller.cob"
70239at_fn_check_prepare_dynamic "$COBC -x -o prog -ftraceall caller.cob" "run_misc.at:6804"
70240( $at_check_trace; $COBC -x -o prog -ftraceall caller.cob
70241) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70242at_status=$? at_failed=false
70243$at_check_filter
70244at_fn_diff_devnull "$at_stderr" || at_failed=:
70245at_fn_diff_devnull "$at_stdout" || at_failed=:
70246at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6804"
70247$at_failed && at_fn_log_failure
70248$at_traceon; }
70249
70250{ set +x
70251$as_echo "$at_srcdir/run_misc.at:6805: COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"\$PATHSEP\"preload2\" \$COBCRUN_DIRECT ./prog"
70252at_fn_check_prepare_dynamic "COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"$PATHSEP\"preload2\" $COBCRUN_DIRECT ./prog" "run_misc.at:6805"
70253( $at_check_trace; COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD="preload"$PATHSEP"preload2" $COBCRUN_DIRECT ./prog
70254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70255at_status=$? at_failed=false
70256$at_check_filter
70257echo >>"$at_stderr"; $as_echo "Source: 'caller.cob'
70258Program-Id:  caller
70259Program-Id:  caller                      MOVE                            Line:      7
70260Program-Id:  caller                      RESET TRACE                     Line:      8
70261Program-Id:  caller                      MOVE                            Line:     12
70262Program-Id:  caller                      CALL                            Line:     13
70263Source: 'callee1.cob'
70264Program-Id:  callee1
70265Program-Id:  callee1              Entry: callee1                         Line:      4
70266Program-Id:  callee1                     ADD                             Line:      5
70267Program-Id:  callee1                     IF                              Line:      7
70268Program-Id:  callee1                     IF                              Line:      9
70269Program-Id:  callee1                     CONTINUE                        Line:     12
70270Program-Id:  callee1                     EVALUATE                        Line:     14
70271Program-Id:  callee1                     WHEN                            Line:     15
70272Program-Id:  callee1                     CONTINUE                        Line:     21
70273Program-Id:  callee1                     EVALUATE                        Line:     23
70274Program-Id:  callee1                     WHEN                            Line:     24
70275Program-Id:  callee1                     WHEN                            Line:     27
70276Program-Id:  callee1                     CONTINUE                        Line:     30
70277Program-Id:  callee1                     CALL                            Line:     32
70278Program-Id:  callee1                     CANCEL                          Line:     33
70279Program-Id:  callee1                     CALL                            Line:     33
70280Source: 'preload.cob'
70281Program-Id:  callee2b
70282Program-Id:  callee2b             Entry: callee2b                        Line:      4
70283Program-Id:  callee2b           Section: SOME-SEC                        Line:      5
70284Program-Id:  callee2b         Paragraph: SOME-PAR                        Line:      6
70285Program-Id:  callee2b           Section: OTHER-SEC                       Line:     12
70286Program-Id:  callee2b         Paragraph: EX                              Line:     14
70287Program-Id:  callee2b             Entry: LEAVE-ME                        Line:     14
70288Program-Id:  callee2b         Paragraph: END-PAR                         Line:     10
70289Program-Id:  callee2b              Exit: callee2b                        Line:     10
70290Source: 'callee1.cob'
70291Program-Id:  callee1
70292Program-Id:  callee1                     CANCEL                          Line:     33
70293Program-Id:  callee1                     SUBTRACT                        Line:     34
70294Program-Id:  callee1                     EXIT PROGRAM                    Line:     35
70295Program-Id:  callee1               Exit: callee1                         Line:     35
70296Source: 'caller.cob'
70297Program-Id:  caller
70298Program-Id:  caller                      CALL                            Line:     15
70299Source: 'callee1.cob'
70300Program-Id:  callee1
70301Program-Id:  callee1              Entry: callee1                         Line:      4
70302Program-Id:  callee1                     ADD                             Line:      5
70303Program-Id:  callee1                     IF                              Line:      7
70304Program-Id:  callee1                     IF                              Line:      9
70305Program-Id:  callee1                     CONTINUE                        Line:     12
70306Program-Id:  callee1                     EVALUATE                        Line:     14
70307Program-Id:  callee1                     WHEN                            Line:     15
70308Program-Id:  callee1                     CONTINUE                        Line:     21
70309Program-Id:  callee1                     EVALUATE                        Line:     23
70310Program-Id:  callee1                     WHEN                            Line:     24
70311Program-Id:  callee1                     WHEN                            Line:     27
70312Program-Id:  callee1                     CONTINUE                        Line:     30
70313Program-Id:  callee1                     CALL                            Line:     32
70314Program-Id:  callee1                     CANCEL                          Line:     33
70315Program-Id:  callee1                     CALL                            Line:     33
70316Source: 'preload.cob'
70317Program-Id:  callee2b
70318Program-Id:  callee2b             Entry: callee2b                        Line:      4
70319Program-Id:  callee2b           Section: SOME-SEC                        Line:      5
70320Program-Id:  callee2b         Paragraph: SOME-PAR                        Line:      6
70321Program-Id:  callee2b           Section: OTHER-SEC                       Line:     12
70322Program-Id:  callee2b         Paragraph: EX                              Line:     14
70323Program-Id:  callee2b             Entry: LEAVE-ME                        Line:     14
70324Program-Id:  callee2b         Paragraph: END-PAR                         Line:     10
70325Program-Id:  callee2b              Exit: callee2b                        Line:     10
70326Source: 'callee1.cob'
70327Program-Id:  callee1
70328Program-Id:  callee1                     CANCEL                          Line:     33
70329Program-Id:  callee1                     SUBTRACT                        Line:     34
70330Program-Id:  callee1                     EXIT PROGRAM                    Line:     35
70331Program-Id:  callee1               Exit: callee1                         Line:     35
70332Source: 'caller.cob'
70333Program-Id:  caller
70334Program-Id:  caller                      CANCEL                          Line:     16
70335Program-Id:  caller                      CALL                            Line:     17
70336Source: 'preload2.cob'
70337Program-Id:  callrec
70338Program-Id:  callrec              Entry: callrec                         Line:      9
70339Program-Id:  callrec            Section: SOME-SEC                        Line:     10
70340Program-Id:  callrec                     IF                              Line:     11
70341Program-Id:  callrec                     SET                             Line:     12
70342Program-Id:  callrec                     CALL                            Line:     13
70343Program-Id:  callrec              Entry: callrec                         Line:      9
70344Program-Id:  callrec            Section: SOME-SEC                        Line:     10
70345Program-Id:  callrec                     IF                              Line:     11
70346Program-Id:  callrec                     GOBACK                          Line:     15
70347Program-Id:  callrec               Exit: callrec                         Line:     15
70348Program-Id:  callrec                     GOBACK                          Line:     15
70349Program-Id:  callrec               Exit: callrec                         Line:     15
70350Source: 'caller.cob'
70351Program-Id:  caller
70352Program-Id:  caller                      MOVE                            Line:     18
70353Program-Id:  caller                      STOP RUN                        Line:     19
70354" | \
70355  $at_diff - "$at_stderr" || at_failed=:
70356at_fn_diff_devnull "$at_stdout" || at_failed=:
70357at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6805"
70358$at_failed && at_fn_log_failure
70359$at_traceon; }
70360
70361
70362  set +x
70363  $at_times_p && times >"$at_times_file"
70364) 5>&1 2>&1 7>&- | eval $at_tee_pipe
70365read at_status <"$at_status_file"
70366#AT_STOP_687
70367#AT_START_688
70368at_fn_group_banner 688 'run_misc.at:6908' \
70369  "Trace feature with subroutine" "                  " 4
70370at_xfail=no
70371(
70372  $as_echo "688. $at_setup_line: testing $at_desc ..."
70373  $at_traceon
70374
70375
70376
70377# FIXME: check if the one above is enough and either
70378#        remove this test or exchange by a non-IDX version
70379$as_echo "run_misc.at:6913" >"$at_check_line_file"
70380(test "$COB_HAS_ISAM" = "no") \
70381  && at_fn_check_skip 77 "$at_srcdir/run_misc.at:6913"
70382
70383cat >callsub.cob <<'_ATEOF'
70384
70385       IDENTIFICATION DIVISION.
70386       PROGRAM-ID. callsub.
70387
70388       DATA DIVISION.
70389       WORKING-STORAGE SECTION.
70390       01 NUM-A     PIC 9(3) VALUE 399.
70391       01 NUM-B     PIC 9(3) VALUE 211.
70392       01 RSLT      PIC 9(5)V99.
70393
70394       LINKAGE SECTION.
70395       01  n PIC 99.
70396
70397       PROCEDURE DIVISION USING n.
70398       MAIN-10.
70399           ADD 1 TO n.
70400           COMPUTE RSLT = ((NUM-A / (100.55 + -0.550))
70401                         -  (NUM-B / (10.11 * 10 - 1.1)))
70402                             * (220 / 2.2) * n.
70403       END PROGRAM callsub.
70404_ATEOF
70405
70406
70407{ set +x
70408$as_echo "$at_srcdir/run_misc.at:6937: \$COMPILE_MODULE callsub.cob"
70409at_fn_check_prepare_dynamic "$COMPILE_MODULE callsub.cob" "run_misc.at:6937"
70410( $at_check_trace; $COMPILE_MODULE callsub.cob
70411) >>"$at_stdout" 2>>"$at_stderr" 5>&-
70412at_status=$? at_failed=false
70413$at_check_filter
70414at_fn_diff_devnull "$at_stderr" || at_failed=:
70415at_fn_diff_devnull "$at_stdout" || at_failed=:
70416at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6937"
70417$at_failed && at_fn_log_failure
70418$at_traceon; }
70419
70420
70421
70422cat >prog.cob <<'_ATEOF'
70423
70424       IDENTIFICATION DIVISION.
70425       PROGRAM-ID. prog.
70426
70427       ENVIRONMENT DIVISION.
70428       CONFIGURATION SECTION.
70429
70430       INPUT-OUTPUT SECTION.
70431       FILE-CONTROL.
70432           SELECT OPTIONAL TSPFILE
70433           ASSIGN TO "testisam"
70434           ORGANIZATION INDEXED ACCESS DYNAMIC
70435           RECORD KEY IS CM-CUST-NUM
70436           ALTERNATE RECORD KEY IS CM-TELEPHONE WITH DUPLICATES
70437           ALTERNATE RECORD KEY IS CM-DISK WITH DUPLICATES
70438           FILE STATUS IS CUST-STAT.
70439
70440           SELECT TSTFILE
70441           ASSIGN TO "testisam"
70442           ORGANIZATION INDEXED ACCESS DYNAMIC
70443           RECORD KEY IS TS-CUST-NUM
70444           ALTERNATE RECORD KEY IS TS-TELEPHONE WITH DUPLICATES
70445           ALTERNATE RECORD KEY IS TS-DISK WITH DUPLICATES
70446           FILE STATUS IS CUST-STAT.
70447
70448           SELECT FLATFILE
70449           ASSIGN EXTERNAL RELFIX
70450           ORGANIZATION RELATIVE
70451           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
70452           FILE STATUS IS CUST-STAT.
70453
70454       DATA  DIVISION.
70455       FILE SECTION.
70456       FD  TSPFILE
70457           BLOCK CONTAINS 5 RECORDS.
70458
70459       01  TSPFL-RECORD.
70460           05  TSPFL-REC.
70461           10  CM-CUST-NUM.
70462             15  CM-CUST-PRE                   PICTURE X(3).
70463             15  CM-CUST-NNN                   PICTURE X(5).
70464           10  CM-STATUS                       PICTURE X.
70465           10  CM-COMPANY                      PICTURE X(25).
70466           10  CM-ADDRESS-1                    PICTURE X(25).
70467           10  CM-ADDRESS-2                    PICTURE X(25).
70468           10  CM-ADDRESS-3                    PICTURE X(25).
70469           10  CM-TELEPHONE                    PICTURE 9(10).
70470           10  CM-DP-MGR                       PICTURE X(25).
70471           10  CM-MACHINE                      PICTURE X(8).
70472           10  CM-MEMORY                       PICTURE X(4).
70473           10  CM-DISK                         PICTURE X(8).
70474           10  CM-TAPE                         PICTURE X(8).
70475           10  CM-NO-TERMINALS                 PICTURE 9(5).
70476
70477       FD  TSTFILE
70478           BLOCK CONTAINS 5 RECORDS.
70479
70480       01  TSTFL-RECORD.
70481           05  TSTFL-REC.
70482           10  TS-CUST-NUM                     PICTURE X(8).
70483           10  TS-STATUS                       PICTURE X.
70484           10  TS-COMPANY                      PICTURE X(25).
70485           10  TS-ADDRESS-1                    PICTURE X(25).
70486           10  TS-ADDRESS-2                    PICTURE X(25).
70487           10  TS-ADDRESS-3                    PICTURE X(25).
70488           10  TS-TELEPHONE                    PICTURE 9(10).
70489           10  TS-DP-MGR                       PICTURE X(25).
70490           10  TS-MACHINE                      PICTURE X(8).
70491           10  TS-MEMORY                       PICTURE X(4).
70492           10  TS-DISK                         PICTURE X(8).
70493           10  TS-TAPE                         PICTURE X(8).
70494
70495       FD  FLATFILE
70496           BLOCK CONTAINS 5 RECORDS.
70497
70498       01  TSP2-RECORD.
70499           10  C2-CUST-NUM                     PICTURE X(8).
70500           10  C2-COMPANY                      PICTURE X(25).
70501           10  C2-DISK                         PICTURE X(8).
70502           10  C2-NO-TERMINALS                 PICTURE 9(4) COMP-4.
70503           10  C2-PK-DATE                      PICTURE S9(14) COMP-3.
70504
70505       WORKING-STORAGE SECTION.
70506
70507       01  CUST-STAT.
70508           05  FILLER PICTURE XX.
70509       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
70510       77  CALL-NUM          VALUE  00         PICTURE 99.
70511
70512       01  TEST-DATA.
70513
70514         02  DATA-CUST-NUM-TBL.
70515
70516           05  FILLER PIC X(8) VALUE "ALP00000".
70517           05  FILLER PIC X(8) VALUE "BET00000".
70518           05  FILLER PIC X(8) VALUE "GAM00000".
70519           05  FILLER PIC X(8) VALUE "DEL00000".
70520           05  FILLER PIC X(8) VALUE "EPS00000".
70521           05  FILLER PIC X(8) VALUE "FOR00000".
70522           05  FILLER PIC X(8) VALUE "GIB00000".
70523           05  FILLER PIC X(8) VALUE "H&J00000".
70524           05  FILLER PIC X(8) VALUE "INC00000".
70525           05  FILLER PIC X(8) VALUE "JOH00000".
70526           05  FILLER PIC X(8) VALUE "KON00000".
70527           05  FILLER PIC X(8) VALUE "LEW00000".
70528           05  FILLER PIC X(8) VALUE "MOR00000".
70529           05  FILLER PIC X(8) VALUE "NEW00000".
70530           05  FILLER PIC X(8) VALUE "OLD00000".
70531           05  FILLER PIC X(8) VALUE "PRE00000".
70532
70533         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
70534                                       PIC X(8) OCCURS 16.
70535         02  DATA-COMPANY-TBL.
70536
70537           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
70538           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
70539           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
70540           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
70541           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
70542           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
70543           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
70544           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
70545           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
70546           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
70547           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
70548           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
70549           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
70550           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
70551           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
70552           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".
70553
70554         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
70555                                       PIC X(25) OCCURS 16.
70556         02  DATA-ADDRESS-1-TBL.
70557
70558           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
70559           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
70560           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
70561           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
70562           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
70563           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
70564           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
70565           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
70566           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
70567           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
70568           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
70569           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
70570           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
70571           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
70572           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
70573           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".
70574
70575         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
70576                                       PIC X(25) OCCURS 16.
70577         02  DATA-ADDRESS-2-TBL.
70578
70579           05  FILLER PIC X(10) VALUE "NEW YORK  ".
70580           05  FILLER PIC X(10) VALUE "ATLANTA   ".
70581           05  FILLER PIC X(10) VALUE "WASHINGTON".
70582           05  FILLER PIC X(10) VALUE "TORONTO   ".
70583           05  FILLER PIC X(10) VALUE "CALGARY   ".
70584           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
70585           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
70586           05  FILLER PIC X(10) VALUE "MADISON   ".
70587           05  FILLER PIC X(10) VALUE "WILBUR    ".
70588           05  FILLER PIC X(10) VALUE "TOPEKA    ".
70589           05  FILLER PIC X(10) VALUE "SEATTLE   ".
70590           05  FILLER PIC X(10) VALUE "NEW JERSEY".
70591           05  FILLER PIC X(10) VALUE "FORT WAYNE".
70592           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
70593           05  FILLER PIC X(10) VALUE "RICHMOND  ".
70594           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
70595
70596         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
70597                                       PIC X(10) OCCURS 16.
70598         02  DATA-ADDRESS-3-TBL.
70599
70600           05  FILLER PIC X(10) VALUE "N.Y.      ".
70601           05  FILLER PIC X(10) VALUE "GEORGIA   ".
70602           05  FILLER PIC X(10) VALUE "D.C.      ".
70603           05  FILLER PIC X(10) VALUE "CANADA    ".
70604           05  FILLER PIC X(10) VALUE "CANADA    ".
70605           05  FILLER PIC X(10) VALUE "CALIFORNIA".
70606           05  FILLER PIC X(10) VALUE "NEW MEXICO".
70607           05  FILLER PIC X(10) VALUE "WISCONSIN ".
70608           05  FILLER PIC X(10) VALUE "DELAWARE  ".
70609           05  FILLER PIC X(10) VALUE "KANSAS    ".
70610           05  FILLER PIC X(10) VALUE "WASHINGTON".
70611           05  FILLER PIC X(10) VALUE "N.J.      ".
70612           05  FILLER PIC X(10) VALUE "COLORADO  ".
70613           05  FILLER PIC X(10) VALUE "OHIO      ".
70614           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
70615           05  FILLER PIC X(10) VALUE "N.Y.      ".
70616
70617         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
70618                                       PIC X(10) OCCURS 16.
70619         02  DATA-TELEPHONE-TBL.
70620
70621           05  FILLER PIC 9(10) VALUE 3131234432.
70622           05  FILLER PIC 9(10) VALUE 4082938498.
70623           05  FILLER PIC 9(10) VALUE 8372487274.
70624           05  FILLER PIC 9(10) VALUE 4169898509.
70625           05  FILLER PIC 9(10) VALUE 5292398745.
70626           05  FILLER PIC 9(10) VALUE 8009329492.
70627           05  FILLER PIC 9(10) VALUE 6456445643.
70628           05  FILLER PIC 9(10) VALUE 6546456333.
70629           05  FILLER PIC 9(10) VALUE 3455445444.
70630           05  FILLER PIC 9(10) VALUE 6456445643.
70631           05  FILLER PIC 9(10) VALUE 7456434355.
70632           05  FILLER PIC 9(10) VALUE 6554456433.
70633           05  FILLER PIC 9(10) VALUE 4169898509.
70634           05  FILLER PIC 9(10) VALUE 7534587453.
70635           05  FILLER PIC 9(10) VALUE 8787458374.
70636           05  FILLER PIC 9(10) VALUE 4169898509.
70637
70638         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
70639                                       PIC 9(10) OCCURS 16.
70640         02  DATA-DP-MGR-TBL.
70641
70642           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
70643           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
70644           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
70645           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
70646           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
70647           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
70648           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
70649           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
70650           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
70651           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
70652           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
70653           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
70654           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
70655           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
70656           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
70657           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".
70658
70659         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
70660                                       PIC X(20) OCCURS 16.
70661         02  DATA-MACHINE-TBL.
70662
70663           05  FILLER PIC X(8) VALUE "UNI-9030".
70664           05  FILLER PIC X(8) VALUE "UNI-9040".
70665           05  FILLER PIC X(8) VALUE "UNI-80/3".
70666           05  FILLER PIC X(8) VALUE "UNI-80/5".
70667           05  FILLER PIC X(8) VALUE "UNI-80/6".
70668           05  FILLER PIC X(8) VALUE "UNI-80/6".
70669           05  FILLER PIC X(8) VALUE "UNI-80/6".
70670           05  FILLER PIC X(8) VALUE "UNI-80/8".
70671           05  FILLER PIC X(8) VALUE "UNI-80/8".
70672           05  FILLER PIC X(8) VALUE "UNI-80/8".
70673           05  FILLER PIC X(8) VALUE "UNI-80/8".
70674           05  FILLER PIC X(8) VALUE "UNI-80/8".
70675           05  FILLER PIC X(8) VALUE "UNI-80/8".
70676           05  FILLER PIC X(8) VALUE "UNI-80/8".
70677           05  FILLER PIC X(8) VALUE "UNI-9040".
70678           05  FILLER PIC X(8) VALUE "UNI-9040".
70679
70680         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
70681                                       PIC X(8) OCCURS 16.
70682         02  DATA-NO-TERMINALS-TBL.
70683
70684           05  FILLER PIC 9(3) COMP-3 VALUE 85.
70685           05  FILLER PIC 9(3) COMP-3 VALUE 34.
70686           05  FILLER PIC 9(3) COMP-3 VALUE 75.
70687           05  FILLER PIC 9(3) COMP-3 VALUE 45.
70688           05  FILLER PIC 9(3) COMP-3 VALUE 90.
70689           05  FILLER PIC 9(3) COMP-3 VALUE 107.
70690           05  FILLER PIC 9(3) COMP-3 VALUE 67.
70691           05  FILLER PIC 9(3) COMP-3 VALUE 32.
70692           05  FILLER PIC 9(3) COMP-3 VALUE 16.
70693           05  FILLER PIC 9(3) COMP-3 VALUE 34.
70694           05  FILLER PIC 9(3) COMP-3 VALUE 128.
70695           05  FILLER PIC 9(3) COMP-3 VALUE 64.
70696           05  FILLER PIC 9(3) COMP-3 VALUE 110.
70697           05  FILLER PIC 9(3) COMP-3 VALUE 324.
70698           05  FILLER PIC 9(3) COMP-3 VALUE 124.
70699           05  FILLER PIC 9(3) COMP-3 VALUE 86.
70700
70701         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
70702                                       PIC 9(3) COMP-3 OCCURS 16.
70703
70704       01  WORK-AREA.
70705           05  REC-NUM                         PICTURE 9(6) VALUE 0.
70706           05  REC-MAX                         PICTURE 9(6) VALUE 10.
70707           05  SUB                             PICTURE 9(4) COMP SYNC.
70708               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.
70709
70710           05  TSPFL-KEY                       PICTURE X(8).
70711
70712       PROCEDURE DIVISION.
70713
70714       MAINFILE.
70715           OPEN OUTPUT TSPFILE
70716           CLOSE TSPFILE.
70717
70718           OPEN I-O TSPFILE
70719           MOVE '99' TO CUST-STAT
70720           READ  TSPFILE NEXT RECORD WITH NO LOCK
70721           IF CUST-STAT NOT = "10"
70722               DISPLAY "Error " CUST-STAT " on read of empty file"
70723                                UPON CONSOLE
70724               STOP RUN
70725           END-IF.
70726           MOVE LOW-VALUES                     TO TSPFL-RECORD.
70727           START TSPFILE KEY GREATER THAN CM-CUST-NUM
70728           IF CUST-STAT NOT = "23"
70729               DISPLAY "Error " CUST-STAT " starting empty file"
70730                                UPON CONSOLE
70731               STOP RUN
70732           END-IF.
70733           READ  TSPFILE NEXT RECORD WITH NO LOCK
70734           IF CUST-STAT NOT = "46"
70735               DISPLAY "Error " CUST-STAT " start/read of empty file"
70736                                UPON CONSOLE
70737               STOP RUN
70738           END-IF.
70739           DISPLAY "OK: Operations on empty file"
70740           CLOSE TSPFILE.
70741
70742           PERFORM LOADFILE.
70743           PERFORM LISTFILE.
70744
70745
70746
70747          *> check that multiple empty lines are handled correctly
70748
70749
70750
70751
70752
70753
70754
70755           STOP RUN.
70756
70757       LOADFILE.
70758           DISPLAY "Loading sample data file."
70759                            UPON CONSOLE.
70760
70761           OPEN OUTPUT TSPFILE
70762           IF CUST-STAT NOT = "00"
70763               DISPLAY "Error " CUST-STAT
70764               " opening 'testisam' file" UPON CONSOLE
70765               STOP RUN
70766           END-IF.
70767
70768           PERFORM 1000-LOAD-RECORD
70769                        VARYING SUB FROM 1 BY 1
70770                          UNTIL SUB > MAX-SUB.
70771
70772           DISPLAY "Sample data file load complete."
70773                            UPON CONSOLE.
70774           CLOSE TSPFILE.
70775
70776      *---------------------------------------------------------------*
70777      *         LOAD A RECORD FROM DATA TABLES                        *
70778      *---------------------------------------------------------------*
70779
70780       1000-LOAD-RECORD.
70781
70782           MOVE SPACES                       TO TSPFL-RECORD.
70783           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
70784           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
70785           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
70786           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
70787           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
70788           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
70789           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
70790           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
70791           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
70792           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
70793
70794           IF  ODD-RECORD
70795               MOVE "8417"                   TO CM-DISK
70796               MOVE "1600 BPI"               TO CM-TAPE
70797               MOVE "1MEG"                   TO CM-MEMORY
70798           ELSE
70799               MOVE "8470"                   TO CM-DISK
70800               MOVE "6250 BPI"               TO CM-TAPE
70801               MOVE "3MEG"                   TO CM-MEMORY.
70802
70803           WRITE TSPFL-RECORD.
70804           IF CUST-STAT NOT = "00"
70805           AND CUST-STAT NOT = "02"
70806               DISPLAY "Load - Key: " TSPFL-KEY ", Status: " CUST-STAT
70807                                 UPON CONSOLE.
70808
70809       LISTFILE.
70810           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
70811           OPEN INPUT TSTFILE
70812           MOVE SPACES                       TO TSTFL-RECORD.
70813           MOVE "PRE00000" TO CM-CUST-NUM.
70814           START TSTFILE KEY GREATER THAN OR EQUAL TO TS-CUST-NUM
70815           READ  TSTFILE NEXT RECORD
70816           READ  TSTFILE NEXT RECORD
70817           CLOSE TSTFILE.
70818
70819           MOVE ZERO TO REC-NUM
70820           OPEN INPUT TSPFILE
70821           IF CUST-STAT NOT = "00"
70822               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE"
70823                                             UPON CONSOLE
70824               STOP RUN
70825           END-IF.
70826           MOVE SPACES                       TO TSPFL-RECORD.
70827           MOVE "PRE00000" TO CM-CUST-NUM.
70828           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
70829           READ  TSPFILE NEXT RECORD
70830           READ  TSPFILE NEXT RECORD
70831
70832           MOVE SPACES                       TO TSPFL-RECORD.
70833           MOVE "DEL00000" TO CM-CUST-NUM.
70834           START TSPFILE KEY GREATER THAN CM-CUST-NUM
70835           IF CUST-STAT NOT = "00"
70836               DISPLAY "Error " CUST-STAT " starting file"
70837                                UPON CONSOLE
70838               STOP RUN
70839           END-IF.
70840           READ  TSPFILE NEXT RECORD WITH NO LOCK
70841           IF CUST-STAT NOT = "00"
70842               DISPLAY "Error " CUST-STAT " on 1st read of file"
70843                                UPON CONSOLE
70844               STOP RUN
70845           END-IF.
70846           PERFORM UNTIL CUST-STAT NOT = "00"
70847                      OR REC-NUM > REC-MAX
70848               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
70849                        " Disk=" CM-DISK "."
70850                         UPON CONSOLE
70851               CALL "callsub" USING CALL-NUM
70852               READ TSPFILE NEXT RECORD
70853                    AT END
70854                        MOVE "99" TO CUST-STAT
70855                END-READ
70856                ADD 1 TO REC-NUM
70857           END-PERFORM
70858           IF CUST-STAT = "99"
70859               DISPLAY "Hit End of File: " CALL-NUM UPON CONSOLE
70860           ELSE
70861               DISPLAY "Stop read after: " CALL-NUM UPON CONSOLE
70862           END-IF.
70863
70864           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
70865           MOVE ZERO TO REC-NUM
70866           START TSPFILE KEY LESS THAN CM-CUST-NUM
70867           IF CUST-STAT NOT = "00"
70868               DISPLAY "Error " CUST-STAT " starting file"
70869                                UPON CONSOLE
70870               STOP RUN
70871           END-IF.
70872           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
70873           IF CUST-STAT NOT = "00"
70874               DISPLAY "Error " CUST-STAT " on 1st read of file"
70875                                UPON CONSOLE
70876               STOP RUN
70877           END-IF.
70878           PERFORM UNTIL CUST-STAT NOT = "00"
70879                      OR REC-NUM > REC-MAX
70880               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
70881                        " Disk=" CM-DISK "."
70882                         UPON CONSOLE
70883               READ TSPFILE PREVIOUS RECORD
70884                    AT END
70885                        MOVE "99" TO CUST-STAT
70886                END-READ
70887                ADD 1 TO REC-NUM
70888           END-PERFORM.
70889
70890           CLOSE TSPFILE.
70891
70892           OPEN I-O TSPFILE.
70893           MOVE SPACES                       TO TSPFL-RECORD.
70894           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
70895           MOVE 'X'                          TO CM-CUST-NUM (5:1).
70896           READ TSPFILE KEY IS CM-CUST-NUM
70897           IF  CUST-STAT NOT = "23"
70898               DISPLAY "Error " CUST-STAT " instead of 23."
70899                                UPON CONSOLE
70900           END-IF.
70901           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
70902           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
70903           READ TSPFILE KEY IS CM-CUST-NUM
70904           IF  CUST-STAT NOT = "00"
70905               DISPLAY "Error " CUST-STAT " on primary read ."
70906                                UPON CONSOLE
70907           ELSE
70908               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
70909                        " Disk=" CM-DISK "."
70910                         UPON CONSOLE
70911           END-IF.
70912           READ TSPFILE NEXT RECORD
70913           IF  CUST-STAT NOT = "00"
70914               DISPLAY "Error " CUST-STAT " on next read"
70915                                UPON CONSOLE
70916           ELSE
70917               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
70918                        " Disk=" CM-DISK "."
70919                         UPON CONSOLE
70920           END-IF.
70921           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
70922           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
70923           READ TSPFILE KEY IS CM-TELEPHONE
70924           IF  CUST-STAT NOT = "00"
70925               DISPLAY "Error " CUST-STAT " instead of 23"
70926                                UPON CONSOLE
70927           ELSE
70928               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
70929                        " Mach=" CM-MACHINE "."
70930                         UPON CONSOLE
70931           END-IF.
70932           WRITE TSPFL-RECORD
70933           IF  CUST-STAT NOT = "22"
70934               DISPLAY "Error " CUST-STAT " instead of 22"
70935                                UPON CONSOLE
70936           ELSE
70937               DISPLAY "  Write: " CM-CUST-NUM " got 22 as expected"
70938                         UPON CONSOLE
70939           END-IF.
70940           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
70941           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
70942           READ TSPFILE KEY IS CM-CUST-NUM
70943           DISPLAY "   Read: " CM-CUST-NUM " got "
70944                         CUST-STAT " as expected "
70945                         CM-NO-TERMINALS " terminals"
70946                         UPON CONSOLE.
70947           ADD 5 TO CM-NO-TERMINALS
70948           REWRITE TSPFL-RECORD
70949           IF  CUST-STAT NOT = "00"
70950               DISPLAY "Error " CUST-STAT " instead of 00"
70951                                UPON CONSOLE
70952           ELSE
70953
70954               DISPLAY "ReWrite: " CM-CUST-NUM " got "
70955                       CUST-STAT " as expected "
70956                       CM-NO-TERMINALS " terminals"
70957                       UPON CONSOLE
70958           END-IF.
70959           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
70960           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
70961           READ TSPFILE KEY IS CM-CUST-NUM
70962           DISPLAY "   Read: " CM-CUST-NUM " got "
70963                         CUST-STAT " as expected "
70964                         CM-NO-TERMINALS " terminals"
70965                         UPON CONSOLE.
70966           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
70967           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
70968           REWRITE TSPFL-RECORD
70969           IF  CUST-STAT NOT = "02"
70970           AND CUST-STAT NOT = "00"
70971               DISPLAY "Error " CUST-STAT " instead of 00/02"
70972                                UPON CONSOLE
70973           ELSE
70974               DISPLAY "ReWrite: " CM-CUST-NUM " got "
70975                       "00/02 as expected"
70976                        UPON CONSOLE
70977           END-IF
70978           MOVE DATA-CUST-NUM      (6)       TO CM-CUST-NUM.
70979           MOVE DATA-COMPANY       (6)       TO CM-COMPANY.
70980           READ TSPFILE KEY IS CM-CUST-NUM
70981           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
70982           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
70983           REWRITE TSPFL-RECORD
70984           IF  CUST-STAT NOT = "02"
70985           AND CUST-STAT NOT = "00"
70986               DISPLAY "Error " CUST-STAT " instead of 00/02"
70987                                UPON CONSOLE
70988           ELSE
70989               DISPLAY "ReWrite: " CM-CUST-NUM " got "
70990                       "00/02 as expected"
70991                       UPON CONSOLE
70992           END-IF
70993           DELETE TSPFILE
70994           CLOSE TSPFILE.
70995
70996       LOADFLAT.
70997           OPEN OUTPUT FLATFILE.
70998           PERFORM FLAT-RECORD
70999                        VARYING SUB FROM 1 BY 1
71000                          UNTIL SUB > MAX-SUB
71001                             OR SUB > 5.
71002           CLOSE FLATFILE.
71003           OPEN INPUT FLATFILE.
71004           MOVE 3 TO REC-NUM
71005           READ FLATFILE
71006           MOVE 999 TO REC-NUM
71007           READ FLATFILE
71008           CLOSE FLATFILE.
71009
71010       FLAT-RECORD.
71011
71012           MOVE SPACES                       TO TSP2-RECORD.
71013           MOVE SUB                          TO REC-NUM.
71014           MOVE DATA-CUST-NUM      (SUB)     TO C2-CUST-NUM.
71015           MOVE DATA-COMPANY       (SUB)     TO C2-COMPANY.
71016           MOVE DATA-NO-TERMINALS  (SUB)     TO C2-NO-TERMINALS.
71017           MOVE 20070319                     TO C2-PK-DATE.
71018           IF  ODD-RECORD
71019               MOVE "8417"                   TO C2-DISK
71020           ELSE
71021               MOVE "8470"                   TO C2-DISK.
71022           WRITE TSP2-RECORD.
71023_ATEOF
71024
71025
71026{ set +x
71027$as_echo "$at_srcdir/run_misc.at:7542: \$COMPILE -ftraceall prog.cob"
71028at_fn_check_prepare_dynamic "$COMPILE -ftraceall prog.cob" "run_misc.at:7542"
71029( $at_check_trace; $COMPILE -ftraceall prog.cob
71030) >>"$at_stdout" 2>>"$at_stderr" 5>&-
71031at_status=$? at_failed=false
71032$at_check_filter
71033at_fn_diff_devnull "$at_stderr" || at_failed=:
71034at_fn_diff_devnull "$at_stdout" || at_failed=:
71035at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:7542"
71036$at_failed && at_fn_log_failure
71037$at_traceon; }
71038
71039
71040# first run without runtime tracing
71041{ set +x
71042$as_echo "$at_srcdir/run_misc.at:7545: \$COBCRUN_DIRECT ./prog"
71043at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:7545"
71044( $at_check_trace; $COBCRUN_DIRECT ./prog
71045) >>"$at_stdout" 2>>"$at_stderr" 5>&-
71046at_status=$? at_failed=false
71047$at_check_filter
71048at_fn_diff_devnull "$at_stderr" || at_failed=:
71049echo >>"$at_stdout"; $as_echo "OK: Operations on empty file
71050Loading sample data file.
71051Sample data file load complete.
71052LIST SAMPLE FILE
71053Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
71054Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
71055Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
71056Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
71057Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
71058Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
71059Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
71060Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
71061Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
71062Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
71063Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
71064Stop read after: 11
71065LIST SAMPLE FILE DESCENDING
71066Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
71067Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
71068Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
71069Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
71070Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
71071Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
71072Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
71073Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
71074Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
71075Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
71076Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
71077Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
71078Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
71079Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
71080  Write: GIB00000 got 22 as expected
71081   Read: GAM00000 got 00 as expected 00075 terminals
71082ReWrite: GAM00000 got 00 as expected 00080 terminals
71083   Read: BET00000 got 00 as expected 00034 terminals
71084ReWrite: GAM00000 got 00/02 as expected
71085ReWrite: FOR00000 got 00/02 as expected
71086" | \
71087  $at_diff - "$at_stdout" || at_failed=:
71088at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:7545"
71089$at_failed && at_fn_log_failure
71090$at_traceon; }
71091
71092
71093# not merged yet:
71094#export COB_TRACE_IO=Y
71095#export IO_TSPFILE=trace
71096#export IO_TSTFILE=no-trace
71097
71098{ set +x
71099$as_echo "$at_srcdir/run_misc.at:7590: COB_TRACE_FILE=trace.txt \\
71100COB_SET_TRACE=Y \\
71101COB_TRACE_FORMAT=\"Line: %L %S\" \\
71102\$COBCRUN_DIRECT ./prog"
71103at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:7590"
71104( $at_check_trace; COB_TRACE_FILE=trace.txt \
71105COB_SET_TRACE=Y \
71106COB_TRACE_FORMAT="Line: %L %S" \
71107$COBCRUN_DIRECT ./prog
71108) >>"$at_stdout" 2>>"$at_stderr" 5>&-
71109at_status=$? at_failed=false
71110$at_check_filter
71111at_fn_diff_devnull "$at_stderr" || at_failed=:
71112echo >>"$at_stdout"; $as_echo "OK: Operations on empty file
71113Loading sample data file.
71114Sample data file load complete.
71115LIST SAMPLE FILE
71116Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
71117Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
71118Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
71119Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
71120Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
71121Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
71122Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
71123Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
71124Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
71125Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
71126Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
71127Stop read after: 11
71128LIST SAMPLE FILE DESCENDING
71129Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
71130Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
71131Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
71132Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
71133Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
71134Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
71135Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
71136Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
71137Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
71138Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
71139Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
71140Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
71141Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
71142Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
71143  Write: GIB00000 got 22 as expected
71144   Read: GAM00000 got 00 as expected 00075 terminals
71145ReWrite: GAM00000 got 00 as expected 00080 terminals
71146   Read: BET00000 got 00 as expected 00034 terminals
71147ReWrite: GAM00000 got 00/02 as expected
71148ReWrite: FOR00000 got 00/02 as expected
71149" | \
71150  $at_diff - "$at_stdout" || at_failed=:
71151at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:7590"
71152$at_failed && at_fn_log_failure
71153$at_traceon; }
71154
71155
71156
71157
71158
71159# variant with file trace:
71160#AT_DATA([reference],
71161#[Source: 'prog.cob'
71162#Program-Id:  prog
71163#Line:    292     Entry: prog
71164#Line:    292 Paragraph: MAINFILE
71165#Line:    293            OPEN
71166#           OPEN OUTPUT TSPFILE -> 'testisam' Status: 00
71167#Line:    294            CLOSE
71168#           CLOSE TSPFILE Status: 00
71169#Line:    296            OPEN
71170#           OPEN I_O TSPFILE -> 'testisam' Status: 00
71171#Line:    297            MOVE
71172#Line:    298            READ
71173#           READ Sequential TSPFILE Status: 10
71174#Line:    299            IF
71175#Line:    304            MOVE
71176#Line:    305            START
71177#           START TSPFILE Status: 23
71178#           Key : ALL LOW-VALUES
71179#Line:    306            IF
71180#Line:    311            READ
71181#           READ Sequential TSPFILE Status: 46
71182#Line:    312            IF
71183#Line:    317            DISPLAY
71184#Line:    318            CLOSE
71185#           CLOSE TSPFILE Status: 00
71186#Line:    320            PERFORM
71187#Line:    335 Paragraph: LOADFILE
71188#Line:    336            DISPLAY
71189#Line:    339            OPEN
71190#           OPEN OUTPUT TSPFILE -> 'testisam' Status: 00
71191#Line:    340            IF
71192#Line:    346            PERFORM
71193#Line:    358 Paragraph: 1000-LOAD-RECORD
71194#Line:    360            MOVE
71195#Line:    361            MOVE
71196#Line:    362            MOVE
71197#Line:    363            MOVE
71198#Line:    364            MOVE
71199#Line:    365            MOVE
71200#Line:    366            MOVE
71201#Line:    367            MOVE
71202#Line:    368            MOVE
71203#Line:    369            MOVE
71204#Line:    370            MOVE
71205#Line:    372            IF
71206#Line:    373            MOVE
71207#Line:    374            MOVE
71208#Line:    375            MOVE
71209#Line:    381            WRITE
71210#           WRITE TSPFILE Status: 00
71211#        Record : 'ALP00000 ALPHA ELECTRICAL CO. LTD.123 MAIN STREET          NEW YORK             '
71212#                 '    N.Y.                     3131234432MR. DAVE HARRIS          UNI-90301MEG8417'
71213#                 '    1600 BPI00085'
71214#Line:    382            IF
71215#Line:    358 Paragraph: 1000-LOAD-RECORD
71216#Line:    360            MOVE
71217#Line:    361            MOVE
71218#Line:    362            MOVE
71219#Line:    363            MOVE
71220#Line:    364            MOVE
71221#Line:    365            MOVE
71222#Line:    366            MOVE
71223#Line:    367            MOVE
71224#Line:    368            MOVE
71225#Line:    369            MOVE
71226#Line:    370            MOVE
71227#Line:    372            IF
71228#Line:    377            MOVE
71229#Line:    378            MOVE
71230#Line:    379            MOVE
71231#Line:    381            WRITE
71232#           WRITE TSPFILE Status: 00
71233#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
71234#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
71235#                 '    6250 BPI00034'
71236#Line:    382            IF
71237#Line:    358 Paragraph: 1000-LOAD-RECORD
71238#Line:    360            MOVE
71239#Line:    361            MOVE
71240#Line:    362            MOVE
71241#Line:    363            MOVE
71242#Line:    364            MOVE
71243#Line:    365            MOVE
71244#Line:    366            MOVE
71245#Line:    367            MOVE
71246#Line:    368            MOVE
71247#Line:    369            MOVE
71248#Line:    370            MOVE
71249#Line:    372            IF
71250#Line:    373            MOVE
71251#Line:    374            MOVE
71252#Line:    375            MOVE
71253#Line:    381            WRITE
71254#           WRITE TSPFILE Status: 02
71255#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
71256#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
71257#                 '    1600 BPI00075'
71258#Line:    382            IF
71259#Line:    358 Paragraph: 1000-LOAD-RECORD
71260#Line:    360            MOVE
71261#Line:    361            MOVE
71262#Line:    362            MOVE
71263#Line:    363            MOVE
71264#Line:    364            MOVE
71265#Line:    365            MOVE
71266#Line:    366            MOVE
71267#Line:    367            MOVE
71268#Line:    368            MOVE
71269#Line:    369            MOVE
71270#Line:    370            MOVE
71271#Line:    372            IF
71272#Line:    377            MOVE
71273#Line:    378            MOVE
71274#Line:    379            MOVE
71275#Line:    381            WRITE
71276#           WRITE TSPFILE Status: 02
71277#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
71278#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
71279#                 '    6250 BPI00045'
71280#Line:    382            IF
71281#Line:    358 Paragraph: 1000-LOAD-RECORD
71282#Line:    360            MOVE
71283#Line:    361            MOVE
71284#Line:    362            MOVE
71285#Line:    363            MOVE
71286#Line:    364            MOVE
71287#Line:    365            MOVE
71288#Line:    366            MOVE
71289#Line:    367            MOVE
71290#Line:    368            MOVE
71291#Line:    369            MOVE
71292#Line:    370            MOVE
71293#Line:    372            IF
71294#Line:    373            MOVE
71295#Line:    374            MOVE
71296#Line:    375            MOVE
71297#Line:    381            WRITE
71298#           WRITE TSPFILE Status: 02
71299#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
71300#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
71301#                 '    1600 BPI00090'
71302#Line:    382            IF
71303#Line:    358 Paragraph: 1000-LOAD-RECORD
71304#Line:    360            MOVE
71305#Line:    361            MOVE
71306#Line:    362            MOVE
71307#Line:    363            MOVE
71308#Line:    364            MOVE
71309#Line:    365            MOVE
71310#Line:    366            MOVE
71311#Line:    367            MOVE
71312#Line:    368            MOVE
71313#Line:    369            MOVE
71314#Line:    370            MOVE
71315#Line:    372            IF
71316#Line:    377            MOVE
71317#Line:    378            MOVE
71318#Line:    379            MOVE
71319#Line:    381            WRITE
71320#           WRITE TSPFILE Status: 02
71321#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71322#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71323#                 '    6250 BPI00107'
71324#Line:    382            IF
71325#Line:    358 Paragraph: 1000-LOAD-RECORD
71326#Line:    360            MOVE
71327#Line:    361            MOVE
71328#Line:    362            MOVE
71329#Line:    363            MOVE
71330#Line:    364            MOVE
71331#Line:    365            MOVE
71332#Line:    366            MOVE
71333#Line:    367            MOVE
71334#Line:    368            MOVE
71335#Line:    369            MOVE
71336#Line:    370            MOVE
71337#Line:    372            IF
71338#Line:    373            MOVE
71339#Line:    374            MOVE
71340#Line:    375            MOVE
71341#Line:    381            WRITE
71342#           WRITE TSPFILE Status: 02
71343#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
71344#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
71345#                 '    1600 BPI00067'
71346#Line:    382            IF
71347#Line:    358 Paragraph: 1000-LOAD-RECORD
71348#Line:    360            MOVE
71349#Line:    361            MOVE
71350#Line:    362            MOVE
71351#Line:    363            MOVE
71352#Line:    364            MOVE
71353#Line:    365            MOVE
71354#Line:    366            MOVE
71355#Line:    367            MOVE
71356#Line:    368            MOVE
71357#Line:    369            MOVE
71358#Line:    370            MOVE
71359#Line:    372            IF
71360#Line:    377            MOVE
71361#Line:    378            MOVE
71362#Line:    379            MOVE
71363#Line:    381            WRITE
71364#           WRITE TSPFILE Status: 02
71365#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
71366#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
71367#                 '    6250 BPI00032'
71368#Line:    382            IF
71369#Line:    358 Paragraph: 1000-LOAD-RECORD
71370#Line:    360            MOVE
71371#Line:    361            MOVE
71372#Line:    362            MOVE
71373#Line:    363            MOVE
71374#Line:    364            MOVE
71375#Line:    365            MOVE
71376#Line:    366            MOVE
71377#Line:    367            MOVE
71378#Line:    368            MOVE
71379#Line:    369            MOVE
71380#Line:    370            MOVE
71381#Line:    372            IF
71382#Line:    373            MOVE
71383#Line:    374            MOVE
71384#Line:    375            MOVE
71385#Line:    381            WRITE
71386#           WRITE TSPFILE Status: 02
71387#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
71388#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
71389#                 '    1600 BPI00016'
71390#Line:    382            IF
71391#Line:    358 Paragraph: 1000-LOAD-RECORD
71392#Line:    360            MOVE
71393#Line:    361            MOVE
71394#Line:    362            MOVE
71395#Line:    363            MOVE
71396#Line:    364            MOVE
71397#Line:    365            MOVE
71398#Line:    366            MOVE
71399#Line:    367            MOVE
71400#Line:    368            MOVE
71401#Line:    369            MOVE
71402#Line:    370            MOVE
71403#Line:    372            IF
71404#Line:    373            MOVE
71405#Line:    374            MOVE
71406#Line:    375            MOVE
71407#Line:    381            WRITE
71408#           WRITE TSPFILE Status: 02
71409#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
71410#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
71411#                 '    1600 BPI00034'
71412#Line:    382            IF
71413#Line:    358 Paragraph: 1000-LOAD-RECORD
71414#Line:    360            MOVE
71415#Line:    361            MOVE
71416#Line:    362            MOVE
71417#Line:    363            MOVE
71418#Line:    364            MOVE
71419#Line:    365            MOVE
71420#Line:    366            MOVE
71421#Line:    367            MOVE
71422#Line:    368            MOVE
71423#Line:    369            MOVE
71424#Line:    370            MOVE
71425#Line:    372            IF
71426#Line:    373            MOVE
71427#Line:    374            MOVE
71428#Line:    375            MOVE
71429#Line:    381            WRITE
71430#           WRITE TSPFILE Status: 02
71431#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
71432#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
71433#                 '    1600 BPI00128'
71434#Line:    382            IF
71435#Line:    358 Paragraph: 1000-LOAD-RECORD
71436#Line:    360            MOVE
71437#Line:    361            MOVE
71438#Line:    362            MOVE
71439#Line:    363            MOVE
71440#Line:    364            MOVE
71441#Line:    365            MOVE
71442#Line:    366            MOVE
71443#Line:    367            MOVE
71444#Line:    368            MOVE
71445#Line:    369            MOVE
71446#Line:    370            MOVE
71447#Line:    372            IF
71448#Line:    377            MOVE
71449#Line:    378            MOVE
71450#Line:    379            MOVE
71451#Line:    381            WRITE
71452#           WRITE TSPFILE Status: 02
71453#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
71454#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
71455#                 '    6250 BPI00064'
71456#Line:    382            IF
71457#Line:    358 Paragraph: 1000-LOAD-RECORD
71458#Line:    360            MOVE
71459#Line:    361            MOVE
71460#Line:    362            MOVE
71461#Line:    363            MOVE
71462#Line:    364            MOVE
71463#Line:    365            MOVE
71464#Line:    366            MOVE
71465#Line:    367            MOVE
71466#Line:    368            MOVE
71467#Line:    369            MOVE
71468#Line:    370            MOVE
71469#Line:    372            IF
71470#Line:    377            MOVE
71471#Line:    378            MOVE
71472#Line:    379            MOVE
71473#Line:    381            WRITE
71474#           WRITE TSPFILE Status: 02
71475#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
71476#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
71477#                 '    6250 BPI00110'
71478#Line:    382            IF
71479#Line:    358 Paragraph: 1000-LOAD-RECORD
71480#Line:    360            MOVE
71481#Line:    361            MOVE
71482#Line:    362            MOVE
71483#Line:    363            MOVE
71484#Line:    364            MOVE
71485#Line:    365            MOVE
71486#Line:    366            MOVE
71487#Line:    367            MOVE
71488#Line:    368            MOVE
71489#Line:    369            MOVE
71490#Line:    370            MOVE
71491#Line:    372            IF
71492#Line:    377            MOVE
71493#Line:    378            MOVE
71494#Line:    379            MOVE
71495#Line:    381            WRITE
71496#           WRITE TSPFILE Status: 02
71497#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
71498#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
71499#                 '    6250 BPI00324'
71500#Line:    382            IF
71501#Line:    358 Paragraph: 1000-LOAD-RECORD
71502#Line:    360            MOVE
71503#Line:    361            MOVE
71504#Line:    362            MOVE
71505#Line:    363            MOVE
71506#Line:    364            MOVE
71507#Line:    365            MOVE
71508#Line:    366            MOVE
71509#Line:    367            MOVE
71510#Line:    368            MOVE
71511#Line:    369            MOVE
71512#Line:    370            MOVE
71513#Line:    372            IF
71514#Line:    377            MOVE
71515#Line:    378            MOVE
71516#Line:    379            MOVE
71517#Line:    381            WRITE
71518#           WRITE TSPFILE Status: 02
71519#        Record : 'OLD00000 OLD TYME PIZZA MFG. CO.  1705 WISCONSIN ROAD      RICHMOND             '
71520#                 '    VIRGINIA                 8787458374MS. ALICE WINSTON        UNI-90403MEG8470'
71521#                 '    6250 BPI00124'
71522#Line:    382            IF
71523#Line:    358 Paragraph: 1000-LOAD-RECORD
71524#Line:    360            MOVE
71525#Line:    361            MOVE
71526#Line:    362            MOVE
71527#Line:    363            MOVE
71528#Line:    364            MOVE
71529#Line:    365            MOVE
71530#Line:    366            MOVE
71531#Line:    367            MOVE
71532#Line:    368            MOVE
71533#Line:    369            MOVE
71534#Line:    370            MOVE
71535#Line:    372            IF
71536#Line:    377            MOVE
71537#Line:    378            MOVE
71538#Line:    379            MOVE
71539#Line:    381            WRITE
71540#           WRITE TSPFILE Status: 02
71541#        Record : 'PRE00000 PRESTIGE OFFICE FURNITURE114A MAPLE GROVE         WHITEPLAIN           '
71542#                 '    N.Y.                     4169898509MR. THOMAS JEFFERSON     UNI-90403MEG8470'
71543#                 '    6250 BPI00086'
71544#Line:    382            IF
71545#Line:    350            DISPLAY
71546#Line:    352            CLOSE
71547#           CLOSE TSPFILE Status: 00
71548#Line:    321            PERFORM
71549#Line:    387 Paragraph: LISTFILE
71550#Line:    388            DISPLAY
71551#Line:    389            OPEN
71552#Line:    390            MOVE
71553#Line:    391            MOVE
71554#Line:    392            START
71555#Line:    393            READ
71556#Line:    394            READ
71557#Line:    395            CLOSE
71558#Line:    397            MOVE
71559#Line:    398            OPEN
71560#           OPEN INPUT TSPFILE -> 'testisam' Status: 00
71561#Line:    399            IF
71562#Line:    404            MOVE
71563#Line:    405            MOVE
71564#Line:    406            START
71565#           START TSPFILE Status: 00
71566#           Key : 'PRE00000'
71567#Line:    407            READ
71568#           READ Sequential TSPFILE Status: 00
71569#        Record : 'PRE00000 PRESTIGE OFFICE FURNITURE114A MAPLE GROVE         WHITEPLAIN           '
71570#                 '    N.Y.                     4169898509MR. THOMAS JEFFERSON     UNI-90403MEG8470'
71571#                 '    6250 BPI00086'
71572#Line:    408            READ
71573#           READ Sequential TSPFILE Status: 10
71574#Line:    410            MOVE
71575#Line:    411            MOVE
71576#Line:    412            START
71577#           START TSPFILE Status: 00
71578#           Key : 'DEL00000'
71579#Line:    413            IF
71580#Line:    418            READ
71581#           READ Sequential TSPFILE Status: 00
71582#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
71583#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
71584#                 '    1600 BPI00090'
71585#Line:    419            IF
71586#Line:    424            PERFORM
71587#Line:    426            DISPLAY
71588#Line:    429            CALL
71589#Line:    430            READ
71590#           READ Sequential TSPFILE Status: 00
71591#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71592#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71593#                 '    6250 BPI00107'
71594#Line:    434            ADD
71595#Line:    426            DISPLAY
71596#Line:    429            CALL
71597#Line:    430            READ
71598#           READ Sequential TSPFILE Status: 00
71599#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
71600#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
71601#                 '    1600 BPI00075'
71602#Line:    434            ADD
71603#Line:    426            DISPLAY
71604#Line:    429            CALL
71605#Line:    430            READ
71606#           READ Sequential TSPFILE Status: 00
71607#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
71608#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
71609#                 '    1600 BPI00067'
71610#Line:    434            ADD
71611#Line:    426            DISPLAY
71612#Line:    429            CALL
71613#Line:    430            READ
71614#           READ Sequential TSPFILE Status: 00
71615#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
71616#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
71617#                 '    6250 BPI00032'
71618#Line:    434            ADD
71619#Line:    426            DISPLAY
71620#Line:    429            CALL
71621#Line:    430            READ
71622#           READ Sequential TSPFILE Status: 00
71623#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
71624#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
71625#                 '    1600 BPI00016'
71626#Line:    434            ADD
71627#Line:    426            DISPLAY
71628#Line:    429            CALL
71629#Line:    430            READ
71630#           READ Sequential TSPFILE Status: 00
71631#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
71632#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
71633#                 '    1600 BPI00034'
71634#Line:    434            ADD
71635#Line:    426            DISPLAY
71636#Line:    429            CALL
71637#Line:    430            READ
71638#           READ Sequential TSPFILE Status: 00
71639#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
71640#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
71641#                 '    1600 BPI00128'
71642#Line:    434            ADD
71643#Line:    426            DISPLAY
71644#Line:    429            CALL
71645#Line:    430            READ
71646#           READ Sequential TSPFILE Status: 00
71647#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
71648#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
71649#                 '    6250 BPI00064'
71650#Line:    434            ADD
71651#Line:    426            DISPLAY
71652#Line:    429            CALL
71653#Line:    430            READ
71654#           READ Sequential TSPFILE Status: 00
71655#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
71656#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
71657#                 '    6250 BPI00110'
71658#Line:    434            ADD
71659#Line:    426            DISPLAY
71660#Line:    429            CALL
71661#Line:    430            READ
71662#           READ Sequential TSPFILE Status: 00
71663#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
71664#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
71665#                 '    6250 BPI00324'
71666#Line:    434            ADD
71667#Line:    426            DISPLAY
71668#Line:    429            CALL
71669#Line:    430            READ
71670#           READ Sequential TSPFILE Status: 00
71671#        Record : 'OLD00000 OLD TYME PIZZA MFG. CO.  1705 WISCONSIN ROAD      RICHMOND             '
71672#                 '    VIRGINIA                 8787458374MS. ALICE WINSTON        UNI-90403MEG8470'
71673#                 '    6250 BPI00124'
71674#Line:    434            ADD
71675#Line:    436            IF
71676#Line:    439            DISPLAY
71677#Line:    442            DISPLAY
71678#Line:    443            MOVE
71679#Line:    444            START
71680#           START TSPFILE Status: 00
71681#           Key : 'OLD00000'
71682#Line:    445            IF
71683#Line:    450            READ
71684#           READ Sequential TSPFILE Status: 00
71685#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
71686#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
71687#                 '    6250 BPI00324'
71688#Line:    451            IF
71689#Line:    456            PERFORM
71690#Line:    458            DISPLAY
71691#Line:    461            READ
71692#           READ Sequential TSPFILE Status: 00
71693#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
71694#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
71695#                 '    6250 BPI00110'
71696#Line:    465            ADD
71697#Line:    458            DISPLAY
71698#Line:    461            READ
71699#           READ Sequential TSPFILE Status: 00
71700#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
71701#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
71702#                 '    6250 BPI00064'
71703#Line:    465            ADD
71704#Line:    458            DISPLAY
71705#Line:    461            READ
71706#           READ Sequential TSPFILE Status: 00
71707#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
71708#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
71709#                 '    1600 BPI00128'
71710#Line:    465            ADD
71711#Line:    458            DISPLAY
71712#Line:    461            READ
71713#           READ Sequential TSPFILE Status: 00
71714#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
71715#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
71716#                 '    1600 BPI00034'
71717#Line:    465            ADD
71718#Line:    458            DISPLAY
71719#Line:    461            READ
71720#           READ Sequential TSPFILE Status: 00
71721#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
71722#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
71723#                 '    1600 BPI00016'
71724#Line:    465            ADD
71725#Line:    458            DISPLAY
71726#Line:    461            READ
71727#           READ Sequential TSPFILE Status: 00
71728#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
71729#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
71730#                 '    6250 BPI00032'
71731#Line:    465            ADD
71732#Line:    458            DISPLAY
71733#Line:    461            READ
71734#           READ Sequential TSPFILE Status: 00
71735#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
71736#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
71737#                 '    1600 BPI00067'
71738#Line:    465            ADD
71739#Line:    458            DISPLAY
71740#Line:    461            READ
71741#           READ Sequential TSPFILE Status: 00
71742#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
71743#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
71744#                 '    1600 BPI00075'
71745#Line:    465            ADD
71746#Line:    458            DISPLAY
71747#Line:    461            READ
71748#           READ Sequential TSPFILE Status: 00
71749#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71750#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71751#                 '    6250 BPI00107'
71752#Line:    465            ADD
71753#Line:    458            DISPLAY
71754#Line:    461            READ
71755#           READ Sequential TSPFILE Status: 00
71756#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
71757#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
71758#                 '    1600 BPI00090'
71759#Line:    465            ADD
71760#Line:    458            DISPLAY
71761#Line:    461            READ
71762#           READ Sequential TSPFILE Status: 00
71763#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
71764#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
71765#                 '    6250 BPI00045'
71766#Line:    465            ADD
71767#Line:    468            CLOSE
71768#           CLOSE TSPFILE Status: 00
71769#Line:    470            OPEN
71770#           OPEN I_O TSPFILE -> 'testisam' Status: 00
71771#Line:    471            MOVE
71772#Line:    472            MOVE
71773#Line:    473            MOVE
71774#Line:    474            READ
71775#           READ TSPFILE Status: 23
71776#           Key : 'BET0X000'
71777#Line:    475            IF
71778#Line:    479            MOVE
71779#Line:    480            MOVE
71780#Line:    481            READ
71781#           READ TSPFILE Status: 00
71782#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
71783#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
71784#                 '    6250 BPI00034'
71785#           Key : 'BET00000'
71786#Line:    482            IF
71787#Line:    486            DISPLAY
71788#Line:    490            READ
71789#           READ Sequential TSPFILE Status: 00
71790#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
71791#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
71792#                 '    6250 BPI00045'
71793#Line:    491            IF
71794#Line:    495            DISPLAY
71795#Line:    499            MOVE
71796#Line:    500            MOVE
71797#Line:    501            READ
71798#           READ TSPFILE Status: 00
71799#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
71800#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
71801#                 '    1600 BPI00067'
71802#           Key :  6456445643
71803#Line:    502            IF
71804#Line:    506            DISPLAY
71805#Line:    510            WRITE
71806#           WRITE TSPFILE Status: 22
71807#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
71808#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
71809#                 '    1600 BPI00067'
71810#Line:    511            IF
71811#Line:    515            DISPLAY
71812#Line:    518            MOVE
71813#Line:    519            MOVE
71814#Line:    520            READ
71815#           READ TSPFILE Status: 00
71816#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
71817#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
71818#                 '    1600 BPI00075'
71819#           Key : 'GAM00000'
71820#Line:    521            DISPLAY
71821#Line:    525            ADD
71822#Line:    526            REWRITE
71823#           REWRITE TSPFILE Status: 00
71824#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
71825#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
71826#                 '    1600 BPI00080'
71827#Line:    527            IF
71828#Line:    532            DISPLAY
71829#Line:    537            MOVE
71830#Line:    538            MOVE
71831#Line:    539            READ
71832#           READ TSPFILE Status: 00
71833#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
71834#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
71835#                 '    6250 BPI00034'
71836#           Key : 'BET00000'
71837#Line:    540            DISPLAY
71838#Line:    544            MOVE
71839#Line:    545            MOVE
71840#Line:    546            REWRITE
71841#           REWRITE TSPFILE Status: 02
71842#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1090 2ND AVE. WEST       ATLANTA              '
71843#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
71844#                 '    6250 BPI00034'
71845#Line:    547            IF
71846#Line:    552            DISPLAY
71847#Line:    556            MOVE
71848#Line:    557            MOVE
71849#Line:    558            READ
71850#           READ TSPFILE Status: 00
71851#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71852#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71853#                 '    6250 BPI00107'
71854#           Key : 'FOR00000'
71855#Line:    559            MOVE
71856#Line:    560            MOVE
71857#Line:    561            REWRITE
71858#           REWRITE TSPFILE Status: 02
71859#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71860#                 '    CALIFORNIA               6456445643MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71861#                 '    6250 BPI00107'
71862#Line:    562            IF
71863#Line:    567            DISPLAY
71864#Line:    571            DELETE
71865#           DELETE TSPFILE Status: 00
71866#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
71867#                 '    CALIFORNIA               6456445643MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
71868#                 '    6250 BPI00107'
71869#Line:    572            CLOSE
71870#           CLOSE TSPFILE Status: 00
71871#Line:    333            STOP RUN
71872#])
71873
71874# variant without file trace
71875
71876
71877cat >reference <<'_ATEOF'
71878Source: 'prog.cob'
71879Program-Id:  prog
71880Line:    290     Entry: prog
71881Line:    292 Paragraph: MAINFILE
71882Line:    293            OPEN
71883Line:    294            CLOSE
71884Line:    296            OPEN
71885Line:    297            MOVE
71886Line:    298            READ
71887Line:    299            IF
71888Line:    304            MOVE
71889Line:    305            START
71890Line:    306            IF
71891Line:    311            READ
71892Line:    312            IF
71893Line:    317            DISPLAY
71894Line:    318            CLOSE
71895Line:    320            PERFORM
71896Line:    335 Paragraph: LOADFILE
71897Line:    336            DISPLAY
71898Line:    339            OPEN
71899Line:    340            IF
71900Line:    346            PERFORM
71901Line:    358 Paragraph: 1000-LOAD-RECORD
71902Line:    360            MOVE
71903Line:    361            MOVE
71904Line:    362            MOVE
71905Line:    363            MOVE
71906Line:    364            MOVE
71907Line:    365            MOVE
71908Line:    366            MOVE
71909Line:    367            MOVE
71910Line:    368            MOVE
71911Line:    369            MOVE
71912Line:    370            MOVE
71913Line:    372            IF
71914Line:    373            MOVE
71915Line:    374            MOVE
71916Line:    375            MOVE
71917Line:    381            WRITE
71918Line:    382            IF
71919Line:    358 Paragraph: 1000-LOAD-RECORD
71920Line:    360            MOVE
71921Line:    361            MOVE
71922Line:    362            MOVE
71923Line:    363            MOVE
71924Line:    364            MOVE
71925Line:    365            MOVE
71926Line:    366            MOVE
71927Line:    367            MOVE
71928Line:    368            MOVE
71929Line:    369            MOVE
71930Line:    370            MOVE
71931Line:    372            IF
71932Line:    377            MOVE
71933Line:    378            MOVE
71934Line:    379            MOVE
71935Line:    381            WRITE
71936Line:    382            IF
71937Line:    358 Paragraph: 1000-LOAD-RECORD
71938Line:    360            MOVE
71939Line:    361            MOVE
71940Line:    362            MOVE
71941Line:    363            MOVE
71942Line:    364            MOVE
71943Line:    365            MOVE
71944Line:    366            MOVE
71945Line:    367            MOVE
71946Line:    368            MOVE
71947Line:    369            MOVE
71948Line:    370            MOVE
71949Line:    372            IF
71950Line:    373            MOVE
71951Line:    374            MOVE
71952Line:    375            MOVE
71953Line:    381            WRITE
71954Line:    382            IF
71955Line:    358 Paragraph: 1000-LOAD-RECORD
71956Line:    360            MOVE
71957Line:    361            MOVE
71958Line:    362            MOVE
71959Line:    363            MOVE
71960Line:    364            MOVE
71961Line:    365            MOVE
71962Line:    366            MOVE
71963Line:    367            MOVE
71964Line:    368            MOVE
71965Line:    369            MOVE
71966Line:    370            MOVE
71967Line:    372            IF
71968Line:    377            MOVE
71969Line:    378            MOVE
71970Line:    379            MOVE
71971Line:    381            WRITE
71972Line:    382            IF
71973Line:    358 Paragraph: 1000-LOAD-RECORD
71974Line:    360            MOVE
71975Line:    361            MOVE
71976Line:    362            MOVE
71977Line:    363            MOVE
71978Line:    364            MOVE
71979Line:    365            MOVE
71980Line:    366            MOVE
71981Line:    367            MOVE
71982Line:    368            MOVE
71983Line:    369            MOVE
71984Line:    370            MOVE
71985Line:    372            IF
71986Line:    373            MOVE
71987Line:    374            MOVE
71988Line:    375            MOVE
71989Line:    381            WRITE
71990Line:    382            IF
71991Line:    358 Paragraph: 1000-LOAD-RECORD
71992Line:    360            MOVE
71993Line:    361            MOVE
71994Line:    362            MOVE
71995Line:    363            MOVE
71996Line:    364            MOVE
71997Line:    365            MOVE
71998Line:    366            MOVE
71999Line:    367            MOVE
72000Line:    368            MOVE
72001Line:    369            MOVE
72002Line:    370            MOVE
72003Line:    372            IF
72004Line:    377            MOVE
72005Line:    378            MOVE
72006Line:    379            MOVE
72007Line:    381            WRITE
72008Line:    382            IF
72009Line:    358 Paragraph: 1000-LOAD-RECORD
72010Line:    360            MOVE
72011Line:    361            MOVE
72012Line:    362            MOVE
72013Line:    363            MOVE
72014Line:    364            MOVE
72015Line:    365            MOVE
72016Line:    366            MOVE
72017Line:    367            MOVE
72018Line:    368            MOVE
72019Line:    369            MOVE
72020Line:    370            MOVE
72021Line:    372            IF
72022Line:    373            MOVE
72023Line:    374            MOVE
72024Line:    375            MOVE
72025Line:    381            WRITE
72026Line:    382            IF
72027Line:    358 Paragraph: 1000-LOAD-RECORD
72028Line:    360            MOVE
72029Line:    361            MOVE
72030Line:    362            MOVE
72031Line:    363            MOVE
72032Line:    364            MOVE
72033Line:    365            MOVE
72034Line:    366            MOVE
72035Line:    367            MOVE
72036Line:    368            MOVE
72037Line:    369            MOVE
72038Line:    370            MOVE
72039Line:    372            IF
72040Line:    377            MOVE
72041Line:    378            MOVE
72042Line:    379            MOVE
72043Line:    381            WRITE
72044Line:    382            IF
72045Line:    358 Paragraph: 1000-LOAD-RECORD
72046Line:    360            MOVE
72047Line:    361            MOVE
72048Line:    362            MOVE
72049Line:    363            MOVE
72050Line:    364            MOVE
72051Line:    365            MOVE
72052Line:    366            MOVE
72053Line:    367            MOVE
72054Line:    368            MOVE
72055Line:    369            MOVE
72056Line:    370            MOVE
72057Line:    372            IF
72058Line:    373            MOVE
72059Line:    374            MOVE
72060Line:    375            MOVE
72061Line:    381            WRITE
72062Line:    382            IF
72063Line:    358 Paragraph: 1000-LOAD-RECORD
72064Line:    360            MOVE
72065Line:    361            MOVE
72066Line:    362            MOVE
72067Line:    363            MOVE
72068Line:    364            MOVE
72069Line:    365            MOVE
72070Line:    366            MOVE
72071Line:    367            MOVE
72072Line:    368            MOVE
72073Line:    369            MOVE
72074Line:    370            MOVE
72075Line:    372            IF
72076Line:    373            MOVE
72077Line:    374            MOVE
72078Line:    375            MOVE
72079Line:    381            WRITE
72080Line:    382            IF
72081Line:    358 Paragraph: 1000-LOAD-RECORD
72082Line:    360            MOVE
72083Line:    361            MOVE
72084Line:    362            MOVE
72085Line:    363            MOVE
72086Line:    364            MOVE
72087Line:    365            MOVE
72088Line:    366            MOVE
72089Line:    367            MOVE
72090Line:    368            MOVE
72091Line:    369            MOVE
72092Line:    370            MOVE
72093Line:    372            IF
72094Line:    373            MOVE
72095Line:    374            MOVE
72096Line:    375            MOVE
72097Line:    381            WRITE
72098Line:    382            IF
72099Line:    358 Paragraph: 1000-LOAD-RECORD
72100Line:    360            MOVE
72101Line:    361            MOVE
72102Line:    362            MOVE
72103Line:    363            MOVE
72104Line:    364            MOVE
72105Line:    365            MOVE
72106Line:    366            MOVE
72107Line:    367            MOVE
72108Line:    368            MOVE
72109Line:    369            MOVE
72110Line:    370            MOVE
72111Line:    372            IF
72112Line:    377            MOVE
72113Line:    378            MOVE
72114Line:    379            MOVE
72115Line:    381            WRITE
72116Line:    382            IF
72117Line:    358 Paragraph: 1000-LOAD-RECORD
72118Line:    360            MOVE
72119Line:    361            MOVE
72120Line:    362            MOVE
72121Line:    363            MOVE
72122Line:    364            MOVE
72123Line:    365            MOVE
72124Line:    366            MOVE
72125Line:    367            MOVE
72126Line:    368            MOVE
72127Line:    369            MOVE
72128Line:    370            MOVE
72129Line:    372            IF
72130Line:    377            MOVE
72131Line:    378            MOVE
72132Line:    379            MOVE
72133Line:    381            WRITE
72134Line:    382            IF
72135Line:    358 Paragraph: 1000-LOAD-RECORD
72136Line:    360            MOVE
72137Line:    361            MOVE
72138Line:    362            MOVE
72139Line:    363            MOVE
72140Line:    364            MOVE
72141Line:    365            MOVE
72142Line:    366            MOVE
72143Line:    367            MOVE
72144Line:    368            MOVE
72145Line:    369            MOVE
72146Line:    370            MOVE
72147Line:    372            IF
72148Line:    377            MOVE
72149Line:    378            MOVE
72150Line:    379            MOVE
72151Line:    381            WRITE
72152Line:    382            IF
72153Line:    358 Paragraph: 1000-LOAD-RECORD
72154Line:    360            MOVE
72155Line:    361            MOVE
72156Line:    362            MOVE
72157Line:    363            MOVE
72158Line:    364            MOVE
72159Line:    365            MOVE
72160Line:    366            MOVE
72161Line:    367            MOVE
72162Line:    368            MOVE
72163Line:    369            MOVE
72164Line:    370            MOVE
72165Line:    372            IF
72166Line:    377            MOVE
72167Line:    378            MOVE
72168Line:    379            MOVE
72169Line:    381            WRITE
72170Line:    382            IF
72171Line:    358 Paragraph: 1000-LOAD-RECORD
72172Line:    360            MOVE
72173Line:    361            MOVE
72174Line:    362            MOVE
72175Line:    363            MOVE
72176Line:    364            MOVE
72177Line:    365            MOVE
72178Line:    366            MOVE
72179Line:    367            MOVE
72180Line:    368            MOVE
72181Line:    369            MOVE
72182Line:    370            MOVE
72183Line:    372            IF
72184Line:    377            MOVE
72185Line:    378            MOVE
72186Line:    379            MOVE
72187Line:    381            WRITE
72188Line:    382            IF
72189Line:    350            DISPLAY
72190Line:    352            CLOSE
72191Line:    321            PERFORM
72192Line:    387 Paragraph: LISTFILE
72193Line:    388            DISPLAY
72194Line:    389            OPEN
72195Line:    390            MOVE
72196Line:    391            MOVE
72197Line:    392            START
72198Line:    393            READ
72199Line:    394            READ
72200Line:    395            CLOSE
72201Line:    397            MOVE
72202Line:    398            OPEN
72203Line:    399            IF
72204Line:    404            MOVE
72205Line:    405            MOVE
72206Line:    406            START
72207Line:    407            READ
72208Line:    408            READ
72209Line:    410            MOVE
72210Line:    411            MOVE
72211Line:    412            START
72212Line:    413            IF
72213Line:    418            READ
72214Line:    419            IF
72215Line:    424            PERFORM
72216Line:    426            DISPLAY
72217Line:    429            CALL
72218Line:    430            READ
72219Line:    434            ADD
72220Line:    426            DISPLAY
72221Line:    429            CALL
72222Line:    430            READ
72223Line:    434            ADD
72224Line:    426            DISPLAY
72225Line:    429            CALL
72226Line:    430            READ
72227Line:    434            ADD
72228Line:    426            DISPLAY
72229Line:    429            CALL
72230Line:    430            READ
72231Line:    434            ADD
72232Line:    426            DISPLAY
72233Line:    429            CALL
72234Line:    430            READ
72235Line:    434            ADD
72236Line:    426            DISPLAY
72237Line:    429            CALL
72238Line:    430            READ
72239Line:    434            ADD
72240Line:    426            DISPLAY
72241Line:    429            CALL
72242Line:    430            READ
72243Line:    434            ADD
72244Line:    426            DISPLAY
72245Line:    429            CALL
72246Line:    430            READ
72247Line:    434            ADD
72248Line:    426            DISPLAY
72249Line:    429            CALL
72250Line:    430            READ
72251Line:    434            ADD
72252Line:    426            DISPLAY
72253Line:    429            CALL
72254Line:    430            READ
72255Line:    434            ADD
72256Line:    426            DISPLAY
72257Line:    429            CALL
72258Line:    430            READ
72259Line:    434            ADD
72260Line:    436            IF
72261Line:    439            DISPLAY
72262Line:    442            DISPLAY
72263Line:    443            MOVE
72264Line:    444            START
72265Line:    445            IF
72266Line:    450            READ
72267Line:    451            IF
72268Line:    456            PERFORM
72269Line:    458            DISPLAY
72270Line:    461            READ
72271Line:    465            ADD
72272Line:    458            DISPLAY
72273Line:    461            READ
72274Line:    465            ADD
72275Line:    458            DISPLAY
72276Line:    461            READ
72277Line:    465            ADD
72278Line:    458            DISPLAY
72279Line:    461            READ
72280Line:    465            ADD
72281Line:    458            DISPLAY
72282Line:    461            READ
72283Line:    465            ADD
72284Line:    458            DISPLAY
72285Line:    461            READ
72286Line:    465            ADD
72287Line:    458            DISPLAY
72288Line:    461            READ
72289Line:    465            ADD
72290Line:    458            DISPLAY
72291Line:    461            READ
72292Line:    465            ADD
72293Line:    458            DISPLAY
72294Line:    461            READ
72295Line:    465            ADD
72296Line:    458            DISPLAY
72297Line:    461            READ
72298Line:    465            ADD
72299Line:    458            DISPLAY
72300Line:    461            READ
72301Line:    465            ADD
72302Line:    468            CLOSE
72303Line:    470            OPEN
72304Line:    471            MOVE
72305Line:    472            MOVE
72306Line:    473            MOVE
72307Line:    474            READ
72308Line:    475            IF
72309Line:    479            MOVE
72310Line:    480            MOVE
72311Line:    481            READ
72312Line:    482            IF
72313Line:    486            DISPLAY
72314Line:    490            READ
72315Line:    491            IF
72316Line:    495            DISPLAY
72317Line:    499            MOVE
72318Line:    500            MOVE
72319Line:    501            READ
72320Line:    502            IF
72321Line:    506            DISPLAY
72322Line:    510            WRITE
72323Line:    511            IF
72324Line:    515            DISPLAY
72325Line:    518            MOVE
72326Line:    519            MOVE
72327Line:    520            READ
72328Line:    521            DISPLAY
72329Line:    525            ADD
72330Line:    526            REWRITE
72331Line:    527            IF
72332Line:    532            DISPLAY
72333Line:    537            MOVE
72334Line:    538            MOVE
72335Line:    539            READ
72336Line:    540            DISPLAY
72337Line:    544            MOVE
72338Line:    545            MOVE
72339Line:    546            REWRITE
72340Line:    547            IF
72341Line:    552            DISPLAY
72342Line:    556            MOVE
72343Line:    557            MOVE
72344Line:    558            READ
72345Line:    559            MOVE
72346Line:    560            MOVE
72347Line:    561            REWRITE
72348Line:    562            IF
72349Line:    567            DISPLAY
72350Line:    571            DELETE
72351Line:    572            CLOSE
72352Line:    333            STOP RUN
72353_ATEOF
72354
72355
72356{ set +x
72357$as_echo "$at_srcdir/run_misc.at:8832: diff reference trace.txt"
72358at_fn_check_prepare_trace "run_misc.at:8832"
72359( $at_check_trace; diff reference trace.txt
72360) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72361at_status=$? at_failed=false
72362$at_check_filter
72363at_fn_diff_devnull "$at_stderr" || at_failed=:
72364at_fn_diff_devnull "$at_stdout" || at_failed=:
72365at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8832"
72366$at_failed && at_fn_log_failure  \
72367"./trace.txt"
72368$at_traceon; }
72369
72370
72371{ set +x
72372$as_echo "$at_srcdir/run_misc.at:8834: \$COMPILE -ftrace prog.cob -o prog_s"
72373at_fn_check_prepare_dynamic "$COMPILE -ftrace prog.cob -o prog_s" "run_misc.at:8834"
72374( $at_check_trace; $COMPILE -ftrace prog.cob -o prog_s
72375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72376at_status=$? at_failed=false
72377$at_check_filter
72378at_fn_diff_devnull "$at_stderr" || at_failed=:
72379at_fn_diff_devnull "$at_stdout" || at_failed=:
72380at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8834"
72381$at_failed && at_fn_log_failure  \
72382"./trace.txt"
72383$at_traceon; }
72384
72385
72386{ set +x
72387$as_echo "$at_srcdir/run_misc.at:8836: COB_TRACE_FILE=+trace_append.txt \\
72388COB_SET_TRACE=Y \\
72389COB_TRACE_FORMAT=\"%S and now ... %L\" \\
72390\$COBCRUN_DIRECT ./prog_s"
72391at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:8836"
72392( $at_check_trace; COB_TRACE_FILE=+trace_append.txt \
72393COB_SET_TRACE=Y \
72394COB_TRACE_FORMAT="%S and now ... %L" \
72395$COBCRUN_DIRECT ./prog_s
72396) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72397at_status=$? at_failed=false
72398$at_check_filter
72399at_fn_diff_devnull "$at_stderr" || at_failed=:
72400echo >>"$at_stdout"; $as_echo "OK: Operations on empty file
72401Loading sample data file.
72402Sample data file load complete.
72403LIST SAMPLE FILE
72404Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
72405Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
72406Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
72407Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
72408Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
72409Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
72410Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
72411Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
72412Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
72413Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
72414Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
72415Stop read after: 11
72416LIST SAMPLE FILE DESCENDING
72417Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
72418Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
72419Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
72420Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
72421Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
72422Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
72423Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
72424Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
72425Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
72426Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
72427Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
72428Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
72429Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
72430Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
72431  Write: GIB00000 got 22 as expected
72432   Read: GAM00000 got 00 as expected 00075 terminals
72433ReWrite: GAM00000 got 00 as expected 00080 terminals
72434   Read: BET00000 got 00 as expected 00034 terminals
72435ReWrite: GAM00000 got 00/02 as expected
72436ReWrite: FOR00000 got 00/02 as expected
72437" | \
72438  $at_diff - "$at_stdout" || at_failed=:
72439at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8836"
72440$at_failed && at_fn_log_failure  \
72441"./trace.txt"
72442$at_traceon; }
72443
72444
72445{ set +x
72446$as_echo "$at_srcdir/run_misc.at:8879: COB_TRACE_FILE=+trace_append.txt \\
72447COB_SET_TRACE=Y \\
72448COB_TRACE_FORMAT=\"%S - %L\"\\
72449\$COBCRUN_DIRECT ./prog_s"
72450at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:8879"
72451( $at_check_trace; COB_TRACE_FILE=+trace_append.txt \
72452COB_SET_TRACE=Y \
72453COB_TRACE_FORMAT="%S - %L"\
72454$COBCRUN_DIRECT ./prog_s
72455) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72456at_status=$? at_failed=false
72457$at_check_filter
72458at_fn_diff_devnull "$at_stderr" || at_failed=:
72459echo >>"$at_stdout"; $as_echo "OK: Operations on empty file
72460Loading sample data file.
72461Sample data file load complete.
72462LIST SAMPLE FILE
72463Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
72464Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
72465Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
72466Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
72467Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
72468Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
72469Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
72470Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
72471Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
72472Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
72473Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
72474Stop read after: 11
72475LIST SAMPLE FILE DESCENDING
72476Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
72477Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
72478Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
72479Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
72480Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
72481Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
72482Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
72483Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
72484Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
72485Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
72486Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
72487Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
72488Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
72489Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
72490  Write: GIB00000 got 22 as expected
72491   Read: GAM00000 got 00 as expected 00075 terminals
72492ReWrite: GAM00000 got 00 as expected 00080 terminals
72493   Read: BET00000 got 00 as expected 00034 terminals
72494ReWrite: GAM00000 got 00/02 as expected
72495ReWrite: FOR00000 got 00/02 as expected
72496" | \
72497  $at_diff - "$at_stdout" || at_failed=:
72498at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8879"
72499$at_failed && at_fn_log_failure  \
72500"./trace.txt"
72501$at_traceon; }
72502
72503
72504
72505cat >reference_append <<'_ATEOF'
72506Source: 'prog.cob'
72507Program-Id:  prog
72508    Entry: prog                            and now ...    290
72509Paragraph: MAINFILE                        and now ...    292
72510Paragraph: LOADFILE                        and now ...    335
72511Paragraph: 1000-LOAD-RECORD                and now ...    358
72512Paragraph: 1000-LOAD-RECORD                and now ...    358
72513Paragraph: 1000-LOAD-RECORD                and now ...    358
72514Paragraph: 1000-LOAD-RECORD                and now ...    358
72515Paragraph: 1000-LOAD-RECORD                and now ...    358
72516Paragraph: 1000-LOAD-RECORD                and now ...    358
72517Paragraph: 1000-LOAD-RECORD                and now ...    358
72518Paragraph: 1000-LOAD-RECORD                and now ...    358
72519Paragraph: 1000-LOAD-RECORD                and now ...    358
72520Paragraph: 1000-LOAD-RECORD                and now ...    358
72521Paragraph: 1000-LOAD-RECORD                and now ...    358
72522Paragraph: 1000-LOAD-RECORD                and now ...    358
72523Paragraph: 1000-LOAD-RECORD                and now ...    358
72524Paragraph: 1000-LOAD-RECORD                and now ...    358
72525Paragraph: 1000-LOAD-RECORD                and now ...    358
72526Paragraph: 1000-LOAD-RECORD                and now ...    358
72527Paragraph: LISTFILE                        and now ...    387
72528Source: 'prog.cob'
72529Program-Id:  prog
72530    Entry: prog                            -    290
72531Paragraph: MAINFILE                        -    292
72532Paragraph: LOADFILE                        -    335
72533Paragraph: 1000-LOAD-RECORD                -    358
72534Paragraph: 1000-LOAD-RECORD                -    358
72535Paragraph: 1000-LOAD-RECORD                -    358
72536Paragraph: 1000-LOAD-RECORD                -    358
72537Paragraph: 1000-LOAD-RECORD                -    358
72538Paragraph: 1000-LOAD-RECORD                -    358
72539Paragraph: 1000-LOAD-RECORD                -    358
72540Paragraph: 1000-LOAD-RECORD                -    358
72541Paragraph: 1000-LOAD-RECORD                -    358
72542Paragraph: 1000-LOAD-RECORD                -    358
72543Paragraph: 1000-LOAD-RECORD                -    358
72544Paragraph: 1000-LOAD-RECORD                -    358
72545Paragraph: 1000-LOAD-RECORD                -    358
72546Paragraph: 1000-LOAD-RECORD                -    358
72547Paragraph: 1000-LOAD-RECORD                -    358
72548Paragraph: 1000-LOAD-RECORD                -    358
72549Paragraph: LISTFILE                        -    387
72550_ATEOF
72551
72552
72553
72554
72555{ set +x
72556$as_echo "$at_srcdir/run_misc.at:8972: diff reference_append trace_append.txt"
72557at_fn_check_prepare_trace "run_misc.at:8972"
72558( $at_check_trace; diff reference_append trace_append.txt
72559) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72560at_status=$? at_failed=false
72561$at_check_filter
72562at_fn_diff_devnull "$at_stderr" || at_failed=:
72563at_fn_diff_devnull "$at_stdout" || at_failed=:
72564at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8972"
72565$at_failed && at_fn_log_failure  \
72566"./trace.txt" \
72567"./trace_append.txt"
72568$at_traceon; }
72569
72570
72571  set +x
72572  $at_times_p && times >"$at_times_file"
72573) 5>&1 2>&1 7>&- | eval $at_tee_pipe
72574read at_status <"$at_status_file"
72575#AT_STOP_688
72576#AT_START_689
72577at_fn_group_banner 689 'run_misc.at:8977' \
72578  "stack and dump feature" "                         " 4
72579at_xfail=no
72580(
72581  $as_echo "689. $at_setup_line: testing $at_desc ..."
72582  $at_traceon
72583
72584#AT_KEYWORDS([Dump])
72585
72586cat >./cpyabrt <<'_ATEOF'
72587
72588            MOVE "Quick brown fox jumped over the dog"
72589              TO TSTTAILX (1:40).
72590            MOVE CM-COMPANY TO TSTTAILX (42:20).
72591      *     DISPLAY ':' X ':'.
72592      *     DISPLAY CM-COMPANY.
72593      *     DISPLAY '>' CM-COMPANY '<'.
72594_ATEOF
72595
72596
72597cat >prog.cob <<'_ATEOF'
72598
72599       IDENTIFICATION DIVISION.
72600       PROGRAM-ID. prog.
72601       ENVIRONMENT DIVISION.
72602       CONFIGURATION SECTION.
72603
72604       INPUT-OUTPUT SECTION.
72605       FILE-CONTROL.
72606           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
72607           ORGANIZATION RELATIVE
72608           ACCESS IS SEQUENTIAL RELATIVE KEY IS REC-NUM
72609           FILE STATUS IS CUST-STAT.
72610
72611       DATA  DIVISION.
72612       FILE SECTION.
72613       FD  FLATFILE
72614           BLOCK CONTAINS 5 RECORDS.
72615
72616       01  TSPFL-RECORD.
72617           10  CM-CUST-NUM                     PICTURE X(8).
72618           10  CM-COMPANY                      PICTURE X(25).
72619           10  CM-DISK                         PICTURE X(8).
72620           10  CM-NO-TERMINALS                 PICTURE 9(4).
72621
72622       WORKING-STORAGE SECTION.
72623       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
72624       77  CUST-STAT                           PICTURE X(2).
72625       77  REC-NUM           VALUE  1          PICTURE 9(4).
72626       01  BIN                      PIC 9(9) BINARY VALUE 0.
72627
72628       01  TEST-DATA.
72629         02  DATA-CUST-NUM-TBL.
72630           05  FILLER PIC X(8) VALUE "ALP00000".
72631           05  FILLER PIC X(8) VALUE "BET00000".
72632           05  FILLER PIC X(8) VALUE "DEL00000".
72633           05  FILLER PIC X(8) VALUE "EPS00000".
72634           05  FILLER PIC X(8) VALUE "FOR00000".
72635           05  FILLER PIC X(8) VALUE "GAM00000".
72636
72637         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
72638                                       PIC X(8) OCCURS 6.
72639         02  DATA-COMPANY-TBL.
72640           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
72641           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
72642           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
72643           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
72644           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
72645           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
72646         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
72647                                       PIC X(25) OCCURS 6.
72648         02  DATA-ADDRESS-2-TBL.
72649           05  FILLER PIC X(10) VALUE "ATLANTA   ".
72650           05  FILLER PIC X(10) VALUE "CALGARY   ".
72651           05  FILLER PIC X(10) VALUE "NEW YORK  ".
72652           05  FILLER PIC X(10) VALUE "TORONTO   ".
72653           05  FILLER PIC X(10) VALUE "WASHINGTON".
72654           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
72655         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
72656                                       PIC X(10) OCCURS 6.
72657
72658         02  DATA-NO-TERMINALS-TBL.
72659           05  FILLER PIC 9(3) COMP-3 VALUE 10.
72660           05  FILLER PIC 9(3) COMP-3 VALUE 13.
72661           05  FILLER PIC 9(3) COMP-3 VALUE 75.
72662           05  FILLER PIC 9(3) COMP-3 VALUE 10.
72663           05  FILLER PIC 9(3) COMP-3 VALUE 90.
72664           05  FILLER PIC 9(3) COMP-3 VALUE 254.
72665         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
72666                                       PIC 9(3) COMP-3 OCCURS 6.
72667       01  WORK-AREA IS EXTERNAL.
72668           05  SUB                             PICTURE 9(4) COMP SYNC.
72669               88  ODD-RECORD                  VALUE 1 3 5.
72670       01  SUMS-NON-STD-OCCURS PIC S9(15)V9(03) OCCURS 8 VALUE -42.345.
72671
72672       PROCEDURE DIVISION.
72673
72674           PERFORM LOADFILE.
72675
72676           OPEN INPUT FLATFILE.
72677           READ FLATFILE.
72678
72679       MAIN-100.
72680           PERFORM CALL-SUB-1.
72681           PERFORM CALL-SUB-2.
72682           PERFORM CALL-IT-OMIT.
72683           STOP RUN.
72684
72685       LOADFILE.
72686           OPEN OUTPUT FLATFILE.
72687
72688           PERFORM LOAD-RECORD
72689                        VARYING SUB FROM 1 BY 1
72690                          UNTIL SUB > MAX-SUB.
72691
72692           CLOSE FLATFILE.
72693
72694       LOAD-RECORD.
72695
72696           MOVE SPACES                       TO TSPFL-RECORD.
72697           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
72698           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
72699           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
72700           IF  ODD-RECORD
72701               MOVE "8417"                   TO CM-DISK
72702           ELSE
72703               MOVE "8470"                   TO CM-DISK.
72704           WRITE TSPFL-RECORD.
72705
72706       CALL-SUB-1 SECTION.
72707           CALL "sub1" USING bin, TSPFL-RECORD.
72708
72709       CALL-SUB-2 SECTION.
72710           MOVE 4096 TO bin, SUMS-NON-STD-OCCURS (2)
72711           CALL "sub2" USING bin, TSPFL-RECORD.
72712
72713       CALL-IT-OMIT SECTION.
72714           MOVE 5440 TO bin, SUMS-NON-STD-OCCURS (3)
72715           CALL "sub2" USING bin, TSPFL-RECORD.
72716
72717           END PROGRAM prog.
72718
72719       IDENTIFICATION DIVISION.
72720       PROGRAM-ID. sub1.
72721       DATA DIVISION.
72722       WORKING-STORAGE SECTION.
72723       01  ZRO PIC 9(9) BINARY VALUE 0.
72724       01  HEXV PIC X  COMP-X.
72725       01  HEXC REDEFINES HEXV PIC X.
72726
72727       01 TEST-BASED BASED.
72728          05 TEST-BASED-SUB PIC X(00000100000).
72729
72730       01 TEST-ALLOCED BASED.
72731          05 TEST-ALLOCED-SUB1 PIC X(010).
72732          05 TEST-ALLOCED-SUB2 PIC 9(006).
72733
72734       01  IDX PIC 9(9) BINARY VALUE 0.
72735       01  TSTREC.
72736         05  TSTDEP  PIC XXX.
72737         05  TSTX OCCURS 4 TIMES.
72738           15  TSTG-1 PIC 99.
72739           15  TSTX-2 PIC XX OCCURS 4 TIMES.
72740         05  TSTTAIL1  PIC 99.
72741         05  TSTCOMP3  PIC 9(5) COMP-3.
72742         05  TSTLONG   PIC X(100).
72743         05  TSTHEX    PIC X(100).
72744         05  TSTHEX2   PIC X(60).
72745         05  TSTTAILX  PIC X(80).
72746
72747       LINKAGE SECTION.
72748       01  X  PIC 9(9) BINARY.
72749       01  TSPFL-RECORD.
72750           10  CM-CUST-NUM                     PICTURE X(8).
72751           10  CM-COMPANY                      PICTURE X(25).
72752           10  CM-DISK                         PICTURE X(8).
72753           10  CM-NO-TERMINALS                 PICTURE 9(4).
72754
72755       PROCEDURE DIVISION USING X, TSPFL-RECORD.
72756       MAIN-1 SECTION.
72757            MOVE ALL "X" TO TSTREC.
72758            MOVE 1 TO TSTG-1 (1).
72759            MOVE 2 TO TSTG-1 (2).
72760            MOVE 3 TO TSTG-1 (3).
72761            MOVE 'A' TO TSTX-2 (1,1).
72762            MOVE 'B' TO TSTX-2 (2,1).
72763            MOVE 'C' TO TSTX-2 (3,1).
72764            MOVE 'xx' TO TSTX-2 (1,4).
72765            MOVE 'yy' TO TSTX-2 (2,4).
72766            MOVE 'zz' TO TSTX-2 (3,4).
72767            MOVE SPACES TO TSTX-2 (1,3).
72768            MOVE HIGH-VALUES TO TSTX (4).
72769            MOVE LOW-VALUES TO TSTX-2 (2,3).
72770            MOVE HIGH-VALUES TO TSTX-2 (3,3).
72771            MOVE "Quick brown fox jumped over the dog"
72772              TO TSTLONG, TSTLONG (50:36).
72773            MOVE "Quicker grey fox jumped the cougar"
72774              TO TSTHEX (1:35).
72775       MAIN-2.
72776            MOVE 17 TO HEXV.
72777            MOVE HEXC TO TSTHEX (39:1).
72778            MOVE HEXC TO TSTTAIL1 (2:1).
72779            MOVE 7 TO HEXV.
72780            MOVE HEXC TO TSTHEX (47:1).
72781            MOVE 13 TO HEXV.
72782            MOVE HEXC TO TSTHEX (59:1).
72783            MOVE 0 TO HEXV.
72784            MOVE HEXC TO TSTHEX2 (39:1), TSTHEX2 (10:1).
72785            MOVE 9 TO HEXV.
72786            MOVE HEXC TO TSTHEX2 (47:1).
72787            MOVE '\' TO TSTHEX2 (32:1).
72788            MOVE 13 TO HEXV.
72789            MOVE HEXC TO TSTHEX2 (59:1).
72790            MOVE 'A' TO TSTHEX2 (54:1).
72791            MOVE LOW-VALUES TO TSTTAILX
72792            ADD 1 TO X.
72793            DISPLAY "X is " X.
72794            ALLOCATE TEST-ALLOCED INITIALIZED.
72795            COPY cpyabrt.
72796            IF ADDRESS OF TEST-BASED NOT = NULL
72797              DISPLAY TEST-BASED-SUB
72798            END-IF.
72799            GOBACK.
72800       END PROGRAM sub1.
72801
72802       IDENTIFICATION DIVISION.
72803       PROGRAM-ID. sub2.
72804       DATA DIVISION.
72805       WORKING-STORAGE SECTION.
72806       01  ZRO PIC 9(9) BINARY VALUE 0.
72807       01  HEXV PIC X  COMP-X.
72808       01  HEXC REDEFINES HEXV PIC X.
72809
72810       01  IDX PIC 9(9) BINARY VALUE 0.
72811       01  TSTREC.
72812         05  TSTDEP  PIC XXX.
72813         05  TSTX OCCURS 4 TIMES.
72814           15  TSTG-1 PIC 99.
72815           15  TSTX-2 PIC XX OCCURS 4 TIMES.
72816         05  TSTTAIL1  PIC 99.
72817         05  TSTCOMP3  PIC 9(5) COMP-3.
72818         05  TSTLONG   PIC X(100).
72819         05  TSTHEX    PIC X(100).
72820         05  TSTHEX2   PIC X(60).
72821         05  TSTTAILX  PIC X(80).
72822
72823       01  BASED-RECORD BASED.
72824           10  B-NUM              PICTURE 9(4) VALUE 123.
72825           10  B-DISK             PICTURE X(8) VALUE "marvdisc".
72826           10  B-NO-TERMINALS     PICTURE 9(4).
72827       77  BASED-NEVER-SET        PIC     X    BASED.
72828
72829       LINKAGE SECTION.
72830       01  X  PIC 9(9) BINARY.
72831       01  TSPFL-RECORD.
72832           10  CM-CUST-NUM        PICTURE X(8).
72833           10  CM-COMPANY         PICTURE X(25).
72834           10  CM-DISK            PICTURE X(8).
72835           10  CM-NO-TERMINALS    PICTURE 9(4).
72836       77  DYNAMIC-NUM            PICTURE 9(4).
72837
72838       PROCEDURE DIVISION USING X, TSPFL-RECORD.
72839
72840           IF ADDRESS OF BASED-RECORD = NULL
72841              ALLOCATE BASED-RECORD INITIALIZED
72842           ELSE
72843              SET ADDRESS OF DYNAMIC-NUM TO ADDRESS OF BASED-RECORD
72844              ADD 1 TO B-NUM
72845           END-IF
72846
72847           IF X = 5440
72848               CALL "sub1" USING X, OMITTED.
72849           MOVE ALL "X" TO TSTREC.
72850           MOVE 1 TO TSTG-1 (1).
72851           MOVE 2 TO TSTG-1 (2).
72852           MOVE 3 TO TSTG-1 (3).
72853           MOVE 'A' TO TSTX-2 (1,1).
72854           MOVE 'B' TO TSTX-2 (2,1).
72855           MOVE 'C' TO TSTX-2 (3,1).
72856           MOVE 'xx' TO TSTX-2 (1,4).
72857           MOVE 'yy' TO TSTX-2 (2,4).
72858           MOVE 'zz' TO TSTX-2 (3,4).
72859           MOVE SPACES TO TSTX-2 (1,3).
72860           MOVE HIGH-VALUES TO TSTX (4).
72861           MOVE LOW-VALUES TO TSTX-2 (2,3).
72862           MOVE HIGH-VALUES TO TSTX-2 (3,3).
72863           MOVE "Quick brown fox jumped over the dog"
72864             TO TSTLONG, TSTLONG (50:36).
72865           MOVE "Quicker grey fox jumped the cougar"
72866             TO TSTHEX (1:35).
72867           MOVE 17 TO HEXV.
72868           MOVE HEXC TO TSTHEX (39:1).
72869           MOVE HEXC TO TSTTAIL1 (2:1).
72870           MOVE 7 TO HEXV.
72871           MOVE HEXC TO TSTHEX (47:1).
72872           MOVE 13 TO HEXV.
72873           MOVE HEXC TO TSTHEX (59:1).
72874           MOVE 0 TO HEXV.
72875           MOVE HEXC TO TSTHEX2 (39:1), TSTHEX2 (10:1).
72876           MOVE 9 TO HEXV.
72877           MOVE HEXC TO TSTHEX2 (47:1).
72878           MOVE '\' TO TSTHEX2 (32:1).
72879           MOVE 13 TO HEXV.
72880           MOVE HEXC TO TSTHEX2 (59:1).
72881           MOVE 'A' TO TSTHEX2 (54:1).
72882           MOVE LOW-VALUES TO TSTTAILX.
72883      *
72884           COPY cpyabrt.
72885       END PROGRAM sub2.
72886_ATEOF
72887
72888
72889{ set +x
72890$as_echo "$at_srcdir/run_misc.at:9279: \$COMPILE prog.cob"
72891at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:9279"
72892( $at_check_trace; $COMPILE prog.cob
72893) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72894at_status=$? at_failed=false
72895$at_check_filter
72896at_fn_diff_devnull "$at_stderr" || at_failed=:
72897at_fn_diff_devnull "$at_stdout" || at_failed=:
72898at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9279"
72899$at_failed && at_fn_log_failure
72900$at_traceon; }
72901
72902
72903
72904
72905# also checking that a dump file without anything to dump does not do anything
72906{ set +x
72907$as_echo "$at_srcdir/run_misc.at:9284: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
72908\$COBCRUN_DIRECT ./prog"
72909at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9284"
72910( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
72911$COBCRUN_DIRECT ./prog
72912) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72913at_status=$? at_failed=false
72914$at_check_filter
72915echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
72916libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
72917
72918 Last statement of sub1 was at line 4 of cpyabrt
72919 Last statement of sub2 was at line 251 of prog.cob
72920 Last statement of prog was at line 118 of prog.cob
72921" | \
72922  $at_diff - "$at_stderr" || at_failed=:
72923echo >>"$at_stdout"; $as_echo "X is 000000001
72924X is 000005441
72925" | \
72926  $at_diff - "$at_stdout" || at_failed=:
72927at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9284"
72928$at_failed && at_fn_log_failure  \
72929"./tstdump.dump"
72930$at_traceon; }
72931
72932
72933{ set +x
72934$as_echo "$at_srcdir/run_misc.at:9297: \$COMPILE -fdump=ALL -fno-dump prog.cob"
72935at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL -fno-dump prog.cob" "run_misc.at:9297"
72936( $at_check_trace; $COMPILE -fdump=ALL -fno-dump prog.cob
72937) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72938at_status=$? at_failed=false
72939$at_check_filter
72940at_fn_diff_devnull "$at_stderr" || at_failed=:
72941at_fn_diff_devnull "$at_stdout" || at_failed=:
72942at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9297"
72943$at_failed && at_fn_log_failure  \
72944"./tstdump.dump"
72945$at_traceon; }
72946
72947
72948# also checking that a dump file without anything to dump does not do anything
72949{ set +x
72950$as_echo "$at_srcdir/run_misc.at:9300: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
72951\$COBCRUN_DIRECT ./prog"
72952at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9300"
72953( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
72954$COBCRUN_DIRECT ./prog
72955) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72956at_status=$? at_failed=false
72957$at_check_filter
72958echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
72959libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
72960
72961 Last statement of sub1 was at line 4 of cpyabrt
72962 Last statement of sub2 was at line 251 of prog.cob
72963 Last statement of prog was at line 118 of prog.cob
72964" | \
72965  $at_diff - "$at_stderr" || at_failed=:
72966echo >>"$at_stdout"; $as_echo "X is 000000001
72967X is 000005441
72968" | \
72969  $at_diff - "$at_stdout" || at_failed=:
72970at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9300"
72971$at_failed && at_fn_log_failure  \
72972"./tstdump.dump"
72973$at_traceon; }
72974
72975
72976{ set +x
72977$as_echo "$at_srcdir/run_misc.at:9313: \$COMPILE -fdump=ALL prog.cob"
72978at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL prog.cob" "run_misc.at:9313"
72979( $at_check_trace; $COMPILE -fdump=ALL prog.cob
72980) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72981at_status=$? at_failed=false
72982$at_check_filter
72983at_fn_diff_devnull "$at_stderr" || at_failed=:
72984at_fn_diff_devnull "$at_stdout" || at_failed=:
72985at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9313"
72986$at_failed && at_fn_log_failure  \
72987"./tstdump.dump"
72988$at_traceon; }
72989
72990
72991{ set +x
72992$as_echo "$at_srcdir/run_misc.at:9315: COB_DUMP_FILE=tstdump.dump \\
72993\$COBCRUN_DIRECT ./prog"
72994at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9315"
72995( $at_check_trace; COB_DUMP_FILE=tstdump.dump \
72996$COBCRUN_DIRECT ./prog
72997) >>"$at_stdout" 2>>"$at_stderr" 5>&-
72998at_status=$? at_failed=false
72999$at_check_filter
73000echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73001libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
73002
73003dump written to tstdump.dump
73004" | \
73005  $at_diff - "$at_stderr" || at_failed=:
73006echo >>"$at_stdout"; $as_echo "X is 000000001
73007X is 000005441
73008" | \
73009  $at_diff - "$at_stdout" || at_failed=:
73010at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9315"
73011$at_failed && at_fn_log_failure  \
73012"./tstdump.dump"
73013$at_traceon; }
73014
73015
73016cat >reference_tmpl <<'_ATEOF'
73017
73018Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73019
73020 Last statement of sub1 was at line 4 of cpyabrt
73021 Last statement of sub2 was at line 251 of prog.cob
73022 Last statement of prog was at line 118 of prog.cob
73023
73024Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS
73025
73026WORKING-STORAGE
73027**********************
7302801        ZRO                             000000000
7302901        HEXV                            13
7303001        TEST-BASED.                    <NULL> address
7303101        TEST-ALLOCED.
73032  05      TEST-ALLOCED-SUB1              ALL SPACES
73033  05      TEST-ALLOCED-SUB2               000000
7303401        IDX                             000000000
7303501        TSTREC.
73036  05      TSTDEP                         'XXX'
73037  05      TSTX (1).
73038       15 TSTG-1 (1)                      01
73039       15 TSTX-2 (1,1)                   'A'
73040       15 TSTX-2 (1,2)                   'XX'
73041       15 TSTX-2 (1,3)                   ALL SPACES
73042       15 TSTX-2 (1,4)                   'xx'
73043  05      TSTX (2).
73044       15 TSTG-1 (2)                      02
73045       15 TSTX-2 (2,1)                   'B'
73046       15 TSTX-2 (2,2)                   'XX'
73047       15 TSTX-2 (2,3)                   ALL LOW-VALUES
73048       15 TSTX-2 (2,4)                   'yy'
73049  05      TSTX (3).
73050       15 TSTG-1 (3)                      03
73051       15 TSTX-2 (3,1)                   'C'
73052       15 TSTX-2 (3,2)                   'XX'
73053       15 TSTX-2 (3,3)                   ALL HIGH-VALUES
73054       15 TSTX-2 (3,4)                   'zz'
73055  05      TSTX (4).
73056       15 TSTG-1 (4)                     ALL HIGH-VALUES
73057       15 TSTX-2 (4,1)                   ALL HIGH-VALUES
73058       15 TSTX-2 (4,2..4) same as (1)
73059  05      TSTTAIL1                        X  _
73060                                     1 x 5811
73061  05      TSTCOMP3                        58585
73062  05      TSTLONG                        'Quick brown fox jumped over the dog              Quick br'
73063                                      57:'own fox jumped over the dog'
73064  05      TSTHEX                          Q u i c  k e r    g r e y    f o x    j u m  p e d  _
73065                                     1 x 51756963 6B657220 67726579 20666F78 206A756D 70656420
73066                                          t h e    c o u g  a r   X  X X   X  X X X X  X X   X
73067                                    25 x 74686520 636F7567 61722058 58581158 58585858 58580758
73068                                          X X X X  X X X X  X X   X  X X X X  X X X X  X X X X
73069                                    49 x 58585858 58585858 58580D58 58585858 58585858 58585858
73070                                          X X X X  X X X X  X X X X  X X X X  X X X X  X X X X
73071                                    73 x 58585858 58585858 58585858 58585858 58585858 58585858
73072                                          X X X X
73073                                    97 x 58585858
73074  05      TSTHEX2                        XXXXXXXXX\0XXXXXXXXXXXXXXXXXXXXX\\XXXXXX\0XXXXXXX\tXXXXXX
73075                                    54 : AXXXX\rX
73076  05      TSTTAILX                       'Quick brown fox jumped over the dog     '
73077                                  trailing LOW-VALUES
73078
73079LINKAGE
73080**********************
7308101        X                               000005441
7308201        TSPFL-RECORD.                  <NULL> address
73083
73084END OF DUMP - sub1
73085**********************
73086
73087Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS
73088
73089WORKING-STORAGE
73090**********************
7309101        ZRO                             000000000
7309201        HEXV                            13
7309301        IDX                             000000000
7309401        TSTREC.
73095  05      TSTDEP                         'XXX'
73096  05      TSTX (1).
73097       15 TSTG-1 (1)                      01
73098       15 TSTX-2 (1,1)                   'A'
73099       15 TSTX-2 (1,2)                   'XX'
73100       15 TSTX-2 (1,3)                   ALL SPACES
73101       15 TSTX-2 (1,4)                   'xx'
73102  05      TSTX (2).
73103       15 TSTG-1 (2)                      02
73104       15 TSTX-2 (2,1)                   'B'
73105       15 TSTX-2 (2,2)                   'XX'
73106       15 TSTX-2 (2,3)                   ALL LOW-VALUES
73107       15 TSTX-2 (2,4)                   'yy'
73108  05      TSTX (3).
73109       15 TSTG-1 (3)                      03
73110       15 TSTX-2 (3,1)                   'C'
73111       15 TSTX-2 (3,2)                   'XX'
73112       15 TSTX-2 (3,3)                   ALL HIGH-VALUES
73113       15 TSTX-2 (3,4)                   'zz'
73114  05      TSTX (4).
73115       15 TSTG-1 (4)                     ALL HIGH-VALUES
73116       15 TSTX-2 (4,1)                   ALL HIGH-VALUES
73117       15 TSTX-2 (4,2..4) same as (1)
73118  05      TSTTAIL1                        X  _
73119                                     1 x 5811
73120  05      TSTCOMP3                        58585
73121  05      TSTLONG                        'Quick brown fox jumped over the dog              Quick br'
73122                                      57:'own fox jumped over the dog'
73123  05      TSTHEX                          Q u i c  k e r    g r e y    f o x    j u m  p e d  _
73124                                     1 x 51756963 6B657220 67726579 20666F78 206A756D 70656420
73125                                          t h e    c o u g  a r   X  X X   X  X X X X  X X   X
73126                                    25 x 74686520 636F7567 61722058 58581158 58585858 58580758
73127                                          X X X X  X X X X  X X   X  X X X X  X X X X  X X X X
73128                                    49 x 58585858 58585858 58580D58 58585858 58585858 58585858
73129                                          X X X X  X X X X  X X X X  X X X X  X X X X  X X X X
73130                                    73 x 58585858 58585858 58585858 58585858 58585858 58585858
73131                                          X X X X
73132                                    97 x 58585858
73133  05      TSTHEX2                        XXXXXXXXX\0XXXXXXXXXXXXXXXXXXXXX\\XXXXXX\0XXXXXXX\tXXXXXX
73134                                    54 : AXXXX\rX
73135  05      TSTTAILX                       Quick brown fox jumped over the dog     \0ALPHA ELECTRICA
73136                                    57 : L CO.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
7313701        BASED-RECORD.
73138     10   B-NUM                           0124
73139     10   B-DISK                         'marvdisc'
73140     10   B-NO-TERMINALS                  0000
7314177        BASED-NEVER-SET                <NULL> address
73142
73143LINKAGE
73144**********************
7314501        X                               000005441
7314601        TSPFL-RECORD.
73147     10   CM-CUST-NUM                    'ALP00000'
73148     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
73149     10   CM-DISK                        '8417'
73150     10   CM-NO-TERMINALS                 0010
7315177        DYNAMIC-NUM                     0124
73152
73153END OF DUMP - sub2
73154**********************
73155
73156Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS
73157
73158FD FLATFILE
73159**********************
73160   File is OPEN
73161   FILE STATUS  '00'
7316201        TSPFL-RECORD.
73163     10   CM-CUST-NUM                    'ALP00000'
73164     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
73165     10   CM-DISK                        '8417'
73166     10   CM-NO-TERMINALS                 0010
73167
73168WORKING-STORAGE
73169**********************
7317077        MAX-SUB                         0006
7317177        CUST-STAT                      ALL ZEROES
7317277        REC-NUM                         0001
7317301        BIN                             000005441
7317401        TEST-DATA.
73175 02       DATA-CUST-NUM-TBL.
73176  05      FILLER                         'ALP00000'
73177  05      FILLER                         'BET00000'
73178  05      FILLER                         'DEL00000'
73179  05      FILLER                         'EPS00000'
73180  05      FILLER                         'FOR00000'
73181  05      FILLER                         'GAM00000'
73182 02       DATA-COMPANY-TBL.
73183  05      FILLER                         'ALPHA ELECTRICAL CO. LTD.'
73184  05      FILLER                         'BETA SHOE MFG. INC.'
73185  05      FILLER                         'DELTA LUGGAGE REPAIRS'
73186  05      FILLER                         'EPSILON EQUIPMENT SUPPLY'
73187  05      FILLER                         'FORTUNE COOKIE COMPANY'
73188  05      FILLER                         'GAMMA X-RAY TECHNOLOGY'
73189 02       DATA-ADDRESS-2-TBL.
73190  05      FILLER                         'ATLANTA'
73191  05      FILLER                         'CALGARY'
73192  05      FILLER                         'NEW YORK'
73193  05      FILLER                         'TORONTO'
73194  05      FILLER                         'WASHINGTON'
73195  05      FILLER                         'WHITEPLAIN'
73196 02       DATA-NO-TERMINALS-TBL.
73197  05      FILLER                          010
73198  05      FILLER                          013
73199  05      FILLER                          075
73200  05      FILLER                          010
73201  05      FILLER                          090
73202  05      FILLER                          254
7320301        WORK-AREA.
73204  05      SUB                             0007
7320501        SUMS-NON-STD-OCCURS (1)         -000000000000042.345
7320601        SUMS-NON-STD-OCCURS (2)         +000000000004096.000
7320701        SUMS-NON-STD-OCCURS (3)         +000000000005440.000
7320801        SUMS-NON-STD-OCCURS (4)         -000000000000042.345
7320901        SUMS-NON-STD-OCCURS (5..8) same as (4)
73210
73211END OF DUMP - prog
73212**********************
73213
73214_ATEOF
73215
73216
73217# AT_DATA workaround via sed:
73218{ set +x
73219$as_echo "$at_srcdir/run_misc.at:9526: \$SED -e 's/_\$//' reference_tmpl > reference"
73220at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_tmpl > reference" "run_misc.at:9526"
73221( $at_check_trace; $SED -e 's/_$//' reference_tmpl > reference
73222) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73223at_status=$? at_failed=false
73224$at_check_filter
73225at_fn_diff_devnull "$at_stderr" || at_failed=:
73226at_fn_diff_devnull "$at_stdout" || at_failed=:
73227at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9526"
73228$at_failed && at_fn_log_failure  \
73229"./tstdump.dump"
73230$at_traceon; }
73231
73232{ set +x
73233$as_echo "$at_srcdir/run_misc.at:9527: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
73234tstdump.dump > tstdump.sed"
73235at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9527"
73236( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73237tstdump.dump > tstdump.sed
73238) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73239at_status=$? at_failed=false
73240$at_check_filter
73241at_fn_diff_devnull "$at_stderr" || at_failed=:
73242at_fn_diff_devnull "$at_stdout" || at_failed=:
73243at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9527"
73244$at_failed && at_fn_log_failure  \
73245"./tstdump.dump"
73246$at_traceon; }
73247
73248
73249{ set +x
73250$as_echo "$at_srcdir/run_misc.at:9530: diff reference tstdump.sed"
73251at_fn_check_prepare_trace "run_misc.at:9530"
73252( $at_check_trace; diff reference tstdump.sed
73253) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73254at_status=$? at_failed=false
73255$at_check_filter
73256at_fn_diff_devnull "$at_stderr" || at_failed=:
73257at_fn_diff_devnull "$at_stdout" || at_failed=:
73258at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9530"
73259$at_failed && at_fn_log_failure  \
73260"./tstdump.dump"
73261$at_traceon; }
73262
73263
73264# using both
73265{ set +x
73266$as_echo "$at_srcdir/run_misc.at:9533: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
73267\$COBCRUN_DIRECT ./prog"
73268at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9533"
73269( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
73270$COBCRUN_DIRECT ./prog
73271) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73272at_status=$? at_failed=false
73273$at_check_filter
73274echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73275libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
73276
73277 Last statement of sub1 was at line 4 of cpyabrt
73278 Last statement of sub2 was at line 251 of prog.cob
73279 Last statement of prog was at line 118 of prog.cob
73280
73281dump written to tstdump.dump
73282" | \
73283  $at_diff - "$at_stderr" || at_failed=:
73284echo >>"$at_stdout"; $as_echo "X is 000000001
73285X is 000005441
73286" | \
73287  $at_diff - "$at_stdout" || at_failed=:
73288at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9533"
73289$at_failed && at_fn_log_failure  \
73290"./tstdump.dump"
73291$at_traceon; }
73292
73293
73294{ set +x
73295$as_echo "$at_srcdir/run_misc.at:9548: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
73296tstdump.dump > tstdump.sed"
73297at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9548"
73298( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73299tstdump.dump > tstdump.sed
73300) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73301at_status=$? at_failed=false
73302$at_check_filter
73303at_fn_diff_devnull "$at_stderr" || at_failed=:
73304at_fn_diff_devnull "$at_stdout" || at_failed=:
73305at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9548"
73306$at_failed && at_fn_log_failure  \
73307"./tstdump.dump"
73308$at_traceon; }
73309
73310
73311{ set +x
73312$as_echo "$at_srcdir/run_misc.at:9551: diff reference tstdump.sed"
73313at_fn_check_prepare_trace "run_misc.at:9551"
73314( $at_check_trace; diff reference tstdump.sed
73315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73316at_status=$? at_failed=false
73317$at_check_filter
73318at_fn_diff_devnull "$at_stderr" || at_failed=:
73319at_fn_diff_devnull "$at_stdout" || at_failed=:
73320at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9551"
73321$at_failed && at_fn_log_failure  \
73322"./tstdump.dump"
73323$at_traceon; }
73324
73325
73326{ set +x
73327$as_echo "$at_srcdir/run_misc.at:9553: \$COMPILE -fdump=FD,LS prog.cob -o prog_fdls"
73328at_fn_check_prepare_dynamic "$COMPILE -fdump=FD,LS prog.cob -o prog_fdls" "run_misc.at:9553"
73329( $at_check_trace; $COMPILE -fdump=FD,LS prog.cob -o prog_fdls
73330) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73331at_status=$? at_failed=false
73332$at_check_filter
73333at_fn_diff_devnull "$at_stderr" || at_failed=:
73334at_fn_diff_devnull "$at_stdout" || at_failed=:
73335at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9553"
73336$at_failed && at_fn_log_failure  \
73337"./tstdump.dump"
73338$at_traceon; }
73339
73340
73341{ set +x
73342$as_echo "$at_srcdir/run_misc.at:9555: COB_DUMP_FILE=tstdump_fdls.dump \\
73343\$COBCRUN_DIRECT ./prog_fdls"
73344at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9555"
73345( $at_check_trace; COB_DUMP_FILE=tstdump_fdls.dump \
73346$COBCRUN_DIRECT ./prog_fdls
73347) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73348at_status=$? at_failed=false
73349$at_check_filter
73350echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73351libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
73352
73353dump written to tstdump_fdls.dump
73354" | \
73355  $at_diff - "$at_stderr" || at_failed=:
73356echo >>"$at_stdout"; $as_echo "X is 000000001
73357X is 000005441
73358" | \
73359  $at_diff - "$at_stdout" || at_failed=:
73360at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9555"
73361$at_failed && at_fn_log_failure  \
73362"./tstdump.dump"
73363$at_traceon; }
73364
73365
73366
73367
73368
73369cat >reference_fdls_tmpl <<'_ATEOF'
73370
73371Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73372
73373 Last statement of sub1 was at line 4 of cpyabrt
73374 Last statement of sub2 was at line 251 of prog.cob
73375 Last statement of prog was at line 118 of prog.cob
73376
73377Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS
73378
73379LINKAGE
73380**********************
7338101        X                               000005441
7338201        TSPFL-RECORD.                  <NULL> address
73383
73384END OF DUMP - sub1
73385**********************
73386
73387Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS
73388
73389LINKAGE
73390**********************
7339101        X                               000005441
7339201        TSPFL-RECORD.
73393     10   CM-CUST-NUM                    'ALP00000'
73394     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
73395     10   CM-DISK                        '8417'
73396     10   CM-NO-TERMINALS                 0010
7339777        DYNAMIC-NUM                     0124
73398
73399END OF DUMP - sub2
73400**********************
73401
73402Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS
73403
73404FD FLATFILE
73405**********************
73406   File is OPEN
73407   FILE STATUS  '00'
7340801        TSPFL-RECORD.
73409     10   CM-CUST-NUM                    'ALP00000'
73410     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
73411     10   CM-DISK                        '8417'
73412     10   CM-NO-TERMINALS                 0010
73413
73414END OF DUMP - prog
73415**********************
73416
73417_ATEOF
73418
73419
73420# AT_DATA workaround via sed:
73421{ set +x
73422$as_echo "$at_srcdir/run_misc.at:9619: \$SED -e 's/_\$//' reference_fdls_tmpl > reference"
73423at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_fdls_tmpl > reference" "run_misc.at:9619"
73424( $at_check_trace; $SED -e 's/_$//' reference_fdls_tmpl > reference
73425) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73426at_status=$? at_failed=false
73427$at_check_filter
73428at_fn_diff_devnull "$at_stderr" || at_failed=:
73429at_fn_diff_devnull "$at_stdout" || at_failed=:
73430at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9619"
73431$at_failed && at_fn_log_failure  \
73432"./tstdump.dump" \
73433"./tstdump_fdls.dump"
73434$at_traceon; }
73435
73436{ set +x
73437$as_echo "$at_srcdir/run_misc.at:9620: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
73438tstdump_fdls.dump > tstdump.sed"
73439at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9620"
73440( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73441tstdump_fdls.dump > tstdump.sed
73442) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73443at_status=$? at_failed=false
73444$at_check_filter
73445at_fn_diff_devnull "$at_stderr" || at_failed=:
73446at_fn_diff_devnull "$at_stdout" || at_failed=:
73447at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9620"
73448$at_failed && at_fn_log_failure  \
73449"./tstdump.dump" \
73450"./tstdump_fdls.dump"
73451$at_traceon; }
73452
73453
73454{ set +x
73455$as_echo "$at_srcdir/run_misc.at:9623: diff reference tstdump.sed"
73456at_fn_check_prepare_trace "run_misc.at:9623"
73457( $at_check_trace; diff reference tstdump.sed
73458) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73459at_status=$? at_failed=false
73460$at_check_filter
73461at_fn_diff_devnull "$at_stderr" || at_failed=:
73462at_fn_diff_devnull "$at_stdout" || at_failed=:
73463at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9623"
73464$at_failed && at_fn_log_failure  \
73465"./tstdump.dump" \
73466"./tstdump_fdls.dump"
73467$at_traceon; }
73468
73469
73470{ set +x
73471$as_echo "$at_srcdir/run_misc.at:9625: \$COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls"
73472at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls" "run_misc.at:9625"
73473( $at_check_trace; $COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls
73474) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73475at_status=$? at_failed=false
73476$at_check_filter
73477at_fn_diff_devnull "$at_stderr" || at_failed=:
73478at_fn_diff_devnull "$at_stdout" || at_failed=:
73479at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9625"
73480$at_failed && at_fn_log_failure  \
73481"./tstdump.dump" \
73482"./tstdump_fdls.dump"
73483$at_traceon; }
73484
73485
73486{ set +x
73487$as_echo "$at_srcdir/run_misc.at:9627: COB_DUMP_FILE=tstdump_allfdls.dump \\
73488\$COBCRUN_DIRECT ./prog_allfdls"
73489at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9627"
73490( $at_check_trace; COB_DUMP_FILE=tstdump_allfdls.dump \
73491$COBCRUN_DIRECT ./prog_allfdls
73492) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73493at_status=$? at_failed=false
73494$at_check_filter
73495echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73496libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
73497
73498dump written to tstdump_allfdls.dump
73499" | \
73500  $at_diff - "$at_stderr" || at_failed=:
73501echo >>"$at_stdout"; $as_echo "X is 000000001
73502X is 000005441
73503" | \
73504  $at_diff - "$at_stdout" || at_failed=:
73505at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9627"
73506$at_failed && at_fn_log_failure  \
73507"./tstdump.dump" \
73508"./tstdump_fdls.dump"
73509$at_traceon; }
73510
73511
73512{ set +x
73513$as_echo "$at_srcdir/run_misc.at:9638: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
73514tstdump_allfdls.dump > tstdump.sed"
73515at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9638"
73516( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73517tstdump_allfdls.dump > tstdump.sed
73518) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73519at_status=$? at_failed=false
73520$at_check_filter
73521at_fn_diff_devnull "$at_stderr" || at_failed=:
73522at_fn_diff_devnull "$at_stdout" || at_failed=:
73523at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9638"
73524$at_failed && at_fn_log_failure  \
73525"./tstdump.dump" \
73526"./tstdump_fdls.dump"
73527$at_traceon; }
73528
73529
73530{ set +x
73531$as_echo "$at_srcdir/run_misc.at:9641: diff reference tstdump.sed"
73532at_fn_check_prepare_trace "run_misc.at:9641"
73533( $at_check_trace; diff reference tstdump.sed
73534) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73535at_status=$? at_failed=false
73536$at_check_filter
73537at_fn_diff_devnull "$at_stderr" || at_failed=:
73538at_fn_diff_devnull "$at_stdout" || at_failed=:
73539at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9641"
73540$at_failed && at_fn_log_failure  \
73541"./tstdump.dump" \
73542"./tstdump_fdls.dump"
73543$at_traceon; }
73544
73545
73546# CHECKME @ Ron: The result is likely wrong, please verify later
73547#AT_CHECK([$COMPILE -fdump=LS prog.cob -fsticky-linkage -o prog_ls_sticky], [0], [], [])
73548#
73549#AT_CHECK([COB_DUMP_FILE=tstdump_ls_sticky.dump \
73550#$COBCRUN_DIRECT ./prog_ls_sticky], [1],
73551#[X is 000000001
73552#X is 000005441
73553#],
73554#[libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73555#libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
73556#
73557#dump written to tstdump_ls_sticky.dump
73558#])
73559#
73560#
73561#AT_CAPTURE_FILE(./tstdump_ls_sticky.dump)
73562#
73563#AT_DATA([reference_ls_sticky_tmpl], [
73564#Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
73565#
73566# Last statement of sub1 was at line 4 of cpyabrt
73567# Last statement of sub2 was at line 251 of prog.cob
73568# Last statement of prog was at line 118 of prog.cob
73569#
73570#Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS
73571#
73572#LINKAGE
73573#**********************
73574#01        X                               000005441
73575#01        TSPFL-RECORD.                  <NULL> address
73576#
73577#Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS
73578#
73579#LINKAGE
73580#**********************
73581#01        X                               000005441
73582#01        TSPFL-RECORD.
73583#     10   CM-CUST-NUM                    'ALP00000'
73584#     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
73585#     10   CM-DISK                        '8417'
73586#     10   CM-NO-TERMINALS                 0010
73587#77        DYNAMIC-NUM                     0124
73588#
73589#Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS
73590#
73591#])
73592#
73593## AT_DATA workaround via sed:
73594#AT_CHECK([$SED -e 's/_$//' reference_ls_sticky_tmpl > reference], [0], [], [])
73595#AT_CHECK([$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73596#tstdump_ls_sticky.dump > tstdump.sed], [0], [], [])
73597#
73598#AT_CHECK([diff reference tstdump.sed], [0], [], [])
73599
73600  set +x
73601  $at_times_p && times >"$at_times_file"
73602) 5>&1 2>&1 7>&- | eval $at_tee_pipe
73603read at_status <"$at_status_file"
73604#AT_STOP_689
73605#AT_START_690
73606at_fn_group_banner 690 'run_misc.at:9700' \
73607  "Test dump feature (2)" "                          " 4
73608at_xfail=no
73609(
73610  $as_echo "690. $at_setup_line: testing $at_desc ..."
73611  $at_traceon
73612
73613#AT_KEYWORDS([Dump])
73614
73615cat >prog.cob <<'_ATEOF'
73616
73617       IDENTIFICATION   DIVISION.
73618       PROGRAM-ID. prog.
73619       DATA             DIVISION.
73620       WORKING-STORAGE  SECTION.
73621       01  P2           USAGE POINTER.
73622
73623       01 TAB-ADR-COUNT            PIC S9(4)      VALUE 8.
73624
73625       01 TAB-ADR OCCURS 0 TO 1000 TIMES
73626            DEPENDING ON TAB-ADR-COUNT
73627            INDEXED BY TAB-ADR-IND.
73628          05 TAB-ADR-ELEMENT.
73629              10 TAB-ADR-PRGM         PIC X(8).
73630              10 TAB-ADR-ID           PIC X(2).
73631              10 TAB-ADR-ADR-64       PIC S9(16) COMP-5.
73632              10 TAB-ADR-LAST-ADR-64  PIC S9(16) COMP-5.
73633
73634       01  GRP-X BASED.
73635           05   FILLER  PIC X(3).
73636           05   FLD-X   OCCURS 10 TIMES.
73637             10 FLD-X-Y   PIC 9999 VALUE 2020.
73638             10 FLD-X-M   PIC 99 VALUE 11.
73639             10 FLD-X-X   PIC X(128) VALUE "This is something ".
73640           05   FILLER  PIC X(3).
73641
73642       01  GRP-1.
73643           05   FILLER  PIC X(3).
73644           05   FLD-1   OCCURS 10 TIMES.
73645             10 FLD-1-Y   PIC 9999 VALUE 2020.
73646             10 FLD-1-M   PIC 99 VALUE 11.
73647             10 FLD-1-X   PIC X(128) VALUE "This is something ".
73648           05   FILLER  PIC X(3).
73649
73650       01  GRP-2.
73651           05   FILLER  PIC X(3).
73652           05   FLD-2   PIC X(42) VALUE ALL "ABCD ".
73653           05   FILLER  PIC X(3).
73654       01  GRP-2A.
73655           05   FILLER  PIC X(2).
73656           05   FLD-2A  PIC X(8) VALUE ALL "ABC".
73657           05   FILLER  PIC X(1200) VALUE "X".
73658       01  GRP-3.
73659           05   FILLER  PIC X(3).
73660           05   FLD-3   OCCURS 3 TIMES.
73661                15   FLD-3-2 PIC XXX VALUE "ABC".
73662                15   FLD-3-3 PIC 99  VALUE ZERO.
73663                15           OCCURS 4 VALUE ALL "D99".
73664                     25   FLD-3O-1 PIC X.
73665                     25   FLD-3O-2 PIC 99.
73666                15   FLD-3-4 PIC XX  VALUE ALL "X".
73667           05   FILLER  PIC X(3).
73668
73669       77  C5    PIC 9(03)  VALUE 6.
73670       01  GRP-5.
73671           05   FILLER  PIC X(3).
73672           05   FLD-5.
73673              10   FLD-5-1 OCCURS 0 TO 9 TIMES
73674                        DEPENDING ON C5.
73675                15   FLD-5-2 PIC XXX VALUE "Mon".
73676                15   FLD-5-3 PIC 99  VALUE 49.
73677                15   FLD-5-4 PIC XX  VALUE "ey".
73678
73679       LINKAGE SECTION.
73680       01  A-TABLE.
73681           03  prefix.
73682               05  n    PIC 9(03)  VALUE 123.
73683           03  table-data value all "ABCDE".
73684            04  rows    OCCURS 0 TO UNBOUNDED TIMES
73685                        DEPENDING ON n.
73686               05 col1  PIC X.
73687               05 col2  PIC X(02).
73688
73689       PROCEDURE DIVISION.
73690           MOVE ALL "*" TO GRP-2
73691           INITIALIZE FLD-2 ALL TO VALUE
73692           DISPLAY "GRP-2:" GRP-2.
73693      *
73694           MOVE ALL "*" TO GRP-3
73695           INITIALIZE GRP-3 NUMERIC TO VALUE
73696           INITIALIZE FLD-3 (1) ALL TO VALUE
73697           INITIALIZE FLD-3 (2) ALL TO VALUE
73698           INITIALIZE FLD-3 (3) ALL TO VALUE
73699           INITIALIZE FLD-3O-1 (3,2), FLD-3O-2 (3,2)
73700           DISPLAY "GRP-3:" GRP-3.
73701      *
73702           MOVE 7       TO c5
73703           MOVE ALL "*" TO GRP-5
73704           INITIALIZE FLD-5 ALL TO VALUE
73705           DISPLAY "GRP-5:" GRP-5.
73706      *
73707           MOVE SPACES  TO GRP-2A
73708           MOVE "Peek"  TO GRP-2A (510:4)
73709           MOVE "Boo"   TO GRP-2A (910:3)
73710           MOVE X"FE99" TO GRP-2A (910:2)
73711           MOVE "You"   TO GRP-2A (1010:3)
73712           MOVE "$$"    TO FLD-5-4 (5)
73713           MOVE "Something else!" TO FLD-1-X (5).
73714      *
73715           SET P2 TO NULL
73716           SET ADDRESS OF A-TABLE TO NULL
73717           MOVE ALL ZEROES TO A-TABLE (1: (LENGTH OF A-TABLE)).
73718      *
73719           STOP RUN.
73720_ATEOF
73721
73722
73723{ set +x
73724$as_echo "$at_srcdir/run_misc.at:9809: \$COMPILE -fdump=ALL prog.cob"
73725at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL prog.cob" "run_misc.at:9809"
73726( $at_check_trace; $COMPILE -fdump=ALL prog.cob
73727) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73728at_status=$? at_failed=false
73729$at_check_filter
73730at_fn_diff_devnull "$at_stderr" || at_failed=:
73731at_fn_diff_devnull "$at_stdout" || at_failed=:
73732at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9809"
73733$at_failed && at_fn_log_failure
73734$at_traceon; }
73735
73736
73737{ set +x
73738$as_echo "$at_srcdir/run_misc.at:9811: export COB_DUMP_FILE=dumpall.txt
73739\$COBCRUN_DIRECT ./prog"
73740at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9811"
73741( $at_check_trace; export COB_DUMP_FILE=dumpall.txt
73742$COBCRUN_DIRECT ./prog
73743) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73744at_status=$? at_failed=false
73745$at_check_filter
73746echo >>"$at_stderr"; $as_echo "libcob: prog.cob:102: error: BASED/LINKAGE item 'A-TABLE' has NULL address
73747
73748dump written to dumpall.txt
73749" | \
73750  $at_diff - "$at_stderr" || at_failed=:
73751echo >>"$at_stdout"; $as_echo "GRP-2:***ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB***
73752GRP-3:***ABC00D99D99D99D99XXABC00D99D99D99D99XXABC00D99 00D99D99XX***
73753GRP-5:***Mon49eyMon49eyMon49eyMon49eyMon49eyMon49eyMon49ey
73754" | \
73755  $at_diff - "$at_stdout" || at_failed=:
73756at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9811"
73757$at_failed && at_fn_log_failure
73758$at_traceon; }
73759
73760
73761
73762
73763cat >reference_tmpl <<'_ATEOF'
73764
73765Module dump due to BASED/LINKAGE item 'A-TABLE' has NULL address
73766
73767 Last statement of prog was at line 102 of prog.cob
73768
73769Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS
73770
73771WORKING-STORAGE
73772**********************
7377301        P2                              0x0000000000000000
7377401        TAB-ADR-COUNT                   +0008
73775   INDEX  TAB-ADR-IND                     +000000001
7377601        TAB-ADR (1).
73777  05      TAB-ADR-ELEMENT (1).
73778     10   TAB-ADR-PRGM (1)               ALL SPACES
73779     10   TAB-ADR-ID (1)                 ALL SPACES
73780     10   TAB-ADR-ADR-64 (1)              +00000000000000000000
73781     10   TAB-ADR-LAST-ADR-64 (1)         +00000000000000000000
7378201        TAB-ADR (2..8) same as (1)
7378301        GRP-X.                         <NULL> address
7378401        GRP-1.
73785  05      FILLER                         ALL SPACES
73786  05      FLD-1 (1).
73787     10   FLD-1-Y (1)                     2020
73788     10   FLD-1-M (1)                     11
73789     10   FLD-1-X (1)                    'This is something'
73790  05      FLD-1 (2..4) same as (1)
73791  05      FLD-1 (5).
73792     10   FLD-1-Y (5)                     2020
73793     10   FLD-1-M (5)                     11
73794     10   FLD-1-X (5)                    'Something else!'
73795  05      FLD-1 (6).
73796     10   FLD-1-Y (6)                     2020
73797     10   FLD-1-M (6)                     11
73798     10   FLD-1-X (6)                    'This is something'
73799  05      FLD-1 (7..10) same as (6)
73800  05      FILLER                         ALL SPACES
7380101        GRP-2.
73802  05      FILLER                         '***'
73803  05      FLD-2                          'ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB'
73804  05      FILLER                         '***'
7380501        GRP-2A.
73806  05      FILLER                         ALL SPACES
73807  05      FLD-2A                         ALL SPACES
73808  05      FILLER                                                                              _
73809                                     1 x 20202020 20202020 20202020 20202020 20202020 20202020
73810                                         --- 25 thru 492 same as above ---
73811                                                         P  e e k                             _
73812                                   493 x 20202020 20202050 65656B20 20202020 20202020 20202020
73813                                                                                              _
73814                                   517 x 20202020 20202020 20202020 20202020 20202020 20202020
73815                                         --- 541 thru 878 same as above ---
73816                                                                                             _
73817                                   879 x 2020 20202020 20202020 20202020 20202020 202020FE 99
73818                                          o                                                  _
73819                                   902 x 6F2020 20202020 20202020 20202020 20202020 20202020 _
73820                                                                                              _
73821                                   925 x 20202020 20202020 20202020 20202020 20202020 20202020_
73822                                         --- 949 thru 974 same as above ---
73823                                                                                             _
73824                                   975 x 2020 20202020 20202020 20202020 20202020 20202020 20
73825                                              Y  o u                                         _
73826                                   998 x 202059 6F752020 20202020 20202020 20202020 20202020 _
73827                                                                                              _
73828                                  1021 x 20202020 20202020 20202020 20202020 20202020 20202020
73829                                         --- 1045 thru 1174 same as above ---
73830                                                                                             _
73831                                  1175 x 2020 20202020 20202020 20202020 20202020 20202020 20
73832                                               _
73833                                  1198 x 202020
7383401        GRP-3.
73835  05      FILLER                         '***'
73836  05      FLD-3 (1).
73837       15 FLD-3-2 (1)                    'ABC'
73838       15 FLD-3-3 (1)                     00
73839       15 FILLER (1,1).
73840       25 FLD-3O-1 (1,1)                 'D'
73841       25 FLD-3O-2 (1,1)                  99
73842       15 FILLER (1,2..4) same as (1)
73843       15 FLD-3-4 (1)                    'XX'
73844  05      FLD-3 (2) same as (1)
73845  05      FLD-3 (3).
73846       15 FLD-3-2 (3)                    'ABC'
73847       15 FLD-3-3 (3)                     00
73848       15 FILLER (3,1).
73849       25 FLD-3O-1 (3,1)                 'D'
73850       25 FLD-3O-2 (3,1)                  99
73851       15 FILLER (3,2).
73852       25 FLD-3O-1 (3,2)                 ALL SPACES
73853       25 FLD-3O-2 (3,2)                  00
73854       15 FILLER (3,3).
73855       25 FLD-3O-1 (3,3)                 'D'
73856       25 FLD-3O-2 (3,3)                  99
73857       15 FILLER (3,4) same as (3)
73858       15 FLD-3-4 (3)                    'XX'
73859  05      FILLER                         '***'
7386077        C5                              007
7386101        GRP-5.
73862  05      FILLER                         '***'
73863  05      FLD-5.
73864     10   FLD-5-1 (1).
73865       15 FLD-5-2 (1)                    'Mon'
73866       15 FLD-5-3 (1)                     49
73867       15 FLD-5-4 (1)                    'ey'
73868     10   FLD-5-1 (2..4) same as (1)
73869     10   FLD-5-1 (5).
73870       15 FLD-5-2 (5)                    'Mon'
73871       15 FLD-5-3 (5)                     49
73872       15 FLD-5-4 (5)                    '$$'
73873     10   FLD-5-1 (6).
73874       15 FLD-5-2 (6)                    'Mon'
73875       15 FLD-5-3 (6)                     49
73876       15 FLD-5-4 (6)                    'ey'
73877     10   FLD-5-1 (7) same as (6)
73878
73879LINKAGE
73880**********************
7388101        A-TABLE.                       <NULL> address
73882
73883END OF DUMP - prog
73884**********************
73885
73886_ATEOF
73887
73888
73889# AT_DATA workaround via sed:
73890{ set +x
73891$as_echo "$at_srcdir/run_misc.at:9949: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
73892dumpall.txt > dumpall.sed"
73893at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9949"
73894( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
73895dumpall.txt > dumpall.sed
73896) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73897at_status=$? at_failed=false
73898$at_check_filter
73899at_fn_diff_devnull "$at_stderr" || at_failed=:
73900at_fn_diff_devnull "$at_stdout" || at_failed=:
73901at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9949"
73902$at_failed && at_fn_log_failure  \
73903"./dumpall.txt"
73904$at_traceon; }
73905
73906
73907{ set +x
73908$as_echo "$at_srcdir/run_misc.at:9952: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
73909at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "run_misc.at:9952"
73910( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
73911) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73912at_status=$? at_failed=false
73913$at_check_filter
73914at_fn_diff_devnull "$at_stderr" || at_failed=:
73915at_fn_diff_devnull "$at_stdout" || at_failed=:
73916at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9952"
73917if $at_failed; then :
73918  # Previous test "failed" --> 32 bit
73919  { set +x
73920$as_echo "$at_srcdir/run_misc.at:9954: \$SED -e 's/_\$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference"
73921at_fn_check_prepare_dynamic "$SED -e 's/_$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference" "run_misc.at:9954"
73922( $at_check_trace; $SED -e 's/_$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference
73923) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73924at_status=$? at_failed=false
73925$at_check_filter
73926at_fn_diff_devnull "$at_stderr" || at_failed=:
73927at_fn_diff_devnull "$at_stdout" || at_failed=:
73928at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9954"
73929$at_failed && at_fn_log_failure  \
73930"./dumpall.txt"
73931$at_traceon; }
73932
73933
73934else
73935  # Previous test "passed" --> 64 bit
73936  { set +x
73937$as_echo "$at_srcdir/run_misc.at:9957: \$SED -e 's/_\$//' reference_tmpl > reference"
73938at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_tmpl > reference" "run_misc.at:9957"
73939( $at_check_trace; $SED -e 's/_$//' reference_tmpl > reference
73940) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73941at_status=$? at_failed=false
73942$at_check_filter
73943at_fn_diff_devnull "$at_stderr" || at_failed=:
73944at_fn_diff_devnull "$at_stdout" || at_failed=:
73945at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9957"
73946$at_failed && at_fn_log_failure  \
73947"./dumpall.txt"
73948$at_traceon; }
73949
73950
73951fi
73952$at_failed && at_fn_log_failure  \
73953"./dumpall.txt"
73954$at_traceon; }
73955
73956
73957{ set +x
73958$as_echo "$at_srcdir/run_misc.at:9960: diff reference dumpall.sed"
73959at_fn_check_prepare_trace "run_misc.at:9960"
73960( $at_check_trace; diff reference dumpall.sed
73961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
73962at_status=$? at_failed=false
73963$at_check_filter
73964at_fn_diff_devnull "$at_stderr" || at_failed=:
73965at_fn_diff_devnull "$at_stdout" || at_failed=:
73966at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9960"
73967$at_failed && at_fn_log_failure  \
73968"./dumpall.txt"
73969$at_traceon; }
73970
73971
73972  set +x
73973  $at_times_p && times >"$at_times_file"
73974) 5>&1 2>&1 7>&- | eval $at_tee_pipe
73975read at_status <"$at_status_file"
73976#AT_STOP_690
73977#AT_START_691
73978at_fn_group_banner 691 'run_misc.at:9965' \
73979  "CALL with program prototypes" "                   " 4
73980at_xfail=no
73981(
73982  $as_echo "691. $at_setup_line: testing $at_desc ..."
73983  $at_traceon
73984
73985
73986
73987cat >prog.cob <<'_ATEOF'
73988
73989       IDENTIFICATION DIVISION.
73990       PROGRAM-ID. prog.
73991
73992       PROCEDURE DIVISION.
73993           CALL "c"
73994           .
73995       END PROGRAM prog.
73996
73997
73998       IDENTIFICATION DIVISION.
73999       PROGRAM-ID. a AS "blah?Sdk".
74000
74001       PROCEDURE DIVISION.
74002           DISPLAY "Hello!"
74003           .
74004       END PROGRAM a.
74005
74006
74007       IDENTIFICATION DIVISION.
74008       PROGRAM-ID. b.
74009
74010       PROCEDURE DIVISION.
74011           DISPLAY "Hello again!"
74012           .
74013       END PROGRAM b.
74014
74015
74016       IDENTIFICATION DIVISION.
74017       PROGRAM-ID. c.
74018
74019       ENVIRONMENT DIVISION.
74020       CONFIGURATION SECTION.
74021       REPOSITORY.
74022           PROGRAM d AS "blah?Sdk"
74023           PROGRAM b
74024           .
74025
74026       PROCEDURE DIVISION.
74027           CALL d
74028           CALL b
74029           .
74030       END PROGRAM c.
74031_ATEOF
74032
74033
74034{ set +x
74035$as_echo "$at_srcdir/run_misc.at:10013: \$COMPILE -o prog prog.cob"
74036at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10013"
74037( $at_check_trace; $COMPILE -o prog prog.cob
74038) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74039at_status=$? at_failed=false
74040$at_check_filter
74041at_fn_diff_devnull "$at_stderr" || at_failed=:
74042at_fn_diff_devnull "$at_stdout" || at_failed=:
74043at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10013"
74044$at_failed && at_fn_log_failure
74045$at_traceon; }
74046
74047{ set +x
74048$as_echo "$at_srcdir/run_misc.at:10014: \$COBCRUN_DIRECT ./prog"
74049at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10014"
74050( $at_check_trace; $COBCRUN_DIRECT ./prog
74051) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74052at_status=$? at_failed=false
74053$at_check_filter
74054at_fn_diff_devnull "$at_stderr" || at_failed=:
74055echo >>"$at_stdout"; $as_echo "Hello!
74056Hello again!
74057" | \
74058  $at_diff - "$at_stdout" || at_failed=:
74059at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10014"
74060$at_failed && at_fn_log_failure
74061$at_traceon; }
74062
74063  set +x
74064  $at_times_p && times >"$at_times_file"
74065) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74066read at_status <"$at_status_file"
74067#AT_STOP_691
74068#AT_START_692
74069at_fn_group_banner 692 'run_misc.at:10021' \
74070  "REDEFINES values on FILLER and INITIALIZE" "      " 4
74071at_xfail=no
74072(
74073  $as_echo "692. $at_setup_line: testing $at_desc ..."
74074  $at_traceon
74075
74076
74077
74078cat >prog.cob <<'_ATEOF'
74079
74080       IDENTIFICATION DIVISION.
74081       PROGRAM-ID. prog.
74082       DATA  DIVISION.
74083       WORKING-STORAGE SECTION.
74084       01  TSRDF.
74085           05  WS-ASK-ID-DATE                PIC X(10) VALUE ALL '*'.
74086           05  WS-ASK-ID-DATE-R              REDEFINES WS-ASK-ID-DATE.
74087               10  WS-ASK-ID-DATE-YYYY       PIC 9(4) VALUE 2017.
74088               10  FILLER                    PIC X VALUE '-'.
74089               10  WS-ASK-ID-DATE-MM         PIC 9(2).
74090               10  FILLER                    PIC X VALUE '-'.
74091               10  WS-ASK-ID-DATE-DD         PIC 9(2).
74092       PROCEDURE DIVISION.
74093           MOVE 2015 TO WS-ASK-ID-DATE-YYYY
74094           MOVE 08 TO WS-ASK-ID-DATE-MM
74095           MOVE 21 TO WS-ASK-ID-DATE-DD
74096           DISPLAY "The date is " WS-ASK-ID-DATE " Compiled".
74097
74098           INITIALIZE WS-ASK-ID-DATE-R.
74099           MOVE 08 TO WS-ASK-ID-DATE-MM
74100           MOVE 21 TO WS-ASK-ID-DATE-DD
74101           DISPLAY "The date is " WS-ASK-ID-DATE " INITIALIZE".
74102
74103           INITIALIZE WS-ASK-ID-DATE-R WITH FILLER.
74104           MOVE 08 TO WS-ASK-ID-DATE-MM
74105           MOVE 21 TO WS-ASK-ID-DATE-DD
74106           DISPLAY "The date is " WS-ASK-ID-DATE " WITH FILLER".
74107
74108           INITIALIZE WS-ASK-ID-DATE-R WITH FILLER ALL TO VALUE.
74109           MOVE 08 TO WS-ASK-ID-DATE-MM
74110           MOVE 21 TO WS-ASK-ID-DATE-DD
74111           DISPLAY "The date is " WS-ASK-ID-DATE " ALL TO VALUE".
74112           STOP RUN.
74113_ATEOF
74114
74115
74116{ set +x
74117$as_echo "$at_srcdir/run_misc.at:10060: \$COMPILE prog.cob"
74118at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10060"
74119( $at_check_trace; $COMPILE prog.cob
74120) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74121at_status=$? at_failed=false
74122$at_check_filter
74123echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: initial VALUE clause ignored for REDEFINES item 'WS-ASK-ID-DATE-YYYY'
74124prog.cob:10: warning: initial VALUE clause ignored for REDEFINES item 'FILLER'
74125prog.cob:12: warning: initial VALUE clause ignored for REDEFINES item 'FILLER'
74126" | \
74127  $at_diff - "$at_stderr" || at_failed=:
74128at_fn_diff_devnull "$at_stdout" || at_failed=:
74129at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10060"
74130$at_failed && at_fn_log_failure
74131$at_traceon; }
74132
74133
74134{ set +x
74135$as_echo "$at_srcdir/run_misc.at:10066: \$COBCRUN_DIRECT ./prog"
74136at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10066"
74137( $at_check_trace; $COBCRUN_DIRECT ./prog
74138) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74139at_status=$? at_failed=false
74140$at_check_filter
74141at_fn_diff_devnull "$at_stderr" || at_failed=:
74142echo >>"$at_stdout"; $as_echo "The date is 2015*08*21 Compiled
74143The date is 0000*08*21 INITIALIZE
74144The date is 0000 08 21 WITH FILLER
74145The date is 2017-08-21 ALL TO VALUE
74146" | \
74147  $at_diff - "$at_stdout" || at_failed=:
74148at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10066"
74149$at_failed && at_fn_log_failure
74150$at_traceon; }
74151
74152
74153  set +x
74154  $at_times_p && times >"$at_times_file"
74155) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74156read at_status <"$at_status_file"
74157#AT_STOP_692
74158#AT_START_693
74159at_fn_group_banner 693 'run_misc.at:10076' \
74160  "PICTURE with constant-name" "                     " 4
74161at_xfail=no
74162(
74163  $as_echo "693. $at_setup_line: testing $at_desc ..."
74164  $at_traceon
74165
74166
74167
74168cat >prog.cob <<'_ATEOF'
74169
74170       IDENTIFICATION  DIVISION.
74171       PROGRAM-ID.     prog.
74172
74173       DATA            DIVISION.
74174       WORKING-STORAGE SECTION.
74175       01  foo-bar     CONSTANT 8.
74176       01  x           PIC 9(foo-bar)9(foo-bar).
74177
74178       PROCEDURE DIVISION.
74179           IF FUNCTION LENGTH (x) <> 16
74180               DISPLAY FUNCTION LENGTH (x)
74181           END-IF
74182           .
74183       END PROGRAM prog.
74184_ATEOF
74185
74186
74187{ set +x
74188$as_echo "$at_srcdir/run_misc.at:10096: \$COMPILE_ONLY prog.cob"
74189at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "run_misc.at:10096"
74190( $at_check_trace; $COMPILE_ONLY prog.cob
74191) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74192at_status=$? at_failed=false
74193$at_check_filter
74194echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: expression '16' NOT EQUAL '16' is always FALSE
74195" | \
74196  $at_diff - "$at_stderr" || at_failed=:
74197at_fn_diff_devnull "$at_stdout" || at_failed=:
74198at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10096"
74199$at_failed && at_fn_log_failure
74200$at_traceon; }
74201
74202{ set +x
74203$as_echo "$at_srcdir/run_misc.at:10099: \$COMPILE -fno-constant-folding prog.cob"
74204at_fn_check_prepare_dynamic "$COMPILE -fno-constant-folding prog.cob" "run_misc.at:10099"
74205( $at_check_trace; $COMPILE -fno-constant-folding prog.cob
74206) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74207at_status=$? at_failed=false
74208$at_check_filter
74209at_fn_diff_devnull "$at_stderr" || at_failed=:
74210at_fn_diff_devnull "$at_stdout" || at_failed=:
74211at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10099"
74212$at_failed && at_fn_log_failure
74213$at_traceon; }
74214
74215{ set +x
74216$as_echo "$at_srcdir/run_misc.at:10100: \$COBCRUN_DIRECT ./prog"
74217at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10100"
74218( $at_check_trace; $COBCRUN_DIRECT ./prog
74219) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74220at_status=$? at_failed=false
74221$at_check_filter
74222at_fn_diff_devnull "$at_stderr" || at_failed=:
74223at_fn_diff_devnull "$at_stdout" || at_failed=:
74224at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10100"
74225$at_failed && at_fn_log_failure
74226$at_traceon; }
74227
74228  set +x
74229  $at_times_p && times >"$at_times_file"
74230) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74231read at_status <"$at_status_file"
74232#AT_STOP_693
74233#AT_START_694
74234at_fn_group_banner 694 'run_misc.at:10104' \
74235  "Quote marks in comment paragraphs" "              " 4
74236at_xfail=no
74237(
74238  $as_echo "694. $at_setup_line: testing $at_desc ..."
74239  $at_traceon
74240
74241
74242
74243cat >prog.cob <<'_ATEOF'
74244
74245       IDENTIFICATION DIVISION.
74246       PROGRAM-ID.    prog.
74247       DATE-written.  hello'".
74248      *> Written is intentionally lowercase.
74249      *> extra " to fix syntax highlighting
74250       PROCEDURE      DIVISION.
74251           DISPLAY "Hello, world!"
74252           .
74253_ATEOF
74254
74255
74256{ set +x
74257$as_echo "$at_srcdir/run_misc.at:10118: \$COMPILE -o prog prog.cob"
74258at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10118"
74259( $at_check_trace; $COMPILE -o prog prog.cob
74260) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74261at_status=$? at_failed=false
74262$at_check_filter
74263echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: DATE-WRITTEN is obsolete in GnuCOBOL
74264" | \
74265  $at_diff - "$at_stderr" || at_failed=:
74266at_fn_diff_devnull "$at_stdout" || at_failed=:
74267at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10118"
74268$at_failed && at_fn_log_failure
74269$at_traceon; }
74270
74271{ set +x
74272$as_echo "$at_srcdir/run_misc.at:10121: \$COMPILE -free -o prog prog.cob"
74273at_fn_check_prepare_dynamic "$COMPILE -free -o prog prog.cob" "run_misc.at:10121"
74274( $at_check_trace; $COMPILE -free -o prog prog.cob
74275) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74276at_status=$? at_failed=false
74277$at_check_filter
74278echo >>"$at_stderr"; $as_echo "prog.cob:3: warning: DATE-WRITTEN is obsolete in GnuCOBOL
74279" | \
74280  $at_diff - "$at_stderr" || at_failed=:
74281at_fn_diff_devnull "$at_stdout" || at_failed=:
74282at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10121"
74283$at_failed && at_fn_log_failure
74284$at_traceon; }
74285
74286{ set +x
74287$as_echo "$at_srcdir/run_misc.at:10124: \$COBCRUN_DIRECT ./prog"
74288at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10124"
74289( $at_check_trace; $COBCRUN_DIRECT ./prog
74290) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74291at_status=$? at_failed=false
74292$at_check_filter
74293at_fn_diff_devnull "$at_stderr" || at_failed=:
74294echo >>"$at_stdout"; $as_echo "Hello, world!
74295" | \
74296  $at_diff - "$at_stdout" || at_failed=:
74297at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10124"
74298$at_failed && at_fn_log_failure
74299$at_traceon; }
74300
74301  set +x
74302  $at_times_p && times >"$at_times_file"
74303) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74304read at_status <"$at_status_file"
74305#AT_STOP_694
74306#AT_START_695
74307at_fn_group_banner 695 'run_misc.at:10130' \
74308  "Numeric MOVE with/without -fbinary-truncate" "    " 4
74309at_xfail=no
74310(
74311  $as_echo "695. $at_setup_line: testing $at_desc ..."
74312  $at_traceon
74313
74314
74315
74316cat >prog.cob <<'_ATEOF'
74317
74318       IDENTIFICATION  DIVISION.
74319       PROGRAM-ID.     prog.
74320
74321       DATA            DIVISION.
74322       WORKING-STORAGE SECTION.
74323       01  x PIC 9(4) COMP.
74324
74325       PROCEDURE       DIVISION.
74326           MOVE 30000 TO x
74327           PERFORM check-x-val
74328
74329           COMPUTE x = 30000
74330           PERFORM check-x-val
74331
74332           MOVE ZERO TO x
74333           ADD 30000 TO x
74334           PERFORM check-x-val
74335
74336           GOBACK
74337           .
74338       check-x-val     SECTION.
74339           EVALUATE x
74340               WHEN >= 10000
74341                   DISPLAY "x >= 10000"
74342
74343               WHEN ZERO
74344                   DISPLAY "x IS ZERO"
74345
74346               WHEN OTHER
74347                   CONTINUE
74348           END-EVALUATE
74349           .
74350       END PROGRAM prog.
74351_ATEOF
74352
74353
74354{ set +x
74355$as_echo "$at_srcdir/run_misc.at:10169: \$COMPILE prog.cob"
74356at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10169"
74357( $at_check_trace; $COMPILE prog.cob
74358) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74359at_status=$? at_failed=false
74360$at_check_filter
74361echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: value size exceeds data size
74362prog.cob:10: note: value is 30000
74363prog.cob:7: note: 'x' defined here as PIC 9(4)
74364" | \
74365  $at_diff - "$at_stderr" || at_failed=:
74366at_fn_diff_devnull "$at_stdout" || at_failed=:
74367at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10169"
74368$at_failed && at_fn_log_failure
74369$at_traceon; }
74370
74371{ set +x
74372$as_echo "$at_srcdir/run_misc.at:10174: \$COBCRUN_DIRECT ./prog"
74373at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10174"
74374( $at_check_trace; $COBCRUN_DIRECT ./prog
74375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74376at_status=$? at_failed=false
74377$at_check_filter
74378at_fn_diff_devnull "$at_stderr" || at_failed=:
74379echo >>"$at_stdout"; $as_echo "x IS ZERO
74380x IS ZERO
74381x IS ZERO
74382" | \
74383  $at_diff - "$at_stdout" || at_failed=:
74384at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10174"
74385$at_failed && at_fn_log_failure
74386$at_traceon; }
74387
74388
74389{ set +x
74390$as_echo "$at_srcdir/run_misc.at:10180: \$COMPILE -fno-binary-truncate prog.cob"
74391at_fn_check_prepare_dynamic "$COMPILE -fno-binary-truncate prog.cob" "run_misc.at:10180"
74392( $at_check_trace; $COMPILE -fno-binary-truncate prog.cob
74393) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74394at_status=$? at_failed=false
74395$at_check_filter
74396at_fn_diff_devnull "$at_stderr" || at_failed=:
74397at_fn_diff_devnull "$at_stdout" || at_failed=:
74398at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10180"
74399$at_failed && at_fn_log_failure
74400$at_traceon; }
74401
74402{ set +x
74403$as_echo "$at_srcdir/run_misc.at:10181: \$COBCRUN_DIRECT ./prog"
74404at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10181"
74405( $at_check_trace; $COBCRUN_DIRECT ./prog
74406) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74407at_status=$? at_failed=false
74408$at_check_filter
74409at_fn_diff_devnull "$at_stderr" || at_failed=:
74410echo >>"$at_stdout"; $as_echo "x >= 10000
74411x >= 10000
74412x >= 10000
74413" | \
74414  $at_diff - "$at_stdout" || at_failed=:
74415at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10181"
74416$at_failed && at_fn_log_failure
74417$at_traceon; }
74418
74419
74420  set +x
74421  $at_times_p && times >"$at_times_file"
74422) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74423read at_status <"$at_status_file"
74424#AT_STOP_695
74425#AT_START_696
74426at_fn_group_banner 696 'run_misc.at:10190' \
74427  "Alphanumeric MOVE with truncation" "              " 4
74428at_xfail=no
74429(
74430  $as_echo "696. $at_setup_line: testing $at_desc ..."
74431  $at_traceon
74432
74433
74434
74435cat >prog.cob <<'_ATEOF'
74436
74437       IDENTIFICATION DIVISION.
74438       PROGRAM-ID. prog.
74439
74440       DATA DIVISION.
74441       WORKING-STORAGE SECTION.
74442       01  x-left  PIC X(03).
74443       01  x-right PIC X(03) JUSTIFIED RIGHT.
74444
74445       PROCEDURE DIVISION.
74446           MOVE '1234' TO x-left, x-right
74447           IF x-left  not = '123'
74448           OR x-right not = '234'
74449              DISPLAY 'error with "1234":'
74450              END-DISPLAY
74451              DISPLAY x-left
74452              END-DISPLAY
74453              DISPLAY x-right
74454              END-DISPLAY
74455           END-IF
74456           MOVE '   3' TO x-left, x-right
74457           IF x-left  not = spaces
74458           OR x-right not = '  3'
74459              DISPLAY 'error with "   3":'
74460              END-DISPLAY
74461              DISPLAY x-left
74462              END-DISPLAY
74463              DISPLAY x-right
74464              END-DISPLAY
74465           END-IF
74466           MOVE '3   ' TO x-left, x-right
74467           IF x-left  not = '3'
74468           OR x-right not = spaces
74469              DISPLAY 'error with "3   ":'
74470              END-DISPLAY
74471              DISPLAY x-left
74472              END-DISPLAY
74473              DISPLAY x-right
74474              END-DISPLAY
74475           END-IF
74476           .
74477_ATEOF
74478
74479
74480{ set +x
74481$as_echo "$at_srcdir/run_misc.at:10236: \$COMPILE -Wno-truncate prog.cob"
74482at_fn_check_prepare_dynamic "$COMPILE -Wno-truncate prog.cob" "run_misc.at:10236"
74483( $at_check_trace; $COMPILE -Wno-truncate prog.cob
74484) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74485at_status=$? at_failed=false
74486$at_check_filter
74487at_fn_diff_devnull "$at_stderr" || at_failed=:
74488at_fn_diff_devnull "$at_stdout" || at_failed=:
74489at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10236"
74490$at_failed && at_fn_log_failure
74491$at_traceon; }
74492
74493{ set +x
74494$as_echo "$at_srcdir/run_misc.at:10237: \$COBCRUN_DIRECT ./prog"
74495at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10237"
74496( $at_check_trace; $COBCRUN_DIRECT ./prog
74497) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74498at_status=$? at_failed=false
74499$at_check_filter
74500at_fn_diff_devnull "$at_stderr" || at_failed=:
74501at_fn_diff_devnull "$at_stdout" || at_failed=:
74502at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10237"
74503$at_failed && at_fn_log_failure
74504$at_traceon; }
74505
74506  set +x
74507  $at_times_p && times >"$at_times_file"
74508) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74509read at_status <"$at_status_file"
74510#AT_STOP_696
74511#AT_START_697
74512at_fn_group_banner 697 'run_misc.at:10241' \
74513  "PROGRAM-ID / CALL literal/variable with spaces" " " 4
74514at_xfail=no
74515(
74516  $as_echo "697. $at_setup_line: testing $at_desc ..."
74517  $at_traceon
74518
74519
74520
74521cat >prog.cob <<'_ATEOF'
74522
74523       IDENTIFICATION DIVISION.
74524       PROGRAM-ID. prog.
74525
74526       DATA DIVISION.
74527       WORKING-STORAGE SECTION.
74528       01  MYRTN  PIC X(9) VALUE " SUB  ".
74529
74530       PROCEDURE DIVISION.
74531           CALL " SUB " USING 'X'.
74532           MOVE x'00' TO MYRTN (6:1).
74533           CALL MYRTN   USING 'Y'.
74534           CALL "SUB"   USING 'Z'.
74535           CALL "S U B" USING 'A'.
74536           MOVE " S U B" TO MYRTN.
74537           CALL MYRTN   USING 'B'.
74538           STOP RUN.
74539       END PROGRAM prog.
74540
74541       IDENTIFICATION DIVISION.
74542       PROGRAM-ID. "SUB ".
74543
74544       DATA DIVISION.
74545       LINKAGE SECTION.
74546       01  x  PIC X.
74547
74548       PROCEDURE DIVISION USING x.
74549            DISPLAY "SUB GOT " X
74550            END-DISPLAY.
74551       END PROGRAM " SUB".
74552
74553       IDENTIFICATION DIVISION.
74554       PROGRAM-ID. "S U B".
74555
74556       DATA DIVISION.
74557       LINKAGE SECTION.
74558       01  x  PIC X.
74559
74560       PROCEDURE DIVISION USING x.
74561            DISPLAY "S U B  GOT " X
74562            END-DISPLAY.
74563       END PROGRAM "S U B".
74564_ATEOF
74565
74566
74567{ set +x
74568$as_echo "$at_srcdir/run_misc.at:10288: \$COMPILE prog.cob"
74569at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10288"
74570( $at_check_trace; $COMPILE prog.cob
74571) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74572at_status=$? at_failed=false
74573$at_check_filter
74574echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ' SUB ' literal includes leading spaces which are omitted
74575prog.cob:10: warning: ' SUB ' literal includes trailing spaces which are omitted
74576prog.cob:21: warning: 'SUB ' literal includes trailing spaces which are omitted
74577prog.cob:30: warning: ' SUB' literal includes leading spaces which are omitted
74578" | \
74579  $at_diff - "$at_stderr" || at_failed=:
74580at_fn_diff_devnull "$at_stdout" || at_failed=:
74581at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10288"
74582$at_failed && at_fn_log_failure
74583$at_traceon; }
74584
74585
74586{ set +x
74587$as_echo "$at_srcdir/run_misc.at:10295: \$COBCRUN_DIRECT ./prog"
74588at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10295"
74589( $at_check_trace; $COBCRUN_DIRECT ./prog
74590) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74591at_status=$? at_failed=false
74592$at_check_filter
74593echo >>"$at_stderr"; $as_echo "libcob: prog.cob:12: warning: ' SUB' literal includes leading spaces which are omitted
74594libcob: prog.cob:16: warning: ' S U B' literal includes leading spaces which are omitted
74595" | \
74596  $at_diff - "$at_stderr" || at_failed=:
74597echo >>"$at_stdout"; $as_echo "SUB GOT X
74598SUB GOT Y
74599SUB GOT Z
74600S U B  GOT A
74601S U B  GOT B
74602" | \
74603  $at_diff - "$at_stdout" || at_failed=:
74604at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10295"
74605$at_failed && at_fn_log_failure
74606$at_traceon; }
74607
74608
74609  set +x
74610  $at_times_p && times >"$at_times_file"
74611) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74612read at_status <"$at_status_file"
74613#AT_STOP_697
74614#AT_START_698
74615at_fn_group_banner 698 'run_misc.at:10309' \
74616  "C-API Test (param based)" "                       " 4
74617at_xfail=no
74618(
74619  $as_echo "698. $at_setup_line: testing $at_desc ..."
74620  $at_traceon
74621
74622
74623
74624cat >prog.cob <<'_ATEOF'
74625
74626       IDENTIFICATION DIVISION.
74627       PROGRAM-ID. prog.
74628
74629       DATA DIVISION.
74630       WORKING-STORAGE SECTION.
74631       01  BINFLD5     PIC  9(5) COMP-5  VALUE  1280.
74632       01  BINFLD5S    PIC S9(5) BINARY  VALUE  1024.
74633       01  BINFLD9     PIC  9(9) BINARY  VALUE  2560.
74634       01  COMP3       PIC  9(8) COMP-3  VALUE  4096.
74635       01  COMP3V99    PIC S9(7)V99 COMP-3  VALUE  12.50.
74636       01  PIC9        PIC S9(8) DISPLAY VALUE  8192.
74637       01  NE          PIC Z(4)9.99-.
74638       01  CHRX        PIC  X(9)         VALUE 'Hello'.
74639      *01  CHRN        PIC  N(9)         VALUE N'Hello'.
74640       01  GRPX.
74641           05  FILLER  PIC  X(9)         VALUE 'Hello'.
74642           05  FILLER  PIC  X(9)         VALUE 'World'.
74643       PROCEDURE DIVISION.
74644           MOVE -512.77 TO NE.
74645           CALL "CAPI" USING 2560 BY VALUE 16.
74646           CALL "CAPI" USING BINFLD5, NE.
74647           CALL "CAPI" USING BINFLD5S.
74648           CALL "CAPI" USING BINFLD9.
74649           MOVE  512.77 TO NE.
74650           CALL "CAPI" USING COMP3, NE.
74651           CALL "CAPI" USING PIC9 BINFLD5S CHRX GRPX.
74652           CALL "CAPI" USING COMP3, NE, CHRX.
74653           CALL "CAPI" USING BINFLD5, NE.
74654           MOVE "Hello!" TO CHRX.
74655           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
74656           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
74657           CALL "CAPI" USING LENGTH OF GRPX.
74658           CALL "CAPI" USING BY VALUE GRPX LENGTH OF GRPX.
74659           CALL "CAPI" USING "Fred Fish", COMP3.
74660           CALL "CAPI" USING COMP3V99.
74661      *    CALL "CAPI" USING CHRN.
74662           CALL "CAPI" .
74663           DISPLAY "COMP3    is now " COMP3 ";".
74664           DISPLAY "COMP4    is now " BINFLD5 ";".
74665           DISPLAY "BINFLD5S is now " BINFLD5S ";".
74666           DISPLAY "CHRX     is now " CHRX ";".
74667           DISPLAY "NE       is now " NE ";".
74668           STOP RUN.
74669_ATEOF
74670
74671
74672cat >cmod.c <<'_ATEOF'
74673
74674#include <stdio.h>
74675#include <string.h>
74676#include <libcob.h>
74677
74678static char *
74679getType (int type, int byvalue)
74680{
74681   static char wrk[24];
74682   switch (type) {
74683#if 1
74684   case COB_TYPE_GROUP:           return "Group";
74685   case COB_TYPE_NUMERIC_COMP5:
74686       /* fall through as the test will have different results
74687          on big endian systems otherwise
74688        return "COMP-5"; */
74689        COB_UNUSED (byvalue);
74690   case COB_TYPE_NUMERIC_BINARY:  return "BINARY";
74691   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
74692   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
74693   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
74694   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
74695   case COB_TYPE_ALPHANUMERIC:    return "X";
74696   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
74697   case COB_TYPE_NATIONAL:        return "N";
74698#else
74699   case COB_TYPE_GROUP:           return "Group";
74700   case COB_TYPE_NUMERIC_COMP5:
74701        return byvalue == 2 ? "COMP-4" : "COMP-5";
74702   case COB_TYPE_NUMERIC_BINARY:  return "COMP-4";
74703   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
74704   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
74705   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
74706   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
74707   case COB_TYPE_ALPHANUMERIC:    return "X";
74708   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
74709   case COB_TYPE_NATIONAL:        return "N";
74710#endif
74711   }
74712   sprintf (wrk,"Type %04X",type);
74713   return wrk;
74714}
74715
74716COB_EXT_EXPORT int
74717CAPI (void *p1, ...)
74718{
74719   int      k,nargs,type,digits,scale,size,sign,byvalue;
74720   cob_s64_t   val;
74721   char     *str;
74722   char     wrk[80],pic[30];	/* note: maxium _theoretical_ size */
74723
74724   nargs = cob_get_num_params();
74725   printf ("CAPI called with %d parameters\n",nargs);
74726   for (k=1; k <= nargs; k++) {
74727      type   = cob_get_param_type (k);
74728      digits = cob_get_param_digits (k);
74729      scale  = cob_get_param_scale (k);
74730      size   = cob_get_param_size (k);
74731      sign   = cob_get_param_sign (k);
74732      byvalue = cob_get_param_constant(k);
74733      printf (" %d: %-8s ", k, getType (type, byvalue));
74734      if (byvalue) {
74735         printf ("BY VALUE     ");
74736      } else {
74737         printf ("BY REFERENCE ");
74738      }
74739      if (type == COB_TYPE_ALPHANUMERIC) {
74740         sprintf (pic, "X(%d)", size);
74741         str = cob_get_picx_param (k, NULL, 0);
74742         printf ("%-11s '%s'", pic, str);
74743         cob_free ((void*)str);
74744         cob_put_picx_param (k, "Bye!");
74745      } else if (type == COB_TYPE_NATIONAL) {
74746         sprintf (pic, "N(%d)", size); /* FIXME */
74747         printf ("exchange of national data is not supported yet");
74748      } else if (type == COB_TYPE_GROUP) {
74749         sprintf (pic, "(%d)", size);
74750         str = cob_get_grp_param (k, NULL, 0);
74751         printf ("%-11s '%.*s'", pic, size, str);
74752         cob_free ((void*)str);
74753         memset (wrk,' ',sizeof(wrk));
74754         memcpy (wrk,"Bye-Bye Birdie!",15);
74755         cob_put_grp_param (k, wrk, sizeof(wrk));
74756      } else if (type == COB_TYPE_NUMERIC_EDITED) {
74757         if (scale > 0) {
74758            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
74759         } else {
74760            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
74761         }
74762         val = cob_get_s64_param (k);
74763         printf ("%-11s %lld ",pic,val);
74764         val = val + 130;
74765         val = -val;
74766         cob_put_s64_param (k, val);
74767         cob_get_grp_param (k, wrk, sizeof(wrk));
74768         printf (" to %.*s",size,wrk);
74769      } else {
74770         if(scale > 0) {
74771            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
74772         } else {
74773            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
74774         }
74775         val = cob_get_s64_param (k);
74776         printf ("%-11s %lld", pic, val);
74777         cob_put_s64_param (k, val + 3);
74778      }
74779      printf (";\n");
74780      fflush (stdout);
74781   }
74782   if (nargs > 2) {
74783      cob_put_s64_param (7, val + 3);
74784   }
74785   return 0;
74786}
74787_ATEOF
74788
74789
74790{ set +x
74791$as_echo "$at_srcdir/run_misc.at:10474: \$COMPILE -Wno-unfinished prog.cob cmod.c"
74792at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished prog.cob cmod.c" "run_misc.at:10474"
74793( $at_check_trace; $COMPILE -Wno-unfinished prog.cob cmod.c
74794) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74795at_status=$? at_failed=false
74796$at_check_filter
74797echo >>"$at_stderr"; $as_echo "prog.cob:31: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
74798prog.cob:32: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
74799prog.cob:34: warning: BY CONTENT assumed for alphanumeric item 'GRPX'
74800" | \
74801  $at_diff - "$at_stderr" || at_failed=:
74802at_fn_diff_devnull "$at_stdout" || at_failed=:
74803at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10474"
74804$at_failed && at_fn_log_failure
74805$at_traceon; }
74806
74807
74808{ set +x
74809$as_echo "$at_srcdir/run_misc.at:10480: \$COBCRUN_DIRECT ./prog"
74810at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10480"
74811( $at_check_trace; $COBCRUN_DIRECT ./prog
74812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
74813at_status=$? at_failed=false
74814$at_check_filter
74815echo >>"$at_stderr"; $as_echo "libcob: prog.cob:21: warning: cob_put_s64_param: attempt to over-write constant parameter 1 with 2563
74816libcob: prog.cob:21: warning: cob_put_s64_param: attempt to over-write constant parameter 2 with 19
74817libcob: prog.cob:27: warning: cob_put_s64_param: parameter 7 is not within range of 4
74818libcob: prog.cob:28: warning: cob_put_s64_param: parameter 7 is not within range of 3
74819libcob: prog.cob:31: warning: cob_put_picx_param: attempt to over-write constant parameter 2 with 'Bye!'
74820libcob: prog.cob:32: warning: cob_put_picx_param: attempt to over-write constant parameter 2 with 'Bye!'
74821libcob: prog.cob:33: warning: cob_put_s64_param: attempt to over-write constant parameter 1 with 21
74822libcob: prog.cob:34: warning: cob_put_grp_param: attempt to over-write constant parameter 1
74823libcob: prog.cob:34: warning: cob_put_s64_param: attempt to over-write constant parameter 2 with 21
74824libcob: prog.cob:35: warning: cob_put_picx_param: attempt to over-write constant parameter 1 with 'Bye!'
74825" | \
74826  $at_diff - "$at_stderr" || at_failed=:
74827echo >>"$at_stdout"; $as_echo "CAPI called with 2 parameters
74828 1: BINARY   BY VALUE     S9(9)       2560;
74829 2: DISPLAY  BY VALUE     9(2)        16;
74830CAPI called with 2 parameters
74831 1: BINARY   BY REFERENCE 9(5)        1280;
74832 2: EDITED   BY REFERENCE S9(5)V9(2)  -51277  to   511.47 ;
74833CAPI called with 1 parameters
74834 1: BINARY   BY REFERENCE S9(5)       1024;
74835CAPI called with 1 parameters
74836 1: BINARY   BY REFERENCE 9(9)        2560;
74837CAPI called with 2 parameters
74838 1: COMP-3   BY REFERENCE 9(8)        4096;
74839 2: EDITED   BY REFERENCE S9(5)V9(2)  51277  to   514.07-;
74840CAPI called with 4 parameters
74841 1: DISPLAY  BY REFERENCE S9(8)       8192;
74842 2: BINARY   BY REFERENCE S9(5)       1027;
74843 3: X        BY REFERENCE X(9)        'Hello';
74844 4: Group    BY REFERENCE (18)        'Hello    World    ';
74845CAPI called with 3 parameters
74846 1: COMP-3   BY REFERENCE 9(8)        4099;
74847 2: EDITED   BY REFERENCE S9(5)V9(2)  -51407  to   512.77 ;
74848 3: X        BY REFERENCE X(9)        'Bye!';
74849CAPI called with 2 parameters
74850 1: BINARY   BY REFERENCE 9(5)        1283;
74851 2: EDITED   BY REFERENCE S9(5)V9(2)  51277  to   514.07-;
74852CAPI called with 2 parameters
74853 1: BINARY   BY REFERENCE 9(5)        1286;
74854 2: X        BY VALUE     X(9)        'Hello!';
74855CAPI called with 2 parameters
74856 1: BINARY   BY REFERENCE 9(5)        1289;
74857 2: X        BY VALUE     X(9)        'Hello!';
74858CAPI called with 1 parameters
74859 1: BINARY   BY VALUE     S9(9)       18;
74860CAPI called with 2 parameters
74861 1: Group    BY VALUE     (18)        'Bye-Bye Birdie!   ';
74862 2: DISPLAY  BY VALUE     9(2)        18;
74863CAPI called with 2 parameters
74864 1: X        BY VALUE     X(9)        'Fred Fish';
74865 2: COMP-3   BY REFERENCE 9(8)        4102;
74866CAPI called with 1 parameters
74867 1: COMP-3   BY REFERENCE S9(7)V9(2)  1250;
74868CAPI called with 0 parameters
74869COMP3    is now 00004105;
74870COMP4    is now 0000001292;
74871BINFLD5S is now +01030;
74872CHRX     is now Hello!   ;
74873NE       is now   514.07-;
74874" | \
74875  $at_diff - "$at_stdout" || at_failed=:
74876at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10480"
74877$at_failed && at_fn_log_failure
74878$at_traceon; }
74879
74880
74881  set +x
74882  $at_times_p && times >"$at_times_file"
74883) 5>&1 2>&1 7>&- | eval $at_tee_pipe
74884read at_status <"$at_status_file"
74885#AT_STOP_698
74886#AT_START_699
74887at_fn_group_banner 699 'run_misc.at:10544' \
74888  "C-API Test (field based)" "                       " 4
74889at_xfail=no
74890(
74891  $as_echo "699. $at_setup_line: testing $at_desc ..."
74892  $at_traceon
74893
74894
74895
74896cat >prog.cob <<'_ATEOF'
74897
74898       IDENTIFICATION DIVISION.
74899       PROGRAM-ID. prog.
74900
74901       DATA DIVISION.
74902       WORKING-STORAGE SECTION.
74903       01  BINFLD5     PIC  9(5) COMP-5  VALUE  1280.
74904       01  BINFLD5S    PIC S9(5) BINARY  VALUE  1024.
74905       01  BINFLD9     PIC  9(9) BINARY  VALUE  2560.
74906       01  COMP3       PIC  9(8) COMP-3  VALUE  4096.
74907       01  COMP3V99    PIC S9(7)V99 COMP-3  VALUE  12.50.
74908       01  PIC9        PIC S9(8) DISPLAY VALUE  8192.
74909       01  NE          PIC Z(4)9.99-.
74910       01  CHRX        PIC  X(9)         VALUE 'Hello'.
74911      *01  CHRN        PIC  N(9)         VALUE N'Hello'.
74912       01  GRPX.
74913           05  FILLER  PIC  X(9)         VALUE 'Hello'.
74914           05  FILLER  PIC  X(9)         VALUE 'World'.
74915       PROCEDURE DIVISION.
74916           MOVE -512.77 TO NE.
74917           CALL "CAPI" USING 2560 BY VALUE 16.
74918           CALL "CAPI" USING BINFLD5, NE.
74919           CALL "CAPI" USING BINFLD5S.
74920           CALL "CAPI" USING BINFLD9.
74921           MOVE  512.77 TO NE.
74922           CALL "CAPI" USING COMP3, NE.
74923           CALL "CAPI" USING PIC9 BINFLD5S CHRX GRPX.
74924           CALL "CAPI" USING COMP3, NE, CHRX.
74925           CALL "CAPI" USING BINFLD5, NE.
74926           MOVE "Hello!" TO CHRX.
74927           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
74928           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
74929           CALL "CAPI" USING LENGTH OF GRPX.
74930           CALL "CAPI" USING BY VALUE GRPX LENGTH OF GRPX.
74931           CALL "CAPI" USING "Fred Fish", COMP3.
74932           CALL "CAPI" USING COMP3V99.
74933      *    CALL "CAPI" USING CHRN.
74934           CALL "CAPI" .
74935           DISPLAY "COMP3    is now " COMP3 ";".
74936           DISPLAY "COMP4    is now " BINFLD5 ";".
74937           DISPLAY "BINFLD5S is now " BINFLD5S ";".
74938           DISPLAY "CHRX     is now " CHRX ";".
74939           DISPLAY "NE       is now " NE ";".
74940           STOP RUN.
74941_ATEOF
74942
74943
74944cat >cmod.c <<'_ATEOF'
74945
74946#include <stdio.h>
74947#include <string.h>
74948#include <libcob.h>
74949
74950static char *
74951getType (int type, int byvalue)
74952{
74953   static char wrk[24];
74954   switch (type) {
74955#if 1
74956   case COB_TYPE_GROUP:           return "Group";
74957   case COB_TYPE_NUMERIC_COMP5:
74958       /* fall through as the test will have different results
74959          on big endian systems otherwise
74960        return "COMP-5"; */
74961        COB_UNUSED (byvalue);
74962   case COB_TYPE_NUMERIC_BINARY:  return "BINARY";
74963   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
74964   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
74965   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
74966   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
74967   case COB_TYPE_ALPHANUMERIC:    return "X";
74968   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
74969   case COB_TYPE_NATIONAL:        return "N";
74970#else
74971   case COB_TYPE_GROUP:           return "Group";
74972   case COB_TYPE_NUMERIC_COMP5:
74973        return byvalue == 2 ? "COMP-4" : "COMP-5";
74974   case COB_TYPE_NUMERIC_BINARY:  return "COMP-4";
74975   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
74976   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
74977   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
74978   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
74979   case COB_TYPE_ALPHANUMERIC:    return "X";
74980   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
74981   case COB_TYPE_NATIONAL:        return "N";
74982#endif
74983   }
74984   sprintf (wrk,"Type %04X",type);
74985   return wrk;
74986}
74987
74988COB_EXT_EXPORT int
74989CAPI (void *p1, ...)
74990{
74991   int      k,nargs,type,digits,scale,size,sign,byvalue;
74992   cob_s64_t   val;
74993   char     *str;
74994   char     wrk[80],pic[30];	/* note: maxium _theoretical_ size */
74995
74996   nargs = cob_get_num_params();
74997   printf ("CAPI called with %d parameters\n",nargs);
74998   for (k=1; k <= nargs; k++) {
74999      cob_field *fld = cob_get_param_field (k, "CAPI");
75000      type   = cob_get_field_type (fld);
75001      digits = cob_get_field_digits (fld);
75002      scale  = cob_get_field_scale (fld);
75003      size   = cob_get_field_size (fld);
75004      sign   = cob_get_field_sign (fld);
75005      byvalue = cob_get_field_constant (fld);
75006      printf (" %d: %-8s ", k, getType (type, byvalue));
75007      if (byvalue) {
75008         printf ("BY VALUE     ");
75009      } else {
75010         printf ("BY REFERENCE ");
75011      }
75012      str = (char *) cob_get_field_str_buffered (fld);
75013      if (type == COB_TYPE_ALPHANUMERIC) {
75014         sprintf (pic, "X(%d)", size);
75015         printf ("%-11s '%s'", pic, str);
75016         cob_put_field_str (fld, "Bye!");
75017      } else if (type == COB_TYPE_NATIONAL) {
75018         sprintf (pic,"N(%d)",size); /* FIXME */
75019         printf ("exchange of national data is not supported yet");
75020      } else if (type == COB_TYPE_GROUP) {
75021         sprintf (pic,"(%d)",size);
75022         printf ("%-11s '%.*s'",pic,size,str);
75023         cob_put_field_str (fld, "Bye-Bye Birdie!");
75024      } else if (type == COB_TYPE_NUMERIC_EDITED) {
75025         if (scale > 0) {
75026            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
75027         } else {
75028            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
75029         }
75030         printf ("%-11s %s ",pic,str);
75031         val = cob_get_s64_param (k);
75032         val = val + 130;
75033         val = -val;
75034         cob_put_s64_param (k, val);
75035         str = (char *) cob_get_field_str (fld, wrk, 78);
75036         printf (" to %.*s",size,wrk);
75037      } else {
75038         if(scale > 0) {
75039            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
75040         } else {
75041            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
75042         }
75043         printf ("%-11s %s", pic, str);
75044         val = cob_get_s64_param (k);
75045         sprintf (wrk, "%lld", val + 3);
75046         cob_put_field_str (fld, wrk);
75047      }
75048      printf (";\n");
75049      fflush(stdout);
75050   }
75051   return 0;
75052}
75053_ATEOF
75054
75055
75056{ set +x
75057$as_echo "$at_srcdir/run_misc.at:10703: \$COMPILE -Wno-unfinished prog.cob cmod.c"
75058at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished prog.cob cmod.c" "run_misc.at:10703"
75059( $at_check_trace; $COMPILE -Wno-unfinished prog.cob cmod.c
75060) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75061at_status=$? at_failed=false
75062$at_check_filter
75063echo >>"$at_stderr"; $as_echo "prog.cob:31: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
75064prog.cob:32: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
75065prog.cob:34: warning: BY CONTENT assumed for alphanumeric item 'GRPX'
75066" | \
75067  $at_diff - "$at_stderr" || at_failed=:
75068at_fn_diff_devnull "$at_stdout" || at_failed=:
75069at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10703"
75070$at_failed && at_fn_log_failure
75071$at_traceon; }
75072
75073
75074{ set +x
75075$as_echo "$at_srcdir/run_misc.at:10709: \$COBCRUN_DIRECT ./prog"
75076at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10709"
75077( $at_check_trace; $COBCRUN_DIRECT ./prog
75078) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75079at_status=$? at_failed=false
75080$at_check_filter
75081echo >>"$at_stderr"; $as_echo "libcob: warning: cob_put_field_str: attempt to over-write constant field with '2563'
75082libcob: warning: cob_put_field_str: attempt to over-write constant field with '19'
75083libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
75084libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
75085libcob: warning: cob_put_field_str: attempt to over-write constant field with '21'
75086libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye-Bye Birdie!'
75087libcob: warning: cob_put_field_str: attempt to over-write constant field with '21'
75088libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
75089" | \
75090  $at_diff - "$at_stderr" || at_failed=:
75091echo >>"$at_stdout"; $as_echo "CAPI called with 2 parameters
75092 1: BINARY   BY VALUE     S9(9)       +000002560;
75093 2: DISPLAY  BY VALUE     9(2)        16;
75094CAPI called with 2 parameters
75095 1: BINARY   BY REFERENCE 9(5)        0000001280;
75096 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77-  to   511.47 ;
75097CAPI called with 1 parameters
75098 1: BINARY   BY REFERENCE S9(5)       +01024;
75099CAPI called with 1 parameters
75100 1: BINARY   BY REFERENCE 9(9)        000002560;
75101CAPI called with 2 parameters
75102 1: COMP-3   BY REFERENCE 9(8)        00004096;
75103 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77   to   514.07-;
75104CAPI called with 4 parameters
75105 1: DISPLAY  BY REFERENCE S9(8)       +00008192;
75106 2: BINARY   BY REFERENCE S9(5)       +01027;
75107 3: X        BY REFERENCE X(9)        'Hello    ';
75108 4: Group    BY REFERENCE (18)        'Hello    World    ';
75109CAPI called with 3 parameters
75110 1: COMP-3   BY REFERENCE 9(8)        00004099;
75111 2: EDITED   BY REFERENCE S9(5)V9(2)    514.07-  to   512.77 ;
75112 3: X        BY REFERENCE X(9)        'Bye!     ';
75113CAPI called with 2 parameters
75114 1: BINARY   BY REFERENCE 9(5)        0000001283;
75115 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77   to   514.07-;
75116CAPI called with 2 parameters
75117 1: BINARY   BY REFERENCE 9(5)        0000001286;
75118 2: X        BY VALUE     X(9)        'Hello!   ';
75119CAPI called with 2 parameters
75120 1: BINARY   BY REFERENCE 9(5)        0000001289;
75121 2: X        BY VALUE     X(9)        'Hello!   ';
75122CAPI called with 1 parameters
75123 1: BINARY   BY VALUE     S9(9)       +000000018;
75124CAPI called with 2 parameters
75125 1: Group    BY VALUE     (18)        'Bye-Bye Birdie!   ';
75126 2: DISPLAY  BY VALUE     9(2)        18;
75127CAPI called with 2 parameters
75128 1: X        BY VALUE     X(9)        'Fred Fish';
75129 2: COMP-3   BY REFERENCE 9(8)        00004102;
75130CAPI called with 1 parameters
75131 1: COMP-3   BY REFERENCE S9(7)V9(2)  +0000012.50;
75132CAPI called with 0 parameters
75133COMP3    is now 00004105;
75134COMP4    is now 0000001292;
75135BINFLD5S is now +01030;
75136CHRX     is now Hello!   ;
75137NE       is now   514.07-;
75138" | \
75139  $at_diff - "$at_stdout" || at_failed=:
75140at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10709"
75141$at_failed && at_fn_log_failure
75142$at_traceon; }
75143
75144
75145  set +x
75146  $at_times_p && times >"$at_times_file"
75147) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75148read at_status <"$at_status_file"
75149#AT_STOP_699
75150#AT_START_700
75151at_fn_group_banner 700 'run_misc.at:10771' \
75152  "DEFAULT ROUNDED MODE" "                           " 4
75153at_xfail=no
75154(
75155  $as_echo "700. $at_setup_line: testing $at_desc ..."
75156  $at_traceon
75157
75158
75159
75160cat >prog.cob <<'_ATEOF'
75161
75162       IDENTIFICATION  DIVISION.
75163       PROGRAM-ID.     prog.
75164       OPTIONS.
75165           DEFAULT ROUNDED NEAREST-EVEN.
75166
75167       DATA            DIVISION.
75168       WORKING-STORAGE SECTION.
75169       01  x           PIC 9.
75170
75171       PROCEDURE       DIVISION.
75172           COMPUTE x ROUNDED = 1.5
75173           DISPLAY x
75174           COMPUTE x ROUNDED = 2.5
75175           DISPLAY x
75176           .
75177_ATEOF
75178
75179
75180{ set +x
75181$as_echo "$at_srcdir/run_misc.at:10792: \$COMPILE -o prog prog.cob"
75182at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10792"
75183( $at_check_trace; $COMPILE -o prog prog.cob
75184) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75185at_status=$? at_failed=false
75186$at_check_filter
75187at_fn_diff_devnull "$at_stderr" || at_failed=:
75188at_fn_diff_devnull "$at_stdout" || at_failed=:
75189at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10792"
75190$at_failed && at_fn_log_failure
75191$at_traceon; }
75192
75193{ set +x
75194$as_echo "$at_srcdir/run_misc.at:10793: \$COBCRUN_DIRECT ./prog"
75195at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10793"
75196( $at_check_trace; $COBCRUN_DIRECT ./prog
75197) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75198at_status=$? at_failed=false
75199$at_check_filter
75200at_fn_diff_devnull "$at_stderr" || at_failed=:
75201echo >>"$at_stdout"; $as_echo "2
752022
75203" | \
75204  $at_diff - "$at_stdout" || at_failed=:
75205at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10793"
75206$at_failed && at_fn_log_failure
75207$at_traceon; }
75208
75209
75210  set +x
75211  $at_times_p && times >"$at_times_file"
75212) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75213read at_status <"$at_status_file"
75214#AT_STOP_700
75215#AT_START_701
75216at_fn_group_banner 701 'run_misc.at:10801' \
75217  "OCCURS INDEXED ASCENDING" "                       " 4
75218at_xfail=no
75219(
75220  $as_echo "701. $at_setup_line: testing $at_desc ..."
75221  $at_traceon
75222
75223
75224
75225cat >prog.cob <<'_ATEOF'
75226
75227       IDENTIFICATION DIVISION.
75228       PROGRAM-ID. prog.
75229       DATA  DIVISION.
75230       WORKING-STORAGE SECTION.
75231       01  DBI-RECORD-NAMEST.
75232           05  FILLER.
75233             10 FILLER PIC X(35)
75234                VALUE 'A-F-GEN-LEDGER-ACM            0315 '.
75235             10 FILLER PIC X(35)
75236                VALUE 'A-F-GEN-LEDGER-MGL            0303 '.
75237             10 FILLER PIC X(35)
75238                VALUE 'A-F-GEN-LEDGER-ZBL            0304 '.
75239             10 FILLER PIC X(35)
75240                VALUE 'A-F-GEN-LEDGER-ZCC            0308 '.
75241             10 FILLER PIC X(35)
75242                VALUE 'A-F-GEN-LEDGER-ZGL            0305 '.
75243             10 FILLER PIC X(35)
75244                VALUE 'A-F-GEN-LEDGER-ZOO            0306 '.
75245             10 FILLER PIC X(35)
75246                VALUE 'A-F-GEN-LEDGER-ZTR            0307 '.
75247       01  DBI-RECORD-NAMESR REDEFINES DBI-RECORD-NAMEST.
75248           05  DBI-RECORD-NAMES
75249                  OCCURS 7 TIMES
75250                  INDEXED BY REC-NAME-IDX
75251                  ASCENDING KEY IS DBI-RECORD-NAME
75252                  .
75253             10  DBI-RECORD-NAME PIC X(30).
75254             10  DBI-RECORD-CODE PIC 9(4).
75255             10  DBI-RECORD-DIR  PIC X.
75256       01  REC-NAME   PIC X(30).
75257       01  DBX-RECORD-NAMEST.
75258           05  FILLER.
75259             10 FILLER PIC X(35)
75260                VALUE 'A-F-GEN-LEDGER-ACM            0315 '.
75261             10 FILLER PIC X(35)
75262                VALUE 'A-F-GEN-LEDGER-MGL            0303 '.
75263             10 FILLER PIC X(35)
75264                VALUE 'A-F-GEN-LEDGER-ZBL            0304 '.
75265             10 FILLER PIC X(35)
75266                VALUE 'A-F-GEN-LEDGER-ZCC            0308 '.
75267             10 FILLER PIC X(35)
75268                VALUE 'A-F-GEN-LEDGER-ZGL            0305 '.
75269             10 FILLER PIC X(35)
75270                VALUE 'A-F-GEN-LEDGER-ZOO            0306 '.
75271             10 FILLER PIC X(35)
75272                VALUE 'A-F-GEN-LEDGER-ZTR            0307 '.
75273       01  DBX-RECORD-NAMESR REDEFINES DBX-RECORD-NAMEST.
75274           05  DBX-RECORD-NAMES
75275                  OCCURS 7 TIMES
75276                  ASCENDING KEY IS DBX-RECORD-NAME
75277                  INDEXED BY REC-NAME-DBX
75278                  .
75279             10  DBX-RECORD-NAME PIC X(30).
75280             10  DBX-RECORD-CODE PIC 9(4).
75281             10  DBX-RECORD-DIR  PIC X.
75282
75283       PROCEDURE DIVISION.
75284       MAIN.
75285           MOVE 'A-F-GEN-LEDGER-ZGL' TO REC-NAME.
75286           PERFORM FINDIT.
75287           MOVE 'JUNK' TO REC-NAME.
75288           PERFORM FINDIT.
75289           STOP RUN.
75290
75291       FINDIT.
75292           SEARCH DBI-RECORD-NAMES
75293           AT END
75294               DISPLAY 'A ' REC-NAME ' is invalid.'
75295           WHEN REC-NAME = DBI-RECORD-NAME (REC-NAME-IDX)
75296               DISPLAY 'A ' REC-NAME ' is code '
75297                         DBI-RECORD-CODE (REC-NAME-IDX) '.'.
75298
75299           SEARCH DBX-RECORD-NAMES
75300           AT END
75301               DISPLAY 'B ' REC-NAME ' is invalid.'
75302           WHEN REC-NAME = DBX-RECORD-NAME (REC-NAME-DBX)
75303               DISPLAY 'B ' REC-NAME ' is code '
75304                         DBX-RECORD-CODE (REC-NAME-DBX) '.'.
75305_ATEOF
75306
75307
75308{ set +x
75309$as_echo "$at_srcdir/run_misc.at:10885: \$COMPILE -frelax-syntax-checks prog.cob "
75310at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog.cob " "run_misc.at:10885"
75311( $at_check_trace; $COMPILE -frelax-syntax-checks prog.cob
75312) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75313at_status=$? at_failed=false
75314$at_check_filter
75315echo >>"$at_stderr"; $as_echo "prog.cob:26: warning: INDEXED should follow ASCENDING/DESCENDING
75316" | \
75317  $at_diff - "$at_stderr" || at_failed=:
75318at_fn_diff_devnull "$at_stdout" || at_failed=:
75319at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10885"
75320$at_failed && at_fn_log_failure
75321$at_traceon; }
75322
75323
75324{ set +x
75325$as_echo "$at_srcdir/run_misc.at:10889: \$COBCRUN_DIRECT ./prog"
75326at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10889"
75327( $at_check_trace; $COBCRUN_DIRECT ./prog
75328) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75329at_status=$? at_failed=false
75330$at_check_filter
75331at_fn_diff_devnull "$at_stderr" || at_failed=:
75332echo >>"$at_stdout"; $as_echo "A A-F-GEN-LEDGER-ZGL             is code 0305.
75333B A-F-GEN-LEDGER-ZGL             is code 0305.
75334A JUNK                           is invalid.
75335B JUNK                           is invalid.
75336" | \
75337  $at_diff - "$at_stdout" || at_failed=:
75338at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10889"
75339$at_failed && at_fn_log_failure
75340$at_traceon; }
75341
75342
75343  set +x
75344  $at_times_p && times >"$at_times_file"
75345) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75346read at_status <"$at_status_file"
75347#AT_STOP_701
75348#AT_START_702
75349at_fn_group_banner 702 'run_misc.at:10899' \
75350  "ZERO unsigned and negative binary subscript" "    " 4
75351at_xfail=no
75352(
75353  $as_echo "702. $at_setup_line: testing $at_desc ..."
75354  $at_traceon
75355
75356
75357
75358cat >prog.cob <<'_ATEOF'
75359
75360       IDENTIFICATION DIVISION.
75361       PROGRAM-ID. prog.
75362       DATA  DIVISION.
75363       WORKING-STORAGE SECTION.
75364       77  UBIN        PIC  9(8) BINARY.
75365       77  SBIN        PIC S9(8) BINARY.
75366       77  UNUP        PIC  9(8).
75367       77  SNUP        PIC S9(8).
75368
75369       01  TSTREC.
75370           05  TSTX PIC X(4) OCCURS 3 TIMES.
75371           05  TSTY PIC X(4) OCCURS 3 TIMES.
75372
75373       PROCEDURE DIVISION.
75374           MOVE ALL 'A' TO TSTX(1).
75375           MOVE ALL 'B' TO TSTX(2).
75376           MOVE ALL 'C' TO TSTX(3).
75377           MOVE ALL '1' TO TSTY(1).
75378           MOVE ALL '2' TO TSTY(2).
75379           MOVE ALL '3' TO TSTY(3).
75380           MOVE 0  TO UNUP.
75381           DISPLAY "UNUP: " UNUP " is :" TSTY(UNUP) ":" UPON CONSOLE.
75382           MOVE 0  TO SNUP.
75383           DISPLAY "SNUP: " SNUP " is :" TSTY(SNUP) ":" UPON CONSOLE.
75384           MOVE 0  TO SBIN.
75385           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
75386           MOVE -1 TO SBIN.
75387           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
75388           MOVE 'xxx'   TO TSTY(SBIN).
75389           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
75390      * The following would often core dump
75391           MOVE 0 TO UBIN.
75392           DISPLAY "UBIN: " UBIN " is :" TSTY(UBIN) ":" UPON CONSOLE.
75393           MOVE 'xxx'   TO TSTY(UBIN).
75394           MOVE 1 TO UBIN.
75395           DISPLAY "UBIN: " UBIN " is :" TSTY(UBIN) ":" UPON CONSOLE.
75396           STOP RUN.
75397_ATEOF
75398
75399
75400# Safe run with runtime checks
75401{ set +x
75402$as_echo "$at_srcdir/run_misc.at:10943: \$COMPILE prog.cob"
75403at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10943"
75404( $at_check_trace; $COMPILE prog.cob
75405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75406at_status=$? at_failed=false
75407$at_check_filter
75408at_fn_diff_devnull "$at_stderr" || at_failed=:
75409at_fn_diff_devnull "$at_stdout" || at_failed=:
75410at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10943"
75411$at_failed && at_fn_log_failure
75412$at_traceon; }
75413
75414{ set +x
75415$as_echo "$at_srcdir/run_misc.at:10944: \$COBCRUN_DIRECT ./prog"
75416at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10944"
75417( $at_check_trace; $COBCRUN_DIRECT ./prog
75418) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75419at_status=$? at_failed=false
75420$at_check_filter
75421echo >>"$at_stderr"; $as_echo "libcob: prog.cob:23: error: subscript of 'TSTY' out of bounds: 0
75422" | \
75423  $at_diff - "$at_stderr" || at_failed=:
75424at_fn_diff_devnull "$at_stdout" || at_failed=:
75425at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:10944"
75426$at_failed && at_fn_log_failure
75427$at_traceon; }
75428
75429
75430# Runtime checks disable, subscript may be zero or even negative
75431{ set +x
75432$as_echo "$at_srcdir/run_misc.at:10949: \$COBC -x prog.cob -o prog_unsafe"
75433at_fn_check_prepare_dynamic "$COBC -x prog.cob -o prog_unsafe" "run_misc.at:10949"
75434( $at_check_trace; $COBC -x prog.cob -o prog_unsafe
75435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75436at_status=$? at_failed=false
75437$at_check_filter
75438at_fn_diff_devnull "$at_stderr" || at_failed=:
75439at_fn_diff_devnull "$at_stdout" || at_failed=:
75440at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10949"
75441$at_failed && at_fn_log_failure
75442$at_traceon; }
75443
75444{ set +x
75445$as_echo "$at_srcdir/run_misc.at:10950: \$COBCRUN_DIRECT ./prog_unsafe"
75446at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_unsafe" "run_misc.at:10950"
75447( $at_check_trace; $COBCRUN_DIRECT ./prog_unsafe
75448) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75449at_status=$? at_failed=false
75450$at_check_filter
75451at_fn_diff_devnull "$at_stderr" || at_failed=:
75452echo >>"$at_stdout"; $as_echo "UNUP: 00000000 is :CCCC:
75453SNUP: +00000000 is :CCCC:
75454SBIN: +00000000 is :CCCC:
75455SBIN: -00000001 is :BBBB:
75456SBIN: -00000001 is :xxx :
75457UBIN: 00000000 is :CCCC:
75458UBIN: 00000001 is :1111:
75459" | \
75460  $at_diff - "$at_stdout" || at_failed=:
75461at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10950"
75462$at_failed && at_fn_log_failure
75463$at_traceon; }
75464
75465
75466  set +x
75467  $at_times_p && times >"$at_times_file"
75468) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75469read at_status <"$at_status_file"
75470#AT_STOP_702
75471#AT_START_703
75472at_fn_group_banner 703 'run_misc.at:10963' \
75473  "Default Arithmetic (1)" "                         " 4
75474at_xfail=no
75475(
75476  $as_echo "703. $at_setup_line: testing $at_desc ..."
75477  $at_traceon
75478
75479
75480
75481cat >prog.cob <<'_ATEOF'
75482
75483       IDENTIFICATION DIVISION.
75484       PROGRAM-ID. prog.
75485       DATA DIVISION.
75486       WORKING-STORAGE SECTION.
75487       01 NUM-A   PIC 9(3) VALUE 399.
75488       01 NUM-B   PIC 9(3) VALUE 211.
75489       01 NUM-C   PIC 9(3)V99 VALUE 212.34.
75490       01 NUMV1   PIC 9(3)V9.
75491       01 PICX    PIC X VALUE 'A'.
75492       01 RSLT    PIC 9(3).
75493       01 RSLTV1  PIC 9(3).9.
75494       01 RSLTV2  PIC 9(3).99.
75495      *
75496       PROCEDURE DIVISION.
75497       MAIN.
75498           COMPUTE RSLT = NUM-A + 1.1.
75499           DISPLAY 'Simple Compute  RSLT IS ' RSLT
75500           COMPUTE RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75501           DISPLAY 'Single Variable RSLT IS ' RSLT
75502           COMPUTE RSLTV2, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75503           DISPLAY 'Compute  RSLT    IS ' RSLT
75504           DISPLAY 'Compute  RSLTv99 IS ' RSLTV2
75505           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75506           DISPLAY 'Compute  RSLT    IS ' RSLT
75507           DISPLAY 'Compute  RSLTv9  IS ' RSLTV1
75508           MOVE 0 TO RSLT
75509           ADD NUM-C TO RSLT.
75510           DISPLAY 'Add      RSLT    IS ' RSLT.
75511           MOVE 0 TO RSLT
75512           ADD NUM-A NUM-C 10 TO RSLT.
75513           DISPLAY 'Add      RSLT    IS ' RSLT.
75514           SUBTRACT NUM-C FROM RSLT.
75515           DISPLAY 'Subtract RSLT    IS ' RSLT.
75516           SUBTRACT NUM-A -10 FROM RSLT.
75517           DISPLAY 'Subtract RSLT    IS ' RSLT.
75518           MOVE 0 TO RSLT
75519           ADD NUM-A NUM-C TO RSLT GIVING RSLTV1.
75520           DISPLAY 'Add      RSLTv9  IS ' RSLTV1
75521           MULTIPLY NUM-A BY NUM-C GIVING RSLT.
75522           DISPLAY 'Multiply RSLT    IS ' RSLT.
75523           MULTIPLY RSLT BY NUM-C.
75524           DISPLAY 'Multiply RSLT    IS ' RSLT.
75525           DIVIDE NUM-A BY 10 GIVING RSLT.
75526           DISPLAY 'Divide   RSLT    IS ' RSLT.
75527           DIVIDE RSLT BY 4 GIVING RSLTV1.
75528           DISPLAY 'Divide   RSLTv9  IS ' RSLTV1.
75529           DIVIDE RSLT BY 4 GIVING RSLT.
75530           DISPLAY 'Divide   RSLT    IS ' RSLT.
75531
75532           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75533           DISPLAY 'Simple   RSLT    IS ' RSLT
75534                           ' RSLTv9  IS ' RSLTV1.
75535
75536           COMPUTE RSLTV1, RSLT = ((NUM-A / (100.55 + -0.550))
75537                                -  (NUM-B / (10.11 * 10 - 1.1)))
75538                                  * (220 / 2.2)
75539           DISPLAY 'Complex  RSLT    IS ' RSLT
75540                           ' RSLTv9  IS ' RSLTV1.
75541
75542           COMPUTE RSLTV1, RSLT = ((NUM-A / (101 - 1))
75543                                -  (NUM-B / (10 * 10))) * (200 / 2)
75544           DISPLAY 'Reduced  RSLT    IS ' RSLT
75545                           ' RSLTv9  IS ' RSLTV1.
75546           MOVE NUM-A TO NUMV1.
75547           IF ((NUMV1 / (101 - 1))
75548              -  (NUM-B / (10 * 10))) * (200 / 2) EQUAL 188
75549              DISPLAY "Not Using ARITHMETIC-OSVS"
75550           ELSE
75551              DISPLAY "Using ARITHMETIC-OSVS"
75552           END-IF.
75553           STOP RUN.
75554_ATEOF
75555
75556{ set +x
75557$as_echo "$at_srcdir/run_misc.at:11039: \$COMPILE prog.cob"
75558at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11039"
75559( $at_check_trace; $COMPILE prog.cob
75560) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75561at_status=$? at_failed=false
75562$at_check_filter
75563at_fn_diff_devnull "$at_stderr" || at_failed=:
75564at_fn_diff_devnull "$at_stdout" || at_failed=:
75565at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11039"
75566$at_failed && at_fn_log_failure
75567$at_traceon; }
75568
75569
75570{ set +x
75571$as_echo "$at_srcdir/run_misc.at:11041: \$COBCRUN_DIRECT ./prog"
75572at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11041"
75573( $at_check_trace; $COBCRUN_DIRECT ./prog
75574) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75575at_status=$? at_failed=false
75576$at_check_filter
75577at_fn_diff_devnull "$at_stderr" || at_failed=:
75578echo >>"$at_stdout"; $as_echo "Simple Compute  RSLT IS 400
75579Single Variable RSLT IS 188
75580Compute  RSLT    IS 188
75581Compute  RSLTv99 IS 188.00
75582Compute  RSLT    IS 188
75583Compute  RSLTv9  IS 188.0
75584Add      RSLT    IS 212
75585Add      RSLT    IS 621
75586Subtract RSLT    IS 408
75587Subtract RSLT    IS 019
75588Add      RSLTv9  IS 611.3
75589Multiply RSLT    IS 723
75590Multiply RSLT    IS 723
75591Divide   RSLT    IS 039
75592Divide   RSLTv9  IS 009.7
75593Divide   RSLT    IS 009
75594Simple   RSLT    IS 188 RSLTv9  IS 188.0
75595Complex  RSLT    IS 188 RSLTv9  IS 188.0
75596Reduced  RSLT    IS 188 RSLTv9  IS 188.0
75597Not Using ARITHMETIC-OSVS
75598" | \
75599  $at_diff - "$at_stdout" || at_failed=:
75600at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11041"
75601$at_failed && at_fn_log_failure
75602$at_traceon; }
75603
75604
75605  set +x
75606  $at_times_p && times >"$at_times_file"
75607) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75608read at_status <"$at_status_file"
75609#AT_STOP_703
75610#AT_START_704
75611at_fn_group_banner 704 'run_misc.at:11067' \
75612  "Default Arithmetic Test (2)" "                    " 4
75613at_xfail=no
75614(
75615  $as_echo "704. $at_setup_line: testing $at_desc ..."
75616  $at_traceon
75617
75618
75619
75620cat >prog.cob <<'_ATEOF'
75621
75622       IDENTIFICATION   DIVISION.
75623       PROGRAM-ID. prog.
75624       ENVIRONMENT      DIVISION.
75625       DATA             DIVISION.
75626       WORKING-STORAGE SECTION.
75627       01  VAL                 PIC S9(7)V99 COMP-3 VALUE 20500.
75628       01  DIV1                PIC S9(7)V99 COMP-3 VALUE 0.9.
75629       01  DIV2                PIC S9(7)V99 COMP-3 VALUE 33.45.
75630       01  DIV3                PIC S9(7)V99 COMP-3 VALUE 9.
75631       01  MUL1                PIC S9(7)V99 COMP-3 VALUE 10.
75632       01  MUL2                PIC S9(7)V99 COMP-3 VALUE 5.
75633       01  MUL3                PIC S9(7)V99 COMP-3 VALUE 2.
75634       01  RES                 PIC S9(7)V99 COMP-3.
75635       PROCEDURE        DIVISION.
75636           COMPUTE RES = VAL / DIV1 / DIV2.
75637           DISPLAY 'RES = ' RES.
75638           COMPUTE RES ROUNDED = VAL / DIV1 / DIV2.
75639           DISPLAY 'RES ROUNDED = ' RES.
75640           COMPUTE RES = VAL * MUL1 / DIV3 / DIV2.
75641           DISPLAY 'RES MULT1 = ' RES.
75642           COMPUTE RES = VAL * MUL2 * MUL3 / DIV3 / DIV2.
75643           DISPLAY 'RES MULT2 = ' RES.
75644           COMPUTE RES = VAL / DIV1.
75645           DISPLAY 'RES 1 = ' RES.
75646           COMPUTE RES = RES / DIV2.
75647           DISPLAY 'RES F = ' RES.
75648           COMPUTE RES ROUNDED MODE AWAY-FROM-ZERO =
75649                VAL / DIV1 / DIV2.
75650           DISPLAY 'RES ROUNDED AWAY = ' RES.
75651           STOP RUN.
75652_ATEOF
75653
75654
75655{ set +x
75656$as_echo "$at_srcdir/run_misc.at:11103: \$COMPILE prog.cob"
75657at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11103"
75658( $at_check_trace; $COMPILE prog.cob
75659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75660at_status=$? at_failed=false
75661$at_check_filter
75662at_fn_diff_devnull "$at_stderr" || at_failed=:
75663at_fn_diff_devnull "$at_stdout" || at_failed=:
75664at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11103"
75665$at_failed && at_fn_log_failure
75666$at_traceon; }
75667
75668
75669{ set +x
75670$as_echo "$at_srcdir/run_misc.at:11105: \$COBCRUN_DIRECT ./prog"
75671at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11105"
75672( $at_check_trace; $COBCRUN_DIRECT ./prog
75673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75674at_status=$? at_failed=false
75675$at_check_filter
75676at_fn_diff_devnull "$at_stderr" || at_failed=:
75677echo >>"$at_stdout"; $as_echo "RES = +0000680.95
75678RES ROUNDED = +0000680.95
75679RES MULT1 = +0000680.95
75680RES MULT2 = +0000680.95
75681RES 1 = +0022777.77
75682RES F = +0000680.94
75683RES ROUNDED AWAY = +0000680.96
75684" | \
75685  $at_diff - "$at_stdout" || at_failed=:
75686at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11105"
75687$at_failed && at_fn_log_failure
75688$at_traceon; }
75689
75690
75691  set +x
75692  $at_times_p && times >"$at_times_file"
75693) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75694read at_status <"$at_status_file"
75695#AT_STOP_704
75696#AT_START_705
75697at_fn_group_banner 705 'run_misc.at:11118' \
75698  "OSVS Arithmetic (1)" "                            " 4
75699at_xfail=no
75700(
75701  $as_echo "705. $at_setup_line: testing $at_desc ..."
75702  $at_traceon
75703
75704
75705
75706cat >prog.cob <<'_ATEOF'
75707
75708       IDENTIFICATION DIVISION.
75709       PROGRAM-ID. prog.
75710       DATA DIVISION.
75711       WORKING-STORAGE SECTION.
75712       01 NUM-A   PIC 9(3) VALUE 399.
75713       01 NUM-B   PIC 9(3) VALUE 211.
75714       01 NUM-C   PIC 9(3)V99 VALUE 212.34.
75715       01 NUMV1   PIC 9(3)V9.
75716       01 PICX    PIC X VALUE 'A'.
75717       01 RSLT    PIC 9(3).
75718       01 RSLTV1  PIC 9(3).9.
75719       01 RSLTV2  PIC 9(3).99.
75720      *
75721       PROCEDURE DIVISION.
75722       MAIN.
75723           COMPUTE RSLT = NUM-A + 1.1.
75724           DISPLAY 'Simple Compute  RSLT IS ' RSLT
75725           COMPUTE RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75726           DISPLAY 'Single Variable RSLT IS ' RSLT
75727           COMPUTE RSLTV2, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75728           DISPLAY 'Compute  RSLT    IS ' RSLT
75729           DISPLAY 'Compute  RSLTv99 IS ' RSLTV2
75730           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75731           DISPLAY 'Compute  RSLT    IS ' RSLT
75732           DISPLAY 'Compute  RSLTv9  IS ' RSLTV1
75733           MOVE 0 TO RSLT
75734           ADD NUM-C TO RSLT.
75735           DISPLAY 'Add      RSLT    IS ' RSLT.
75736           MOVE 0 TO RSLT
75737           ADD NUM-A NUM-C 10 TO RSLT.
75738           DISPLAY 'Add      RSLT    IS ' RSLT.
75739           SUBTRACT NUM-C FROM RSLT.
75740           DISPLAY 'Subtract RSLT    IS ' RSLT.
75741           SUBTRACT NUM-A -10 FROM RSLT.
75742           DISPLAY 'Subtract RSLT    IS ' RSLT.
75743           MOVE 0 TO RSLT
75744           ADD NUM-A NUM-C TO RSLT GIVING RSLTV1.
75745           DISPLAY 'Add      RSLTv9  IS ' RSLTV1
75746           MULTIPLY NUM-A BY NUM-C GIVING RSLT.
75747           DISPLAY 'Multiply RSLT    IS ' RSLT.
75748           MULTIPLY RSLT BY NUM-C.
75749           DISPLAY 'Multiply RSLT    IS ' RSLT.
75750           DIVIDE NUM-A BY 10 GIVING RSLT.
75751           DISPLAY 'Divide   RSLT    IS ' RSLT.
75752           DIVIDE RSLT BY 4 GIVING RSLTV1.
75753           DISPLAY 'Divide   RSLTv9  IS ' RSLTV1.
75754           DIVIDE RSLT BY 4 GIVING RSLT.
75755           DISPLAY 'Divide   RSLT    IS ' RSLT.
75756
75757           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
75758           DISPLAY 'Simple   RSLT    IS ' RSLT
75759                           ' RSLTv9  IS ' RSLTV1.
75760
75761           COMPUTE RSLTV1, RSLT = ((NUM-A / (100.55 + -0.550))
75762                                -  (NUM-B / (10.11 * 10 - 1.1)))
75763                                  * (220 / 2.2)
75764           DISPLAY 'Complex  RSLT    IS ' RSLT
75765                           ' RSLTv9  IS ' RSLTV1.
75766
75767           COMPUTE RSLTV1, RSLT = ((NUM-A / (101 - 1))
75768                                -  (NUM-B / (10 * 10))) * (200 / 2)
75769           DISPLAY 'Reduced  RSLT    IS ' RSLT
75770                           ' RSLTv9  IS ' RSLTV1.
75771           MOVE NUM-A TO NUMV1.
75772           IF ((NUMV1 / (101 - 1))
75773              -  (NUM-B / (10 * 10))) * (200 / 2) EQUAL 188
75774              DISPLAY "Not Using ARITHMETIC-OSVS"
75775           ELSE
75776              DISPLAY "Using ARITHMETIC-OSVS"
75777           END-IF.
75778           STOP RUN.
75779_ATEOF
75780
75781
75782{ set +x
75783$as_echo "$at_srcdir/run_misc.at:11195: \$COMPILE -farithmetic-osvs prog.cob"
75784at_fn_check_prepare_dynamic "$COMPILE -farithmetic-osvs prog.cob" "run_misc.at:11195"
75785( $at_check_trace; $COMPILE -farithmetic-osvs prog.cob
75786) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75787at_status=$? at_failed=false
75788$at_check_filter
75789echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN':
75790prog.cob:19: warning: precision of result may change with arithmetic-osvs
75791prog.cob:21: warning: precision of result may change with arithmetic-osvs
75792prog.cob:24: warning: precision of result may change with arithmetic-osvs
75793prog.cob:31: warning: precision of result may change with arithmetic-osvs
75794prog.cob:35: warning: precision of result may change with arithmetic-osvs
75795prog.cob:38: warning: precision of result may change with arithmetic-osvs
75796prog.cob:51: warning: precision of result may change with arithmetic-osvs
75797prog.cob:55: warning: precision of result may change with arithmetic-osvs
75798prog.cob:61: warning: precision of result may change with arithmetic-osvs
75799prog.cob:66: warning: precision of result may change with arithmetic-osvs
75800" | \
75801  $at_diff - "$at_stderr" || at_failed=:
75802at_fn_diff_devnull "$at_stdout" || at_failed=:
75803at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11195"
75804$at_failed && at_fn_log_failure
75805$at_traceon; }
75806
75807
75808{ set +x
75809$as_echo "$at_srcdir/run_misc.at:11209: \$COBCRUN_DIRECT ./prog"
75810at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11209"
75811( $at_check_trace; $COBCRUN_DIRECT ./prog
75812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75813at_status=$? at_failed=false
75814$at_check_filter
75815at_fn_diff_devnull "$at_stderr" || at_failed=:
75816echo >>"$at_stdout"; $as_echo "Simple Compute  RSLT IS 400
75817Single Variable RSLT IS 100
75818Compute  RSLT    IS 188
75819Compute  RSLTv99 IS 188.00
75820Compute  RSLT    IS 180
75821Compute  RSLTv9  IS 180.0
75822Add      RSLT    IS 212
75823Add      RSLT    IS 621
75824Subtract RSLT    IS 408
75825Subtract RSLT    IS 019
75826Add      RSLTv9  IS 611.3
75827Multiply RSLT    IS 723
75828Multiply RSLT    IS 723
75829Divide   RSLT    IS 039
75830Divide   RSLTv9  IS 009.7
75831Divide   RSLT    IS 009
75832Simple   RSLT    IS 180 RSLTv9  IS 180.0
75833Complex  RSLT    IS 188 RSLTv9  IS 188.0
75834Reduced  RSLT    IS 180 RSLTv9  IS 180.0
75835Using ARITHMETIC-OSVS
75836" | \
75837  $at_diff - "$at_stdout" || at_failed=:
75838at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11209"
75839$at_failed && at_fn_log_failure
75840$at_traceon; }
75841
75842
75843  set +x
75844  $at_times_p && times >"$at_times_file"
75845) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75846read at_status <"$at_status_file"
75847#AT_STOP_705
75848#AT_START_706
75849at_fn_group_banner 706 'run_misc.at:11235' \
75850  "OSVS Arithmetic Test (2)" "                       " 4
75851at_xfail=no
75852(
75853  $as_echo "706. $at_setup_line: testing $at_desc ..."
75854  $at_traceon
75855
75856
75857
75858cat >prog.cob <<'_ATEOF'
75859
75860       IDENTIFICATION   DIVISION.
75861       PROGRAM-ID. prog.
75862       ENVIRONMENT      DIVISION.
75863       DATA             DIVISION.
75864       WORKING-STORAGE SECTION.
75865       01  VAL                 PIC S9(7)V99 COMP-3 VALUE 20500.
75866       01  DIV1                PIC S9(7)V99 COMP-3 VALUE 0.9.
75867       01  DIV2                PIC S9(7)V99 COMP-3 VALUE 33.45.
75868       01  DIV3                PIC S9(7)V99 COMP-3 VALUE 9.
75869       01  MUL1                PIC S9(7)V99 COMP-3 VALUE 10.
75870       01  MUL2                PIC S9(7)V99 COMP-3 VALUE 5.
75871       01  MUL3                PIC S9(7)V99 COMP-3 VALUE 2.
75872       01  RES                 PIC S9(7)V99 COMP-3.
75873       PROCEDURE        DIVISION.
75874           COMPUTE RES = VAL / DIV1 / DIV2.
75875           DISPLAY 'RES = ' RES.
75876           COMPUTE RES ROUNDED = VAL / DIV1 / DIV2.
75877           DISPLAY 'RES ROUNDED = ' RES.
75878           COMPUTE RES = VAL * MUL1 / DIV3 / DIV2.
75879           DISPLAY 'RES MULT1 = ' RES.
75880           COMPUTE RES = VAL * MUL2 * MUL3 / DIV3 / DIV2.
75881           DISPLAY 'RES MULT2 = ' RES.
75882           COMPUTE RES = VAL / DIV1.
75883           DISPLAY 'RES 1 = ' RES.
75884           COMPUTE RES = RES / DIV2.
75885           DISPLAY 'RES F = ' RES.
75886           COMPUTE RES ROUNDED MODE AWAY-FROM-ZERO =
75887                VAL / DIV1 / DIV2.
75888           DISPLAY 'RES ROUNDED AWAY = ' RES.
75889           STOP RUN.
75890_ATEOF
75891
75892
75893{ set +x
75894$as_echo "$at_srcdir/run_misc.at:11271: \$COMPILE -std=ibm prog.cob"
75895at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "run_misc.at:11271"
75896( $at_check_trace; $COMPILE -std=ibm prog.cob
75897) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75898at_status=$? at_failed=false
75899$at_check_filter
75900echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: precision of result may change with arithmetic-osvs
75901prog.cob:18: warning: precision of result may change with arithmetic-osvs
75902prog.cob:20: warning: precision of result may change with arithmetic-osvs
75903prog.cob:22: warning: precision of result may change with arithmetic-osvs
75904prog.cob:28: warning: precision of result may change with arithmetic-osvs
75905" | \
75906  $at_diff - "$at_stderr" || at_failed=:
75907at_fn_diff_devnull "$at_stdout" || at_failed=:
75908at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11271"
75909$at_failed && at_fn_log_failure
75910$at_traceon; }
75911
75912
75913{ set +x
75914$as_echo "$at_srcdir/run_misc.at:11279: \$COBCRUN_DIRECT ./prog"
75915at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11279"
75916( $at_check_trace; $COBCRUN_DIRECT ./prog
75917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
75918at_status=$? at_failed=false
75919$at_check_filter
75920at_fn_diff_devnull "$at_stderr" || at_failed=:
75921echo >>"$at_stdout"; $as_echo "RES = +000068094
75922RES ROUNDED = +000068095
75923RES MULT1 = +000068094
75924RES MULT2 = +000068095
75925RES 1 = +002277777
75926RES F = +000068094
75927RES ROUNDED AWAY = +000068095
75928" | \
75929  $at_diff - "$at_stdout" || at_failed=:
75930at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11279"
75931$at_failed && at_fn_log_failure
75932$at_traceon; }
75933
75934
75935  set +x
75936  $at_times_p && times >"$at_times_file"
75937) 5>&1 2>&1 7>&- | eval $at_tee_pipe
75938read at_status <"$at_status_file"
75939#AT_STOP_706
75940#AT_START_707
75941at_fn_group_banner 707 'run_misc.at:11292' \
75942  "SET CONSTANT directive" "                         " 4
75943at_xfail=no
75944(
75945  $as_echo "707. $at_setup_line: testing $at_desc ..."
75946  $at_traceon
75947
75948
75949
75950# The SET CONSTANT directive defines a level78 variable
75951# for the current compilation unit
75952
75953# original MF extension: $SET CONSTANT
75954cat >prog.cob <<'_ATEOF'
75955
75956       $SET CONSTANT DOGGY "Barky"
75957       $SET CONSTANT PONY "Blacky"
75958       IDENTIFICATION DIVISION.
75959       PROGRAM-ID. prog.
75960       DATA DIVISION.
75961       WORKING-STORAGE SECTION.
75962       01  THEDOG    PIC X(6) VALUE DOGGY.
75963       77  MYHORSE   PIC X(7) VALUE PONY.
75964       $SET CONSTANT PONY "White"
75965      *
75966       PROCEDURE DIVISION.
75967       MAIN.
75968           DISPLAY "Your Dog's name is " DOGGY ";".
75969           DISPLAY "The Dog's name is " THEDOG ";".
75970           DISPLAY "My Horse is " MYHORSE ";".
75971           DISPLAY "My little pony is " PONY ".".
75972           STOP RUN.
75973_ATEOF
75974
75975
75976# OpenCOBOL/GnuCOBOL extension: >>SET CONSTANT
75977cat >prog2.cob <<'_ATEOF'
75978
75979       >>SET CONSTANT DOGGY "Barky"
75980       >>SET CONSTANT PONY "Blacky"
75981       IDENTIFICATION DIVISION.
75982       PROGRAM-ID. prog2.
75983       DATA DIVISION.
75984       WORKING-STORAGE SECTION.
75985       01  THEDOG    PIC X(6) VALUE DOGGY.
75986       77  MYHORSE   PIC X(7) VALUE PONY.
75987       >>SET CONSTANT PONY "White"
75988      *
75989       PROCEDURE DIVISION.
75990       MAIN.
75991           DISPLAY "Your Dog's name is " DOGGY ";".
75992           DISPLAY "The Dog's name is " THEDOG ";".
75993           DISPLAY "My Horse is " MYHORSE ";".
75994           DISPLAY "My little pony is " PONY ".".
75995           STOP RUN.
75996_ATEOF
75997
75998
75999# OpenCOBOL/GnuCOBOL extension: >>DEFINE CONSTANT
76000cat >prog3.cob <<'_ATEOF'
76001
76002       >>DEFINE CONSTANT DOGGY "Barky"
76003       >>DEFINE CONSTANT PONY "Blacky"
76004       IDENTIFICATION DIVISION.
76005       PROGRAM-ID. prog3.
76006       DATA DIVISION.
76007       WORKING-STORAGE SECTION.
76008       01  THEDOG    PIC X(6) VALUE DOGGY.
76009       77  MYHORSE   PIC X(7) VALUE PONY.
76010       >>DEFINE CONSTANT PONY "White" OVERRIDE
76011      *
76012       PROCEDURE DIVISION.
76013       MAIN.
76014           DISPLAY "Your Dog's name is " DOGGY ";".
76015           DISPLAY "The Dog's name is " THEDOG ";".
76016           DISPLAY "My Horse is " MYHORSE ";".
76017           DISPLAY "My little pony is " PONY ".".
76018           STOP RUN.
76019_ATEOF
76020
76021
76022{ set +x
76023$as_echo "$at_srcdir/run_misc.at:11361: \$COMPILE -std=mf prog.cob"
76024at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_misc.at:11361"
76025( $at_check_trace; $COMPILE -std=mf prog.cob
76026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76027at_status=$? at_failed=false
76028$at_check_filter
76029at_fn_diff_devnull "$at_stderr" || at_failed=:
76030at_fn_diff_devnull "$at_stdout" || at_failed=:
76031at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11361"
76032$at_failed && at_fn_log_failure
76033$at_traceon; }
76034
76035
76036# Note: MF does not redefine a value via SET CONSTANT
76037# the first definitions wins (we should add a warning)
76038{ set +x
76039$as_echo "$at_srcdir/run_misc.at:11365: \$COBCRUN_DIRECT ./prog"
76040at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11365"
76041( $at_check_trace; $COBCRUN_DIRECT ./prog
76042) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76043at_status=$? at_failed=false
76044$at_check_filter
76045at_fn_diff_devnull "$at_stderr" || at_failed=:
76046echo >>"$at_stdout"; $as_echo "Your Dog's name is Barky;
76047The Dog's name is Barky ;
76048My Horse is Blacky ;
76049My little pony is Blacky.
76050" | \
76051  $at_diff - "$at_stdout" || at_failed=:
76052at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11365"
76053$at_failed && at_fn_log_failure
76054$at_traceon; }
76055
76056
76057{ set +x
76058$as_echo "$at_srcdir/run_misc.at:11372: \$COMPILE prog2.cob"
76059at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:11372"
76060( $at_check_trace; $COMPILE prog2.cob
76061) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76062at_status=$? at_failed=false
76063$at_check_filter
76064at_fn_diff_devnull "$at_stderr" || at_failed=:
76065at_fn_diff_devnull "$at_stdout" || at_failed=:
76066at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11372"
76067$at_failed && at_fn_log_failure
76068$at_traceon; }
76069
76070
76071# Note: MF does not redefine a value via SET CONSTANT
76072# the first definitions wins (we should add a warning)
76073{ set +x
76074$as_echo "$at_srcdir/run_misc.at:11376: \$COBCRUN_DIRECT ./prog2"
76075at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:11376"
76076( $at_check_trace; $COBCRUN_DIRECT ./prog2
76077) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76078at_status=$? at_failed=false
76079$at_check_filter
76080at_fn_diff_devnull "$at_stderr" || at_failed=:
76081echo >>"$at_stdout"; $as_echo "Your Dog's name is Barky;
76082The Dog's name is Barky ;
76083My Horse is Blacky ;
76084My little pony is Blacky.
76085" | \
76086  $at_diff - "$at_stdout" || at_failed=:
76087at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11376"
76088$at_failed && at_fn_log_failure
76089$at_traceon; }
76090
76091
76092{ set +x
76093$as_echo "$at_srcdir/run_misc.at:11383: \$COMPILE -fdefine-constant-directive=ok prog3.cob"
76094at_fn_check_prepare_dynamic "$COMPILE -fdefine-constant-directive=ok prog3.cob" "run_misc.at:11383"
76095( $at_check_trace; $COMPILE -fdefine-constant-directive=ok prog3.cob
76096) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76097at_status=$? at_failed=false
76098$at_check_filter
76099at_fn_diff_devnull "$at_stderr" || at_failed=:
76100at_fn_diff_devnull "$at_stdout" || at_failed=:
76101at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11383"
76102$at_failed && at_fn_log_failure
76103$at_traceon; }
76104
76105
76106{ set +x
76107$as_echo "$at_srcdir/run_misc.at:11385: \$COBCRUN_DIRECT ./prog3"
76108at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:11385"
76109( $at_check_trace; $COBCRUN_DIRECT ./prog3
76110) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76111at_status=$? at_failed=false
76112$at_check_filter
76113at_fn_diff_devnull "$at_stderr" || at_failed=:
76114echo >>"$at_stdout"; $as_echo "Your Dog's name is Barky;
76115The Dog's name is Barky ;
76116My Horse is Blacky ;
76117My little pony is White.
76118" | \
76119  $at_diff - "$at_stdout" || at_failed=:
76120at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11385"
76121$at_failed && at_fn_log_failure
76122$at_traceon; }
76123
76124
76125  set +x
76126  $at_times_p && times >"$at_times_file"
76127) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76128read at_status <"$at_status_file"
76129#AT_STOP_707
76130#AT_START_708
76131at_fn_group_banner 708 'run_misc.at:11395' \
76132  "DEFINE OVERRIDE" "                                " 4
76133at_xfail=no
76134(
76135  $as_echo "708. $at_setup_line: testing $at_desc ..."
76136  $at_traceon
76137
76138
76139
76140cat >prog.cob <<'_ATEOF'
76141
76142       IDENTIFICATION DIVISION.
76143       PROGRAM-ID. prog.
76144       DATA DIVISION.
76145       >>SET CONSTANT DOGGY "Pluto"
76146       >>SET CONSTANT PONY "Piper"
76147       WORKING-STORAGE SECTION.
76148       01  THEDOG    PIC X(6) VALUE DOGGY.
76149
76150       >>DEFINE DPONY  AS PARAMETER OVERRIDE
76151       >>IF DPONY IS NOT DEFINED
76152       >>DEFINE DPONY AS "No Dpony"
76153       >>END-IF
76154       01  CNSPONY     CONSTANT FROM DPONY.
76155
76156       >>DEFINE ENVPONY AS PARAMETER OVERRIDE
76157       >>IF ENVPONY IS NOT DEFINED
76158       >>DEFINE ENVPONY AS "No EnvPony"
76159       >>END-IF
76160       01  HORSE       CONSTANT FROM ENVPONY.
76161       77  MYHORSE    PIC X(12) VALUE HORSE  .
76162       77  MYPONYENV  PIC X(12).
76163      *
76164       PROCEDURE DIVISION.
76165       MAIN.
76166           DISPLAY "ENVPONY" UPON ENVIRONMENT-NAME
76167           ACCEPT  MYPONYENV FROM ENVIRONMENT-VALUE.
76168           DISPLAY "ENVPONY env var set to " MYPONYENV ";".
76169           DISPLAY "1st Dog's name is " DOGGY ";".
76170           DISPLAY "2nd Dog's name is " PONY ";".
76171       >>IF ENVPONY IS DEFINED
76172           DISPLAY "ENVPONY is DEFINED as " HORSE ";".
76173       >>ELSE
76174           DISPLAY "ENVPONY was NOT DEFINED;".
76175       >>END-IF
76176           DISPLAY "DPONY set to " CNSPONY ";".
76177       >>IF ENVPONY = "WHITE"
76178       >>DEFINE CONSTANT PONY AS "White Horse" OVERRIDE
76179       >>ELSE
76180       >>DEFINE CONSTANT PONY AS "default Dirty" OVERRIDE
76181       >>END-IF
76182           DISPLAY "My pony is " PONY ";".
76183       >>IF DPONY IS DEFINED
76184           DISPLAY "DPONY is DEFINED as " CNSPONY ";".
76185       >>END-IF
76186           STOP RUN.
76187_ATEOF
76188
76189
76190{ set +x
76191$as_echo "$at_srcdir/run_misc.at:11446: ENVPONY=WHITE \$COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone"
76192at_fn_check_prepare_dynamic "ENVPONY=WHITE $COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone" "run_misc.at:11446"
76193( $at_check_trace; ENVPONY=WHITE $COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone
76194) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76195at_status=$? at_failed=false
76196$at_check_filter
76197at_fn_diff_devnull "$at_stderr" || at_failed=:
76198at_fn_diff_devnull "$at_stdout" || at_failed=:
76199at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11446"
76200$at_failed && at_fn_log_failure
76201$at_traceon; }
76202
76203
76204{ set +x
76205$as_echo "$at_srcdir/run_misc.at:11448: ENVPONY=WHITE ./prog"
76206at_fn_check_prepare_trace "run_misc.at:11448"
76207( $at_check_trace; ENVPONY=WHITE ./prog
76208) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76209at_status=$? at_failed=false
76210$at_check_filter
76211at_fn_diff_devnull "$at_stderr" || at_failed=:
76212echo >>"$at_stdout"; $as_echo "ENVPONY env var set to WHITE       ;
762131st Dog's name is Pluto;
762142nd Dog's name is Piper;
76215ENVPONY is DEFINED as WHITE;
76216DPONY set to Stallone;
76217My pony is White Horse;
76218DPONY is DEFINED as Stallone;
76219" | \
76220  $at_diff - "$at_stdout" || at_failed=:
76221at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11448"
76222$at_failed && at_fn_log_failure
76223$at_traceon; }
76224
76225
76226  set +x
76227  $at_times_p && times >"$at_times_file"
76228) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76229read at_status <"$at_status_file"
76230#AT_STOP_708
76231#AT_START_709
76232at_fn_group_banner 709 'run_misc.at:11461' \
76233  "DEFINE Defaults" "                                " 4
76234at_xfail=no
76235(
76236  $as_echo "709. $at_setup_line: testing $at_desc ..."
76237  $at_traceon
76238
76239
76240
76241cat >prog.cob <<'_ATEOF'
76242
76243       IDENTIFICATION DIVISION.
76244       PROGRAM-ID. prog.
76245       DATA DIVISION.
76246       >>SET CONSTANT DOGGY "Pluto"
76247       >>SET CONSTANT PONY "Piper"
76248       WORKING-STORAGE SECTION.
76249       01  THEDOG    PIC X(6) VALUE DOGGY.
76250
76251       >>DEFINE DPONY  AS PARAMETER OVERRIDE
76252       >>IF DPONY IS NOT DEFINED
76253       >>DEFINE DPONY AS "No Dpony"
76254       >>END-IF
76255       01  CNSPONY     CONSTANT FROM DPONY.
76256
76257       >>DEFINE ENVPONY AS PARAMETER OVERRIDE
76258       >>IF ENVPONY IS NOT DEFINED
76259       >>DEFINE ENVPONY AS "No EnvPony"
76260       >>END-IF
76261       01  HORSE       CONSTANT FROM ENVPONY.
76262       77  MYHORSE    PIC X(12) VALUE HORSE  .
76263       77  MYPONYENV  PIC X(12).
76264      *
76265       PROCEDURE DIVISION.
76266       MAIN.
76267           DISPLAY "ENVPONY" UPON ENVIRONMENT-NAME
76268           ACCEPT  MYPONYENV FROM ENVIRONMENT-VALUE.
76269           DISPLAY "ENVPONY env var set to " MYPONYENV ";".
76270           DISPLAY "1st Dog's name is " DOGGY ";".
76271           DISPLAY "2nd Dog's name is " PONY ";".
76272       >>IF ENVPONY IS DEFINED
76273           DISPLAY "ENVPONY is DEFINED as " HORSE ";".
76274       >>ELSE
76275           DISPLAY "ENVPONY was NOT DEFINED;".
76276       >>END-IF
76277           DISPLAY "DPONY set to " CNSPONY ";".
76278       >>IF ENVPONY = "WHITE"
76279       >>DEFINE CONSTANT PONY AS "White Horse" OVERRIDE
76280       >>ELSE
76281       >>DEFINE CONSTANT PONY AS "default Dirty" OVERRIDE
76282       >>END-IF
76283           DISPLAY "My pony is " PONY ";".
76284       >>IF DPONY IS DEFINED
76285           DISPLAY "DPONY is DEFINED as " CNSPONY ";".
76286       >>END-IF
76287           STOP RUN.
76288_ATEOF
76289
76290
76291{ set +x
76292$as_echo "$at_srcdir/run_misc.at:11512: \$COMPILE prog.cob -fdefine-constant-directive=ok"
76293at_fn_check_prepare_dynamic "$COMPILE prog.cob -fdefine-constant-directive=ok" "run_misc.at:11512"
76294( $at_check_trace; $COMPILE prog.cob -fdefine-constant-directive=ok
76295) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76296at_status=$? at_failed=false
76297$at_check_filter
76298at_fn_diff_devnull "$at_stderr" || at_failed=:
76299at_fn_diff_devnull "$at_stdout" || at_failed=:
76300at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11512"
76301$at_failed && at_fn_log_failure
76302$at_traceon; }
76303
76304
76305{ set +x
76306$as_echo "$at_srcdir/run_misc.at:11514: \$COBCRUN_DIRECT ./prog"
76307at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11514"
76308( $at_check_trace; $COBCRUN_DIRECT ./prog
76309) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76310at_status=$? at_failed=false
76311$at_check_filter
76312at_fn_diff_devnull "$at_stderr" || at_failed=:
76313echo >>"$at_stdout"; $as_echo "ENVPONY env var set to             ;
763141st Dog's name is Pluto;
763152nd Dog's name is Piper;
76316ENVPONY is DEFINED as No EnvPony;
76317DPONY set to No Dpony;
76318My pony is default Dirty;
76319DPONY is DEFINED as No Dpony;
76320" | \
76321  $at_diff - "$at_stdout" || at_failed=:
76322at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11514"
76323$at_failed && at_fn_log_failure
76324$at_traceon; }
76325
76326
76327  set +x
76328  $at_times_p && times >"$at_times_file"
76329) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76330read at_status <"$at_status_file"
76331#AT_STOP_709
76332#AT_START_710
76333at_fn_group_banner 710 'run_misc.at:11527' \
76334  "78 VALUE" "                                       " 4
76335at_xfail=no
76336(
76337  $as_echo "710. $at_setup_line: testing $at_desc ..."
76338  $at_traceon
76339
76340
76341
76342cat >prog.cob <<'_ATEOF'
76343
76344       IDENTIFICATION DIVISION.
76345       PROGRAM-ID. prog.
76346       DATA DIVISION.
76347       WORKING-STORAGE SECTION.
76348       78  DOGGY     VALUE "Barky".
76349       01  MYREC.
76350          05  FLD1   PIC 9(2).
76351          05  FLD2   PIC X(7).
76352          05  FLD3   PIC X(2) OCCURS 5 TIMES.
76353          05  FLD4   PIC X(4).
76354          05  FLD5   PIC X(4).
76355       01  PICX      PIC XXX VALUE 'Abc'.
76356       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
76357       78  HUN2      VALUE HUN * (10 + LENGTH OF PICX) -4.
76358       01  THEDOG    PIC X(6) VALUE DOGGY.
76359       78  DIV1      VALUE 100 / 3.
76360       78  NUM2      VALUE 1 + 2 * 3.
76361       LINKAGE SECTION.
76362       01  XMYREC.
76363          05  XFLD1   PIC 9(2).
76364          05  XFLD2   PIC X(7).
76365             78  XPOS3    VALUE NEXT.
76366          05  XFLD3   PIC X(2) OCCURS 5 TIMES.
76367             78  XPOS4    VALUE NEXT.
76368          05  XFLD4   PIC X(4).
76369          05  XFLD5   PIC X(4).
76370       78  XSTRT4     VALUE START OF XFLD4.
76371      *
76372       PROCEDURE DIVISION.
76373       MAIN.
76374           DISPLAY "DIV1 is " DIV1.
76375           DISPLAY "HUN  is " HUN.
76376           DISPLAY "HUN2 is " HUN2.
76377           MOVE NUM2 TO FLD1
76378           IF FLD1 = 9
76379             DISPLAY "NUM2 is " NUM2 " left to right precedence."
76380           ELSE
76381             DISPLAY "NUM2 is " NUM2 " normal precedence."
76382           END-IF.
76383           DISPLAY "XFLD3 starts at " XPOS3.
76384           DISPLAY "XFLD4 starts at " XSTRT4.
76385           DISPLAY "XFLD4 starts at " XPOS4.
76386           DISPLAY "Your Dog's name is " DOGGY ";".
76387           DISPLAY "The Dog's name is " THEDOG ";".
76388           STOP RUN.
76389_ATEOF
76390
76391
76392{ set +x
76393$as_echo "$at_srcdir/run_misc.at:11578: \$COMPILE prog.cob"
76394at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11578"
76395( $at_check_trace; $COMPILE prog.cob
76396) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76397at_status=$? at_failed=false
76398$at_check_filter
76399at_fn_diff_devnull "$at_stderr" || at_failed=:
76400at_fn_diff_devnull "$at_stdout" || at_failed=:
76401at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11578"
76402$at_failed && at_fn_log_failure
76403$at_traceon; }
76404
76405
76406{ set +x
76407$as_echo "$at_srcdir/run_misc.at:11580: \$COBCRUN_DIRECT ./prog"
76408at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11580"
76409( $at_check_trace; $COBCRUN_DIRECT ./prog
76410) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76411at_status=$? at_failed=false
76412$at_check_filter
76413at_fn_diff_devnull "$at_stderr" || at_failed=:
76414echo >>"$at_stdout"; $as_echo "DIV1 is 33
76415HUN  is 143
76416HUN2 is 1855
76417NUM2 is 9 left to right precedence.
76418XFLD3 starts at 9
76419XFLD4 starts at 19
76420XFLD4 starts at 11
76421Your Dog's name is Barky;
76422The Dog's name is Barky ;
76423" | \
76424  $at_diff - "$at_stdout" || at_failed=:
76425at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11580"
76426$at_failed && at_fn_log_failure
76427$at_traceon; }
76428
76429
76430  set +x
76431  $at_times_p && times >"$at_times_file"
76432) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76433read at_status <"$at_status_file"
76434#AT_STOP_710
76435#AT_START_711
76436at_fn_group_banner 711 'run_misc.at:11595' \
76437  "01 CONSTANT" "                                    " 4
76438at_xfail=no
76439(
76440  $as_echo "711. $at_setup_line: testing $at_desc ..."
76441  $at_traceon
76442
76443
76444
76445cat >prog.cob <<'_ATEOF'
76446
76447       >>DEFINE MYDOG AS "Piper"
76448       >>DEFINE MYNUM1 AS 11
76449       IDENTIFICATION DIVISION.
76450       PROGRAM-ID. prog.
76451       DATA DIVISION.
76452       WORKING-STORAGE SECTION.
76453       01  MYREC.
76454          05  FLD1   PIC 9(2).
76455          05  FLD2   PIC X(7).
76456          05  FLD3   PIC X(2) OCCURS 5 TIMES.
76457          05  FLD4   PIC X(4).
76458          05  FLD5   PIC X(4).
76459       01  PICX      PIC XXX VALUE 'Abc'.
76460       01  CAT       CONSTANT  'Cat '.
76461       01  DOG       CONSTANT  'Dog '.
76462       01  YARD      CONSTANT  CAT & "& " & DOG.
76463       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
76464       78  HUN2      VALUE HUN * (10 + LENGTH OF PICX) -4.
76465       78  DIV1      VALUE 100 / 3.
76466       78  NUM2      VALUE 1 + 2 * 3.
76467       01  CON3      CONSTANT (((1 + 2) * NUM2) - 4).
76468       01  CON4      CONSTANT AS 3.1416 + CON3.
76469       01  CON5      CONSTANT 1 + 2 * 3.
76470       01  DOGNAME   CONSTANT FROM MYDOG.
76471       01  NUM1      CONSTANT FROM MYNUM1.
76472       01  CON6      CONSTANT AS CON5 + NUM1.
76473       >> IF NUM2 DEFINED  *> optional passed from command line
76474       01  NUM2      CONSTANT FROM MYNUM2.
76475       >> END-IF
76476      *
76477       PROCEDURE DIVISION.
76478       MAIN.
76479           DISPLAY "CAT  is '" CAT "'".
76480           DISPLAY "Yard is '" YARD "'".
76481           DISPLAY "DIV1 is " DIV1.
76482           DISPLAY "HUN  is " HUN.
76483           DISPLAY "HUN2 is " HUN2.
76484           MOVE NUM2 TO FLD1
76485           IF FLD1 = 9
76486             DISPLAY "78 VALUE has simple left to right precedence."
76487           ELSE
76488             DISPLAY "78 VALUE is " NUM2 " normal precedence."
76489           END-IF.
76490           MOVE CON5 TO FLD1
76491           IF FLD1 = 7
76492             DISPLAY "01 CONSTANT has normal operator precedence."
76493           ELSE
76494             DISPLAY "01 CONSTANT is " CON5 " left to right precedence."
76495           END-IF.
76496           DISPLAY "CON3 is " CON3.
76497           DISPLAY "CON4 is " CON4 " vs " 3.141596
76498                   " & " -2.189 " & " +12.
76499           DISPLAY "CON6 is " CON6 "."
76500           DISPLAY "My Dog's name is " DOGNAME ";".
76501           STOP RUN.
76502_ATEOF
76503
76504
76505{ set +x
76506$as_echo "$at_srcdir/run_misc.at:11656: \$COMPILE prog.cob"
76507at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11656"
76508( $at_check_trace; $COMPILE prog.cob
76509) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76510at_status=$? at_failed=false
76511$at_check_filter
76512at_fn_diff_devnull "$at_stderr" || at_failed=:
76513at_fn_diff_devnull "$at_stdout" || at_failed=:
76514at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11656"
76515$at_failed && at_fn_log_failure
76516$at_traceon; }
76517
76518
76519{ set +x
76520$as_echo "$at_srcdir/run_misc.at:11658: \$COBCRUN_DIRECT ./prog"
76521at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11658"
76522( $at_check_trace; $COBCRUN_DIRECT ./prog
76523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76524at_status=$? at_failed=false
76525$at_check_filter
76526at_fn_diff_devnull "$at_stderr" || at_failed=:
76527echo >>"$at_stdout"; $as_echo "CAT  is 'Cat '
76528Yard is 'Cat & Dog '
76529DIV1 is 33
76530HUN  is 143
76531HUN2 is 1855
7653278 VALUE has simple left to right precedence.
7653301 CONSTANT has normal operator precedence.
76534CON3 is 23
76535CON4 is 26 vs 3.141596 & -2.189 & +12
76536CON6 is 18.
76537My Dog's name is Piper;
76538" | \
76539  $at_diff - "$at_stdout" || at_failed=:
76540at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11658"
76541$at_failed && at_fn_log_failure
76542$at_traceon; }
76543
76544
76545  set +x
76546  $at_times_p && times >"$at_times_file"
76547) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76548read at_status <"$at_status_file"
76549#AT_STOP_711
76550#AT_START_712
76551at_fn_group_banner 712 'run_misc.at:11675' \
76552  "DISPLAY UPON" "                                   " 4
76553at_xfail=no
76554(
76555  $as_echo "712. $at_setup_line: testing $at_desc ..."
76556  $at_traceon
76557
76558
76559
76560cat >prog.cob <<'_ATEOF'
76561
76562       IDENTIFICATION DIVISION.
76563       PROGRAM-ID. prog.
76564       ENVIRONMENT DIVISION.
76565       CONFIGURATION SECTION.
76566       SPECIAL-NAMES.
76567           PRINTER IS PRINTER.
76568       DATA DIVISION.
76569       WORKING-STORAGE SECTION.
76570       77 note PIC X(05).
76571       PROCEDURE DIVISION CHAINING note.
76572       DISPLAY "This is sent to CONSOLE " note UPON CONSOLE.
76573       DISPLAY "This is sent to SYSERR  " note UPON SYSERR.
76574       DISPLAY "This is sent to PRINTER " note UPON PRINTER.
76575       DISPLAY "This is also sent to CONSOLE " note UPON CONSOLE.
76576       DISPLAY "This is also sent to SYSERR  " note UPON SYSERR.
76577       DISPLAY "This is also sent to PRINTER " note UPON PRINTER.
76578       DISPLAY "This is sent to SYSPUNCH " note UPON SYSPUNCH
76579            ON EXCEPTION DISPLAY 'NO ...'        UPON SYSERR.
76580       DISPLAY "This is also sent to SYSPUNCH " note UPON SYSPCH
76581            ON EXCEPTION DISPLAY ' ... SYSPUNCH' UPON SYSERR.
76582       STOP RUN RETURNING 0.
76583_ATEOF
76584
76585
76586{ set +x
76587$as_echo "$at_srcdir/run_misc.at:11703: \$COMPILE -std=ibm prog.cob"
76588at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "run_misc.at:11703"
76589( $at_check_trace; $COMPILE -std=ibm prog.cob
76590) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76591at_status=$? at_failed=false
76592$at_check_filter
76593at_fn_diff_devnull "$at_stderr" || at_failed=:
76594at_fn_diff_devnull "$at_stdout" || at_failed=:
76595at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11703"
76596$at_failed && at_fn_log_failure
76597$at_traceon; }
76598
76599
76600{ set +x
76601$as_echo "$at_srcdir/run_misc.at:11705: \$COBCRUN_DIRECT ./prog PLAIN"
76602at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog PLAIN" "run_misc.at:11705"
76603( $at_check_trace; $COBCRUN_DIRECT ./prog PLAIN
76604) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76605at_status=$? at_failed=false
76606$at_check_filter
76607echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PLAIN
76608This is also sent to SYSERR  PLAIN
76609libcob: prog.cob:18: warning: COB_DISPLAY_PUNCH_FILE is invalid, output to SYSPUNCH skipped
76610NO ...
76611 ... SYSPUNCH
76612" | \
76613  $at_diff - "$at_stderr" || at_failed=:
76614echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PLAIN
76615This is sent to PRINTER PLAIN
76616This is also sent to CONSOLE PLAIN
76617This is also sent to PRINTER PLAIN
76618" | \
76619  $at_diff - "$at_stdout" || at_failed=:
76620at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11705"
76621$at_failed && at_fn_log_failure
76622$at_traceon; }
76623
76624
76625{ set +x
76626$as_echo "$at_srcdir/run_misc.at:11718: COB_DISPLAY_PRINT_PIPE='cat >>prt.log' \\
76627COB_DISPLAY_PUNCH_FILE='punch.out' \\
76628\$COBCRUN_DIRECT ./prog PIPE."
76629at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:11718"
76630( $at_check_trace; COB_DISPLAY_PRINT_PIPE='cat >>prt.log' \
76631COB_DISPLAY_PUNCH_FILE='punch.out' \
76632$COBCRUN_DIRECT ./prog PIPE.
76633) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76634at_status=$? at_failed=false
76635$at_check_filter
76636echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PIPE.
76637This is also sent to SYSERR  PIPE.
76638" | \
76639  $at_diff - "$at_stderr" || at_failed=:
76640echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PIPE.
76641This is also sent to CONSOLE PIPE.
76642" | \
76643  $at_diff - "$at_stdout" || at_failed=:
76644at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11718"
76645$at_failed && at_fn_log_failure
76646$at_traceon; }
76647
76648
76649{ set +x
76650$as_echo "$at_srcdir/run_misc.at:11728: COB_DISPLAY_PRINT_FILE='prt.log' \\
76651COB_DISPLAY_PUNCH_FILE='punch.out' \\
76652\$COBCRUN_DIRECT ./prog PRINT"
76653at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:11728"
76654( $at_check_trace; COB_DISPLAY_PRINT_FILE='prt.log' \
76655COB_DISPLAY_PUNCH_FILE='punch.out' \
76656$COBCRUN_DIRECT ./prog PRINT
76657) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76658at_status=$? at_failed=false
76659$at_check_filter
76660echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PRINT
76661This is also sent to SYSERR  PRINT
76662" | \
76663  $at_diff - "$at_stderr" || at_failed=:
76664echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PRINT
76665This is also sent to CONSOLE PRINT
76666" | \
76667  $at_diff - "$at_stdout" || at_failed=:
76668at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11728"
76669$at_failed && at_fn_log_failure
76670$at_traceon; }
76671
76672
76673
76674
76675cat >reference <<'_ATEOF'
76676This is sent to PRINTER PIPE.
76677This is also sent to PRINTER PIPE.
76678This is sent to PRINTER PRINT
76679This is also sent to PRINTER PRINT
76680_ATEOF
76681
76682
76683{ set +x
76684$as_echo "$at_srcdir/run_misc.at:11747: diff reference prt.log"
76685at_fn_check_prepare_trace "run_misc.at:11747"
76686( $at_check_trace; diff reference prt.log
76687) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76688at_status=$? at_failed=false
76689$at_check_filter
76690at_fn_diff_devnull "$at_stderr" || at_failed=:
76691at_fn_diff_devnull "$at_stdout" || at_failed=:
76692at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11747"
76693if $at_failed; then :
76694  # Previous test "failed" --> check if EOL of PIPE is the issue
76695
76696{ set +x
76697$as_echo "$at_srcdir/run_misc.at:11751: \$SED -e 's/PIPE.\\r/PIPE./g' prt.log > prt2.log"
76698at_fn_check_prepare_dynamic "$SED -e 's/PIPE.\\r/PIPE./g' prt.log > prt2.log" "run_misc.at:11751"
76699( $at_check_trace; $SED -e 's/PIPE.\r/PIPE./g' prt.log > prt2.log
76700) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76701at_status=$? at_failed=false
76702$at_check_filter
76703at_fn_diff_devnull "$at_stderr" || at_failed=:
76704at_fn_diff_devnull "$at_stdout" || at_failed=:
76705at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11751"
76706$at_failed && at_fn_log_failure  \
76707"./prt.log"
76708$at_traceon; }
76709
76710{ set +x
76711$as_echo "$at_srcdir/run_misc.at:11752: diff reference prt2.log"
76712at_fn_check_prepare_trace "run_misc.at:11752"
76713( $at_check_trace; diff reference prt2.log
76714) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76715at_status=$? at_failed=false
76716$at_check_filter
76717at_fn_diff_devnull "$at_stderr" || at_failed=:
76718at_fn_diff_devnull "$at_stdout" || at_failed=:
76719at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11752"
76720$at_failed && at_fn_log_failure  \
76721"./prt.log"
76722$at_traceon; }
76723
76724
76725fi
76726$at_failed && at_fn_log_failure  \
76727"./prt.log"
76728$at_traceon; }
76729
76730
76731
76732
76733cat >reference <<'_ATEOF'
76734This is sent to SYSPUNCH PRINT
76735This is also sent to SYSPUNCH PRINT
76736_ATEOF
76737
76738
76739{ set +x
76740$as_echo "$at_srcdir/run_misc.at:11762: diff reference punch.out"
76741at_fn_check_prepare_trace "run_misc.at:11762"
76742( $at_check_trace; diff reference punch.out
76743) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76744at_status=$? at_failed=false
76745$at_check_filter
76746at_fn_diff_devnull "$at_stderr" || at_failed=:
76747at_fn_diff_devnull "$at_stdout" || at_failed=:
76748at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11762"
76749$at_failed && at_fn_log_failure  \
76750"./prt.log" \
76751"./punch.out"
76752$at_traceon; }
76753
76754
76755  set +x
76756  $at_times_p && times >"$at_times_file"
76757) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76758read at_status <"$at_status_file"
76759#AT_STOP_712
76760#AT_START_713
76761at_fn_group_banner 713 'run_misc.at:11767' \
76762  "FLOAT-DECIMAL w/o SIZE ERROR" "                   " 4
76763at_xfail=no
76764(
76765  $as_echo "713. $at_setup_line: testing $at_desc ..."
76766  $at_traceon
76767
76768
76769
76770cat >prog.cob <<'_ATEOF'
76771
76772       IDENTIFICATION DIVISION.
76773       PROGRAM-ID. prog.
76774
76775       DATA DIVISION.
76776       WORKING-STORAGE SECTION.
76777       01  FD16                        USAGE FLOAT-DECIMAL-16.
76778       01  SV16                        USAGE FLOAT-DECIMAL-16.
76779       01  FD34                        USAGE FLOAT-DECIMAL-34.
76780       01  SV34                        USAGE FLOAT-DECIMAL-34.
76781
76782       PROCEDURE DIVISION.
76783       CND-000.
76784           DISPLAY "--- FLOAT-DECIMAL-34 ---"
76785           COMPUTE FD34 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
76786           DISPLAY "A: " FD34
76787
76788           COMPUTE FD34 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
76789           DISPLAY "B: " FD34
76790           MOVE ZERO TO FD34.
76791           COMPUTE FD34 = 1.0E3 / 2.1E0
76792                   ON SIZE ERROR DISPLAY "Z: " FD34 " SIZE ERROR"
76793               NOT ON SIZE ERROR DISPLAY "Z: " FD34 " IS OK"
76794           END-COMPUTE.
76795
76796           DISPLAY "    ..."
76797           DISPLAY "--- FLOAT-DECIMAL-16 ---"
76798           COMPUTE FD16 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
76799           DISPLAY "A: " FD16
76800
76801           COMPUTE FD16 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
76802           DISPLAY "B: " FD16
76803           MOVE ZERO TO FD16.
76804           COMPUTE FD16 = 1.0E3 / 2.1E0
76805                   ON SIZE ERROR DISPLAY "Z: " FD16 " SIZE ERROR"
76806               NOT ON SIZE ERROR DISPLAY "Z: " FD16 " IS OK"
76807           END-COMPUTE.
76808
76809           DISPLAY "    ..."
76810           DISPLAY "--- 99 + 1 / 3 ---"
76811           MOVE -1 TO FD16, FD34.
76812           COMPUTE FD34 = 99 + 1 / 3
76813                   ON SIZE ERROR DISPLAY "FD34: " FD34 " SIZE ERROR"
76814               NOT ON SIZE ERROR DISPLAY "FD34: " FD34 " IS OK"
76815           END-COMPUTE.
76816           COMPUTE FD16 = 99 + 1 / 3
76817                   ON SIZE ERROR DISPLAY "FD16: " FD16 " SIZE ERROR"
76818               NOT ON SIZE ERROR DISPLAY "FD16: " FD16 " IS OK"
76819           END-COMPUTE.
76820
76821           DISPLAY "    ..."
76822           DISPLAY "--- 99 ---"
76823           MOVE -1 TO FD16, FD34.
76824           COMPUTE FD34 = 99
76825                   ON SIZE ERROR DISPLAY "FD34: " FD34 " SIZE ERROR"
76826               NOT ON SIZE ERROR DISPLAY "FD34: " FD34 " IS OK"
76827           END-COMPUTE.
76828           COMPUTE FD16 = 99
76829                   ON SIZE ERROR DISPLAY "FD16: " FD16 " SIZE ERROR"
76830               NOT ON SIZE ERROR DISPLAY "FD16: " FD16 " IS OK"
76831           END-COMPUTE.
76832
76833       CND-100-OK.
76834           DISPLAY "    ..."
76835           DISPLAY "--- Test overflow ---"
76836           MOVE 9900000000000 TO FD16, FD34.
76837           PERFORM 390 TIMES
76838             MOVE FD16 TO SV16
76839             COMPUTE FD16 = FD16 * 10
76840                    ON SIZE ERROR GO TO CND-100-ERR
76841             END-COMPUTE
76842             IF FD16 < 9.0
76843               DISPLAY "FD16: " FD16 " IS Wrong"
76844               GO TO CND-100-ERR
76845             END-IF
76846           END-PERFORM.
76847           DISPLAY "FD16: " FD16 " IS OK".
76848           GO TO CND-200-OK.
76849       CND-100-ERR.
76850           DISPLAY "FD16: after " SV16 " SIZE ERROR".
76851
76852       CND-200-OK.
76853           MOVE 9900000000000 TO FD16, FD34.
76854           PERFORM 6500 TIMES
76855             MOVE FD34 TO SV34
76856             COMPUTE FD34 = FD34 * 10
76857                    ON SIZE ERROR GO TO CND-200-ERR
76858             END-COMPUTE
76859             IF FD34 < 9.0
76860               GO TO CND-200-ERR
76861             END-IF
76862           END-PERFORM.
76863           DISPLAY "FD34: " FD34 " IS OK".
76864           GO TO CND-380-OK.
76865       CND-200-ERR.
76866           DISPLAY "FD34: after " SV34 " SIZE ERROR".
76867
76868       CND-380-OK.
76869           DISPLAY "    ..."
76870           DISPLAY "--- Test underflow ---"
76871           MOVE 0.000000099 TO FD16, FD34.
76872           PERFORM 400 TIMES
76873             MOVE FD16 TO SV16
76874             COMPUTE FD16 = FD16 / 10
76875                    ON SIZE ERROR GO TO CND-300-ERR
76876             END-COMPUTE
76877             IF FD16 = 0.0
76878               GO TO CND-300-ERR
76879             END-IF
76880           END-PERFORM.
76881           DISPLAY "FD16: " FD16 " IS OK".
76882           GO TO CND-400-OK.
76883       CND-300-ERR.
76884           DISPLAY "FD16: after " SV16 " SIZE ERROR".
76885
76886       CND-400-OK.
76887           MOVE 0.000000099 TO FD16, FD34.
76888           PERFORM 6600 TIMES
76889             MOVE FD34 TO SV34
76890             COMPUTE FD34 = FD34 / 10.0
76891                    ON SIZE ERROR GO TO CND-400-ERR
76892             END-COMPUTE
76893             IF FD34 = 0.0
76894               GO TO CND-400-ERR
76895             END-IF
76896           END-PERFORM.
76897           DISPLAY "FD34: " FD34 " IS OK".
76898           GO TO CND-999.
76899       CND-400-ERR.
76900           DISPLAY "FD34: after " SV34 " SIZE ERROR".
76901
76902       CND-999.
76903           STOP RUN.
76904           END PROGRAM prog.
76905_ATEOF
76906
76907
76908{ set +x
76909$as_echo "$at_srcdir/run_misc.at:11908: \$COMPILE prog.cob"
76910at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11908"
76911( $at_check_trace; $COMPILE prog.cob
76912) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76913at_status=$? at_failed=false
76914$at_check_filter
76915at_fn_diff_devnull "$at_stderr" || at_failed=:
76916at_fn_diff_devnull "$at_stdout" || at_failed=:
76917at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11908"
76918$at_failed && at_fn_log_failure
76919$at_traceon; }
76920
76921
76922{ set +x
76923$as_echo "$at_srcdir/run_misc.at:11910: \$COBCRUN_DIRECT ./prog"
76924at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11910"
76925( $at_check_trace; $COBCRUN_DIRECT ./prog
76926) >>"$at_stdout" 2>>"$at_stderr" 5>&-
76927at_status=$? at_failed=false
76928$at_check_filter
76929at_fn_diff_devnull "$at_stderr" || at_failed=:
76930echo >>"$at_stdout"; $as_echo "--- FLOAT-DECIMAL-34 ---
76931A: 9216586.861751152073732718894009216
76932B: 5305036.78779840848806366047745358
76933Z: 476.1904761904761904761904761904761 IS OK
76934    ...
76935--- FLOAT-DECIMAL-16 ---
76936A: 9216586.861751152
76937B: 5305036.787798408
76938Z: 476.1904761904761 IS OK
76939    ...
76940--- 99 + 1 / 3 ---
76941FD34: 99.33333333333333333333333333333333 IS OK
76942FD16: 99.33333333333333 IS OK
76943    ...
76944--- 99 ---
76945FD34: 99 IS OK
76946FD16: 99 IS OK
76947    ...
76948--- Test overflow ---
76949FD16: after 99E369 SIZE ERROR
76950FD34: after 99E6111 SIZE ERROR
76951    ...
76952--- Test underflow ---
76953FD16: after 99E-398 SIZE ERROR
76954FD34: after 99E-6176 SIZE ERROR
76955" | \
76956  $at_diff - "$at_stdout" || at_failed=:
76957at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11910"
76958$at_failed && at_fn_log_failure
76959$at_traceon; }
76960
76961
76962  set +x
76963  $at_times_p && times >"$at_times_file"
76964) 5>&1 2>&1 7>&- | eval $at_tee_pipe
76965read at_status <"$at_status_file"
76966#AT_STOP_713
76967#AT_START_714
76968at_fn_group_banner 714 'run_misc.at:11941' \
76969  "FLOAT-SHORT / FLOAT-LONG w/o SIZE ERROR" "        " 4
76970at_xfail=no
76971(
76972  $as_echo "714. $at_setup_line: testing $at_desc ..."
76973  $at_traceon
76974
76975
76976
76977cat >prog.cob <<'_ATEOF'
76978
76979       IDENTIFICATION DIVISION.
76980       PROGRAM-ID. prog.
76981
76982       DATA DIVISION.
76983       WORKING-STORAGE SECTION.
76984       01  CMP1                        COMP-1.
76985       01  SV1                         COMP-1.
76986       01  CMP2                        COMP-2.
76987       01  SV2                         COMP-2.
76988
76989       PROCEDURE DIVISION.
76990       CND-000.
76991
76992           DISPLAY "--- COMP-1 ---"
76993           COMPUTE CMP1 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
76994           DISPLAY "A: " CMP1
76995           COMPUTE CMP1 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
76996           DISPLAY "B: " CMP1
76997           MOVE ZERO TO CMP1.
76998           COMPUTE CMP1 = 1.0E3 / 2.1E0
76999                   ON SIZE ERROR DISPLAY "Z: " CMP1 " SIZE ERROR"
77000               NOT ON SIZE ERROR DISPLAY "Z: " CMP1 " IS OK"
77001           END-COMPUTE.
77002
77003           DISPLAY "    ..."
77004           DISPLAY "--- COMP-2 ---"
77005           COMPUTE CMP2 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
77006      *>   because of possible rounding of intermediates and different
77007      *>   precision depending on math library / version: plain DISPLAY
77008           IF CMP2 >= 9216586.86175114 AND <= 9216586.86175116
77009             DISPLAY "A ~ 9216586.86175115"
77010           ELSE
77011             DISPLAY "A: " CMP2
77012           END-IF
77013           COMPUTE CMP2 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
77014           IF CMP2 >= 5305036.7877983 AND <= 5305036.7877985
77015             DISPLAY "B ~ 5305036.787798408"
77016           ELSE
77017             DISPLAY "B: " CMP2
77018           END-IF
77019           MOVE ZERO TO CMP2.
77020           COMPUTE CMP2 = 1.0E3 / 2.1E0
77021                   ON SIZE ERROR DISPLAY "Z: " CMP2 " SIZE ERROR"
77022               NOT ON SIZE ERROR
77023      *>        see note above
77024                IF CMP2 >= 476.1904761904760 AND <= 476.1904761904763
77025                  DISPLAY "Z ~ 476.1904761904761 IS OK"
77026                ELSE
77027                  DISPLAY "Z: " CMP2 " IS OK"
77028                END-IF
77029           END-COMPUTE.
77030
77031           DISPLAY "    ..."
77032           DISPLAY "--- 99 + 1 / 3 ---"
77033           MOVE -1 TO CMP1, CMP2.
77034           COMPUTE CMP1 = 99 + 1 / 3
77035                   ON SIZE ERROR DISPLAY "CMP1: " CMP1 " SIZE ERROR"
77036               NOT ON SIZE ERROR DISPLAY "CMP1: " CMP1 " IS OK"
77037           END-COMPUTE.
77038           COMPUTE CMP2 = 99 + 1 / 3
77039                   ON SIZE ERROR DISPLAY "CMP2: " CMP2 " SIZE ERROR"
77040               NOT ON SIZE ERROR DISPLAY "CMP2: " CMP2 " IS OK"
77041           END-COMPUTE.
77042
77043           DISPLAY "    ..."
77044           DISPLAY "--- 99 ---"
77045           MOVE -1 TO CMP1, CMP2.
77046           COMPUTE CMP1 = 99
77047                   ON SIZE ERROR DISPLAY "CMP1: " CMP1 " SIZE ERROR"
77048               NOT ON SIZE ERROR DISPLAY "CMP1: " CMP1 " IS OK"
77049           END-COMPUTE.
77050           COMPUTE CMP2 = 99
77051                   ON SIZE ERROR DISPLAY "CMP2: " CMP2 " SIZE ERROR"
77052               NOT ON SIZE ERROR DISPLAY "CMP2: " CMP2 " IS OK"
77053           END-COMPUTE.
77054
77055       CND-100-OK.
77056           DISPLAY "    ..."
77057           DISPLAY "--- Test overflow ---"
77058
77059           MOVE 990000 TO CMP1.
77060           PERFORM 6500 TIMES
77061             MOVE CMP1 TO SV1
77062             COMPUTE CMP1 = CMP1 * 10
77063                    ON SIZE ERROR GO TO CND-350-ERR
77064             END-COMPUTE
77065             IF CMP1 < 9.0
77066               GO TO CND-350-ERR
77067             END-IF
77068           END-PERFORM.
77069           DISPLAY "CMP1: " CMP1 " IS OK".
77070           GO TO CND-350-OK.
77071       CND-350-ERR.
77072           DISPLAY "CMP1: after " SV1 " SIZE ERROR".
77073
77074       CND-350-OK.
77075           MOVE 9900000000 TO CMP2.
77076           PERFORM 6500 TIMES
77077             MOVE CMP2 TO SV2
77078             COMPUTE CMP2 = CMP2 * 10
77079                    ON SIZE ERROR GO TO CND-380-ERR
77080             END-COMPUTE
77081             IF CMP2 < 9.0
77082               GO TO CND-380-ERR
77083             END-IF
77084           END-PERFORM.
77085           DISPLAY "CMP2: " CMP2 " IS OK".
77086           GO TO CND-500-OK.
77087       CND-380-ERR.
77088      *>   because of possible rounding of intermediates and different
77089      *>   precision depending on math library / version: plain DISPLAY
77090           IF SV2 >= 9.899999999999E+307 AND
77091                  <= 9.900000000001E+307
77092             DISPLAY "CMP2: after ~ 9.899999999999781E+307 SIZE ERROR"
77093           ELSE
77094             DISPLAY "CMP2: after " SV2 " SIZE ERROR"
77095           END-IF
77096           .
77097
77098       CND-500-OK.
77099           MOVE 0.000000099 TO CMP1.
77100           PERFORM 350 TIMES
77101             MOVE CMP1 TO SV1
77102             COMPUTE CMP1 = CMP1 / 10.0
77103                    ON SIZE ERROR GO TO CND-500-ERR
77104             END-COMPUTE
77105             IF CMP1 = 0.0
77106               GO TO CND-500-ERR
77107             END-IF
77108           END-PERFORM.
77109           DISPLAY "CMP1: " CMP1 " IS OK".
77110           GO TO CND-600-OK.
77111       CND-500-ERR.
77112           DISPLAY "CMP1: after " SV1 " SIZE ERROR".
77113
77114       CND-600-OK.
77115           MOVE 0.000000099 TO CMP2.
77116           PERFORM 350 TIMES
77117             MOVE CMP2 TO SV2
77118             COMPUTE CMP2 = CMP2 / 10.0
77119                    ON SIZE ERROR GO TO CND-600-ERR
77120             END-COMPUTE
77121             IF CMP2 = 0.0
77122               GO TO CND-600-ERR
77123             END-IF
77124           END-PERFORM.
77125           DISPLAY "CMP2: " CMP2 " IS OK".
77126           GO TO CND-600-XIT.
77127       CND-600-ERR.
77128           IF SV2 >= 9.8813129168249E-324 AND <= 9.881312916825E-324
77129             DISPLAY "CMP2: after ~ 9.881312916824931E-324 SIZE ERROR"
77130           ELSE
77131             DISPLAY "CMP2: after " SV2 " SIZE ERROR"
77132           END-IF
77133           .
77134       CND-600-XIT.
77135
77136       CND-999.
77137           STOP RUN.
77138       END PROGRAM prog.
77139_ATEOF
77140
77141
77142{ set +x
77143$as_echo "$at_srcdir/run_misc.at:12109: \$COMPILE prog.cob"
77144at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12109"
77145( $at_check_trace; $COMPILE prog.cob
77146) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77147at_status=$? at_failed=false
77148$at_check_filter
77149at_fn_diff_devnull "$at_stderr" || at_failed=:
77150at_fn_diff_devnull "$at_stdout" || at_failed=:
77151at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12109"
77152$at_failed && at_fn_log_failure
77153$at_traceon; }
77154
77155
77156{ set +x
77157$as_echo "$at_srcdir/run_misc.at:12111: \$COBCRUN_DIRECT ./prog"
77158at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12111"
77159( $at_check_trace; $COBCRUN_DIRECT ./prog
77160) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77161at_status=$? at_failed=false
77162$at_check_filter
77163at_fn_diff_devnull "$at_stderr" || at_failed=:
77164echo >>"$at_stdout"; $as_echo "--- COMP-1 ---
77165A: 9216587
77166B: 5305037
77167Z: 476.19049 IS OK
77168    ...
77169--- COMP-2 ---
77170A ~ 9216586.86175115
77171B ~ 5305036.787798408
77172Z ~ 476.1904761904761 IS OK
77173    ...
77174--- 99 + 1 / 3 ---
77175CMP1: 99.333336 IS OK
77176CMP2: 99.33333333333333 IS OK
77177    ...
77178--- 99 ---
77179CMP1: 99 IS OK
77180CMP2: 99 IS OK
77181    ...
77182--- Test overflow ---
77183CMP1: after 9.8999983E+37 SIZE ERROR
77184CMP2: after ~ 9.899999999999781E+307 SIZE ERROR
77185CMP1: after 1.4012985E-45 SIZE ERROR
77186CMP2: after ~ 9.881312916824931E-324 SIZE ERROR
77187" | \
77188  $at_diff - "$at_stdout" || at_failed=:
77189at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12111"
77190$at_failed && at_fn_log_failure
77191$at_traceon; }
77192
77193
77194  set +x
77195  $at_times_p && times >"$at_times_file"
77196) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77197read at_status <"$at_status_file"
77198#AT_STOP_714
77199#AT_START_715
77200at_fn_group_banner 715 'run_misc.at:12140' \
77201  "FLOAT-SHORT with SIZE ERROR" "                    " 4
77202at_xfail=no
77203(
77204  $as_echo "715. $at_setup_line: testing $at_desc ..."
77205  $at_traceon
77206
77207
77208
77209cat >prog.cob <<'_ATEOF'
77210
77211       identification division.
77212       program-id. prog.
77213
77214       data division.
77215       working-storage section.
77216      *------------------------
77217       77 counter             pic s9(4) binary value zero.
77218      * FLOAT-SHORT (if binary-comp-1 is not active)
77219       77 floatValue          COMP-1  value 2.
77220       77 lastFloatValue      COMP-1.
77221
77222      ******************************************************************
77223       procedure division.
77224       main section.
77225           perform varying counter from 1 by 1 until
77226                           counter > 130
77227      *>      display 'counter: ' counter ', value: ' floatValue
77228              compute floatValue = floatValue * 2
77229                   ON SIZE ERROR
77230                      display 'SIZE ERROR, last value = ' floatValue
77231                      exit perform
77232               not ON SIZE ERROR
77233                      if floatValue > lastFloatValue
77234                         move floatValue to lastFloatValue
77235                      else
77236                         display 'math ERROR, last value > current: '
77237                                 lastFloatValue ' > ' floatValue
77238                         exit perform
77239                      end-if
77240              end-compute
77241           end-perform
77242           if counter not = 127
77243              display 'counter is ' counter
77244           end-if
77245
77246           goback.
77247_ATEOF
77248
77249
77250{ set +x
77251$as_echo "$at_srcdir/run_misc.at:12182: \$COMPILE prog.cob"
77252at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12182"
77253( $at_check_trace; $COMPILE prog.cob
77254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77255at_status=$? at_failed=false
77256$at_check_filter
77257at_fn_diff_devnull "$at_stderr" || at_failed=:
77258at_fn_diff_devnull "$at_stdout" || at_failed=:
77259at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12182"
77260$at_failed && at_fn_log_failure
77261$at_traceon; }
77262
77263
77264{ set +x
77265$as_echo "$at_srcdir/run_misc.at:12184: ./prog"
77266at_fn_check_prepare_trace "run_misc.at:12184"
77267( $at_check_trace; ./prog
77268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77269at_status=$? at_failed=false
77270$at_check_filter
77271at_fn_diff_devnull "$at_stderr" || at_failed=:
77272echo >>"$at_stdout"; $as_echo "SIZE ERROR, last value = 1.7014118E+38
77273" | \
77274  $at_diff - "$at_stdout" || at_failed=:
77275at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12184"
77276$at_failed && at_fn_log_failure
77277$at_traceon; }
77278
77279
77280  set +x
77281  $at_times_p && times >"$at_times_file"
77282) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77283read at_status <"$at_status_file"
77284#AT_STOP_715
77285#AT_START_716
77286at_fn_group_banner 716 'run_misc.at:12191' \
77287  "FLOAT-LONG with SIZE ERROR" "                     " 4
77288at_xfail=no
77289(
77290  $as_echo "716. $at_setup_line: testing $at_desc ..."
77291  $at_traceon
77292
77293
77294
77295cat >prog.cob <<'_ATEOF'
77296
77297       identification division.
77298       program-id. prog.
77299
77300       data division.
77301       working-storage section.
77302      *------------------------
77303       77 counter             pic s9(4) binary value zero.
77304      * FLOAT-LONG
77305       77 doubleValue         COMP-2 value 2.
77306       77 lastDoubleValue     COMP-2.
77307
77308      ******************************************************************
77309       procedure division.
77310       main section.
77311           perform varying counter from 1 by 1 until
77312                           counter > 1060
77313      *>      display 'counter: ' counter ', value: ' doubleValue
77314              compute doubleValue = doubleValue * 2
77315                   ON SIZE ERROR
77316                      display 'SIZE ERROR raised'
77317                              with no advancing upon syserr
77318                      end-display
77319                      display 'SIZE ERROR, last value = ' doubleValue
77320                              upon sysout
77321                      end-display
77322                      exit perform
77323               not ON SIZE ERROR
77324                      if doubleValue > lastdoubleValue
77325                         move doubleValue to lastdoubleValue
77326                      else
77327                         display 'math ERROR, last value > current: '
77328                                 lastdoubleValue ' > ' doubleValue
77329                                 upon syserr
77330                         end-display
77331                         exit perform
77332                      end-if
77333              end-compute
77334           end-perform
77335           if not (counter >= 1023 and <=1025)
77336              display ' '                   upon syserr
77337              display 'counter is ' counter upon syserr
77338           end-if
77339
77340           goback.
77341_ATEOF
77342
77343
77344{ set +x
77345$as_echo "$at_srcdir/run_misc.at:12241: \$COMPILE prog.cob"
77346at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12241"
77347( $at_check_trace; $COMPILE prog.cob
77348) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77349at_status=$? at_failed=false
77350$at_check_filter
77351at_fn_diff_devnull "$at_stderr" || at_failed=:
77352at_fn_diff_devnull "$at_stdout" || at_failed=:
77353at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12241"
77354$at_failed && at_fn_log_failure
77355$at_traceon; }
77356
77357# note: the actual value is not checked as this depends on intermediate rounding
77358{ set +x
77359$as_echo "$at_srcdir/run_misc.at:12243: ./prog"
77360at_fn_check_prepare_trace "run_misc.at:12243"
77361( $at_check_trace; ./prog
77362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77363at_status=$? at_failed=false
77364$at_check_filter
77365echo >>"$at_stderr"; $as_echo "SIZE ERROR raised" | \
77366  $at_diff - "$at_stderr" || at_failed=:
77367echo stdout:; cat "$at_stdout"
77368at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12243"
77369$at_failed && at_fn_log_failure
77370$at_traceon; }
77371
77372
77373  set +x
77374  $at_times_p && times >"$at_times_file"
77375) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77376read at_status <"$at_status_file"
77377#AT_STOP_716
77378#AT_START_717
77379at_fn_group_banner 717 'run_misc.at:12248' \
77380  "EC-SIZE-ZERO-DIVIDE" "                            " 4
77381at_xfail=no
77382(
77383  $as_echo "717. $at_setup_line: testing $at_desc ..."
77384  $at_traceon
77385
77386
77387
77388cat >prog.cob <<'_ATEOF'
77389
77390       IDENTIFICATION DIVISION.
77391       PROGRAM-ID. prog.
77392
77393       DATA DIVISION.
77394       WORKING-STORAGE SECTION.
77395       01  x PIC 9 VALUE 0.
77396       01  y PIC 9 VALUE 0.
77397
77398       PROCEDURE DIVISION.
77399           DIVIDE x BY y GIVING y
77400           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
77401           NOT = 'EC-SIZE-ZERO-DIVIDE'
77402              DISPLAY 'Wrong/missing exception: '
77403                      FUNCTION EXCEPTION-STATUS
77404              END-DISPLAY
77405           END-IF
77406           SET LAST EXCEPTION TO OFF
77407           IF FUNCTION EXCEPTION-STATUS NOT = SPACES
77408              DISPLAY 'Exception is not empty after reset: '
77409                      FUNCTION EXCEPTION-STATUS
77410              END-DISPLAY
77411           END-IF
77412           MOVE 0 TO y
77413           COMPUTE y = x - 1 / y + 6.5
77414           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
77415           NOT = 'EC-SIZE-ZERO-DIVIDE'
77416              DISPLAY 'Wrong/missing exception: '
77417                      FUNCTION EXCEPTION-STATUS
77418              END-DISPLAY
77419           END-IF
77420           .
77421_ATEOF
77422
77423
77424{ set +x
77425$as_echo "$at_srcdir/run_misc.at:12286: \$COMPILE prog.cob"
77426at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12286"
77427( $at_check_trace; $COMPILE prog.cob
77428) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77429at_status=$? at_failed=false
77430$at_check_filter
77431at_fn_diff_devnull "$at_stderr" || at_failed=:
77432at_fn_diff_devnull "$at_stdout" || at_failed=:
77433at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12286"
77434$at_failed && at_fn_log_failure
77435$at_traceon; }
77436
77437{ set +x
77438$as_echo "$at_srcdir/run_misc.at:12287: \$COBCRUN_DIRECT ./prog"
77439at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12287"
77440( $at_check_trace; $COBCRUN_DIRECT ./prog
77441) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77442at_status=$? at_failed=false
77443$at_check_filter
77444at_fn_diff_devnull "$at_stderr" || at_failed=:
77445at_fn_diff_devnull "$at_stdout" || at_failed=:
77446at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12287"
77447$at_failed && at_fn_log_failure
77448$at_traceon; }
77449
77450  set +x
77451  $at_times_p && times >"$at_times_file"
77452) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77453read at_status <"$at_status_file"
77454#AT_STOP_717
77455#AT_START_718
77456at_fn_group_banner 718 'run_misc.at:12291' \
77457  "EC-SIZE-OVERFLOW" "                               " 4
77458at_xfail=no
77459(
77460  $as_echo "718. $at_setup_line: testing $at_desc ..."
77461  $at_traceon
77462
77463
77464
77465cat >prog.cob <<'_ATEOF'
77466
77467       IDENTIFICATION DIVISION.
77468       PROGRAM-ID. prog.
77469
77470       DATA DIVISION.
77471       WORKING-STORAGE SECTION.
77472       01  x PIC 9 VALUE 1.
77473       01  y PIC 9.
77474
77475       PROCEDURE DIVISION.
77476      *    raise exception checked in previous test
77477      *    as it may interfere with the expected exception
77478           DIVIDE x BY y GIVING y
77479           DIVIDE x BY 0.1 GIVING y
77480           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
77481           NOT = 'EC-SIZE-OVERFLOW'
77482              DISPLAY 'Wrong/missing exception: '
77483                      FUNCTION EXCEPTION-STATUS
77484              END-DISPLAY
77485           END-IF
77486           .
77487_ATEOF
77488
77489
77490{ set +x
77491$as_echo "$at_srcdir/run_misc.at:12317: \$COMPILE prog.cob"
77492at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12317"
77493( $at_check_trace; $COMPILE prog.cob
77494) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77495at_status=$? at_failed=false
77496$at_check_filter
77497at_fn_diff_devnull "$at_stderr" || at_failed=:
77498at_fn_diff_devnull "$at_stdout" || at_failed=:
77499at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12317"
77500$at_failed && at_fn_log_failure
77501$at_traceon; }
77502
77503{ set +x
77504$as_echo "$at_srcdir/run_misc.at:12318: \$COBCRUN_DIRECT ./prog"
77505at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12318"
77506( $at_check_trace; $COBCRUN_DIRECT ./prog
77507) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77508at_status=$? at_failed=false
77509$at_check_filter
77510at_fn_diff_devnull "$at_stderr" || at_failed=:
77511at_fn_diff_devnull "$at_stdout" || at_failed=:
77512at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12318"
77513$at_failed && at_fn_log_failure
77514$at_traceon; }
77515
77516  set +x
77517  $at_times_p && times >"$at_times_file"
77518) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77519read at_status <"$at_status_file"
77520#AT_STOP_718
77521#AT_START_719
77522at_fn_group_banner 719 'run_misc.at:12322' \
77523  "Constant Expressions" "                           " 4
77524at_xfail=no
77525(
77526  $as_echo "719. $at_setup_line: testing $at_desc ..."
77527  $at_traceon
77528
77529
77530
77531cat >prog.cob <<'_ATEOF'
77532
77533       IDENTIFICATION DIVISION.
77534       PROGRAM-ID. prog.
77535       DATA  DIVISION.
77536       WORKING-STORAGE SECTION.
77537       01  VAR       PIC X(200).
77538       01  OTHERVAR  PIC X(115).
77539       78  VAR-LEN   VALUE 115.
77540
77541       PROCEDURE DIVISION.
77542       MAIN-10.
77543           MOVE "Peek a boo" TO VAR.
77544           EVALUATE TRUE
77545               ALSO FALSE
77546               ALSO TRUE
77547            WHEN    TRUE
77548               ALSO VAR-LEN > 16 AND VAR-LEN < 200
77549               ALSO TRUE
77550                  MOVE OTHERVAR (1 : VAR-LEN - 9)
77551                    TO VAR (16 - VAR-LEN : VAR-LEN - 9)
77552                  DISPLAY "A: Should NOT be executed"
77553            WHEN  TRUE
77554               ALSO VAR-LEN < 16
77555               ALSO TRUE
77556                  MOVE OTHERVAR TO VAR
77557                  DISPLAY "A: OK VAR-LEN > 16 AND VAR-LEN < 200"
77558            WHEN  TRUE
77559               ALSO VAR = SPACES
77560               ALSO TRUE
77561                  MOVE OTHERVAR TO VAR
77562                  DISPLAY "A: OK VAR IS SPACES"
77563           END-EVALUATE.
77564
77565           MOVE "Peek a boo" TO VAR.
77566           EVALUATE 3 EQUALS 7
77567           WHEN  VAR = SPACES
77568               DISPLAY "B: OK VAR IS NOT SPACES"
77569           WHEN  VAR NOT = SPACES
77570               DISPLAY "B: FALSE VAR IS SPACES"
77571           END-EVALUATE.
77572
77573           MOVE SPACES       TO VAR.
77574           EVALUATE FALSE
77575           WHEN  VAR = SPACES
77576               DISPLAY "C: FALSE VAR IS SPACES"
77577           WHEN  VAR NOT = SPACES
77578               DISPLAY "C: OK VAR IS SPACES"
77579           END-EVALUATE.
77580
77581           MOVE "Peek a boo" TO VAR.
77582           EVALUATE TRUE
77583           WHEN  VAR = SPACES
77584               DISPLAY "D: BAD VAR IS SPACES"
77585           WHEN  VAR NOT = SPACES
77586               DISPLAY "D: OK VAR IS NOT SPACES"
77587           END-EVALUATE.
77588
77589           MOVE SPACES       TO VAR.
77590           EVALUATE VAR-LEN ALSO VAR
77591           WHEN  < 32 ALSO SPACES
77592               DISPLAY "E: OK VAR IS SPACES"
77593           WHEN  > 16 ALSO NOT SPACES
77594               DISPLAY "E: BAD VAR IS NOT SPACES"
77595           WHEN OTHER
77596               DISPLAY "E: OK OTHER option taken"
77597           END-EVALUATE.
77598
77599           STOP RUN.
77600_ATEOF
77601
77602
77603{ set +x
77604$as_echo "$at_srcdir/run_misc.at:12395: \$COMPILE prog.cob -w"
77605at_fn_check_prepare_dynamic "$COMPILE prog.cob -w" "run_misc.at:12395"
77606( $at_check_trace; $COMPILE prog.cob -w
77607) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77608at_status=$? at_failed=false
77609$at_check_filter
77610at_fn_diff_devnull "$at_stderr" || at_failed=:
77611at_fn_diff_devnull "$at_stdout" || at_failed=:
77612at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12395"
77613$at_failed && at_fn_log_failure
77614$at_traceon; }
77615
77616
77617{ set +x
77618$as_echo "$at_srcdir/run_misc.at:12397: \$COBCRUN_DIRECT ./prog"
77619at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12397"
77620( $at_check_trace; $COBCRUN_DIRECT ./prog
77621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77622at_status=$? at_failed=false
77623$at_check_filter
77624at_fn_diff_devnull "$at_stderr" || at_failed=:
77625echo >>"$at_stdout"; $as_echo "A: OK VAR-LEN > 16 AND VAR-LEN < 200
77626B: OK VAR IS NOT SPACES
77627C: OK VAR IS SPACES
77628D: OK VAR IS NOT SPACES
77629E: OK OTHER option taken
77630" | \
77631  $at_diff - "$at_stdout" || at_failed=:
77632at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12397"
77633$at_failed && at_fn_log_failure
77634$at_traceon; }
77635
77636
77637  set +x
77638  $at_times_p && times >"$at_times_file"
77639) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77640read at_status <"$at_status_file"
77641#AT_STOP_719
77642#AT_START_720
77643at_fn_group_banner 720 'run_misc.at:12408' \
77644  "ENTRY FOR GO TO / GO TO ENTRY" "                  " 4
77645at_xfail=no
77646(
77647  $as_echo "720. $at_setup_line: testing $at_desc ..."
77648  $at_traceon
77649
77650
77651
77652cat >prog.cob <<'_ATEOF'
77653
77654       IDENTIFICATION DIVISION.
77655       PROGRAM-ID. prog.
77656       DATA DIVISION.
77657       WORKING-STORAGE SECTION.
77658       01 JUMP-ENTRY    PIC 9  VALUE 6.
77659          88 EXT-MODUS  VALUES 3, 4.
77660       LINKAGE SECTION.
77661       PROCEDURE DIVISION.
77662           GO TO ENTRY 'STMT05'.
77663       MAIN.
77664           GO TO ENTRY 'STMT01'
77665                       'STMT02'
77666                       'STMT03'
77667                       'STMT04'
77668                       'STMT05'
77669           DEPENDING ON JUMP-ENTRY
77670           DISPLAY 'NOT JUMPED'
77671           GOBACK.
77672       ENTRY FOR GO TO 'STMT01'
77673           DISPLAY 'STMT01'
77674       ENTRY FOR GO TO 'STMT02'
77675           PERFORM 3 TIMES
77676       ENTRY FOR GO TO 'STMT03'
77677              DISPLAY 'STMT03'
77678       ENTRY FOR GO TO 'STMT04'  DISPLAY 'STMT04'
77679              IF EXT-MODUS EXIT PERFORM END-IF
77680           END-PERFORM
77681       ENTRY FOR GO TO 'STMT05'
77682           DISPLAY 'STMT05'
77683           SUBTRACT 1 FROM JUMP-ENTRY
77684           GO TO MAIN.
77685
77686_ATEOF
77687
77688
77689# TODO: move to syntax checks, together with all expected error messages
77690{ set +x
77691$as_echo "$at_srcdir/run_misc.at:12447: \$COMPILE -std=mf-strict prog.cob"
77692at_fn_check_prepare_dynamic "$COMPILE -std=mf-strict prog.cob" "run_misc.at:12447"
77693( $at_check_trace; $COMPILE -std=mf-strict prog.cob
77694) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77695at_status=$? at_failed=false
77696$at_check_filter
77697echo >>"$at_stderr"; $as_echo "prog.cob:10: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77698prog.cob: in paragraph 'MAIN':
77699prog.cob:18: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77700prog.cob:20: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77701prog.cob:22: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77702prog.cob:24: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77703prog.cob:26: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77704prog.cob:29: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
77705" | \
77706  $at_diff - "$at_stderr" || at_failed=:
77707at_fn_diff_devnull "$at_stdout" || at_failed=:
77708at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12447"
77709$at_failed && at_fn_log_failure
77710$at_traceon; }
77711
77712
77713{ set +x
77714$as_echo "$at_srcdir/run_misc.at:12458: \$COMPILE prog.cob"
77715at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12458"
77716( $at_check_trace; $COMPILE prog.cob
77717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77718at_status=$? at_failed=false
77719$at_check_filter
77720echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ENTRY FOR GO TO used
77721prog.cob: in paragraph 'MAIN':
77722prog.cob:18: warning: ENTRY FOR GO TO used
77723prog.cob:20: warning: ENTRY FOR GO TO used
77724prog.cob:22: warning: ENTRY FOR GO TO used
77725prog.cob:24: warning: ENTRY FOR GO TO used
77726prog.cob:26: warning: ENTRY FOR GO TO used
77727prog.cob:29: warning: ENTRY FOR GO TO used
77728" | \
77729  $at_diff - "$at_stderr" || at_failed=:
77730at_fn_diff_devnull "$at_stdout" || at_failed=:
77731at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12458"
77732$at_failed && at_fn_log_failure
77733$at_traceon; }
77734
77735
77736{ set +x
77737$as_echo "$at_srcdir/run_misc.at:12469: \$COBCRUN_DIRECT ./prog"
77738at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12469"
77739( $at_check_trace; $COBCRUN_DIRECT ./prog
77740) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77741at_status=$? at_failed=false
77742$at_check_filter
77743at_fn_diff_devnull "$at_stderr" || at_failed=:
77744echo >>"$at_stdout"; $as_echo "STMT05
77745STMT05
77746STMT04
77747STMT05
77748STMT03
77749STMT04
77750STMT05
77751STMT03
77752STMT04
77753STMT03
77754STMT04
77755STMT03
77756STMT04
77757STMT05
77758STMT01
77759STMT03
77760STMT04
77761STMT03
77762STMT04
77763STMT03
77764STMT04
77765STMT05
77766NOT JUMPED
77767" | \
77768  $at_diff - "$at_stdout" || at_failed=:
77769at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12469"
77770$at_failed && at_fn_log_failure
77771$at_traceon; }
77772
77773
77774  set +x
77775  $at_times_p && times >"$at_times_file"
77776) 5>&1 2>&1 7>&- | eval $at_tee_pipe
77777read at_status <"$at_status_file"
77778#AT_STOP_720
77779#AT_START_721
77780at_fn_group_banner 721 'run_misc.at:12498' \
77781  "runtime checks within conditions" "               " 4
77782at_xfail=no
77783(
77784  $as_echo "721. $at_setup_line: testing $at_desc ..."
77785  $at_traceon
77786
77787
77788
77789# this serves as a sample what was broken in the initial
77790# 3.1 release
77791
77792cat >prog.cob <<'_ATEOF'
77793
77794       IDENTIFICATION DIVISION.
77795       PROGRAM-ID.    prog.
77796
77797       DATA DIVISION.
77798       WORKING-STORAGE SECTION.
77799
77800       01 mytab.
77801          03  VAR                   PIC  9(02) value 1.
77802          03  VAR2                  PIC  9(02) value 2.
77803          03                        OCCURS 2.
77804           05 T15-PRGM              PIC  X(08).
77805           05 T16-PRGM              PIC  X(08).
77806          03                        OCCURS 2.
77807           05 T15-NRGM              PIC  9(04).
77808           05 T16-NRGM              USAGE BINARY-INT.
77809
77810       PROCEDURE DIVISION.
77811      *
77812           MOVE 'TESTME' TO T16-PRGM (VAR) (VAR2:)
77813           MOVE T16-PRGM (VAR) (1:VAR2) TO T15-PRGM (VAR)
77814           IF  T16-PRGM(VAR)
77815             = T15-PRGM(VAR2)
77816              DISPLAY 'WRONG RESULT OCCURS'.
77817
77818           IF  MYTAB(VAR:VAR2)
77819             = MYTAB(VAR2:VAR)
77820              DISPLAY 'WRONG RESULT REFMOD'.
77821
77822            INITIALIZE mytab
77823
77824            GOBACK.
77825_ATEOF
77826
77827{ set +x
77828$as_echo "$at_srcdir/run_misc.at:12537: \$COMPILE prog.cob"
77829at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12537"
77830( $at_check_trace; $COMPILE prog.cob
77831) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77832at_status=$? at_failed=false
77833$at_check_filter
77834at_fn_diff_devnull "$at_stderr" || at_failed=:
77835at_fn_diff_devnull "$at_stdout" || at_failed=:
77836at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12537"
77837$at_failed && at_fn_log_failure
77838$at_traceon; }
77839
77840{ set +x
77841$as_echo "$at_srcdir/run_misc.at:12538: \$COBCRUN_DIRECT ./prog"
77842at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12538"
77843( $at_check_trace; $COBCRUN_DIRECT ./prog
77844) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77845at_status=$? at_failed=false
77846$at_check_filter
77847at_fn_diff_devnull "$at_stderr" || at_failed=:
77848at_fn_diff_devnull "$at_stdout" || at_failed=:
77849at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12538"
77850$at_failed && at_fn_log_failure
77851$at_traceon; }
77852
77853# note: we mostly are interessted in a good codegen here...
77854
77855
77856cat >prog2.cob <<'_ATEOF'
77857
77858       IDENTIFICATION DIVISION.
77859       PROGRAM-ID.    prog2.
77860
77861       DATA DIVISION.
77862       WORKING-STORAGE SECTION.
77863
77864       01 mytab.
77865          03  VAR                   PIC  9(02) value 1.
77866          03  VAR2                  PIC  9(02) value 3.
77867          03                        OCCURS 2.
77868           05 T15-PRGM              PIC  X(08).
77869           05 T16-PRGM              PIC  X(08).
77870          03                        OCCURS 2.
77871           05 T15-NRGM              PIC  9(04).
77872           05 T16-NRGM              USAGE BINARY-INT.
77873          05 buffer                 PIC X(500).
77874
77875       PROCEDURE DIVISION.
77876      *
77877           IF  T16-PRGM(VAR)
77878             = T15-PRGM(VAR2)
77879              DISPLAY 'WRONG RESULT OCCURS'.
77880
77881            GOBACK.
77882_ATEOF
77883
77884{ set +x
77885$as_echo "$at_srcdir/run_misc.at:12568: \$COBC -x prog2.cob"
77886at_fn_check_prepare_dynamic "$COBC -x prog2.cob" "run_misc.at:12568"
77887( $at_check_trace; $COBC -x prog2.cob
77888) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77889at_status=$? at_failed=false
77890$at_check_filter
77891at_fn_diff_devnull "$at_stderr" || at_failed=:
77892at_fn_diff_devnull "$at_stdout" || at_failed=:
77893at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12568"
77894$at_failed && at_fn_log_failure
77895$at_traceon; }
77896
77897{ set +x
77898$as_echo "$at_srcdir/run_misc.at:12569: \$COBCRUN_DIRECT ./prog2"
77899at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:12569"
77900( $at_check_trace; $COBCRUN_DIRECT ./prog2
77901) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77902at_status=$? at_failed=false
77903$at_check_filter
77904at_fn_diff_devnull "$at_stderr" || at_failed=:
77905at_fn_diff_devnull "$at_stdout" || at_failed=:
77906at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12569"
77907$at_failed && at_fn_log_failure
77908$at_traceon; }
77909
77910{ set +x
77911$as_echo "$at_srcdir/run_misc.at:12570: \$COBC -x --debug -o prog2b prog2.cob"
77912at_fn_check_prepare_dynamic "$COBC -x --debug -o prog2b prog2.cob" "run_misc.at:12570"
77913( $at_check_trace; $COBC -x --debug -o prog2b prog2.cob
77914) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77915at_status=$? at_failed=false
77916$at_check_filter
77917at_fn_diff_devnull "$at_stderr" || at_failed=:
77918at_fn_diff_devnull "$at_stdout" || at_failed=:
77919at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12570"
77920$at_failed && at_fn_log_failure
77921$at_traceon; }
77922
77923{ set +x
77924$as_echo "$at_srcdir/run_misc.at:12571: \$COBCRUN_DIRECT ./prog2b"
77925at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_misc.at:12571"
77926( $at_check_trace; $COBCRUN_DIRECT ./prog2b
77927) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77928at_status=$? at_failed=false
77929$at_check_filter
77930echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:21: error: subscript of 'T15-PRGM' out of bounds: 3
77931note: maximum subscript for 'T15-PRGM': 2
77932" | \
77933  $at_diff - "$at_stderr" || at_failed=:
77934at_fn_diff_devnull "$at_stdout" || at_failed=:
77935at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12571"
77936$at_failed && at_fn_log_failure
77937$at_traceon; }
77938
77939cat >prog3.cob <<'_ATEOF'
77940
77941       IDENTIFICATION DIVISION.
77942       PROGRAM-ID.    prog3.
77943
77944       DATA DIVISION.
77945       WORKING-STORAGE SECTION.
77946
77947       01 mytab.
77948          03  VAR                   PIC  9(02) value 1.
77949          03  VAR2                  PIC  9(02) value 99.
77950          03                        OCCURS 2.
77951           05 T15-PRGM              PIC  X(08).
77952           05 T16-PRGM              PIC  X(08).
77953          03                        OCCURS 2.
77954           05 T15-NRGM              PIC  9(04).
77955           05 T16-NRGM              USAGE BINARY-INT.
77956
77957       PROCEDURE DIVISION.
77958
77959           IF  MYTAB(VAR:VAR2)
77960      *>     = MYTAB(VAR2:VAR)   that _should_ work but on x86_64
77961      *>                         the second line is evaluated first
77962             = MYTAB(VAR:VAR )
77963              DISPLAY 'WRONG RESULT REFMOD'.
77964
77965            GOBACK.
77966_ATEOF
77967
77968{ set +x
77969$as_echo "$at_srcdir/run_misc.at:12602: \$COBC -x prog3.cob"
77970at_fn_check_prepare_dynamic "$COBC -x prog3.cob" "run_misc.at:12602"
77971( $at_check_trace; $COBC -x prog3.cob
77972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77973at_status=$? at_failed=false
77974$at_check_filter
77975at_fn_diff_devnull "$at_stderr" || at_failed=:
77976at_fn_diff_devnull "$at_stdout" || at_failed=:
77977at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12602"
77978$at_failed && at_fn_log_failure
77979$at_traceon; }
77980
77981{ set +x
77982$as_echo "$at_srcdir/run_misc.at:12603: \$COBCRUN_DIRECT ./prog"
77983at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12603"
77984( $at_check_trace; $COBCRUN_DIRECT ./prog
77985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77986at_status=$? at_failed=false
77987$at_check_filter
77988at_fn_diff_devnull "$at_stderr" || at_failed=:
77989at_fn_diff_devnull "$at_stdout" || at_failed=:
77990at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12603"
77991$at_failed && at_fn_log_failure
77992$at_traceon; }
77993
77994{ set +x
77995$as_echo "$at_srcdir/run_misc.at:12604: \$COBC -x --debug -o prog3b prog3.cob"
77996at_fn_check_prepare_dynamic "$COBC -x --debug -o prog3b prog3.cob" "run_misc.at:12604"
77997( $at_check_trace; $COBC -x --debug -o prog3b prog3.cob
77998) >>"$at_stdout" 2>>"$at_stderr" 5>&-
77999at_status=$? at_failed=false
78000$at_check_filter
78001at_fn_diff_devnull "$at_stderr" || at_failed=:
78002at_fn_diff_devnull "$at_stdout" || at_failed=:
78003at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12604"
78004$at_failed && at_fn_log_failure
78005$at_traceon; }
78006
78007{ set +x
78008$as_echo "$at_srcdir/run_misc.at:12605: \$COBCRUN_DIRECT ./prog3b"
78009at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3b" "run_misc.at:12605"
78010( $at_check_trace; $COBCRUN_DIRECT ./prog3b
78011) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78012at_status=$? at_failed=false
78013$at_check_filter
78014echo >>"$at_stderr"; $as_echo "libcob: prog3.cob:20: error: length of 'mytab' out of bounds: 99, maximum: 52
78015" | \
78016  $at_diff - "$at_stderr" || at_failed=:
78017at_fn_diff_devnull "$at_stdout" || at_failed=:
78018at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12605"
78019$at_failed && at_fn_log_failure
78020$at_traceon; }
78021
78022
78023  set +x
78024  $at_times_p && times >"$at_times_file"
78025) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78026read at_status <"$at_status_file"
78027#AT_STOP_721
78028#AT_START_722
78029at_fn_group_banner 722 'run_misc.at:12612' \
78030  "libcob version check" "                           " 4
78031at_xfail=no
78032(
78033  $as_echo "722. $at_setup_line: testing $at_desc ..."
78034  $at_traceon
78035
78036
78037
78038# using a C program here, normally this would be called from old or newer modules
78039cat >prog.c <<'_ATEOF'
78040
78041#include <stdio.h>
78042#include <libcob.h>
78043
78044#define COUNT_OF(x) (sizeof(x)/sizeof(x[0]))
78045
78046struct verify_t {
78047  char *prog, *packver_prog;
78048  int patchlev_prog;
78049} verify[] = {
78050#include "testdata.h"
78051};
78052
78053int
78054main(int argc, char *argv[])
78055{
78056  struct verify_t *p;
78057  for( p=verify; p < verify + COUNT_OF(verify); p++ ) {
78058    cob_check_version(p->prog, p->packver_prog, p->patchlev_prog);
78059  }
78060  return 0;
78061}
78062_ATEOF
78063
78064
78065# good cases
78066cat >testdata.h <<'_ATEOF'
78067
78068#define TST_STRINGIFY(s)			#s
78069#define TST_XSTRINGIFY(s)		TST_STRINGIFY (s)
78070  { "test22", "2.2",    0 },
78071/*  { "TestMatch1",
78072		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
78073		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR) "."
78074		TST_XSTRINGIFY (__LIBCOB_VERSION_PATCHLEVEL),
78075    0}, */
78076  { "TestMatch2",
78077		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
78078		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR) "."
78079      "0",
78080    0},
78081  { "TestMatch3",
78082		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
78083		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR),
78084    0 }
78085_ATEOF
78086
78087
78088{ set +x
78089$as_echo "$at_srcdir/run_misc.at:12661: \$COMPILE prog.c"
78090at_fn_check_prepare_dynamic "$COMPILE prog.c" "run_misc.at:12661"
78091( $at_check_trace; $COMPILE prog.c
78092) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78093at_status=$? at_failed=false
78094$at_check_filter
78095at_fn_diff_devnull "$at_stderr" || at_failed=:
78096at_fn_diff_devnull "$at_stdout" || at_failed=:
78097at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12661"
78098$at_failed && at_fn_log_failure
78099$at_traceon; }
78100
78101{ set +x
78102$as_echo "$at_srcdir/run_misc.at:12662: \$COBCRUN_DIRECT ./prog"
78103at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12662"
78104( $at_check_trace; $COBCRUN_DIRECT ./prog
78105) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78106at_status=$? at_failed=false
78107$at_check_filter
78108at_fn_diff_devnull "$at_stderr" || at_failed=:
78109at_fn_diff_devnull "$at_stdout" || at_failed=:
78110at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12662"
78111$at_failed && at_fn_log_failure
78112$at_traceon; }
78113
78114
78115cat >testdata.h <<'_ATEOF'
78116
78117  { "TooSmall1", "1.1",    0 }
78118_ATEOF
78119
78120{ set +x
78121$as_echo "$at_srcdir/run_misc.at:12667: \$COMPILE -o small1 prog.c"
78122at_fn_check_prepare_dynamic "$COMPILE -o small1 prog.c" "run_misc.at:12667"
78123( $at_check_trace; $COMPILE -o small1 prog.c
78124) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78125at_status=$? at_failed=false
78126$at_check_filter
78127at_fn_diff_devnull "$at_stderr" || at_failed=:
78128at_fn_diff_devnull "$at_stdout" || at_failed=:
78129at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12667"
78130$at_failed && at_fn_log_failure
78131$at_traceon; }
78132
78133{ set +x
78134$as_echo "$at_srcdir/run_misc.at:12668: \$COBCRUN_DIRECT ./small1 2>small1.log"
78135at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./small1 2>small1.log" "run_misc.at:12668"
78136( $at_check_trace; $COBCRUN_DIRECT ./small1 2>small1.log
78137) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78138at_status=$? at_failed=false
78139$at_check_filter
78140at_fn_diff_devnull "$at_stderr" || at_failed=:
78141at_fn_diff_devnull "$at_stdout" || at_failed=:
78142at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12668"
78143$at_failed && at_fn_log_failure
78144$at_traceon; }
78145
78146{ set +x
78147$as_echo "$at_srcdir/run_misc.at:12669: \$GREP -v \"libcob has\" small1.log"
78148at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" small1.log" "run_misc.at:12669"
78149( $at_check_trace; $GREP -v "libcob has" small1.log
78150) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78151at_status=$? at_failed=false
78152$at_check_filter
78153at_fn_diff_devnull "$at_stderr" || at_failed=:
78154echo >>"$at_stdout"; $as_echo "libcob: error: version mismatch
78155note: TooSmall1 has version 1.1.0
78156" | \
78157  $at_diff - "$at_stdout" || at_failed=:
78158at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12669"
78159$at_failed && at_fn_log_failure
78160$at_traceon; }
78161
78162
78163cat >testdata.h <<'_ATEOF'
78164
78165  { "TooSmall2", "2.0",    0 }
78166_ATEOF
78167
78168{ set +x
78169$as_echo "$at_srcdir/run_misc.at:12677: \$COMPILE -o small2 prog.c"
78170at_fn_check_prepare_dynamic "$COMPILE -o small2 prog.c" "run_misc.at:12677"
78171( $at_check_trace; $COMPILE -o small2 prog.c
78172) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78173at_status=$? at_failed=false
78174$at_check_filter
78175at_fn_diff_devnull "$at_stderr" || at_failed=:
78176at_fn_diff_devnull "$at_stdout" || at_failed=:
78177at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12677"
78178$at_failed && at_fn_log_failure
78179$at_traceon; }
78180
78181{ set +x
78182$as_echo "$at_srcdir/run_misc.at:12678: \$COBCRUN_DIRECT ./small2 2>small2.log"
78183at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./small2 2>small2.log" "run_misc.at:12678"
78184( $at_check_trace; $COBCRUN_DIRECT ./small2 2>small2.log
78185) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78186at_status=$? at_failed=false
78187$at_check_filter
78188at_fn_diff_devnull "$at_stderr" || at_failed=:
78189at_fn_diff_devnull "$at_stdout" || at_failed=:
78190at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12678"
78191$at_failed && at_fn_log_failure
78192$at_traceon; }
78193
78194{ set +x
78195$as_echo "$at_srcdir/run_misc.at:12679: \$GREP -v \"libcob has\" small2.log"
78196at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" small2.log" "run_misc.at:12679"
78197( $at_check_trace; $GREP -v "libcob has" small2.log
78198) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78199at_status=$? at_failed=false
78200$at_check_filter
78201at_fn_diff_devnull "$at_stderr" || at_failed=:
78202echo >>"$at_stdout"; $as_echo "libcob: error: version mismatch
78203note: TooSmall2 has version 2.0.0
78204" | \
78205  $at_diff - "$at_stdout" || at_failed=:
78206at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12679"
78207$at_failed && at_fn_log_failure
78208$at_traceon; }
78209
78210
78211cat >testdata.h <<'_ATEOF'
78212
78213  { "TooHigh1", "3.2",    0 },
78214_ATEOF
78215
78216{ set +x
78217$as_echo "$at_srcdir/run_misc.at:12687: \$COMPILE -o high1 prog.c"
78218at_fn_check_prepare_dynamic "$COMPILE -o high1 prog.c" "run_misc.at:12687"
78219( $at_check_trace; $COMPILE -o high1 prog.c
78220) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78221at_status=$? at_failed=false
78222$at_check_filter
78223at_fn_diff_devnull "$at_stderr" || at_failed=:
78224at_fn_diff_devnull "$at_stdout" || at_failed=:
78225at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12687"
78226$at_failed && at_fn_log_failure
78227$at_traceon; }
78228
78229{ set +x
78230$as_echo "$at_srcdir/run_misc.at:12688: \$COBCRUN_DIRECT ./high1 2>high1.log"
78231at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high1 2>high1.log" "run_misc.at:12688"
78232( $at_check_trace; $COBCRUN_DIRECT ./high1 2>high1.log
78233) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78234at_status=$? at_failed=false
78235$at_check_filter
78236at_fn_diff_devnull "$at_stderr" || at_failed=:
78237at_fn_diff_devnull "$at_stdout" || at_failed=:
78238at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12688"
78239$at_failed && at_fn_log_failure
78240$at_traceon; }
78241
78242{ set +x
78243$as_echo "$at_srcdir/run_misc.at:12689: \$GREP -v \"libcob has\" high1.log"
78244at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high1.log" "run_misc.at:12689"
78245( $at_check_trace; $GREP -v "libcob has" high1.log
78246) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78247at_status=$? at_failed=false
78248$at_check_filter
78249at_fn_diff_devnull "$at_stderr" || at_failed=:
78250echo >>"$at_stdout"; $as_echo "libcob: error: version mismatch
78251note: TooHigh1 has version 3.2.0
78252" | \
78253  $at_diff - "$at_stdout" || at_failed=:
78254at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12689"
78255$at_failed && at_fn_log_failure
78256$at_traceon; }
78257
78258
78259cat >testdata.h <<'_ATEOF'
78260
78261  { "TooHigh2", "4.0",  0 }
78262_ATEOF
78263
78264{ set +x
78265$as_echo "$at_srcdir/run_misc.at:12697: \$COMPILE -o high2 prog.c"
78266at_fn_check_prepare_dynamic "$COMPILE -o high2 prog.c" "run_misc.at:12697"
78267( $at_check_trace; $COMPILE -o high2 prog.c
78268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78269at_status=$? at_failed=false
78270$at_check_filter
78271at_fn_diff_devnull "$at_stderr" || at_failed=:
78272at_fn_diff_devnull "$at_stdout" || at_failed=:
78273at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12697"
78274$at_failed && at_fn_log_failure
78275$at_traceon; }
78276
78277{ set +x
78278$as_echo "$at_srcdir/run_misc.at:12698: \$COBCRUN_DIRECT ./high2 2>high2.log"
78279at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high2 2>high2.log" "run_misc.at:12698"
78280( $at_check_trace; $COBCRUN_DIRECT ./high2 2>high2.log
78281) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78282at_status=$? at_failed=false
78283$at_check_filter
78284at_fn_diff_devnull "$at_stderr" || at_failed=:
78285at_fn_diff_devnull "$at_stdout" || at_failed=:
78286at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12698"
78287$at_failed && at_fn_log_failure
78288$at_traceon; }
78289
78290{ set +x
78291$as_echo "$at_srcdir/run_misc.at:12699: \$GREP -v \"libcob has\" high2.log"
78292at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high2.log" "run_misc.at:12699"
78293( $at_check_trace; $GREP -v "libcob has" high2.log
78294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78295at_status=$? at_failed=false
78296$at_check_filter
78297at_fn_diff_devnull "$at_stderr" || at_failed=:
78298echo >>"$at_stdout"; $as_echo "libcob: error: version mismatch
78299note: TooHigh2 has version 4.0.0
78300" | \
78301  $at_diff - "$at_stdout" || at_failed=:
78302at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12699"
78303$at_failed && at_fn_log_failure
78304$at_traceon; }
78305
78306
78307cat >testdata.h <<'_ATEOF'
78308
78309  { "TooHigh3", "4.0.1",  2 }
78310_ATEOF
78311
78312{ set +x
78313$as_echo "$at_srcdir/run_misc.at:12707: \$COMPILE -o high3 prog.c"
78314at_fn_check_prepare_dynamic "$COMPILE -o high3 prog.c" "run_misc.at:12707"
78315( $at_check_trace; $COMPILE -o high3 prog.c
78316) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78317at_status=$? at_failed=false
78318$at_check_filter
78319at_fn_diff_devnull "$at_stderr" || at_failed=:
78320at_fn_diff_devnull "$at_stdout" || at_failed=:
78321at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12707"
78322$at_failed && at_fn_log_failure
78323$at_traceon; }
78324
78325{ set +x
78326$as_echo "$at_srcdir/run_misc.at:12708: \$COBCRUN_DIRECT ./high3 2>high3.log"
78327at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high3 2>high3.log" "run_misc.at:12708"
78328( $at_check_trace; $COBCRUN_DIRECT ./high3 2>high3.log
78329) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78330at_status=$? at_failed=false
78331$at_check_filter
78332at_fn_diff_devnull "$at_stderr" || at_failed=:
78333at_fn_diff_devnull "$at_stdout" || at_failed=:
78334at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12708"
78335$at_failed && at_fn_log_failure
78336$at_traceon; }
78337
78338{ set +x
78339$as_echo "$at_srcdir/run_misc.at:12709: \$GREP -v \"libcob has\" high3.log"
78340at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high3.log" "run_misc.at:12709"
78341( $at_check_trace; $GREP -v "libcob has" high3.log
78342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78343at_status=$? at_failed=false
78344$at_check_filter
78345at_fn_diff_devnull "$at_stderr" || at_failed=:
78346echo >>"$at_stdout"; $as_echo "libcob: error: version mismatch
78347note: TooHigh3 has version 4.0.1.2
78348" | \
78349  $at_diff - "$at_stdout" || at_failed=:
78350at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12709"
78351$at_failed && at_fn_log_failure
78352$at_traceon; }
78353
78354
78355  set +x
78356  $at_times_p && times >"$at_times_file"
78357) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78358read at_status <"$at_status_file"
78359#AT_STOP_722
78360#AT_START_723
78361at_fn_group_banner 723 'run_file.at:23' \
78362  "OPEN EXTEND and CLOSE, SEQUENTIAL" "              " 4
78363at_xfail=no
78364(
78365  $as_echo "723. $at_setup_line: testing $at_desc ..."
78366  $at_traceon
78367
78368
78369
78370cat >prog.cob <<'_ATEOF'
78371
78372       IDENTIFICATION DIVISION.
78373       PROGRAM-ID. prog.
78374       ENVIRONMENT DIVISION.
78375       CONFIGURATION SECTION.
78376       INPUT-OUTPUT SECTION.
78377       FILE-CONTROL.
78378           SELECT  OPTIONAL      FILE-OPT
78379                   ASSIGN        TO "testfile"
78380                   ORGANIZATION  IS SEQUENTIAL
78381                   FILE STATUS   IS WSFS.
78382           SELECT  FILE0         ASSIGN TO "testfile"
78383                   ORGANIZATION  IS SEQUENTIAL
78384                   FILE STATUS   IS WSFS.
78385       DATA DIVISION.
78386       FILE SECTION.
78387       FD  FILE0.
78388       01  F0REC             PIC X(80).
78389       FD  FILE-OPT.
78390       01  FOREC             PIC X(80).
78391       WORKING-STORAGE SECTION.
78392       01  WSFS              PIC X(2).
78393       PROCEDURE DIVISION.
78394      *
78395           OPEN EXTEND FILE-OPT
78396           IF WSFS NOT = "05"
78397              DISPLAY "STATUS EXTEND, missing optional file:" WSFS.
78398           MOVE ALL "A" TO FOREC
78399           WRITE FOREC
78400           IF WSFS NOT = "00"
78401              DISPLAY "STATUS WRITE A:" WSFS.
78402           CLOSE FILE-OPT
78403           IF WSFS NOT = "00"
78404              DISPLAY "STATUS CLOSE:" WSFS.
78405           OPEN EXTEND FILE0
78406           IF WSFS NOT = "00"
78407              DISPLAY "STATUS EXTEND, empty file:" WSFS.
78408           MOVE ALL "B" TO F0REC
78409           WRITE F0REC
78410           IF WSFS NOT = "00"
78411              DISPLAY "STATUS WRITE B:" WSFS.
78412           CLOSE FILE0
78413      *
78414           OPEN INPUT FILE-OPT
78415           IF WSFS NOT = "00"
78416              DISPLAY "STATUS INPUT:" WSFS.
78417           READ FILE-OPT NEXT
78418           IF WSFS NOT = "00"
78419              DISPLAY "STATUS READ A:" WSFS.
78420           READ FILE-OPT NEXT
78421           IF WSFS NOT = "00"
78422              DISPLAY "STATUS READ B:" WSFS.
78423           CLOSE FILE-OPT
78424      *
78425           STOP RUN.
78426_ATEOF
78427
78428
78429{ set +x
78430$as_echo "$at_srcdir/run_file.at:83: \$COMPILE prog.cob"
78431at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:83"
78432( $at_check_trace; $COMPILE prog.cob
78433) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78434at_status=$? at_failed=false
78435$at_check_filter
78436at_fn_diff_devnull "$at_stderr" || at_failed=:
78437at_fn_diff_devnull "$at_stdout" || at_failed=:
78438at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:83"
78439$at_failed && at_fn_log_failure
78440$at_traceon; }
78441
78442{ set +x
78443$as_echo "$at_srcdir/run_file.at:84: \$COBCRUN_DIRECT ./prog"
78444at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:84"
78445( $at_check_trace; $COBCRUN_DIRECT ./prog
78446) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78447at_status=$? at_failed=false
78448$at_check_filter
78449at_fn_diff_devnull "$at_stderr" || at_failed=:
78450at_fn_diff_devnull "$at_stdout" || at_failed=:
78451at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:84"
78452$at_failed && at_fn_log_failure
78453$at_traceon; }
78454
78455
78456  set +x
78457  $at_times_p && times >"$at_times_file"
78458) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78459read at_status <"$at_status_file"
78460#AT_STOP_723
78461#AT_START_724
78462at_fn_group_banner 724 'run_file.at:89' \
78463  "DELETE FILE, SEQUENTIAL" "                        " 4
78464at_xfail=no
78465(
78466  $as_echo "724. $at_setup_line: testing $at_desc ..."
78467  $at_traceon
78468
78469
78470
78471cat >prog.cob <<'_ATEOF'
78472
78473       IDENTIFICATION DIVISION.
78474       PROGRAM-ID. prog.
78475       ENVIRONMENT DIVISION.
78476       CONFIGURATION SECTION.
78477       INPUT-OUTPUT SECTION.
78478       FILE-CONTROL.
78479           SELECT  OPTIONAL      FILE-OPT
78480                   ASSIGN        TO "testfile"
78481                   ORGANIZATION  IS SEQUENTIAL
78482                   FILE STATUS   IS WSFS.
78483       DATA DIVISION.
78484       FILE SECTION.
78485       FD  FILE-OPT.
78486       01  FOREC             PIC X(80).
78487       WORKING-STORAGE SECTION.
78488       01  WSFS              PIC X(2).
78489       PROCEDURE DIVISION.
78490      *
78491      *>   DELETE FILE FILE-OPT
78492      *>    ON EXCEPTION
78493      *>     DISPLAY "STATUS DELETE FILE (missing) - EXCEPTION:" WSFS
78494      *>     END-DISPLAY
78495      *>    NOT ON EXCEPTION
78496      *>      IF WSFS NOT = "05"
78497      *>         DISPLAY "STATUS DELETE FILE (missing):" WSFS
78498      *>      END-IF
78499      *>   END-DELETE
78500           OPEN I-O FILE-OPT
78501           IF WSFS NOT = "05"
78502              DISPLAY "STATUS I-O, missing optional file:" WSFS.
78503           CLOSE FILE-OPT
78504           IF WSFS NOT = "00"
78505              DISPLAY "STATUS CLOSE:" WSFS.
78506           OPEN I-O FILE-OPT
78507           IF WSFS NOT = "00"
78508              DISPLAY "STATUS I-O, empty file:" WSFS.
78509           DELETE FILE FILE-OPT
78510      *>     ON EXCEPTION
78511              IF WSFS NOT = "41"
78512                 DISPLAY "STATUS DELETE FILE (OPENED):" WSFS
78513              END-IF
78514      *>    NOT ON EXCEPTION
78515      *>     DISPLAY "STATUS DELETE FILE (OPENED) - NO EXCEPTION:" WSFS
78516      *>   END-DELETE
78517           CLOSE FILE-OPT
78518           IF WSFS NOT = "00"
78519              DISPLAY "STATUS CLOSE #2:" WSFS.
78520           DELETE FILE FILE-OPT
78521      *>     ON EXCEPTION
78522      *>      DISPLAY "STATUS DELETE FILE (closed) - EXCEPTION:" WSFS
78523      *>      END-DISPLAY
78524      *>     NOT ON EXCEPTION
78525              IF WSFS NOT = "00"
78526                 DISPLAY "STATUS DELETE FILE (closed):" WSFS
78527              END-IF
78528      *>   END-DELETE
78529      *
78530           STOP RUN.
78531_ATEOF
78532
78533
78534{ set +x
78535$as_echo "$at_srcdir/run_file.at:153: \$COMPILE prog.cob"
78536at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:153"
78537( $at_check_trace; $COMPILE prog.cob
78538) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78539at_status=$? at_failed=false
78540$at_check_filter
78541at_fn_diff_devnull "$at_stderr" || at_failed=:
78542at_fn_diff_devnull "$at_stdout" || at_failed=:
78543at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:153"
78544$at_failed && at_fn_log_failure
78545$at_traceon; }
78546
78547{ set +x
78548$as_echo "$at_srcdir/run_file.at:154: \$COBCRUN_DIRECT ./prog"
78549at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:154"
78550( $at_check_trace; $COBCRUN_DIRECT ./prog
78551) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78552at_status=$? at_failed=false
78553$at_check_filter
78554at_fn_diff_devnull "$at_stderr" || at_failed=:
78555at_fn_diff_devnull "$at_stdout" || at_failed=:
78556at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:154"
78557$at_failed && at_fn_log_failure
78558$at_traceon; }
78559
78560
78561  set +x
78562  $at_times_p && times >"$at_times_file"
78563) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78564read at_status <"$at_status_file"
78565#AT_STOP_724
78566#AT_START_725
78567at_fn_group_banner 725 'run_file.at:159' \
78568  "OUTPUT on SEQUENTIAL file to missing directory" " " 4
78569at_xfail=no
78570(
78571  $as_echo "725. $at_setup_line: testing $at_desc ..."
78572  $at_traceon
78573
78574
78575
78576cat >prog.cob <<'_ATEOF'
78577
78578       IDENTIFICATION DIVISION.
78579       PROGRAM-ID. prog.
78580       ENVIRONMENT DIVISION.
78581       CONFIGURATION SECTION.
78582       INPUT-OUTPUT SECTION.
78583       FILE-CONTROL.
78584           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
78585                   ORGANIZATION  IS SEQUENTIAL
78586                   FILE STATUS   IS WSFS.
78587       DATA DIVISION.
78588       FILE SECTION.
78589       FD  FILE0.
78590       01  F0REC             PIC X(80).
78591       WORKING-STORAGE SECTION.
78592       01  WSFS              PIC X(2).
78593       PROCEDURE DIVISION.
78594      *
78595           OPEN OUTPUT FILE0
78596           IF WSFS NOT = "30"
78597              DISPLAY "STATUS OPENO " WSFS.
78598      *
78599           STOP RUN.
78600_ATEOF
78601
78602
78603{ set +x
78604$as_echo "$at_srcdir/run_file.at:187: \$COMPILE prog.cob"
78605at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:187"
78606( $at_check_trace; $COMPILE prog.cob
78607) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78608at_status=$? at_failed=false
78609$at_check_filter
78610at_fn_diff_devnull "$at_stderr" || at_failed=:
78611at_fn_diff_devnull "$at_stdout" || at_failed=:
78612at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:187"
78613$at_failed && at_fn_log_failure
78614$at_traceon; }
78615
78616{ set +x
78617$as_echo "$at_srcdir/run_file.at:188: \$COBCRUN_DIRECT ./prog"
78618at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:188"
78619( $at_check_trace; $COBCRUN_DIRECT ./prog
78620) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78621at_status=$? at_failed=false
78622$at_check_filter
78623at_fn_diff_devnull "$at_stderr" || at_failed=:
78624at_fn_diff_devnull "$at_stdout" || at_failed=:
78625at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:188"
78626$at_failed && at_fn_log_failure
78627$at_traceon; }
78628
78629echo "Test" > ./nosubhere
78630{ set +x
78631$as_echo "$at_srcdir/run_file.at:190: \$COBCRUN_DIRECT ./prog"
78632at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:190"
78633( $at_check_trace; $COBCRUN_DIRECT ./prog
78634) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78635at_status=$? at_failed=false
78636$at_check_filter
78637at_fn_diff_devnull "$at_stderr" || at_failed=:
78638at_fn_diff_devnull "$at_stdout" || at_failed=:
78639at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:190"
78640$at_failed && at_fn_log_failure
78641$at_traceon; }
78642
78643
78644  set +x
78645  $at_times_p && times >"$at_times_file"
78646) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78647read at_status <"$at_status_file"
78648#AT_STOP_725
78649#AT_START_726
78650at_fn_group_banner 726 'run_file.at:195' \
78651  "OPEN EXTEND and CLOSE, INDEXED" "                 " 4
78652at_xfail=no
78653(
78654  $as_echo "726. $at_setup_line: testing $at_desc ..."
78655  $at_traceon
78656
78657
78658
78659$as_echo "run_file.at:198" >"$at_check_line_file"
78660(test "$COB_HAS_ISAM" = "no") \
78661  && at_fn_check_skip 77 "$at_srcdir/run_file.at:198"
78662
78663cat >prog.cob <<'_ATEOF'
78664
78665       IDENTIFICATION DIVISION.
78666       PROGRAM-ID. prog.
78667       ENVIRONMENT DIVISION.
78668       CONFIGURATION SECTION.
78669       INPUT-OUTPUT SECTION.
78670       FILE-CONTROL.
78671           SELECT  OPTIONAL      FILE-OPT
78672                   ASSIGN        TO "testfile"
78673                   ORGANIZATION  IS INDEXED
78674                   RECORD KEY    IS FOREC
78675                   FILE STATUS   IS WSFS.
78676           SELECT  FILE0         ASSIGN TO "testfile"
78677                   ORGANIZATION  IS INDEXED
78678                   RECORD KEY    IS F0REC
78679                   FILE STATUS   IS WSFS.
78680       DATA DIVISION.
78681       FILE SECTION.
78682       FD  FILE0.
78683       01  F0REC             PIC X(80).
78684       FD  FILE-OPT.
78685       01  FOREC             PIC X(80).
78686       WORKING-STORAGE SECTION.
78687       01  WSFS              PIC X(2).
78688       PROCEDURE DIVISION.
78689      *
78690           OPEN EXTEND FILE-OPT
78691           IF WSFS NOT = "05"
78692              DISPLAY "STATUS EXTEND, missing optional file:" WSFS.
78693           MOVE ALL "A" TO FOREC
78694           WRITE FOREC
78695           IF WSFS NOT = "00"
78696              DISPLAY "STATUS WRITE A:" WSFS.
78697           CLOSE FILE-OPT
78698           IF WSFS NOT = "00"
78699              DISPLAY "STATUS CLOSE:" WSFS.
78700           OPEN EXTEND FILE0
78701           IF WSFS NOT = "00"
78702              DISPLAY "STATUS EXTEND, empty file:" WSFS.
78703           MOVE ALL "B" TO F0REC
78704           WRITE F0REC
78705           IF WSFS NOT = "00"
78706              DISPLAY "STATUS WRITE B:" WSFS.
78707           CLOSE FILE0
78708      *
78709           OPEN INPUT FILE-OPT
78710           IF WSFS NOT = "00"
78711              DISPLAY "STATUS INPUT:" WSFS.
78712           MOVE ALL "A" TO FOREC
78713           READ FILE-OPT
78714           IF WSFS NOT = "00"
78715              DISPLAY "STATUS READ A:" WSFS.
78716           MOVE ALL "B" TO FOREC
78717           READ FILE-OPT
78718           IF WSFS NOT = "00"
78719              DISPLAY "STATUS READ B:" WSFS.
78720           CLOSE FILE-OPT
78721      *
78722           STOP RUN.
78723_ATEOF
78724
78725
78726{ set +x
78727$as_echo "$at_srcdir/run_file.at:261: \$COMPILE prog.cob"
78728at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:261"
78729( $at_check_trace; $COMPILE prog.cob
78730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78731at_status=$? at_failed=false
78732$at_check_filter
78733at_fn_diff_devnull "$at_stderr" || at_failed=:
78734at_fn_diff_devnull "$at_stdout" || at_failed=:
78735at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:261"
78736$at_failed && at_fn_log_failure
78737$at_traceon; }
78738
78739{ set +x
78740$as_echo "$at_srcdir/run_file.at:262: \$COBCRUN_DIRECT ./prog"
78741at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:262"
78742( $at_check_trace; $COBCRUN_DIRECT ./prog
78743) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78744at_status=$? at_failed=false
78745$at_check_filter
78746at_fn_diff_devnull "$at_stderr" || at_failed=:
78747at_fn_diff_devnull "$at_stdout" || at_failed=:
78748at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:262"
78749$at_failed && at_fn_log_failure
78750$at_traceon; }
78751
78752
78753  set +x
78754  $at_times_p && times >"$at_times_file"
78755) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78756read at_status <"$at_status_file"
78757#AT_STOP_726
78758#AT_START_727
78759at_fn_group_banner 727 'run_file.at:267' \
78760  "DELETE FILE, INDEXED" "                           " 4
78761at_xfail=no
78762(
78763  $as_echo "727. $at_setup_line: testing $at_desc ..."
78764  $at_traceon
78765
78766
78767
78768$as_echo "run_file.at:270" >"$at_check_line_file"
78769(test "$COB_HAS_ISAM" = "no") \
78770  && at_fn_check_skip 77 "$at_srcdir/run_file.at:270"
78771
78772cat >prog.cob <<'_ATEOF'
78773
78774       IDENTIFICATION DIVISION.
78775       PROGRAM-ID. prog.
78776       ENVIRONMENT DIVISION.
78777       CONFIGURATION SECTION.
78778       INPUT-OUTPUT SECTION.
78779       FILE-CONTROL.
78780           SELECT  OPTIONAL      FILE-OPT
78781                   ASSIGN        TO "testfile"
78782                   ORGANIZATION  IS INDEXED
78783                   RECORD KEY    IS FOREC
78784                   FILE STATUS   IS WSFS.
78785       DATA DIVISION.
78786       FILE SECTION.
78787       FD  FILE-OPT.
78788       01  FOREC             PIC X(80).
78789       WORKING-STORAGE SECTION.
78790       01  WSFS              PIC X(2).
78791       PROCEDURE DIVISION.
78792      *
78793      *>   DELETE FILE FILE-OPT
78794      *>    ON EXCEPTION
78795      *>     DISPLAY "STATUS DELETE FILE (missing) - EXCEPTION: " WSFS
78796      *>     END-DISPLAY
78797      *>    NOT ON EXCEPTION
78798      *>      IF WSFS NOT = "05"
78799      *>         DISPLAY "STATUS DELETE FILE (missing): " WSFS
78800      *>      END-IF
78801      *>   END-DELETE
78802           OPEN I-O FILE-OPT
78803           IF WSFS NOT = "05"
78804              DISPLAY "STATUS I-O, missing optional file: " WSFS.
78805           CLOSE FILE-OPT
78806           IF WSFS NOT = "00"
78807              DISPLAY "STATUS CLOSE: " WSFS.
78808           OPEN I-O FILE-OPT
78809           IF WSFS NOT = "00"
78810              DISPLAY "STATUS I-O, empty file: " WSFS.
78811           DELETE FILE FILE-OPT
78812      *>     ON EXCEPTION
78813              IF WSFS NOT = "41"
78814                 DISPLAY "STATUS DELETE FILE (opened): " WSFS
78815              END-IF
78816      *>    NOT ON EXCEPTION
78817      *>     DISPLAY "STATUS DELETE FILE (opened) - NO EXCEPTION: " WSFS
78818      *>   END-DELETE
78819           CLOSE FILE-OPT
78820           IF WSFS NOT = "00"
78821              DISPLAY "STATUS CLOSE #2: " WSFS.
78822           DELETE FILE FILE-OPT
78823      *>     ON EXCEPTION
78824      *>      DISPLAY "STATUS DELETE FILE (closed) - EXCEPTION: " WSFS
78825      *>      END-DISPLAY
78826      *>     NOT ON EXCEPTION
78827              IF WSFS NOT = "00"
78828                 DISPLAY "STATUS DELETE FILE (closed): " WSFS
78829              END-IF
78830      *>   END-DELETE
78831      *
78832           STOP RUN.
78833_ATEOF
78834
78835
78836{ set +x
78837$as_echo "$at_srcdir/run_file.at:334: \$COMPILE prog.cob"
78838at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:334"
78839( $at_check_trace; $COMPILE prog.cob
78840) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78841at_status=$? at_failed=false
78842$at_check_filter
78843at_fn_diff_devnull "$at_stderr" || at_failed=:
78844at_fn_diff_devnull "$at_stdout" || at_failed=:
78845at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:334"
78846$at_failed && at_fn_log_failure
78847$at_traceon; }
78848
78849{ set +x
78850$as_echo "$at_srcdir/run_file.at:335: \$COBCRUN_DIRECT ./prog"
78851at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:335"
78852( $at_check_trace; $COBCRUN_DIRECT ./prog
78853) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78854at_status=$? at_failed=false
78855$at_check_filter
78856at_fn_diff_devnull "$at_stderr" || at_failed=:
78857at_fn_diff_devnull "$at_stdout" || at_failed=:
78858at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:335"
78859$at_failed && at_fn_log_failure
78860$at_traceon; }
78861
78862
78863  set +x
78864  $at_times_p && times >"$at_times_file"
78865) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78866read at_status <"$at_status_file"
78867#AT_STOP_727
78868#AT_START_728
78869at_fn_group_banner 728 'run_file.at:340' \
78870  "OUTPUT on INDEXED file to missing directory" "    " 4
78871at_xfail=no
78872(
78873  $as_echo "728. $at_setup_line: testing $at_desc ..."
78874  $at_traceon
78875
78876
78877
78878$as_echo "run_file.at:343" >"$at_check_line_file"
78879(test "$COB_HAS_ISAM" = "no") \
78880  && at_fn_check_skip 77 "$at_srcdir/run_file.at:343"
78881
78882cat >prog.cob <<'_ATEOF'
78883
78884       IDENTIFICATION DIVISION.
78885       PROGRAM-ID. prog.
78886       ENVIRONMENT DIVISION.
78887       CONFIGURATION SECTION.
78888       INPUT-OUTPUT SECTION.
78889       FILE-CONTROL.
78890           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
78891                   ORGANIZATION  IS INDEXED
78892                   RECORD KEY    IS F0REC
78893                   FILE STATUS   IS WSFS.
78894       DATA DIVISION.
78895       FILE SECTION.
78896       FD  FILE0.
78897       01  F0REC             PIC X(80).
78898       WORKING-STORAGE SECTION.
78899       01  WSFS              PIC X(2).
78900       PROCEDURE DIVISION.
78901      *
78902           OPEN OUTPUT FILE0
78903           IF WSFS NOT = "30"
78904              DISPLAY "STATUS OPENO " WSFS.
78905      *
78906           STOP RUN.
78907_ATEOF
78908
78909
78910{ set +x
78911$as_echo "$at_srcdir/run_file.at:371: \$COMPILE prog.cob"
78912at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:371"
78913( $at_check_trace; $COMPILE prog.cob
78914) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78915at_status=$? at_failed=false
78916$at_check_filter
78917at_fn_diff_devnull "$at_stderr" || at_failed=:
78918at_fn_diff_devnull "$at_stdout" || at_failed=:
78919at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:371"
78920$at_failed && at_fn_log_failure
78921$at_traceon; }
78922
78923{ set +x
78924$as_echo "$at_srcdir/run_file.at:372: \$COBCRUN_DIRECT ./prog"
78925at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:372"
78926( $at_check_trace; $COBCRUN_DIRECT ./prog
78927) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78928at_status=$? at_failed=false
78929$at_check_filter
78930at_fn_diff_devnull "$at_stderr" || at_failed=:
78931at_fn_diff_devnull "$at_stdout" || at_failed=:
78932at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:372"
78933$at_failed && at_fn_log_failure
78934$at_traceon; }
78935
78936echo "Test" > ./nosubhere
78937{ set +x
78938$as_echo "$at_srcdir/run_file.at:374: \$COBCRUN_DIRECT ./prog"
78939at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:374"
78940( $at_check_trace; $COBCRUN_DIRECT ./prog
78941) >>"$at_stdout" 2>>"$at_stderr" 5>&-
78942at_status=$? at_failed=false
78943$at_check_filter
78944at_fn_diff_devnull "$at_stderr" || at_failed=:
78945at_fn_diff_devnull "$at_stdout" || at_failed=:
78946at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:374"
78947$at_failed && at_fn_log_failure
78948$at_traceon; }
78949
78950
78951  set +x
78952  $at_times_p && times >"$at_times_file"
78953) 5>&1 2>&1 7>&- | eval $at_tee_pipe
78954read at_status <"$at_status_file"
78955#AT_STOP_728
78956#AT_START_729
78957at_fn_group_banner 729 'run_file.at:379' \
78958  "READ INTO data item AT-END sequence" "            " 4
78959at_xfail=no
78960(
78961  $as_echo "729. $at_setup_line: testing $at_desc ..."
78962  $at_traceon
78963
78964
78965
78966cat >prog.cob <<'_ATEOF'
78967
78968       IDENTIFICATION   DIVISION.
78969       PROGRAM-ID.      prog.
78970       ENVIRONMENT      DIVISION.
78971       INPUT-OUTPUT     SECTION.
78972       FILE-CONTROL.
78973       SELECT TEST-FILE ASSIGN "./TEST-FILE".
78974       DATA             DIVISION.
78975       FILE             SECTION.
78976       FD  TEST-FILE.
78977       01  TEST-REC     PIC X(10).
78978       WORKING-STORAGE  SECTION.
78979       01  X            PIC X(10).
78980       PROCEDURE        DIVISION.
78981           OPEN  OUTPUT TEST-FILE.
78982           CLOSE TEST-FILE.
78983           OPEN  INPUT  TEST-FILE.
78984           READ  TEST-FILE INTO X
78985               AT END MOVE ALL ZERO TO X
78986           END-READ.
78987           CLOSE TEST-FILE.
78988           IF X NOT = "0000000000"
78989              DISPLAY "Expected zeros - Got " X
78990              END-DISPLAY
78991           END-IF.
78992           STOP RUN.
78993_ATEOF
78994
78995
78996{ set +x
78997$as_echo "$at_srcdir/run_file.at:410: \$COMPILE prog.cob"
78998at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:410"
78999( $at_check_trace; $COMPILE prog.cob
79000) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79001at_status=$? at_failed=false
79002$at_check_filter
79003at_fn_diff_devnull "$at_stderr" || at_failed=:
79004at_fn_diff_devnull "$at_stdout" || at_failed=:
79005at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:410"
79006$at_failed && at_fn_log_failure
79007$at_traceon; }
79008
79009{ set +x
79010$as_echo "$at_srcdir/run_file.at:411: \$COBCRUN_DIRECT ./prog"
79011at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:411"
79012( $at_check_trace; $COBCRUN_DIRECT ./prog
79013) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79014at_status=$? at_failed=false
79015$at_check_filter
79016at_fn_diff_devnull "$at_stderr" || at_failed=:
79017at_fn_diff_devnull "$at_stdout" || at_failed=:
79018at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:411"
79019$at_failed && at_fn_log_failure
79020$at_traceon; }
79021
79022
79023  set +x
79024  $at_times_p && times >"$at_times_file"
79025) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79026read at_status <"$at_status_file"
79027#AT_STOP_729
79028#AT_START_730
79029at_fn_group_banner 730 'run_file.at:416' \
79030  "First READ on empty SEQUENTIAL INDEXED file" "    " 4
79031at_xfail=no
79032(
79033  $as_echo "730. $at_setup_line: testing $at_desc ..."
79034  $at_traceon
79035
79036
79037
79038$as_echo "run_file.at:419" >"$at_check_line_file"
79039(test "$COB_HAS_ISAM" = "no") \
79040  && at_fn_check_skip 77 "$at_srcdir/run_file.at:419"
79041
79042cat >prog.cob <<'_ATEOF'
79043
79044       IDENTIFICATION   DIVISION.
79045       PROGRAM-ID.      prog.
79046       ENVIRONMENT      DIVISION.
79047       INPUT-OUTPUT     SECTION.
79048       FILE-CONTROL.
79049       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
79050                        ORGANIZATION IS  INDEXED
79051                        ACCESS MODE  IS  SEQUENTIAL
79052                        RECORD KEY   IS  TEST-KEY.
79053       DATA             DIVISION.
79054       FILE             SECTION.
79055       FD TEST-FILE.
79056       01 TEST-KEY      PIC X(10).
79057       PROCEDURE        DIVISION.
79058           OPEN  OUTPUT TEST-FILE.
79059           CLOSE TEST-FILE.
79060           OPEN  INPUT  TEST-FILE.
79061           READ  TEST-FILE
79062                 AT END
79063                   CONTINUE
79064                 NOT AT END
79065                   DISPLAY "NOT OK"
79066                   END-DISPLAY
79067           END-READ.
79068           CLOSE TEST-FILE.
79069           STOP RUN.
79070_ATEOF
79071
79072
79073{ set +x
79074$as_echo "$at_srcdir/run_file.at:450: \$COMPILE prog.cob"
79075at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:450"
79076( $at_check_trace; $COMPILE prog.cob
79077) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79078at_status=$? at_failed=false
79079$at_check_filter
79080at_fn_diff_devnull "$at_stderr" || at_failed=:
79081at_fn_diff_devnull "$at_stdout" || at_failed=:
79082at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:450"
79083$at_failed && at_fn_log_failure
79084$at_traceon; }
79085
79086{ set +x
79087$as_echo "$at_srcdir/run_file.at:451: \$COBCRUN_DIRECT ./prog"
79088at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:451"
79089( $at_check_trace; $COBCRUN_DIRECT ./prog
79090) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79091at_status=$? at_failed=false
79092$at_check_filter
79093at_fn_diff_devnull "$at_stderr" || at_failed=:
79094at_fn_diff_devnull "$at_stdout" || at_failed=:
79095at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:451"
79096$at_failed && at_fn_log_failure
79097$at_traceon; }
79098
79099
79100  set +x
79101  $at_times_p && times >"$at_times_file"
79102) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79103read at_status <"$at_status_file"
79104#AT_STOP_730
79105#AT_START_731
79106at_fn_group_banner 731 'run_file.at:456' \
79107  "READ NEXT without previous START" "               " 4
79108at_xfail=no
79109(
79110  $as_echo "731. $at_setup_line: testing $at_desc ..."
79111  $at_traceon
79112
79113
79114
79115$as_echo "run_file.at:459" >"$at_check_line_file"
79116(test "$COB_HAS_ISAM" = "no") \
79117  && at_fn_check_skip 77 "$at_srcdir/run_file.at:459"
79118
79119cat >prog.cob <<'_ATEOF'
79120
79121       IDENTIFICATION   DIVISION.
79122       PROGRAM-ID.      prog.
79123       ENVIRONMENT      DIVISION.
79124       INPUT-OUTPUT     SECTION.
79125       FILE-CONTROL.
79126       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
79127                        ORGANIZATION IS  INDEXED
79128                        ACCESS MODE  IS  SEQUENTIAL
79129                        RECORD KEY   IS  TEST-KEY.
79130       DATA             DIVISION.
79131       FILE             SECTION.
79132       FD TEST-FILE.
79133       01 TEST-REC.
79134          05 TEST-KEY      PIC X(10).
79135          05 TEST-DATA     PIC X.
79136       PROCEDURE        DIVISION.
79137           OPEN  OUTPUT TEST-FILE
79138           MOVE  '1'    TO TEST-KEY
79139           MOVE  'A'    TO TEST-DATA
79140           WRITE TEST-REC
79141           MOVE  '3'    TO TEST-KEY
79142           MOVE  'B'    TO TEST-DATA
79143           WRITE TEST-REC
79144           CLOSE TEST-FILE
79145           OPEN  INPUT  TEST-FILE
79146           READ  TEST-FILE NEXT
79147                 AT END
79148                   DISPLAY "AT END FOR REC1"
79149                   END-DISPLAY
79150                   CLOSE TEST-FILE
79151                   STOP RUN
79152                 NOT AT END
79153                   CONTINUE
79154           END-READ
79155           IF TEST-DATA NOT = 'A'
79156              DISPLAY "WRONG REC1: '" TEST-REC "'"
79157              END-DISPLAY
79158           END-IF
79159           READ  TEST-FILE NEXT
79160                 AT END
79161                   DISPLAY "AT END FOR REC2"
79162                   END-DISPLAY
79163                   CLOSE TEST-FILE
79164                   STOP RUN
79165                 NOT AT END
79166                   CONTINUE
79167           END-READ.
79168           IF TEST-DATA NOT = 'B'
79169              DISPLAY "WRONG REC2: '" TEST-REC "'"
79170              END-DISPLAY
79171           END-IF
79172           READ  TEST-FILE NEXT
79173                 AT END
79174                   CONTINUE
79175                 NOT AT END
79176                   DISPLAY "NOT AT END AFTER REC2"
79177                   END-DISPLAY
79178           END-READ
79179           IF TEST-DATA NOT = 'B'
79180              DISPLAY "DATE CHANGED ON EOF: '" TEST-REC "'"
79181              END-DISPLAY
79182           END-IF
79183           CLOSE TEST-FILE
79184           STOP RUN.
79185_ATEOF
79186
79187
79188{ set +x
79189$as_echo "$at_srcdir/run_file.at:528: \$COMPILE prog.cob"
79190at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:528"
79191( $at_check_trace; $COMPILE prog.cob
79192) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79193at_status=$? at_failed=false
79194$at_check_filter
79195at_fn_diff_devnull "$at_stderr" || at_failed=:
79196at_fn_diff_devnull "$at_stdout" || at_failed=:
79197at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:528"
79198$at_failed && at_fn_log_failure
79199$at_traceon; }
79200
79201{ set +x
79202$as_echo "$at_srcdir/run_file.at:529: \$COBCRUN_DIRECT ./prog"
79203at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:529"
79204( $at_check_trace; $COBCRUN_DIRECT ./prog
79205) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79206at_status=$? at_failed=false
79207$at_check_filter
79208at_fn_diff_devnull "$at_stderr" || at_failed=:
79209at_fn_diff_devnull "$at_stdout" || at_failed=:
79210at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:529"
79211$at_failed && at_fn_log_failure
79212$at_traceon; }
79213
79214
79215  set +x
79216  $at_times_p && times >"$at_times_file"
79217) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79218read at_status <"$at_status_file"
79219#AT_STOP_731
79220#AT_START_732
79221at_fn_group_banner 732 'run_file.at:534' \
79222  "REWRITE a RELATIVE file with RANDOM access" "     " 4
79223at_xfail=no
79224(
79225  $as_echo "732. $at_setup_line: testing $at_desc ..."
79226  $at_traceon
79227
79228
79229
79230cat >prog.cob <<'_ATEOF'
79231
79232       IDENTIFICATION   DIVISION.
79233       PROGRAM-ID.      prog.
79234       ENVIRONMENT      DIVISION.
79235       INPUT-OUTPUT     SECTION.
79236       FILE-CONTROL.
79237       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
79238                        ORGANIZATION IS RELATIVE
79239                        ACCESS MODE  IS RANDOM
79240                        RELATIVE KEY IS TEST-KEY.
79241       DATA             DIVISION.
79242       FILE             SECTION.
79243       FD TEST-FILE.
79244       01 TEST-REC      PIC X.
79245       WORKING-STORAGE  SECTION.
79246       01 TEST-KEY      PIC 9.
79247       PROCEDURE        DIVISION.
79248      *
79249           OPEN OUTPUT TEST-FILE.
79250           MOVE 1 TO TEST-KEY.
79251           MOVE "A" TO TEST-REC.
79252           WRITE TEST-REC
79253           END-WRITE.
79254           MOVE 2 TO TEST-KEY.
79255           MOVE "B" TO TEST-REC.
79256           WRITE TEST-REC
79257           END-WRITE.
79258           CLOSE TEST-FILE.
79259      *
79260           OPEN I-O TEST-FILE.
79261           MOVE 1 TO TEST-KEY.
79262           READ TEST-FILE
79263           END-READ.
79264           MOVE 2 TO TEST-KEY.
79265           MOVE "C" TO TEST-REC.
79266           REWRITE TEST-REC
79267           END-REWRITE.
79268           CLOSE TEST-FILE.
79269      *
79270           OPEN INPUT TEST-FILE.
79271           MOVE 1 TO TEST-KEY.
79272           READ TEST-FILE
79273           END-READ.
79274           IF TEST-REC NOT = "A"
79275              DISPLAY "Expected 'A' - Got " TEST-REC
79276              END-DISPLAY
79277           END-IF.
79278           MOVE 2 TO TEST-KEY.
79279           READ TEST-FILE
79280           END-READ.
79281           IF TEST-REC NOT = "C"
79282              DISPLAY "Expected 'C' - Got " TEST-REC
79283              END-DISPLAY
79284           END-IF.
79285           CLOSE TEST-FILE.
79286           STOP RUN.
79287_ATEOF
79288
79289
79290{ set +x
79291$as_echo "$at_srcdir/run_file.at:595: \$COMPILE prog.cob"
79292at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:595"
79293( $at_check_trace; $COMPILE prog.cob
79294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79295at_status=$? at_failed=false
79296$at_check_filter
79297at_fn_diff_devnull "$at_stderr" || at_failed=:
79298at_fn_diff_devnull "$at_stdout" || at_failed=:
79299at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:595"
79300$at_failed && at_fn_log_failure
79301$at_traceon; }
79302
79303{ set +x
79304$as_echo "$at_srcdir/run_file.at:596: \$COBCRUN_DIRECT ./prog"
79305at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:596"
79306( $at_check_trace; $COBCRUN_DIRECT ./prog
79307) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79308at_status=$? at_failed=false
79309$at_check_filter
79310at_fn_diff_devnull "$at_stderr" || at_failed=:
79311at_fn_diff_devnull "$at_stdout" || at_failed=:
79312at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:596"
79313$at_failed && at_fn_log_failure
79314$at_traceon; }
79315
79316
79317  set +x
79318  $at_times_p && times >"$at_times_file"
79319) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79320read at_status <"$at_status_file"
79321#AT_STOP_732
79322#AT_START_733
79323at_fn_group_banner 733 'run_file.at:601' \
79324  "File SORT, SEQUENTIAL" "                          " 4
79325at_xfail=no
79326(
79327  $as_echo "733. $at_setup_line: testing $at_desc ..."
79328  $at_traceon
79329
79330
79331
79332# Note: We shouldn't use AT_DATA to create sequential record
79333# data, because AT_DATA needs a \n at the end
79334
79335cat >prog.cob <<'_ATEOF'
79336
79337       IDENTIFICATION   DIVISION.
79338       PROGRAM-ID.      prog.
79339       ENVIRONMENT      DIVISION.
79340       INPUT-OUTPUT     SECTION.
79341       FILE-CONTROL.
79342       SELECT SORT-IN   ASSIGN "test.txt".
79343       SELECT SORT-OUT  ASSIGN "result.txt".
79344       SELECT SORT-WRK  ASSIGN "SORT-WRK".
79345       DATA             DIVISION.
79346       FILE             SECTION.
79347       FD SORT-IN.
79348       01 IN-REC        PIC X(6).
79349       FD SORT-OUT.
79350       01 OUT-REC       PIC X(6).
79351       SD SORT-WRK.
79352       01 WRK-REC       PIC X(6).
79353       PROCEDURE        DIVISION.
79354
79355      * Special case: write test data in COBOL, see note above
79356           OPEN OUTPUT SORT-IN.
79357           WRITE IN-REC FROM SPACES   END-WRITE.
79358           WRITE IN-REC FROM SPACES   END-WRITE.
79359           WRITE IN-REC FROM "world " END-WRITE.
79360           WRITE IN-REC FROM SPACES   END-WRITE.
79361           WRITE IN-REC FROM "hello " END-WRITE.
79362           WRITE IN-REC FROM SPACES   END-WRITE.
79363           WRITE IN-REC FROM SPACES   END-WRITE.
79364           CLOSE SORT-IN.
79365
79366           SORT SORT-WRK
79367                ASCENDING KEY WRK-REC
79368                USING  SORT-IN
79369                GIVING SORT-OUT.
79370             STOP RUN.
79371_ATEOF
79372
79373
79374{ set +x
79375$as_echo "$at_srcdir/run_file.at:644: \$COMPILE prog.cob"
79376at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:644"
79377( $at_check_trace; $COMPILE prog.cob
79378) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79379at_status=$? at_failed=false
79380$at_check_filter
79381at_fn_diff_devnull "$at_stderr" || at_failed=:
79382at_fn_diff_devnull "$at_stdout" || at_failed=:
79383at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:644"
79384$at_failed && at_fn_log_failure
79385$at_traceon; }
79386
79387{ set +x
79388$as_echo "$at_srcdir/run_file.at:645: \$COBCRUN_DIRECT ./prog"
79389at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:645"
79390( $at_check_trace; $COBCRUN_DIRECT ./prog
79391) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79392at_status=$? at_failed=false
79393$at_check_filter
79394at_fn_diff_devnull "$at_stderr" || at_failed=:
79395at_fn_diff_devnull "$at_stdout" || at_failed=:
79396at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:645"
79397$at_failed && at_fn_log_failure
79398$at_traceon; }
79399
79400{ set +x
79401$as_echo "$at_srcdir/run_file.at:646: cat result.txt"
79402at_fn_check_prepare_trace "run_file.at:646"
79403( $at_check_trace; cat result.txt
79404) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79405at_status=$? at_failed=false
79406$at_check_filter
79407at_fn_diff_devnull "$at_stderr" || at_failed=:
79408echo >>"$at_stdout"; $as_echo "                              hello world " | \
79409  $at_diff - "$at_stdout" || at_failed=:
79410at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:646"
79411$at_failed && at_fn_log_failure
79412$at_traceon; }
79413
79414
79415  set +x
79416  $at_times_p && times >"$at_times_file"
79417) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79418read at_status <"$at_status_file"
79419#AT_STOP_733
79420#AT_START_734
79421at_fn_group_banner 734 'run_file.at:651' \
79422  "File SORT, SEQUENTIAL variable records" "         " 4
79423at_xfail=no
79424(
79425  $as_echo "734. $at_setup_line: testing $at_desc ..."
79426  $at_traceon
79427
79428
79429
79430cat >prog.cob <<'_ATEOF'
79431
79432       IDENTIFICATION DIVISION.
79433       PROGRAM-ID. prog.
79434       ENVIRONMENT DIVISION.
79435       INPUT-OUTPUT SECTION.
79436       FILE-CONTROL.
79437       SELECT file1 ORGANIZATION SEQUENTIAL
79438                    ASSIGN "./file1".
79439       SELECT file2 ORGANIZATION SEQUENTIAL
79440                    ASSIGN "./file2".
79441       SELECT file3 ASSIGN DISK.
79442       DATA DIVISION.
79443       FILE SECTION.
79444       FD file1 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
79445       1  file1-rec pic x(12).
79446       FD file2 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
79447       1  file2-rec pic x(12).
79448       SD file3 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
79449       1  file3-rec.
79450          2  file3-key1 pic x.
79451          2  file3-key2 pic 9.
79452          2  filler pic x(10).
79453       WORKING-STORAGE SECTION.
79454       77 rsz pic 99.
79455       1  1-data.
79456          2  filler pic x(14) VALUE "03A4X".
79457          2  filler pic x(14) VALUE "04A3XX".
79458          2  filler pic x(14) VALUE "05A2XXX".
79459          2  filler pic x(14) VALUE "06A1XXXX".
79460          2  filler pic x(14) VALUE "07A0XXXXX".
79461          2  filler pic x(14) VALUE "08B2XXXXXX".
79462          2  filler pic x(14) VALUE "09B1XXXXXXX".
79463          2  filler pic x(14) VALUE "10C2XXXXXXXX".
79464          2  filler pic x(14) VALUE "11C1XXXXXXXXX".
79465          2  filler pic x(14) VALUE "12Z9XXXXXXXXXX".
79466      *
79467       1  filler redefines 1-data.
79468          2  filler occurs 10 times indexed by ix-1.
79469           3 1-rsz pic 99.
79470           3 1-rec pic x(12).
79471
79472       PROCEDURE DIVISION.
79473          OPEN OUTPUT file1.
79474          PERFORM VARYING ix-1 FROM 1 BY 2 UNTIL ix-1 > 10
79475             MOVE 1-rsz(ix-1) TO rsz
79476             MOVE 1-rec(ix-1) TO file1-rec
79477             WRITE file1-rec
79478          END-PERFORM.
79479          PERFORM VARYING ix-1 FROM 2 BY 2 UNTIL ix-1 > 10
79480             MOVE 1-rsz(ix-1) TO rsz
79481             MOVE 1-rec(ix-1) TO file1-rec
79482             WRITE file1-rec
79483          END-PERFORM.
79484          CLOSE file1.
79485          SORT file3 ON ASCENDING file3-key1
79486                        DESCENDING file3-key2
79487             USING file1
79488             GIVING file2.
79489          OPEN INPUT file2.
79490          PERFORM VARYING ix-1 FROM 1 BY 1 UNTIL ix-1 > 10
79491             READ file2
79492      *>> fileio-sort currently returns constant length records
79493             MOVE 1-rsz(ix-1) TO rsz
79494      *>> END-OF-DETOUR
79495             IF (1-rsz(ix-1) <> rsz) or
79496                (1-rec(ix-1) <> file2-rec)
79497                DISPLAY "FAILED"
79498             END-IF
79499          END-PERFORM.
79500          CLOSE file2.
79501          STOP RUN.
79502_ATEOF
79503
79504
79505{ set +x
79506$as_echo "$at_srcdir/run_file.at:727: \$COMPILE prog.cob"
79507at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:727"
79508( $at_check_trace; $COMPILE prog.cob
79509) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79510at_status=$? at_failed=false
79511$at_check_filter
79512at_fn_diff_devnull "$at_stderr" || at_failed=:
79513at_fn_diff_devnull "$at_stdout" || at_failed=:
79514at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:727"
79515$at_failed && at_fn_log_failure
79516$at_traceon; }
79517
79518{ set +x
79519$as_echo "$at_srcdir/run_file.at:728: \$COBCRUN_DIRECT ./prog"
79520at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:728"
79521( $at_check_trace; $COBCRUN_DIRECT ./prog
79522) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79523at_status=$? at_failed=false
79524$at_check_filter
79525at_fn_diff_devnull "$at_stderr" || at_failed=:
79526at_fn_diff_devnull "$at_stdout" || at_failed=:
79527at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:728"
79528$at_failed && at_fn_log_failure
79529$at_traceon; }
79530
79531
79532  set +x
79533  $at_times_p && times >"$at_times_file"
79534) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79535read at_status <"$at_status_file"
79536#AT_STOP_734
79537#AT_START_735
79538at_fn_group_banner 735 'run_file.at:733' \
79539  "File SORT, LINE SEQUENTIAL" "                     " 4
79540at_xfail=no
79541(
79542  $as_echo "735. $at_setup_line: testing $at_desc ..."
79543  $at_traceon
79544
79545
79546
79547# Note: We shouldn't use AT_DATA to create sequential record
79548# data, because AT_DATA needs a \n at the end
79549
79550cat >prog.cob <<'_ATEOF'
79551
79552       IDENTIFICATION   DIVISION.
79553       PROGRAM-ID.      prog.
79554       ENVIRONMENT      DIVISION.
79555       INPUT-OUTPUT     SECTION.
79556       FILE-CONTROL.
79557       SELECT SORT-IN   ASSIGN "test.txt"
79558                        ORGANISATION LINE SEQUENTIAL.
79559       SELECT SORT-OUT  ASSIGN "result.txt"
79560                        ORGANISATION LINE SEQUENTIAL.
79561       SELECT SORT-WRK  ASSIGN "SORT-WRK".
79562       DATA             DIVISION.
79563       FILE             SECTION.
79564       FD SORT-IN.
79565       01 IN-REC        PIC X(20).
79566       FD SORT-OUT.
79567       01 OUT-REC       PIC X(20).
79568       SD SORT-WRK.
79569       01 WRK-REC       PIC X(6).
79570       PROCEDURE        DIVISION.
79571
79572      * Special case: write test data in COBOL, see note above
79573           OPEN OUTPUT SORT-IN.
79574           WRITE IN-REC FROM SPACES   END-WRITE.
79575           WRITE IN-REC FROM SPACES   END-WRITE.
79576           WRITE IN-REC FROM "world " END-WRITE.
79577           WRITE IN-REC FROM SPACES   END-WRITE.
79578           WRITE IN-REC FROM "hello " END-WRITE.
79579           WRITE IN-REC FROM SPACES   END-WRITE.
79580           WRITE IN-REC FROM SPACES   END-WRITE.
79581           CLOSE SORT-IN.
79582
79583           SORT SORT-WRK
79584                ASCENDING KEY WRK-REC
79585                USING  SORT-IN
79586                GIVING SORT-OUT.
79587             STOP RUN.
79588_ATEOF
79589
79590
79591{ set +x
79592$as_echo "$at_srcdir/run_file.at:778: \$COMPILE prog.cob"
79593at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:778"
79594( $at_check_trace; $COMPILE prog.cob
79595) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79596at_status=$? at_failed=false
79597$at_check_filter
79598at_fn_diff_devnull "$at_stderr" || at_failed=:
79599at_fn_diff_devnull "$at_stdout" || at_failed=:
79600at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:778"
79601$at_failed && at_fn_log_failure
79602$at_traceon; }
79603
79604{ set +x
79605$as_echo "$at_srcdir/run_file.at:779: \$COBCRUN_DIRECT ./prog"
79606at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:779"
79607( $at_check_trace; $COBCRUN_DIRECT ./prog
79608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79609at_status=$? at_failed=false
79610$at_check_filter
79611at_fn_diff_devnull "$at_stderr" || at_failed=:
79612at_fn_diff_devnull "$at_stdout" || at_failed=:
79613at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:779"
79614$at_failed && at_fn_log_failure
79615$at_traceon; }
79616
79617{ set +x
79618$as_echo "$at_srcdir/run_file.at:780: cat result.txt"
79619at_fn_check_prepare_trace "run_file.at:780"
79620( $at_check_trace; cat result.txt
79621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79622at_status=$? at_failed=false
79623$at_check_filter
79624at_fn_diff_devnull "$at_stderr" || at_failed=:
79625echo >>"$at_stdout"; $as_echo "
79626
79627
79628
79629
79630hello
79631world
79632" | \
79633  $at_diff - "$at_stdout" || at_failed=:
79634at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:780"
79635$at_failed && at_fn_log_failure
79636$at_traceon; }
79637
79638
79639  set +x
79640  $at_times_p && times >"$at_times_file"
79641) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79642read at_status <"$at_status_file"
79643#AT_STOP_735
79644#AT_START_736
79645at_fn_group_banner 736 'run_file.at:792' \
79646  "LINAGE and LINAGE-COUNTER sample" "               " 4
79647at_xfail=no
79648(
79649  $as_echo "736. $at_setup_line: testing $at_desc ..."
79650  $at_traceon
79651
79652
79653
79654# modified version of GC-FAQ: Example of LINAGE File Descriptor
79655# Author: Brian Tiffin, Date:   10-July-2008
79656
79657cat >prog.cob <<'_ATEOF'
79658
79659       IDENTIFICATION DIVISION.
79660       PROGRAM-ID. prog.
79661       ENVIRONMENT DIVISION.
79662       INPUT-OUTPUT SECTION.
79663       FILE-CONTROL.
79664           select optional data-file assign to 'prog.cob'
79665               organization is line sequential
79666               file status is data-file-status.
79667           select mini-report assign to "mini-report".
79668
79669       DATA DIVISION.
79670       FILE SECTION.
79671       FD  data-file.
79672       01  data-record.
79673           88 endofdata        value high-values.
79674           02 data-line        pic x(80).
79675       FD  mini-report
79676           linage is 16 lines
79677               with footing at 15
79678               lines at top 2
79679               lines at bottom 2.
79680       01  report-line         pic x(80).
79681
79682       WORKING-STORAGE SECTION.
79683       01  command-arguments   pic x(1024).
79684       01  file-name           pic x(160).
79685       01  data-file-status    pic xx.
79686       01  lc                  pic 99.
79687       01  report-line-blank.
79688           02 filler           pic x(18) value all "*".
79689           02 filler           pic x(05) value spaces.
79690           02 filler           pic x(34)
79691               VALUE "THIS PAGE INTENTIONALLY LEFT BLANK".
79692           02 filler           pic x(05) value spaces.
79693           02 filler           pic x(18) value all "*".
79694       01  report-line-data.
79695           02 body-tag         pic 9(6).
79696           02 line-3           pic x(74).
79697       01  report-line-header.
79698           02 filler           pic x(6) VALUE "PAGE: ".
79699           02 page-no          pic 9999.
79700           02 filler           pic x(24).
79701           02 filler           pic x(5) VALUE " LC: ".
79702           02 header-tag       pic 9(6).
79703           02 filler           pic x(23).
79704           02 filler           pic x(6) VALUE "DATE: ".
79705           02 page-date        pic x(6).
79706
79707       01  page-count          pic 9999.
79708
79709       PROCEDURE DIVISION.
79710
79711       open input data-file.
79712       read data-file
79713           at end
79714               display "File open error: " data-file-status
79715               stop run
79716       end-read.
79717
79718       open output mini-report.
79719
79720       write report-line
79721           from report-line-blank
79722       end-write.
79723
79724       move 1 to page-count.
79725       accept page-date from date end-accept.
79726       move page-count to page-no.
79727       write report-line
79728           from report-line-header
79729           after advancing page
79730       end-write.
79731
79732       perform readwrite-loop until endofdata.
79733
79734       display
79735           "Normal termination, ending status: "
79736           data-file-status
79737       close mini-report.
79738
79739       close data-file.
79740       stop run.
79741
79742      ****************************************************************
79743       readwrite-loop.
79744       move data-record to report-line-data
79745       move linage-counter to body-tag
79746       write report-line from report-line-data
79747           end-of-page
79748               add 1 to page-count end-add
79749               move page-count to page-no
79750               move linage-counter to header-tag
79751               write report-line from report-line-header
79752                   after advancing page
79753               end-write
79754       end-write
79755       read data-file
79756           at end set endofdata to true
79757       end-read
79758       .
79759_ATEOF
79760
79761
79762
79763cat >reference-report <<'_ATEOF'
79764
79765
79766******************     THIS PAGE INTENTIONALLY LEFT BLANK     ******************
79767
79768
79769
79770
79771
79772
79773
79774
79775
79776
79777
79778
79779
79780
79781
79782
79783
79784
79785PAGE: 0001                         LC: 000000                       DATE: 150206
79786000001
79787000002 IDENTIFICATION DIVISION.
79788000003 PROGRAM-ID. prog.
79789000004 ENVIRONMENT DIVISION.
79790000005 INPUT-OUTPUT SECTION.
79791000006 FILE-CONTROL.
79792000007     select optional data-file assign to 'prog.cob'
79793000008         organization is line sequential
79794000009         file status is data-file-status.
79795000010     select mini-report assign to "mini-report".
79796000011
79797000012 DATA DIVISION.
79798000013 FILE SECTION.
79799000014 FD  data-file.
79800
79801
79802
79803
79804
79805PAGE: 0002                         LC: 000015                       DATE: 150206
79806000001 01  data-record.
79807000002     88 endofdata        value high-values.
79808000003     02 data-line        pic x(80).
79809000004 FD  mini-report
79810000005     linage is 16 lines
79811000006         with footing at 15
79812000007         lines at top 2
79813000008         lines at bottom 2.
79814000009 01  report-line         pic x(80).
79815000010
79816000011 WORKING-STORAGE SECTION.
79817000012 01  command-arguments   pic x(1024).
79818000013 01  file-name           pic x(160).
79819000014 01  data-file-status    pic xx.
79820
79821
79822
79823
79824
79825PAGE: 0003                         LC: 000015                       DATE: 150206
79826000001 01  lc                  pic 99.
79827000002 01  report-line-blank.
79828000003     02 filler           pic x(18) value all "*".
79829000004     02 filler           pic x(05) value spaces.
79830000005     02 filler           pic x(34)
79831000006         VALUE "THIS PAGE INTENTIONALLY LEFT BLANK".
79832000007     02 filler           pic x(05) value spaces.
79833000008     02 filler           pic x(18) value all "*".
79834000009 01  report-line-data.
79835000010     02 body-tag         pic 9(6).
79836000011     02 line-3           pic x(74).
79837000012 01  report-line-header.
79838000013     02 filler           pic x(6) VALUE "PAGE: ".
79839000014     02 page-no          pic 9999.
79840
79841
79842
79843
79844
79845PAGE: 0004                         LC: 000015                       DATE: 150206
79846000001     02 filler           pic x(24).
79847000002     02 filler           pic x(5) VALUE " LC: ".
79848000003     02 header-tag       pic 9(6).
79849000004     02 filler           pic x(23).
79850000005     02 filler           pic x(6) VALUE "DATE: ".
79851000006     02 page-date        pic x(6).
79852000007
79853000008 01  page-count          pic 9999.
79854000009
79855000010 PROCEDURE DIVISION.
79856000011
79857000012 open input data-file.
79858000013 read data-file
79859000014     at end
79860
79861
79862
79863
79864
79865PAGE: 0005                         LC: 000015                       DATE: 150206
79866000001         display "File open error: " data-file-status
79867000002         stop run
79868000003 end-read.
79869000004
79870000005 open output mini-report.
79871000006
79872000007 write report-line
79873000008     from report-line-blank
79874000009 end-write.
79875000010
79876000011 move 1 to page-count.
79877000012 accept page-date from date end-accept.
79878000013 move page-count to page-no.
79879000014 write report-line
79880
79881
79882
79883
79884
79885PAGE: 0006                         LC: 000015                       DATE: 150206
79886000001     from report-line-header
79887000002     after advancing page
79888000003 end-write.
79889000004
79890000005 perform readwrite-loop until endofdata.
79891000006
79892000007 display
79893000008     "Normal termination, ending status: "
79894000009     data-file-status
79895000010 close mini-report.
79896000011
79897000012 close data-file.
79898000013 stop run.
79899000014
79900
79901
79902
79903
79904
79905PAGE: 0007                         LC: 000015                       DATE: 150206
79906000001****************************************************************
79907000002 readwrite-loop.
79908000003 move data-record to report-line-data
79909000004 move linage-counter to body-tag
79910000005 write report-line from report-line-data
79911000006     end-of-page
79912000007         add 1 to page-count end-add
79913000008         move page-count to page-no
79914000009         move linage-counter to header-tag
79915000010         write report-line from report-line-header
79916000011             after advancing page
79917000012         end-write
79918000013 end-write
79919000014 read data-file
79920
79921
79922
79923
79924
79925PAGE: 0008                         LC: 000015                       DATE: 150206
79926000001     at end set endofdata to true
79927000002 end-read
79928000003 .
79929_ATEOF
79930
79931
79932{ set +x
79933$as_echo "$at_srcdir/run_file.at:1069: \$COMPILE prog.cob"
79934at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1069"
79935( $at_check_trace; $COMPILE prog.cob
79936) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79937at_status=$? at_failed=false
79938$at_check_filter
79939at_fn_diff_devnull "$at_stderr" || at_failed=:
79940at_fn_diff_devnull "$at_stdout" || at_failed=:
79941at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1069"
79942$at_failed && at_fn_log_failure  \
79943"mini-report"
79944$at_traceon; }
79945
79946{ set +x
79947$as_echo "$at_srcdir/run_file.at:1070: COB_CURRENT_DATE=\"2015/02/06 16:40:52\" \$COBCRUN_DIRECT ./prog"
79948at_fn_check_prepare_dynamic "COB_CURRENT_DATE=\"2015/02/06 16:40:52\" $COBCRUN_DIRECT ./prog" "run_file.at:1070"
79949( $at_check_trace; COB_CURRENT_DATE="2015/02/06 16:40:52" $COBCRUN_DIRECT ./prog
79950) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79951at_status=$? at_failed=false
79952$at_check_filter
79953at_fn_diff_devnull "$at_stderr" || at_failed=:
79954echo >>"$at_stdout"; $as_echo "Normal termination, ending status: 10
79955" | \
79956  $at_diff - "$at_stdout" || at_failed=:
79957at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1070"
79958$at_failed && at_fn_log_failure  \
79959"mini-report"
79960$at_traceon; }
79961
79962{ set +x
79963$as_echo "$at_srcdir/run_file.at:1073: diff mini-report reference-report"
79964at_fn_check_prepare_trace "run_file.at:1073"
79965( $at_check_trace; diff mini-report reference-report
79966) >>"$at_stdout" 2>>"$at_stderr" 5>&-
79967at_status=$? at_failed=false
79968$at_check_filter
79969at_fn_diff_devnull "$at_stderr" || at_failed=:
79970at_fn_diff_devnull "$at_stdout" || at_failed=:
79971at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1073"
79972$at_failed && at_fn_log_failure  \
79973"mini-report"
79974$at_traceon; }
79975
79976
79977  set +x
79978  $at_times_p && times >"$at_times_file"
79979) 5>&1 2>&1 7>&- | eval $at_tee_pipe
79980read at_status <"$at_status_file"
79981#AT_STOP_736
79982#AT_START_737
79983at_fn_group_banner 737 'run_file.at:1078' \
79984  "File SORT, LINE SEQUENTIAL same file" "           " 4
79985at_xfail=no
79986(
79987  $as_echo "737. $at_setup_line: testing $at_desc ..."
79988  $at_traceon
79989
79990
79991
79992cat >test.txt <<'_ATEOF'
79993
79994bla
79995world
79996hello
79997
79998blubb
79999_ATEOF
80000
80001
80002cat >prog.cob <<'_ATEOF'
80003
80004       IDENTIFICATION   DIVISION.
80005       PROGRAM-ID.      prog.
80006       ENVIRONMENT      DIVISION.
80007       INPUT-OUTPUT     SECTION.
80008       FILE-CONTROL.
80009       SELECT SORT-IN   ASSIGN "test.txt"
80010                        ORGANISATION LINE SEQUENTIAL.
80011       SELECT SORT-WRK  ASSIGN "dummy".
80012       DATA             DIVISION.
80013       FILE             SECTION.
80014       FD SORT-IN.
80015       01 IN-REC        PIC X(6).
80016       SD SORT-WRK.
80017       01 sort-entry    PIC X(6).
80018       PROCEDURE        DIVISION.
80019           SORT SORT-WRK
80020                ASCENDING sort-entry
80021                USING  SORT-IN
80022                GIVING SORT-IN.
80023             STOP RUN.
80024_ATEOF
80025
80026
80027{ set +x
80028$as_echo "$at_srcdir/run_file.at:1112: \$COMPILE prog.cob"
80029at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1112"
80030( $at_check_trace; $COMPILE prog.cob
80031) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80032at_status=$? at_failed=false
80033$at_check_filter
80034at_fn_diff_devnull "$at_stderr" || at_failed=:
80035at_fn_diff_devnull "$at_stdout" || at_failed=:
80036at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1112"
80037$at_failed && at_fn_log_failure
80038$at_traceon; }
80039
80040{ set +x
80041$as_echo "$at_srcdir/run_file.at:1113: \$COBCRUN_DIRECT ./prog"
80042at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1113"
80043( $at_check_trace; $COBCRUN_DIRECT ./prog
80044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80045at_status=$? at_failed=false
80046$at_check_filter
80047at_fn_diff_devnull "$at_stderr" || at_failed=:
80048at_fn_diff_devnull "$at_stdout" || at_failed=:
80049at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1113"
80050$at_failed && at_fn_log_failure
80051$at_traceon; }
80052
80053{ set +x
80054$as_echo "$at_srcdir/run_file.at:1114: cat test.txt"
80055at_fn_check_prepare_trace "run_file.at:1114"
80056( $at_check_trace; cat test.txt
80057) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80058at_status=$? at_failed=false
80059$at_check_filter
80060at_fn_diff_devnull "$at_stderr" || at_failed=:
80061echo >>"$at_stdout"; $as_echo "
80062
80063bla
80064blubb
80065hello
80066world
80067" | \
80068  $at_diff - "$at_stdout" || at_failed=:
80069at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1114"
80070$at_failed && at_fn_log_failure
80071$at_traceon; }
80072
80073
80074  set +x
80075  $at_times_p && times >"$at_times_file"
80076) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80077read at_status <"$at_status_file"
80078#AT_STOP_737
80079#AT_START_738
80080at_fn_group_banner 738 'run_file.at:1125' \
80081  "File SORT, LINE SEQUENTIAL variable records" "    " 4
80082at_xfail=no
80083(
80084  $as_echo "738. $at_setup_line: testing $at_desc ..."
80085  $at_traceon
80086
80087
80088
80089cat >file1 <<'_ATEOF'
80090A1XXXX
80091A2XXX
80092A3XX
80093Z9XXXXXXXXXX
80094A4X
80095B1XXXXXXX
80096B2XXXXXX
80097A0XXXXX
80098C1XXXXXXXXX
80099C2XXXXXXXX
80100_ATEOF
80101
80102
80103cat >prog.cob <<'_ATEOF'
80104
80105       IDENTIFICATION DIVISION.
80106       PROGRAM-ID. prog.
80107       ENVIRONMENT DIVISION.
80108       INPUT-OUTPUT SECTION.
80109       FILE-CONTROL.
80110       SELECT file1 ORGANIZATION LINE SEQUENTIAL
80111                    ASSIGN "./file1".
80112       SELECT file2 ORGANIZATION LINE SEQUENTIAL
80113                    ASSIGN "./file2".
80114       SELECT file3 ASSIGN DISK.
80115       DATA DIVISION.
80116       FILE SECTION.
80117       FD file1.
80118       1  file1-rec pic x(12).
80119       FD file2.
80120       1  file2-rec pic x(12).
80121       SD file3.
80122       1  file3-rec.
80123          2  file3-key1 pic x.
80124          2  file3-key2 pic 9.
80125          2  filler pic x(10).
80126       PROCEDURE DIVISION.
80127          SORT file3 ON ASCENDING file3-key1
80128                        DESCENDING file3-key2
80129             USING file1
80130             GIVING file2.
80131          STOP RUN.
80132_ATEOF
80133
80134
80135{ set +x
80136$as_echo "$at_srcdir/run_file.at:1171: \$COMPILE prog.cob"
80137at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1171"
80138( $at_check_trace; $COMPILE prog.cob
80139) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80140at_status=$? at_failed=false
80141$at_check_filter
80142at_fn_diff_devnull "$at_stderr" || at_failed=:
80143at_fn_diff_devnull "$at_stdout" || at_failed=:
80144at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1171"
80145$at_failed && at_fn_log_failure
80146$at_traceon; }
80147
80148{ set +x
80149$as_echo "$at_srcdir/run_file.at:1172: \$COBCRUN_DIRECT ./prog"
80150at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1172"
80151( $at_check_trace; $COBCRUN_DIRECT ./prog
80152) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80153at_status=$? at_failed=false
80154$at_check_filter
80155at_fn_diff_devnull "$at_stderr" || at_failed=:
80156at_fn_diff_devnull "$at_stdout" || at_failed=:
80157at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1172"
80158$at_failed && at_fn_log_failure
80159$at_traceon; }
80160
80161{ set +x
80162$as_echo "$at_srcdir/run_file.at:1173: cat file2"
80163at_fn_check_prepare_trace "run_file.at:1173"
80164( $at_check_trace; cat file2
80165) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80166at_status=$? at_failed=false
80167$at_check_filter
80168at_fn_diff_devnull "$at_stderr" || at_failed=:
80169echo >>"$at_stdout"; $as_echo "A4X
80170A3XX
80171A2XXX
80172A1XXXX
80173A0XXXXX
80174B2XXXXXX
80175B1XXXXXXX
80176C2XXXXXXXX
80177C1XXXXXXXXX
80178Z9XXXXXXXXXX
80179" | \
80180  $at_diff - "$at_stdout" || at_failed=:
80181at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1173"
80182$at_failed && at_fn_log_failure
80183$at_traceon; }
80184
80185
80186  set +x
80187  $at_times_p && times >"$at_times_file"
80188) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80189read at_status <"$at_status_file"
80190#AT_STOP_738
80191#AT_START_739
80192at_fn_group_banner 739 'run_file.at:1189' \
80193  "File MERGE, LINE SEQUENTIAL variable records" "   " 4
80194at_xfail=no
80195(
80196  $as_echo "739. $at_setup_line: testing $at_desc ..."
80197  $at_traceon
80198
80199
80200
80201cat >file1 <<'_ATEOF'
80202A1XXXX
80203A2XXX
80204A3XX
80205Z9XXXXXXXXXX
80206A4X
80207B1XXXXXXX
80208B2XXXXXX
80209A0XXXXX
80210C1XXXXXXXXX
80211C2XXXXXXXX
80212_ATEOF
80213
80214
80215cat >file2 <<'_ATEOF'
80216A1****
80217A2***
80218A3**
80219Z9**********
80220A4*
80221B1*******
80222B2******
80223A0*****
80224C1*********
80225C2********
80226_ATEOF
80227
80228
80229cat >prog.cob <<'_ATEOF'
80230
80231       IDENTIFICATION DIVISION.
80232       PROGRAM-ID. prog.
80233       ENVIRONMENT DIVISION.
80234       INPUT-OUTPUT SECTION.
80235       FILE-CONTROL.
80236       SELECT file1 ORGANIZATION LINE SEQUENTIAL
80237                    ASSIGN "./file1".
80238       SELECT file2 ORGANIZATION LINE SEQUENTIAL
80239                    ASSIGN "./file2".
80240       SELECT file3 ORGANIZATION LINE SEQUENTIAL
80241                    ASSIGN "./file3".
80242       SELECT file4 ASSIGN DISK.
80243       DATA DIVISION.
80244       FILE SECTION.
80245       FD file1.
80246       1  file1-rec pic x(12).
80247       FD file2.
80248       1  file2-rec pic x(12).
80249       FD file3.
80250       1  file3-rec pic x(12).
80251       SD file4.
80252       1  file4-rec.
80253          2  file4-key1 pic x.
80254          2  file4-key2 pic 9.
80255          2  filler pic x(10).
80256       PROCEDURE DIVISION.
80257          MERGE file4 ON ASCENDING file4-key1
80258                        DESCENDING file4-key2
80259             USING file1 file2
80260             GIVING file3.
80261          STOP RUN.
80262_ATEOF
80263
80264
80265{ set +x
80266$as_echo "$at_srcdir/run_file.at:1252: \$COMPILE prog.cob"
80267at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1252"
80268( $at_check_trace; $COMPILE prog.cob
80269) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80270at_status=$? at_failed=false
80271$at_check_filter
80272at_fn_diff_devnull "$at_stderr" || at_failed=:
80273at_fn_diff_devnull "$at_stdout" || at_failed=:
80274at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1252"
80275$at_failed && at_fn_log_failure
80276$at_traceon; }
80277
80278{ set +x
80279$as_echo "$at_srcdir/run_file.at:1253: \$COBCRUN_DIRECT ./prog"
80280at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1253"
80281( $at_check_trace; $COBCRUN_DIRECT ./prog
80282) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80283at_status=$? at_failed=false
80284$at_check_filter
80285at_fn_diff_devnull "$at_stderr" || at_failed=:
80286at_fn_diff_devnull "$at_stdout" || at_failed=:
80287at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1253"
80288$at_failed && at_fn_log_failure
80289$at_traceon; }
80290
80291{ set +x
80292$as_echo "$at_srcdir/run_file.at:1254: cat file3"
80293at_fn_check_prepare_trace "run_file.at:1254"
80294( $at_check_trace; cat file3
80295) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80296at_status=$? at_failed=false
80297$at_check_filter
80298at_fn_diff_devnull "$at_stderr" || at_failed=:
80299echo >>"$at_stdout"; $as_echo "A4X
80300A4*
80301A3XX
80302A3**
80303A2XXX
80304A2***
80305A1XXXX
80306A1****
80307A0XXXXX
80308A0*****
80309B2XXXXXX
80310B2******
80311B1XXXXXXX
80312B1*******
80313C2XXXXXXXX
80314C2********
80315C1XXXXXXXXX
80316C1*********
80317Z9XXXXXXXXXX
80318Z9**********
80319" | \
80320  $at_diff - "$at_stdout" || at_failed=:
80321at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1254"
80322$at_failed && at_fn_log_failure
80323$at_traceon; }
80324
80325
80326  set +x
80327  $at_times_p && times >"$at_times_file"
80328) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80329read at_status <"$at_status_file"
80330#AT_STOP_739
80331#AT_START_740
80332at_fn_group_banner 740 'run_file.at:1280' \
80333  "SORT nonexistent file" "                          " 4
80334at_xfail=no
80335(
80336  $as_echo "740. $at_setup_line: testing $at_desc ..."
80337  $at_traceon
80338
80339
80340
80341cat >prog.cob <<'_ATEOF'
80342
80343       IDENTIFICATION   DIVISION.
80344       PROGRAM-ID.      prog.
80345       ENVIRONMENT      DIVISION.
80346       INPUT-OUTPUT     SECTION.
80347       FILE-CONTROL.
80348       SELECT SORT-IN   ASSIGN "SORT-IN".
80349       SELECT SORT-OUT  ASSIGN "SORT-OUT".
80350       SELECT SORT-WRK  ASSIGN "SORT-WRK".
80351       DATA             DIVISION.
80352       FILE             SECTION.
80353       FD SORT-IN.
80354       01 IN-REC        PIC X(100).
80355       FD SORT-OUT.
80356       01 OUT-REC       PIC X(100).
80357       SD SORT-WRK.
80358       01 WRK-REC       PIC X(100).
80359       PROCEDURE        DIVISION.
80360           SORT SORT-WRK
80361                ASCENDING KEY WRK-REC
80362                USING  SORT-IN
80363                GIVING SORT-OUT.
80364             STOP RUN.
80365_ATEOF
80366
80367
80368{ set +x
80369$as_echo "$at_srcdir/run_file.at:1308: \$COMPILE prog.cob"
80370at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1308"
80371( $at_check_trace; $COMPILE prog.cob
80372) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80373at_status=$? at_failed=false
80374$at_check_filter
80375at_fn_diff_devnull "$at_stderr" || at_failed=:
80376at_fn_diff_devnull "$at_stdout" || at_failed=:
80377at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1308"
80378$at_failed && at_fn_log_failure
80379$at_traceon; }
80380
80381{ set +x
80382$as_echo "$at_srcdir/run_file.at:1309: \$COBCRUN_DIRECT ./prog"
80383at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1309"
80384( $at_check_trace; $COBCRUN_DIRECT ./prog
80385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80386at_status=$? at_failed=false
80387$at_check_filter
80388at_fn_diff_devnull "$at_stderr" || at_failed=:
80389at_fn_diff_devnull "$at_stdout" || at_failed=:
80390at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1309"
80391$at_failed && at_fn_log_failure
80392$at_traceon; }
80393
80394{ set +x
80395$as_echo "$at_srcdir/run_file.at:1310: cat SORT-OUT"
80396at_fn_check_prepare_trace "run_file.at:1310"
80397( $at_check_trace; cat SORT-OUT
80398) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80399at_status=$? at_failed=false
80400$at_check_filter
80401at_fn_diff_devnull "$at_stderr" || at_failed=:
80402at_fn_diff_devnull "$at_stdout" || at_failed=:
80403at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1310"
80404$at_failed && at_fn_log_failure
80405$at_traceon; }
80406
80407
80408  set +x
80409  $at_times_p && times >"$at_times_file"
80410) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80411read at_status <"$at_status_file"
80412#AT_STOP_740
80413#AT_START_741
80414at_fn_group_banner 741 'run_file.at:1315' \
80415  "SORT with INPUT/OUTPUT PROCEDUREs" "              " 4
80416at_xfail=no
80417(
80418  $as_echo "741. $at_setup_line: testing $at_desc ..."
80419  $at_traceon
80420
80421
80422
80423cat >prog.cob <<'_ATEOF'
80424
80425       IDENTIFICATION DIVISION.
80426       PROGRAM-ID. prog.
80427       ENVIRONMENT DIVISION.
80428       INPUT-OUTPUT SECTION.
80429       FILE-CONTROL.
80430       SELECT file1 ASSIGN DISK.
80431       DATA DIVISION.
80432       FILE SECTION.
80433       SD file1.
80434       1  file1-rec.
80435          2  file1-key pic 9(4).
80436          2  file1-data pic x(10).
80437       WORKING-STORAGE SECTION.
80438       77 w-eof pic 9 value 0.
80439       1  1-values.
80440          2  filler pic x(14) value "0001A--------A".
80441          2  filler pic x(14) value "0002B--------B".
80442          2  filler pic x(14) value "0003C--------C".
80443          2  filler pic x(14) value "0004D--------D".
80444          2  filler pic x(14) value "0005E--------E".
80445          2  filler pic x(14) value "0006F--------F".
80446          2  filler pic x(14) value "0007G--------G".
80447          2  filler pic x(14) value "0008H--------H".
80448          2  filler pic x(14) value "0009I--------I".
80449          2  filler pic x(14) value "0010J--------J".
80450          2  filler pic x(14) value "0011K--------K".
80451          2  filler pic x(14) value "0012L--------L".
80452          2  filler pic x(14) value "0013M--------M".
80453          2  filler pic x(14) value "0014N--------N".
80454          2  filler pic x(14) value "0015O--------O".
80455          2  filler pic x(14) value "0016P--------P".
80456          2  filler pic x(14) value "0017Q--------Q".
80457          2  filler pic x(14) value "0018R--------R".
80458          2  filler pic x(14) value "0019S--------S".
80459          2  filler pic x(14) value "0020T--------T".
80460          2  filler pic x(14) value "0021U--------U".
80461          2  filler pic x(14) value "0022V--------V".
80462          2  filler pic x(14) value "0023W--------W".
80463          2  filler pic x(14) value "0024X--------X".
80464          2  filler pic x(14) value "0025Y--------Y".
80465          2  filler pic x(14) value "0026Z--------Z".
80466       1  filler redefines 1-values.
80467          2  1-record occurs 26 times indexed by ix-1.
80468           3 1-key pic 9(4).
80469           3 1-data pic x(10).
80470       PROCEDURE DIVISION.
80471       a01-main.
80472          SORT file1 ON ASCENDING file1-key
80473             INPUT PROCEDURE a02-release-to-sort
80474             OUTPUT PROCEDURE a03-return-from-sort.
80475          STOP RUN.
80476      *
80477       a02-release-to-sort.
80478          PERFORM VARYING ix-1 FROM 1 BY 2 UNTIL ix-1 > 26
80479             RELEASE file1-rec from 1-record(ix-1)
80480          END-PERFORM.
80481          PERFORM VARYING ix-1 FROM 2 BY 2 UNTIL ix-1 > 26
80482             RELEASE file1-rec from 1-record(ix-1)
80483          END-PERFORM.
80484      *
80485       a03-return-from-sort.
80486          PERFORM VARYING ix-1 FROM 1 BY 1
80487             UNTIL (ix-1 > 26) OR (w-eof = 1)
80488             RETURN file1 RECORD
80489               AT END MOVE 1 TO w-eof
80490             END-RETURN
80491             IF (file1-rec <> 1-record(ix-1))
80492                MOVE 1 TO w-eof
80493             END-IF
80494          END-PERFORM.
80495          IF (w-eof = 1)
80496             DISPLAY "FAILED: unexpected eof"
80497          ELSE
80498             RETURN file1 RECORD
80499               AT END CONTINUE
80500               NOT AT END DISPLAY "FAILED: expected eof"
80501             END-RETURN
80502          END-IF.
80503_ATEOF
80504
80505
80506{ set +x
80507$as_echo "$at_srcdir/run_file.at:1399: \$COMPILE prog.cob"
80508at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1399"
80509( $at_check_trace; $COMPILE prog.cob
80510) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80511at_status=$? at_failed=false
80512$at_check_filter
80513at_fn_diff_devnull "$at_stderr" || at_failed=:
80514at_fn_diff_devnull "$at_stdout" || at_failed=:
80515at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1399"
80516$at_failed && at_fn_log_failure
80517$at_traceon; }
80518
80519{ set +x
80520$as_echo "$at_srcdir/run_file.at:1400: \$COBCRUN_DIRECT ./prog"
80521at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1400"
80522( $at_check_trace; $COBCRUN_DIRECT ./prog
80523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80524at_status=$? at_failed=false
80525$at_check_filter
80526at_fn_diff_devnull "$at_stderr" || at_failed=:
80527at_fn_diff_devnull "$at_stdout" || at_failed=:
80528at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1400"
80529$at_failed && at_fn_log_failure
80530$at_traceon; }
80531
80532
80533  set +x
80534  $at_times_p && times >"$at_times_file"
80535) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80536read at_status <"$at_status_file"
80537#AT_STOP_741
80538#AT_START_742
80539at_fn_group_banner 742 'run_file.at:1405' \
80540  "SORT with key1 ASCENDING, key2 DESCENDING" "      " 4
80541at_xfail=no
80542(
80543  $as_echo "742. $at_setup_line: testing $at_desc ..."
80544  $at_traceon
80545
80546
80547
80548cat >file1 <<'_ATEOF'
80549A1
80550A2
80551A3
80552Z9
80553A4
80554B1
80555B2
80556A0
80557C1
80558C2
80559_ATEOF
80560
80561
80562cat >prog.cob <<'_ATEOF'
80563
80564       IDENTIFICATION DIVISION.
80565       PROGRAM-ID. prog.
80566       ENVIRONMENT DIVISION.
80567       INPUT-OUTPUT SECTION.
80568       FILE-CONTROL.
80569       SELECT file1 ORGANIZATION LINE SEQUENTIAL
80570                    ASSIGN "./file1".
80571       SELECT file2 ORGANIZATION LINE SEQUENTIAL
80572                    ASSIGN "./file2".
80573       SELECT file3 ASSIGN DISK.
80574       DATA DIVISION.
80575       FILE SECTION.
80576       FD file1.
80577       1  file1-rec pic xxx.
80578       FD file2.
80579       1  file2-rec pic xxx.
80580       SD file3.
80581       1  file3-rec.
80582          2  file3-key1 pic x.
80583          2  file3-key2 pic 9.
80584          2  file3-dot pic x.
80585       PROCEDURE DIVISION.
80586          SORT file3 ON ASCENDING file3-key1
80587                        DESCENDING file3-key2
80588             USING file1
80589             GIVING file2.
80590          STOP RUN.
80591_ATEOF
80592
80593
80594{ set +x
80595$as_echo "$at_srcdir/run_file.at:1451: \$COMPILE prog.cob"
80596at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1451"
80597( $at_check_trace; $COMPILE prog.cob
80598) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80599at_status=$? at_failed=false
80600$at_check_filter
80601at_fn_diff_devnull "$at_stderr" || at_failed=:
80602at_fn_diff_devnull "$at_stdout" || at_failed=:
80603at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1451"
80604$at_failed && at_fn_log_failure
80605$at_traceon; }
80606
80607{ set +x
80608$as_echo "$at_srcdir/run_file.at:1452: \$COBCRUN_DIRECT ./prog"
80609at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1452"
80610( $at_check_trace; $COBCRUN_DIRECT ./prog
80611) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80612at_status=$? at_failed=false
80613$at_check_filter
80614at_fn_diff_devnull "$at_stderr" || at_failed=:
80615at_fn_diff_devnull "$at_stdout" || at_failed=:
80616at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1452"
80617$at_failed && at_fn_log_failure
80618$at_traceon; }
80619
80620{ set +x
80621$as_echo "$at_srcdir/run_file.at:1453: cat file2"
80622at_fn_check_prepare_trace "run_file.at:1453"
80623( $at_check_trace; cat file2
80624) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80625at_status=$? at_failed=false
80626$at_check_filter
80627at_fn_diff_devnull "$at_stderr" || at_failed=:
80628echo >>"$at_stdout"; $as_echo "A4
80629A3
80630A2
80631A1
80632A0
80633B2
80634B1
80635C2
80636C1
80637Z9
80638" | \
80639  $at_diff - "$at_stdout" || at_failed=:
80640at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1453"
80641$at_failed && at_fn_log_failure
80642$at_traceon; }
80643
80644
80645  set +x
80646  $at_times_p && times >"$at_times_file"
80647) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80648read at_status <"$at_status_file"
80649#AT_STOP_742
80650#AT_START_743
80651at_fn_group_banner 743 'run_file.at:1472' \
80652  "ASSIGN DYNAMIC and EXTERNAL" "                    " 4
80653at_xfail=no
80654(
80655  $as_echo "743. $at_setup_line: testing $at_desc ..."
80656  $at_traceon
80657
80658
80659
80660cat >prog.cob <<'_ATEOF'
80661
80662       IDENTIFICATION DIVISION.
80663       PROGRAM-ID. prog.
80664
80665       ENVIRONMENT DIVISION.
80666       INPUT-OUTPUT SECTION.
80667       FILE-CONTROL.
80668           SELECT f ASSIGN whatever
80669               ORGANIZATION LINE SEQUENTIAL.
80670
80671       DATA DIVISION.
80672       FILE SECTION.
80673       FD  f.
80674       01  f-rec PIC XXX.
80675
80676       WORKING-STORAGE SECTION.
80677       01  whatever PIC X(10) VALUE "out.txt".
80678
80679       PROCEDURE DIVISION.
80680           OPEN OUTPUT f
80681           WRITE f-rec FROM "hi"
80682           CLOSE f
80683           .
80684_ATEOF
80685
80686
80687{ set +x
80688$as_echo "$at_srcdir/run_file.at:1500: \$COMPILE -fassign-clause=external prog.cob"
80689at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=external prog.cob" "run_file.at:1500"
80690( $at_check_trace; $COMPILE -fassign-clause=external prog.cob
80691) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80692at_status=$? at_failed=false
80693$at_check_filter
80694at_fn_diff_devnull "$at_stderr" || at_failed=:
80695at_fn_diff_devnull "$at_stdout" || at_failed=:
80696at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1500"
80697$at_failed && at_fn_log_failure
80698$at_traceon; }
80699
80700
80701{ set +x
80702$as_echo "$at_srcdir/run_file.at:1502: \$COBCRUN_DIRECT ./prog"
80703at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1502"
80704( $at_check_trace; $COBCRUN_DIRECT ./prog
80705) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80706at_status=$? at_failed=false
80707$at_check_filter
80708at_fn_diff_devnull "$at_stderr" || at_failed=:
80709at_fn_diff_devnull "$at_stdout" || at_failed=:
80710at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1502"
80711$at_failed && at_fn_log_failure  \
80712"./whatever"
80713$at_traceon; }
80714
80715cat >reference <<'_ATEOF'
80716hi
80717_ATEOF
80718
80719{ set +x
80720$as_echo "$at_srcdir/run_file.at:1506: diff reference whatever"
80721at_fn_check_prepare_trace "run_file.at:1506"
80722( $at_check_trace; diff reference whatever
80723) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80724at_status=$? at_failed=false
80725$at_check_filter
80726at_fn_diff_devnull "$at_stderr" || at_failed=:
80727at_fn_diff_devnull "$at_stdout" || at_failed=:
80728at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1506"
80729$at_failed && at_fn_log_failure  \
80730"./whatever"
80731$at_traceon; }
80732
80733
80734{ set +x
80735$as_echo "$at_srcdir/run_file.at:1508: \$COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var prog.cob"
80736at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var prog.cob" "run_file.at:1508"
80737( $at_check_trace; $COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var prog.cob
80738) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80739at_status=$? at_failed=false
80740$at_check_filter
80741at_fn_diff_devnull "$at_stderr" || at_failed=:
80742at_fn_diff_devnull "$at_stdout" || at_failed=:
80743at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1508"
80744$at_failed && at_fn_log_failure  \
80745"./whatever"
80746$at_traceon; }
80747
80748{ set +x
80749$as_echo "$at_srcdir/run_file.at:1509: \$COBCRUN_DIRECT ./prog"
80750at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1509"
80751( $at_check_trace; $COBCRUN_DIRECT ./prog
80752) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80753at_status=$? at_failed=false
80754$at_check_filter
80755at_fn_diff_devnull "$at_stderr" || at_failed=:
80756at_fn_diff_devnull "$at_stdout" || at_failed=:
80757at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1509"
80758$at_failed && at_fn_log_failure  \
80759"./whatever"
80760$at_traceon; }
80761
80762{ set +x
80763$as_echo "$at_srcdir/run_file.at:1510: diff reference whatever"
80764at_fn_check_prepare_trace "run_file.at:1510"
80765( $at_check_trace; diff reference whatever
80766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80767at_status=$? at_failed=false
80768$at_check_filter
80769at_fn_diff_devnull "$at_stderr" || at_failed=:
80770at_fn_diff_devnull "$at_stdout" || at_failed=:
80771at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1510"
80772$at_failed && at_fn_log_failure  \
80773"./whatever"
80774$at_traceon; }
80775
80776
80777{ set +x
80778$as_echo "$at_srcdir/run_file.at:1512: \$COMPILE -fassign-clause=dynamic prog.cob"
80779at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic prog.cob" "run_file.at:1512"
80780( $at_check_trace; $COMPILE -fassign-clause=dynamic prog.cob
80781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80782at_status=$? at_failed=false
80783$at_check_filter
80784at_fn_diff_devnull "$at_stderr" || at_failed=:
80785at_fn_diff_devnull "$at_stdout" || at_failed=:
80786at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1512"
80787$at_failed && at_fn_log_failure  \
80788"./whatever"
80789$at_traceon; }
80790
80791
80792{ set +x
80793$as_echo "$at_srcdir/run_file.at:1514: \$COBCRUN_DIRECT ./prog"
80794at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1514"
80795( $at_check_trace; $COBCRUN_DIRECT ./prog
80796) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80797at_status=$? at_failed=false
80798$at_check_filter
80799at_fn_diff_devnull "$at_stderr" || at_failed=:
80800at_fn_diff_devnull "$at_stdout" || at_failed=:
80801at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1514"
80802$at_failed && at_fn_log_failure  \
80803"./whatever" \
80804"./out.txt"
80805$at_traceon; }
80806
80807{ set +x
80808$as_echo "$at_srcdir/run_file.at:1515: diff reference out.txt"
80809at_fn_check_prepare_trace "run_file.at:1515"
80810( $at_check_trace; diff reference out.txt
80811) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80812at_status=$? at_failed=false
80813$at_check_filter
80814at_fn_diff_devnull "$at_stderr" || at_failed=:
80815at_fn_diff_devnull "$at_stdout" || at_failed=:
80816at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1515"
80817$at_failed && at_fn_log_failure  \
80818"./whatever" \
80819"./out.txt"
80820$at_traceon; }
80821
80822
80823  set +x
80824  $at_times_p && times >"$at_times_file"
80825) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80826read at_status <"$at_status_file"
80827#AT_STOP_743
80828#AT_START_744
80829at_fn_group_banner 744 'run_file.at:1520' \
80830  "ASSIGN EXTERNAL parsing" "                        " 4
80831at_xfail=no
80832(
80833  $as_echo "744. $at_setup_line: testing $at_desc ..."
80834  $at_traceon
80835
80836
80837
80838cat >prog.cob <<'_ATEOF'
80839
80840       IDENTIFICATION   DIVISION.
80841       PROGRAM-ID.      prog.
80842       ENVIRONMENT      DIVISION.
80843       INPUT-OUTPUT     SECTION.
80844       FILE-CONTROL.
80845           *> Labels should be removed from EXTERNAL name.
80846           SELECT TEST-FILE   ASSIGN DA-S-FILENAME.
80847           *> EXTERNAL name allowed to duplicate FD name.
80848           SELECT TESTFILE2 ASSIGN TESTFILE2.
80849       DATA             DIVISION.
80850       FILE             SECTION.
80851       FD TEST-FILE.
80852       01 TEST-REC      PIC X(4).
80853       FD TESTFILE2.
80854       01 TESTREC2      PIC X(4).
80855       PROCEDURE        DIVISION.
80856           OPEN OUTPUT TEST-FILE.
80857           CLOSE TEST-FILE.
80858           STOP RUN.
80859_ATEOF
80860
80861
80862{ set +x
80863$as_echo "$at_srcdir/run_file.at:1545: \$COMPILE -fassign-clause=external prog.cob"
80864at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=external prog.cob" "run_file.at:1545"
80865( $at_check_trace; $COMPILE -fassign-clause=external prog.cob
80866) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80867at_status=$? at_failed=false
80868$at_check_filter
80869echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: ASSIGN DA-S-FILENAME interpreted as 'FILENAME'
80870" | \
80871  $at_diff - "$at_stderr" || at_failed=:
80872at_fn_diff_devnull "$at_stdout" || at_failed=:
80873at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1545"
80874$at_failed && at_fn_log_failure
80875$at_traceon; }
80876
80877{ set +x
80878$as_echo "$at_srcdir/run_file.at:1548: \$COBCRUN_DIRECT ./prog"
80879at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1548"
80880( $at_check_trace; $COBCRUN_DIRECT ./prog
80881) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80882at_status=$? at_failed=false
80883$at_check_filter
80884at_fn_diff_devnull "$at_stderr" || at_failed=:
80885at_fn_diff_devnull "$at_stdout" || at_failed=:
80886at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1548"
80887$at_failed && at_fn_log_failure
80888$at_traceon; }
80889
80890{ set +x
80891$as_echo "$at_srcdir/run_file.at:1549: test -f FILENAME"
80892at_fn_check_prepare_trace "run_file.at:1549"
80893( $at_check_trace; test -f FILENAME
80894) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80895at_status=$? at_failed=false
80896$at_check_filter
80897at_fn_diff_devnull "$at_stderr" || at_failed=:
80898at_fn_diff_devnull "$at_stdout" || at_failed=:
80899at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1549"
80900$at_failed && at_fn_log_failure
80901$at_traceon; }
80902
80903
80904  set +x
80905  $at_times_p && times >"$at_times_file"
80906) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80907read at_status <"$at_status_file"
80908#AT_STOP_744
80909#AT_START_745
80910at_fn_group_banner 745 'run_file.at:1554' \
80911  "ASSIGN directive" "                               " 4
80912at_xfail=no
80913(
80914  $as_echo "745. $at_setup_line: testing $at_desc ..."
80915  $at_traceon
80916
80917
80918
80919cat >prog.cob <<'_ATEOF'
80920
80921       IDENTIFICATION DIVISION.
80922       PROGRAM-ID. prog.
80923
80924       ENVIRONMENT DIVISION.
80925       INPUT-OUTPUT SECTION.
80926       FILE-CONTROL.
80927           SELECT f ASSIGN whatever
80928               ORGANIZATION LINE SEQUENTIAL.
80929      $SET ASSIGN "EXTERNAL"
80930           SELECT g ASSIGN whatever
80931               ORGANIZATION LINE SEQUENTIAL.
80932
80933       DATA DIVISION.
80934       FILE SECTION.
80935       FD  f.
80936       01  f-rec PIC XXX.
80937       FD  g.
80938       01  g-rec PIC XXX.
80939
80940       PROCEDURE DIVISION.
80941           MOVE "out.txt" TO whatever
80942
80943           OPEN OUTPUT f
80944           WRITE f-rec FROM "hi"
80945           CLOSE f
80946
80947           OPEN OUTPUT g
80948           WRITE g-rec FROM "hi"
80949           CLOSE g
80950           .
80951       END PROGRAM prog.
80952_ATEOF
80953
80954
80955{ set +x
80956$as_echo "$at_srcdir/run_file.at:1591: \$COMPILE -fassign-clause=dynamic prog.cob"
80957at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic prog.cob" "run_file.at:1591"
80958( $at_check_trace; $COMPILE -fassign-clause=dynamic prog.cob
80959) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80960at_status=$? at_failed=false
80961$at_check_filter
80962at_fn_diff_devnull "$at_stderr" || at_failed=:
80963at_fn_diff_devnull "$at_stdout" || at_failed=:
80964at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1591"
80965$at_failed && at_fn_log_failure
80966$at_traceon; }
80967
80968{ set +x
80969$as_echo "$at_srcdir/run_file.at:1592: \$COBCRUN_DIRECT ./prog"
80970at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1592"
80971( $at_check_trace; $COBCRUN_DIRECT ./prog
80972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
80973at_status=$? at_failed=false
80974$at_check_filter
80975at_fn_diff_devnull "$at_stderr" || at_failed=:
80976at_fn_diff_devnull "$at_stdout" || at_failed=:
80977at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1592"
80978$at_failed && at_fn_log_failure
80979$at_traceon; }
80980
80981
80982  set +x
80983  $at_times_p && times >"$at_times_file"
80984) 5>&1 2>&1 7>&- | eval $at_tee_pipe
80985read at_status <"$at_status_file"
80986#AT_STOP_745
80987#AT_START_746
80988at_fn_group_banner 746 'run_file.at:1597' \
80989  "ASSIGNfilename expansion" "                       " 4
80990at_xfail=no
80991(
80992  $as_echo "746. $at_setup_line: testing $at_desc ..."
80993  $at_traceon
80994
80995
80996
80997cat >prog.cob <<'_ATEOF'
80998
80999       IDENTIFICATION   DIVISION.
81000       PROGRAM-ID.      prog.
81001       ENVIRONMENT      DIVISION.
81002       INPUT-OUTPUT     SECTION.
81003       FILE-CONTROL.
81004       SELECT TEST-FILE ASSIGN "$DIR/FILENAME".
81005       DATA             DIVISION.
81006       FILE             SECTION.
81007       FD TEST-FILE.
81008       01 TEST-REC      PIC X(4).
81009       PROCEDURE        DIVISION.
81010           OPEN OUTPUT TEST-FILE.
81011           CLOSE TEST-FILE.
81012           STOP RUN.
81013_ATEOF
81014
81015
81016{ set +x
81017$as_echo "$at_srcdir/run_file.at:1617: \$COMPILE -ffilename-mapping prog.cob"
81018at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog.cob" "run_file.at:1617"
81019( $at_check_trace; $COMPILE -ffilename-mapping prog.cob
81020) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81021at_status=$? at_failed=false
81022$at_check_filter
81023at_fn_diff_devnull "$at_stderr" || at_failed=:
81024at_fn_diff_devnull "$at_stdout" || at_failed=:
81025at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1617"
81026$at_failed && at_fn_log_failure
81027$at_traceon; }
81028
81029{ set +x
81030$as_echo "$at_srcdir/run_file.at:1618: DIR=\".\" \$COBCRUN_DIRECT ./prog"
81031at_fn_check_prepare_dynamic "DIR=\".\" $COBCRUN_DIRECT ./prog" "run_file.at:1618"
81032( $at_check_trace; DIR="." $COBCRUN_DIRECT ./prog
81033) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81034at_status=$? at_failed=false
81035$at_check_filter
81036at_fn_diff_devnull "$at_stderr" || at_failed=:
81037at_fn_diff_devnull "$at_stdout" || at_failed=:
81038at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1618"
81039$at_failed && at_fn_log_failure
81040$at_traceon; }
81041
81042{ set +x
81043$as_echo "$at_srcdir/run_file.at:1619: test -f \"./FILENAME\" && rm -f \"./FILENAME\""
81044at_fn_check_prepare_trace "run_file.at:1619"
81045( $at_check_trace; test -f "./FILENAME" && rm -f "./FILENAME"
81046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81047at_status=$? at_failed=false
81048$at_check_filter
81049at_fn_diff_devnull "$at_stderr" || at_failed=:
81050at_fn_diff_devnull "$at_stdout" || at_failed=:
81051at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1619"
81052$at_failed && at_fn_log_failure
81053$at_traceon; }
81054
81055
81056  set +x
81057  $at_times_p && times >"$at_times_file"
81058) 5>&1 2>&1 7>&- | eval $at_tee_pipe
81059read at_status <"$at_status_file"
81060#AT_STOP_746
81061#AT_START_747
81062at_fn_group_banner 747 'run_file.at:1624' \
81063  "ASSIGN filename mapping" "                        " 4
81064at_xfail=no
81065(
81066  $as_echo "747. $at_setup_line: testing $at_desc ..."
81067  $at_traceon
81068
81069
81070
81071cat >prog.cob <<'_ATEOF'
81072
81073       IDENTIFICATION   DIVISION.
81074       PROGRAM-ID.      prog.
81075       ENVIRONMENT      DIVISION.
81076       INPUT-OUTPUT     SECTION.
81077       FILE-CONTROL.
81078       SELECT TEST-FILE ASSIGN "FILENAME".
81079       DATA             DIVISION.
81080       FILE             SECTION.
81081       FD TEST-FILE.
81082       01 TEST-REC      PIC X(4).
81083       PROCEDURE        DIVISION.
81084           OPEN OUTPUT TEST-FILE.
81085           CLOSE TEST-FILE.
81086           STOP RUN.
81087_ATEOF
81088
81089
81090cat >prog2.cob <<'_ATEOF'
81091
81092       IDENTIFICATION   DIVISION.
81093       PROGRAM-ID.      prog2.
81094       ENVIRONMENT      DIVISION.
81095       INPUT-OUTPUT     SECTION.
81096       FILE-CONTROL.
81097       SELECT TEST-FILE ASSIGN "FILENAME2".
81098       DATA             DIVISION.
81099       FILE             SECTION.
81100       FD TEST-FILE.
81101       01 TEST-REC      PIC X(4).
81102       PROCEDURE        DIVISION.
81103           OPEN OUTPUT TEST-FILE.
81104           CLOSE TEST-FILE.
81105           STOP RUN.
81106_ATEOF
81107
81108
81109{ set +x
81110$as_echo "$at_srcdir/run_file.at:1661: \$COMPILE -fno-filename-mapping prog.cob"
81111at_fn_check_prepare_dynamic "$COMPILE -fno-filename-mapping prog.cob" "run_file.at:1661"
81112( $at_check_trace; $COMPILE -fno-filename-mapping prog.cob
81113) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81114at_status=$? at_failed=false
81115$at_check_filter
81116at_fn_diff_devnull "$at_stderr" || at_failed=:
81117at_fn_diff_devnull "$at_stdout" || at_failed=:
81118at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1661"
81119$at_failed && at_fn_log_failure
81120$at_traceon; }
81121
81122{ set +x
81123$as_echo "$at_srcdir/run_file.at:1662: DD_FILENAME=\"x\" \$COBCRUN_DIRECT ./prog"
81124at_fn_check_prepare_dynamic "DD_FILENAME=\"x\" $COBCRUN_DIRECT ./prog" "run_file.at:1662"
81125( $at_check_trace; DD_FILENAME="x" $COBCRUN_DIRECT ./prog
81126) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81127at_status=$? at_failed=false
81128$at_check_filter
81129at_fn_diff_devnull "$at_stderr" || at_failed=:
81130at_fn_diff_devnull "$at_stdout" || at_failed=:
81131at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1662"
81132$at_failed && at_fn_log_failure
81133$at_traceon; }
81134
81135{ set +x
81136$as_echo "$at_srcdir/run_file.at:1663: test -f \"x\""
81137at_fn_check_prepare_trace "run_file.at:1663"
81138( $at_check_trace; test -f "x"
81139) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81140at_status=$? at_failed=false
81141$at_check_filter
81142at_fn_diff_devnull "$at_stderr" || at_failed=:
81143at_fn_diff_devnull "$at_stdout" || at_failed=:
81144at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1663"
81145$at_failed && at_fn_log_failure
81146$at_traceon; }
81147
81148{ set +x
81149$as_echo "$at_srcdir/run_file.at:1664: test -f \"FILENAME\""
81150at_fn_check_prepare_trace "run_file.at:1664"
81151( $at_check_trace; test -f "FILENAME"
81152) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81153at_status=$? at_failed=false
81154$at_check_filter
81155at_fn_diff_devnull "$at_stderr" || at_failed=:
81156at_fn_diff_devnull "$at_stdout" || at_failed=:
81157at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1664"
81158$at_failed && at_fn_log_failure
81159$at_traceon; }
81160
81161
81162{ set +x
81163$as_echo "$at_srcdir/run_file.at:1666: \$COMPILE -ffilename-mapping prog2.cob"
81164at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog2.cob" "run_file.at:1666"
81165( $at_check_trace; $COMPILE -ffilename-mapping prog2.cob
81166) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81167at_status=$? at_failed=false
81168$at_check_filter
81169at_fn_diff_devnull "$at_stderr" || at_failed=:
81170at_fn_diff_devnull "$at_stdout" || at_failed=:
81171at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1666"
81172$at_failed && at_fn_log_failure
81173$at_traceon; }
81174
81175{ set +x
81176$as_echo "$at_srcdir/run_file.at:1667: DD_FILENAME2=\"x\" \$COBCRUN_DIRECT ./prog2"
81177at_fn_check_prepare_dynamic "DD_FILENAME2=\"x\" $COBCRUN_DIRECT ./prog2" "run_file.at:1667"
81178( $at_check_trace; DD_FILENAME2="x" $COBCRUN_DIRECT ./prog2
81179) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81180at_status=$? at_failed=false
81181$at_check_filter
81182at_fn_diff_devnull "$at_stderr" || at_failed=:
81183at_fn_diff_devnull "$at_stdout" || at_failed=:
81184at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1667"
81185$at_failed && at_fn_log_failure
81186$at_traceon; }
81187
81188{ set +x
81189$as_echo "$at_srcdir/run_file.at:1668: test -f \"FILENAME2\""
81190at_fn_check_prepare_trace "run_file.at:1668"
81191( $at_check_trace; test -f "FILENAME2"
81192) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81193at_status=$? at_failed=false
81194$at_check_filter
81195at_fn_diff_devnull "$at_stderr" || at_failed=:
81196at_fn_diff_devnull "$at_stdout" || at_failed=:
81197at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1668"
81198$at_failed && at_fn_log_failure
81199$at_traceon; }
81200
81201{ set +x
81202$as_echo "$at_srcdir/run_file.at:1669: test -f \"x\""
81203at_fn_check_prepare_trace "run_file.at:1669"
81204( $at_check_trace; test -f "x"
81205) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81206at_status=$? at_failed=false
81207$at_check_filter
81208at_fn_diff_devnull "$at_stderr" || at_failed=:
81209at_fn_diff_devnull "$at_stdout" || at_failed=:
81210at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1669"
81211$at_failed && at_fn_log_failure
81212$at_traceon; }
81213
81214{ set +x
81215$as_echo "$at_srcdir/run_file.at:1670: dd_FILENAME2=\"y\" \$COBCRUN_DIRECT ./prog2"
81216at_fn_check_prepare_dynamic "dd_FILENAME2=\"y\" $COBCRUN_DIRECT ./prog2" "run_file.at:1670"
81217( $at_check_trace; dd_FILENAME2="y" $COBCRUN_DIRECT ./prog2
81218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81219at_status=$? at_failed=false
81220$at_check_filter
81221at_fn_diff_devnull "$at_stderr" || at_failed=:
81222at_fn_diff_devnull "$at_stdout" || at_failed=:
81223at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1670"
81224$at_failed && at_fn_log_failure
81225$at_traceon; }
81226
81227{ set +x
81228$as_echo "$at_srcdir/run_file.at:1671: test -f \"y\""
81229at_fn_check_prepare_trace "run_file.at:1671"
81230( $at_check_trace; test -f "y"
81231) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81232at_status=$? at_failed=false
81233$at_check_filter
81234at_fn_diff_devnull "$at_stderr" || at_failed=:
81235at_fn_diff_devnull "$at_stdout" || at_failed=:
81236at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1671"
81237$at_failed && at_fn_log_failure
81238$at_traceon; }
81239
81240{ set +x
81241$as_echo "$at_srcdir/run_file.at:1672: FILENAME2=\"z\" \$COBCRUN_DIRECT ./prog2"
81242at_fn_check_prepare_dynamic "FILENAME2=\"z\" $COBCRUN_DIRECT ./prog2" "run_file.at:1672"
81243( $at_check_trace; FILENAME2="z" $COBCRUN_DIRECT ./prog2
81244) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81245at_status=$? at_failed=false
81246$at_check_filter
81247at_fn_diff_devnull "$at_stderr" || at_failed=:
81248at_fn_diff_devnull "$at_stdout" || at_failed=:
81249at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1672"
81250$at_failed && at_fn_log_failure
81251$at_traceon; }
81252
81253{ set +x
81254$as_echo "$at_srcdir/run_file.at:1673: test -f \"z\""
81255at_fn_check_prepare_trace "run_file.at:1673"
81256( $at_check_trace; test -f "z"
81257) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81258at_status=$? at_failed=false
81259$at_check_filter
81260at_fn_diff_devnull "$at_stderr" || at_failed=:
81261at_fn_diff_devnull "$at_stdout" || at_failed=:
81262at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1673"
81263$at_failed && at_fn_log_failure
81264$at_traceon; }
81265
81266{ set +x
81267$as_echo "$at_srcdir/run_file.at:1674: \$COBCRUN_DIRECT ./prog2"
81268at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:1674"
81269( $at_check_trace; $COBCRUN_DIRECT ./prog2
81270) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81271at_status=$? at_failed=false
81272$at_check_filter
81273at_fn_diff_devnull "$at_stderr" || at_failed=:
81274at_fn_diff_devnull "$at_stdout" || at_failed=:
81275at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1674"
81276$at_failed && at_fn_log_failure
81277$at_traceon; }
81278
81279{ set +x
81280$as_echo "$at_srcdir/run_file.at:1675: test -f \"FILENAME2\""
81281at_fn_check_prepare_trace "run_file.at:1675"
81282( $at_check_trace; test -f "FILENAME2"
81283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81284at_status=$? at_failed=false
81285$at_check_filter
81286at_fn_diff_devnull "$at_stderr" || at_failed=:
81287at_fn_diff_devnull "$at_stdout" || at_failed=:
81288at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1675"
81289$at_failed && at_fn_log_failure
81290$at_traceon; }
81291
81292
81293cat >prog3.cob <<'_ATEOF'
81294
81295       IDENTIFICATION DIVISION.
81296       PROGRAM-ID. prog3.
81297       ENVIRONMENT DIVISION.
81298       CONFIGURATION SECTION.
81299       INPUT-OUTPUT SECTION.
81300       FILE-CONTROL.
81301           SELECT OPTIONAL INFILE ASSIGN TO "MYFILE"
81302                ORGANIZATION IS RELATIVE
81303                ACCESS IS SEQUENTIAL
81304                FILE STATUS IS WSFS.
81305       DATA DIVISION.
81306       FILE SECTION.
81307       FD  INFILE.
81308       01  INREC             PIC X(80).
81309       WORKING-STORAGE SECTION.
81310       01  WSFS              PIC X(2).
81311       PROCEDURE DIVISION.
81312      *
81313      *    open missing file
81314           OPEN INPUT INFILE
81315           DISPLAY "STATUS OPENI " WSFS
81316           CLOSE INFILE
81317      *
81318      *    create missing file
81319           OPEN OUTPUT INFILE
81320           DISPLAY "STATUS OPENO " WSFS
81321           CLOSE INFILE
81322      *
81323           STOP RUN.
81324_ATEOF
81325
81326
81327{ set +x
81328$as_echo "$at_srcdir/run_file.at:1709: \$COMPILE prog3.cob"
81329at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_file.at:1709"
81330( $at_check_trace; $COMPILE prog3.cob
81331) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81332at_status=$? at_failed=false
81333$at_check_filter
81334at_fn_diff_devnull "$at_stderr" || at_failed=:
81335at_fn_diff_devnull "$at_stdout" || at_failed=:
81336at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1709"
81337$at_failed && at_fn_log_failure
81338$at_traceon; }
81339
81340
81341{ set +x
81342$as_echo "$at_srcdir/run_file.at:1711: \$COBCRUN_DIRECT ./prog3"
81343at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_file.at:1711"
81344( $at_check_trace; $COBCRUN_DIRECT ./prog3
81345) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81346at_status=$? at_failed=false
81347$at_check_filter
81348at_fn_diff_devnull "$at_stderr" || at_failed=:
81349echo >>"$at_stdout"; $as_echo "STATUS OPENI 05
81350STATUS OPENO 00
81351" | \
81352  $at_diff - "$at_stdout" || at_failed=:
81353at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1711"
81354$at_failed && at_fn_log_failure
81355$at_traceon; }
81356
81357{ set +x
81358$as_echo "$at_srcdir/run_file.at:1715: test -f \"MYFILE\""
81359at_fn_check_prepare_trace "run_file.at:1715"
81360( $at_check_trace; test -f "MYFILE"
81361) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81362at_status=$? at_failed=false
81363$at_check_filter
81364at_fn_diff_devnull "$at_stderr" || at_failed=:
81365at_fn_diff_devnull "$at_stdout" || at_failed=:
81366at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1715"
81367$at_failed && at_fn_log_failure
81368$at_traceon; }
81369
81370
81371{ set +x
81372$as_echo "$at_srcdir/run_file.at:1717: \$COBCRUN_DIRECT ./prog3"
81373at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_file.at:1717"
81374( $at_check_trace; $COBCRUN_DIRECT ./prog3
81375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81376at_status=$? at_failed=false
81377$at_check_filter
81378at_fn_diff_devnull "$at_stderr" || at_failed=:
81379echo >>"$at_stdout"; $as_echo "STATUS OPENI 00
81380STATUS OPENO 00
81381" | \
81382  $at_diff - "$at_stdout" || at_failed=:
81383at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1717"
81384$at_failed && at_fn_log_failure
81385$at_traceon; }
81386
81387
81388{ set +x
81389$as_echo "$at_srcdir/run_file.at:1722: MYFILE=\"TSTFILE\" \$COBCRUN_DIRECT ./prog3"
81390at_fn_check_prepare_dynamic "MYFILE=\"TSTFILE\" $COBCRUN_DIRECT ./prog3" "run_file.at:1722"
81391( $at_check_trace; MYFILE="TSTFILE" $COBCRUN_DIRECT ./prog3
81392) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81393at_status=$? at_failed=false
81394$at_check_filter
81395at_fn_diff_devnull "$at_stderr" || at_failed=:
81396echo >>"$at_stdout"; $as_echo "STATUS OPENI 05
81397STATUS OPENO 00
81398" | \
81399  $at_diff - "$at_stdout" || at_failed=:
81400at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1722"
81401$at_failed && at_fn_log_failure
81402$at_traceon; }
81403
81404{ set +x
81405$as_echo "$at_srcdir/run_file.at:1726: test -f \"TSTFILE\""
81406at_fn_check_prepare_trace "run_file.at:1726"
81407( $at_check_trace; test -f "TSTFILE"
81408) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81409at_status=$? at_failed=false
81410$at_check_filter
81411at_fn_diff_devnull "$at_stderr" || at_failed=:
81412at_fn_diff_devnull "$at_stdout" || at_failed=:
81413at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1726"
81414$at_failed && at_fn_log_failure
81415$at_traceon; }
81416
81417
81418{ set +x
81419$as_echo "$at_srcdir/run_file.at:1728: dd_MYFILE=\"TSTFILE2\" \$COBCRUN_DIRECT ./prog3"
81420at_fn_check_prepare_dynamic "dd_MYFILE=\"TSTFILE2\" $COBCRUN_DIRECT ./prog3" "run_file.at:1728"
81421( $at_check_trace; dd_MYFILE="TSTFILE2" $COBCRUN_DIRECT ./prog3
81422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81423at_status=$? at_failed=false
81424$at_check_filter
81425at_fn_diff_devnull "$at_stderr" || at_failed=:
81426echo >>"$at_stdout"; $as_echo "STATUS OPENI 05
81427STATUS OPENO 00
81428" | \
81429  $at_diff - "$at_stdout" || at_failed=:
81430at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1728"
81431$at_failed && at_fn_log_failure
81432$at_traceon; }
81433
81434{ set +x
81435$as_echo "$at_srcdir/run_file.at:1732: test -f \"TSTFILE2\""
81436at_fn_check_prepare_trace "run_file.at:1732"
81437( $at_check_trace; test -f "TSTFILE2"
81438) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81439at_status=$? at_failed=false
81440$at_check_filter
81441at_fn_diff_devnull "$at_stderr" || at_failed=:
81442at_fn_diff_devnull "$at_stdout" || at_failed=:
81443at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1732"
81444$at_failed && at_fn_log_failure
81445$at_traceon; }
81446
81447
81448{ set +x
81449$as_echo "$at_srcdir/run_file.at:1734: DD_MYFILE=\"TSTFILE3\" \$COBCRUN_DIRECT ./prog3"
81450at_fn_check_prepare_dynamic "DD_MYFILE=\"TSTFILE3\" $COBCRUN_DIRECT ./prog3" "run_file.at:1734"
81451( $at_check_trace; DD_MYFILE="TSTFILE3" $COBCRUN_DIRECT ./prog3
81452) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81453at_status=$? at_failed=false
81454$at_check_filter
81455at_fn_diff_devnull "$at_stderr" || at_failed=:
81456echo >>"$at_stdout"; $as_echo "STATUS OPENI 05
81457STATUS OPENO 00
81458" | \
81459  $at_diff - "$at_stdout" || at_failed=:
81460at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1734"
81461$at_failed && at_fn_log_failure
81462$at_traceon; }
81463
81464{ set +x
81465$as_echo "$at_srcdir/run_file.at:1738: test -f \"TSTFILE3\""
81466at_fn_check_prepare_trace "run_file.at:1738"
81467( $at_check_trace; test -f "TSTFILE3"
81468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81469at_status=$? at_failed=false
81470$at_check_filter
81471at_fn_diff_devnull "$at_stderr" || at_failed=:
81472at_fn_diff_devnull "$at_stdout" || at_failed=:
81473at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1738"
81474$at_failed && at_fn_log_failure
81475$at_traceon; }
81476
81477
81478{ set +x
81479$as_echo "$at_srcdir/run_file.at:1740: DD_MYFILE=\"./nosubhere/TSTFILE\" \$COBCRUN_DIRECT ./prog3"
81480at_fn_check_prepare_dynamic "DD_MYFILE=\"./nosubhere/TSTFILE\" $COBCRUN_DIRECT ./prog3" "run_file.at:1740"
81481( $at_check_trace; DD_MYFILE="./nosubhere/TSTFILE" $COBCRUN_DIRECT ./prog3
81482) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81483at_status=$? at_failed=false
81484$at_check_filter
81485at_fn_diff_devnull "$at_stderr" || at_failed=:
81486echo >>"$at_stdout"; $as_echo "STATUS OPENI 05
81487STATUS OPENO 30
81488" | \
81489  $at_diff - "$at_stdout" || at_failed=:
81490at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1740"
81491$at_failed && at_fn_log_failure
81492$at_traceon; }
81493
81494
81495cat >prog4.cob <<'_ATEOF'
81496
81497       IDENTIFICATION DIVISION.
81498       PROGRAM-ID. prog4.
81499       ENVIRONMENT DIVISION.
81500       CONFIGURATION SECTION.
81501       INPUT-OUTPUT SECTION.
81502       FILE-CONTROL.
81503           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
81504                   ORGANIZATION  IS LINE SEQUENTIAL
81505                   FILE STATUS   IS WSFS.
81506           SELECT  FILE1 ASSIGN  TO "MYFILE1"
81507                   ORGANIZATION  IS LINE SEQUENTIAL
81508                   FILE STATUS   IS WSFS.
81509           SELECT  FILE2 ASSIGN  TO FILENAME
81510                   ORGANIZATION  IS LINE SEQUENTIAL
81511                   FILE STATUS   IS WSFS.
81512       DATA DIVISION.
81513       FILE SECTION.
81514       FD  FILE0.
81515       01  F0REC             PIC X(80).
81516       FD  FILE1.
81517       01  F1REC             PIC X(80).
81518       FD  FILE2.
81519       01  F2REC             PIC X(80).
81520       WORKING-STORAGE SECTION.
81521       77  FILENAME          PIC X(80) VALUE "MYFILE2".
81522       01  WSFS              PIC X(2).
81523       PROCEDURE DIVISION.
81524      *
81525           OPEN OUTPUT FILE0
81526           DISPLAY "STATUS OPENO 0 " WSFS
81527           OPEN OUTPUT FILE1
81528           DISPLAY "STATUS OPENO 1 " WSFS
81529           OPEN OUTPUT FILE2
81530           DISPLAY "STATUS OPENO 2 " WSFS
81531      *
81532           STOP RUN.
81533_ATEOF
81534
81535
81536{ set +x
81537$as_echo "$at_srcdir/run_file.at:1784: \$COMPILE prog4.cob"
81538at_fn_check_prepare_dynamic "$COMPILE prog4.cob" "run_file.at:1784"
81539( $at_check_trace; $COMPILE prog4.cob
81540) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81541at_status=$? at_failed=false
81542$at_check_filter
81543at_fn_diff_devnull "$at_stderr" || at_failed=:
81544at_fn_diff_devnull "$at_stdout" || at_failed=:
81545at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1784"
81546$at_failed && at_fn_log_failure
81547$at_traceon; }
81548
81549
81550{ set +x
81551$as_echo "$at_srcdir/run_file.at:1786: DD_MYFILE1=\"./nosubhere/NOFILE1\" DD_MYFILE2=\"./nosubhere/NOFILE2\" \\
81552\$COBCRUN_DIRECT ./prog4"
81553at_fn_check_prepare_notrace 'an embedded newline' "run_file.at:1786"
81554( $at_check_trace; DD_MYFILE1="./nosubhere/NOFILE1" DD_MYFILE2="./nosubhere/NOFILE2" \
81555$COBCRUN_DIRECT ./prog4
81556) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81557at_status=$? at_failed=false
81558$at_check_filter
81559at_fn_diff_devnull "$at_stderr" || at_failed=:
81560echo >>"$at_stdout"; $as_echo "STATUS OPENO 0 30
81561STATUS OPENO 1 30
81562STATUS OPENO 2 30
81563" | \
81564  $at_diff - "$at_stdout" || at_failed=:
81565at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1786"
81566$at_failed && at_fn_log_failure
81567$at_traceon; }
81568
81569
81570  set +x
81571  $at_times_p && times >"$at_times_file"
81572) 5>&1 2>&1 7>&- | eval $at_tee_pipe
81573read at_status <"$at_status_file"
81574#AT_STOP_747
81575#AT_START_748
81576at_fn_group_banner 748 'run_file.at:1796' \
81577  "ASSIGN with COB_FILE_PATH" "                      " 4
81578at_xfail=no
81579(
81580  $as_echo "748. $at_setup_line: testing $at_desc ..."
81581  $at_traceon
81582
81583
81584
81585cat >prog.cob <<'_ATEOF'
81586
81587       IDENTIFICATION   DIVISION.
81588       PROGRAM-ID.      prog.
81589       ENVIRONMENT      DIVISION.
81590       INPUT-OUTPUT     SECTION.
81591       FILE-CONTROL.
81592       SELECT TEST-FILE ASSIGN "FILENAMEX".
81593       DATA             DIVISION.
81594       FILE             SECTION.
81595       FD TEST-FILE.
81596       01 TEST-REC      PIC X(4).
81597       PROCEDURE        DIVISION.
81598           OPEN OUTPUT TEST-FILE.
81599           CLOSE TEST-FILE.
81600           STOP RUN.
81601_ATEOF
81602
81603
81604{ set +x
81605$as_echo "$at_srcdir/run_file.at:1816: \$COMPILE -ffilename-mapping prog.cob"
81606at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog.cob" "run_file.at:1816"
81607( $at_check_trace; $COMPILE -ffilename-mapping prog.cob
81608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81609at_status=$? at_failed=false
81610$at_check_filter
81611at_fn_diff_devnull "$at_stderr" || at_failed=:
81612at_fn_diff_devnull "$at_stdout" || at_failed=:
81613at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1816"
81614$at_failed && at_fn_log_failure
81615$at_traceon; }
81616
81617{ set +x
81618$as_echo "$at_srcdir/run_file.at:1817: rm -rf \"tstdir\" && mkdir \"tstdir\""
81619at_fn_check_prepare_trace "run_file.at:1817"
81620( $at_check_trace; rm -rf "tstdir" && mkdir "tstdir"
81621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81622at_status=$? at_failed=false
81623$at_check_filter
81624at_fn_diff_devnull "$at_stderr" || at_failed=:
81625at_fn_diff_devnull "$at_stdout" || at_failed=:
81626at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1817"
81627$at_failed && at_fn_log_failure
81628$at_traceon; }
81629
81630{ set +x
81631$as_echo "$at_srcdir/run_file.at:1818: COB_FILE_PATH=\"tstdir\" \$COBCRUN_DIRECT ./prog"
81632at_fn_check_prepare_dynamic "COB_FILE_PATH=\"tstdir\" $COBCRUN_DIRECT ./prog" "run_file.at:1818"
81633( $at_check_trace; COB_FILE_PATH="tstdir" $COBCRUN_DIRECT ./prog
81634) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81635at_status=$? at_failed=false
81636$at_check_filter
81637at_fn_diff_devnull "$at_stderr" || at_failed=:
81638at_fn_diff_devnull "$at_stdout" || at_failed=:
81639at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1818"
81640$at_failed && at_fn_log_failure
81641$at_traceon; }
81642
81643{ set +x
81644$as_echo "$at_srcdir/run_file.at:1819: test -f \"tstdir/FILENAMEX\" && rm -f \"tstdir/FILENAMEX\""
81645at_fn_check_prepare_trace "run_file.at:1819"
81646( $at_check_trace; test -f "tstdir/FILENAMEX" && rm -f "tstdir/FILENAMEX"
81647) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81648at_status=$? at_failed=false
81649$at_check_filter
81650at_fn_diff_devnull "$at_stderr" || at_failed=:
81651at_fn_diff_devnull "$at_stdout" || at_failed=:
81652at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1819"
81653$at_failed && at_fn_log_failure
81654$at_traceon; }
81655
81656{ set +x
81657$as_echo "$at_srcdir/run_file.at:1820: COB_FILE_PATH=\"tstdir/\" \$COBCRUN_DIRECT ./prog"
81658at_fn_check_prepare_dynamic "COB_FILE_PATH=\"tstdir/\" $COBCRUN_DIRECT ./prog" "run_file.at:1820"
81659( $at_check_trace; COB_FILE_PATH="tstdir/" $COBCRUN_DIRECT ./prog
81660) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81661at_status=$? at_failed=false
81662$at_check_filter
81663at_fn_diff_devnull "$at_stderr" || at_failed=:
81664at_fn_diff_devnull "$at_stdout" || at_failed=:
81665at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1820"
81666$at_failed && at_fn_log_failure
81667$at_traceon; }
81668
81669{ set +x
81670$as_echo "$at_srcdir/run_file.at:1821: test -f \"tstdir/FILENAMEX\""
81671at_fn_check_prepare_trace "run_file.at:1821"
81672( $at_check_trace; test -f "tstdir/FILENAMEX"
81673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81674at_status=$? at_failed=false
81675$at_check_filter
81676at_fn_diff_devnull "$at_stderr" || at_failed=:
81677at_fn_diff_devnull "$at_stdout" || at_failed=:
81678at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1821"
81679$at_failed && at_fn_log_failure
81680$at_traceon; }
81681
81682
81683# FIXME: on OPEN we should also output the full filename (if any) leading to the error
81684{ set +x
81685$as_echo "$at_srcdir/run_file.at:1824: COB_FILE_PATH=\"./nosubhere\" \$COBCRUN_DIRECT ./prog 2>prog.err"
81686at_fn_check_prepare_dynamic "COB_FILE_PATH=\"./nosubhere\" $COBCRUN_DIRECT ./prog 2>prog.err" "run_file.at:1824"
81687( $at_check_trace; COB_FILE_PATH="./nosubhere" $COBCRUN_DIRECT ./prog 2>prog.err
81688) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81689at_status=$? at_failed=false
81690$at_check_filter
81691at_fn_diff_devnull "$at_stderr" || at_failed=:
81692at_fn_diff_devnull "$at_stdout" || at_failed=:
81693at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1824"
81694$at_failed && at_fn_log_failure
81695$at_traceon; }
81696
81697# workaround for testing windows-builds...
81698{ set +x
81699$as_echo "$at_srcdir/run_file.at:1826: cat prog.err | tr '\\\\' '/'"
81700at_fn_check_prepare_notrace 'a shell pipeline' "run_file.at:1826"
81701( $at_check_trace; cat prog.err | tr '\\' '/'
81702) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81703at_status=$? at_failed=false
81704$at_check_filter
81705at_fn_diff_devnull "$at_stderr" || at_failed=:
81706echo >>"$at_stdout"; $as_echo "libcob: prog.cob:13: error: permanent file error (status = 30) for file TEST-FILE ('FILENAMEX' => ./nosubhere/FILENAMEX) on OPEN
81707" | \
81708  $at_diff - "$at_stdout" || at_failed=:
81709at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1826"
81710$at_failed && at_fn_log_failure
81711$at_traceon; }
81712
81713
81714  set +x
81715  $at_times_p && times >"$at_times_file"
81716) 5>&1 2>&1 7>&- | eval $at_tee_pipe
81717read at_status <"$at_status_file"
81718#AT_STOP_748
81719#AT_START_749
81720at_fn_group_banner 749 'run_file.at:1833' \
81721  "ASSIGN DYNAMIC with LOCAL-STORAGE item" "         " 4
81722at_xfail=no
81723(
81724  $as_echo "749. $at_setup_line: testing $at_desc ..."
81725  $at_traceon
81726
81727
81728
81729cat >test.txt <<'_ATEOF'
81730hello
81731_ATEOF
81732
81733
81734cat >prog.cob <<'_ATEOF'
81735
81736       IDENTIFICATION   DIVISION.
81737       PROGRAM-ID.      prog.
81738       ENVIRONMENT      DIVISION.
81739       INPUT-OUTPUT     SECTION.
81740       FILE-CONTROL.
81741       SELECT test-file ASSIGN path
81742                        ORGANIZATION LINE SEQUENTIAL.
81743       DATA             DIVISION.
81744       FILE	            SECTION.
81745       FD  test-file.
81746       01  test-rec     PIC X(5).
81747       LOCAL-STORAGE    SECTION.
81748       01  path         PIC X(10) VALUE "test.txt".
81749       PROCEDURE        DIVISION.
81750           OPEN INPUT test-file
81751           READ test-file   END-READ
81752           IF test-rec NOT = "hello"
81753              DISPLAY test-rec END-DISPLAY
81754           END-IF
81755           CLOSE test-file
81756           STOP RUN.
81757_ATEOF
81758
81759
81760{ set +x
81761$as_echo "$at_srcdir/run_file.at:1864: \$COMPILE prog.cob"
81762at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1864"
81763( $at_check_trace; $COMPILE prog.cob
81764) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81765at_status=$? at_failed=false
81766$at_check_filter
81767at_fn_diff_devnull "$at_stderr" || at_failed=:
81768at_fn_diff_devnull "$at_stdout" || at_failed=:
81769at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1864"
81770$at_failed && at_fn_log_failure
81771$at_traceon; }
81772
81773{ set +x
81774$as_echo "$at_srcdir/run_file.at:1865: \$COBCRUN_DIRECT ./prog"
81775at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1865"
81776( $at_check_trace; $COBCRUN_DIRECT ./prog
81777) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81778at_status=$? at_failed=false
81779$at_check_filter
81780at_fn_diff_devnull "$at_stderr" || at_failed=:
81781at_fn_diff_devnull "$at_stdout" || at_failed=:
81782at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1865"
81783$at_failed && at_fn_log_failure
81784$at_traceon; }
81785
81786
81787  set +x
81788  $at_times_p && times >"$at_times_file"
81789) 5>&1 2>&1 7>&- | eval $at_tee_pipe
81790read at_status <"$at_status_file"
81791#AT_STOP_749
81792#AT_START_750
81793at_fn_group_banner 750 'run_file.at:1870' \
81794  "ASSIGN DYNAMIC with LOCAL-STORAGE item and INITIAL prog" "" 4
81795at_xfail=no
81796(
81797  $as_echo "750. $at_setup_line: testing $at_desc ..."
81798  $at_traceon
81799
81800
81801
81802# Files are initialised in a different location in INITIAL program, hence the
81803# need for a separate test.
81804
81805cat >test.txt <<'_ATEOF'
81806hello
81807_ATEOF
81808
81809
81810cat >prog.cob <<'_ATEOF'
81811
81812       IDENTIFICATION   DIVISION.
81813       PROGRAM-ID.      prog INITIAL.
81814       ENVIRONMENT      DIVISION.
81815       INPUT-OUTPUT     SECTION.
81816       FILE-CONTROL.
81817       SELECT test-file ASSIGN path
81818                        ORGANIZATION LINE SEQUENTIAL.
81819       DATA             DIVISION.
81820       FILE	            SECTION.
81821       FD  test-file.
81822       01  test-rec     PIC X(5).
81823       LOCAL-STORAGE    SECTION.
81824       01  path         PIC X(10) VALUE "test.txt".
81825       PROCEDURE        DIVISION.
81826           OPEN INPUT test-file
81827           READ test-file   END-READ
81828           IF test-rec NOT = "hello"
81829              DISPLAY test-rec END-DISPLAY
81830           END-IF
81831           CLOSE test-file
81832           STOP RUN.
81833_ATEOF
81834
81835
81836{ set +x
81837$as_echo "$at_srcdir/run_file.at:1904: \$COMPILE prog.cob"
81838at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1904"
81839( $at_check_trace; $COMPILE prog.cob
81840) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81841at_status=$? at_failed=false
81842$at_check_filter
81843at_fn_diff_devnull "$at_stderr" || at_failed=:
81844at_fn_diff_devnull "$at_stdout" || at_failed=:
81845at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1904"
81846$at_failed && at_fn_log_failure
81847$at_traceon; }
81848
81849{ set +x
81850$as_echo "$at_srcdir/run_file.at:1905: \$COBCRUN_DIRECT ./prog"
81851at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1905"
81852( $at_check_trace; $COBCRUN_DIRECT ./prog
81853) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81854at_status=$? at_failed=false
81855$at_check_filter
81856at_fn_diff_devnull "$at_stderr" || at_failed=:
81857at_fn_diff_devnull "$at_stdout" || at_failed=:
81858at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1905"
81859$at_failed && at_fn_log_failure
81860$at_traceon; }
81861
81862
81863  set +x
81864  $at_times_p && times >"$at_times_file"
81865) 5>&1 2>&1 7>&- | eval $at_tee_pipe
81866read at_status <"$at_status_file"
81867#AT_STOP_750
81868#AT_START_751
81869at_fn_group_banner 751 'run_file.at:1910' \
81870  "ASSIGN DYNAMIC with BASED data item" "            " 4
81871at_xfail=no
81872(
81873  $as_echo "751. $at_setup_line: testing $at_desc ..."
81874  $at_traceon
81875
81876
81877
81878cat >TEST-FILE <<'_ATEOF'
81879hello
81880_ATEOF
81881
81882
81883cat >prog.cob <<'_ATEOF'
81884
81885       IDENTIFICATION   DIVISION.
81886       PROGRAM-ID.      prog.
81887       ENVIRONMENT      DIVISION.
81888       INPUT-OUTPUT     SECTION.
81889       FILE-CONTROL.
81890       SELECT test-file ASSIGN path
81891                        ORGANIZATION LINE SEQUENTIAL.
81892       DATA             DIVISION.
81893       FILE	            SECTION.
81894       FD  test-file.
81895       01  test-rec     PIC X(5).
81896       WORKING-STORAGE  SECTION.
81897       01  path         BASED PIC X(10).
81898       01  x            PIC X.
81899       PROCEDURE        DIVISION CHAINING x.
81900           IF x NOT = SPACES
81901              ALLOCATE path
81902              MOVE "TEST-FILE" TO path
81903              OPEN INPUT test-file
81904              FREE path
81905           ELSE
81906              OPEN INPUT test-file
81907           END-IF
81908           READ test-file   END-READ
81909           IF test-rec NOT = "hello"
81910              DISPLAY test-rec END-DISPLAY
81911           END-IF
81912           CLOSE test-file
81913           STOP RUN.
81914_ATEOF
81915
81916
81917cat >prog2.cob <<'_ATEOF'
81918
81919       IDENTIFICATION   DIVISION.
81920       PROGRAM-ID.      prog2.
81921       ENVIRONMENT      DIVISION.
81922       INPUT-OUTPUT     SECTION.
81923       FILE-CONTROL.
81924       SELECT test-file ASSIGN path
81925                        ORGANIZATION LINE SEQUENTIAL
81926                        FILE STATUS TEST-STAT.
81927       DATA             DIVISION.
81928       FILE	            SECTION.
81929       FD  test-file.
81930       01  test-rec     PIC X(5).
81931       WORKING-STORAGE  SECTION.
81932       01  path         BASED PIC X(10).
81933       01  test-stat    PIC X(2) VALUE "XX".
81934       PROCEDURE        DIVISION.
81935           OPEN INPUT test-file
81936           IF TEST-STAT NOT = '31'
81937              DISPLAY 'BAD OPEN, STATUS "' test-stat '"' END-DISPLAY
81938           END-IF
81939           READ test-file   END-READ
81940           IF TEST-STAT NOT = '47'
81941              DISPLAY 'BAD READ, STATUS "' test-stat '"' END-DISPLAY
81942           END-IF
81943           CLOSE test-file
81944           STOP RUN.
81945_ATEOF
81946
81947
81948{ set +x
81949$as_echo "$at_srcdir/run_file.at:1978: \$COMPILE prog.cob"
81950at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1978"
81951( $at_check_trace; $COMPILE prog.cob
81952) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81953at_status=$? at_failed=false
81954$at_check_filter
81955at_fn_diff_devnull "$at_stderr" || at_failed=:
81956at_fn_diff_devnull "$at_stdout" || at_failed=:
81957at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1978"
81958$at_failed && at_fn_log_failure
81959$at_traceon; }
81960
81961{ set +x
81962$as_echo "$at_srcdir/run_file.at:1979: \$COBCRUN_DIRECT ./prog X"
81963at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X" "run_file.at:1979"
81964( $at_check_trace; $COBCRUN_DIRECT ./prog X
81965) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81966at_status=$? at_failed=false
81967$at_check_filter
81968at_fn_diff_devnull "$at_stderr" || at_failed=:
81969at_fn_diff_devnull "$at_stdout" || at_failed=:
81970at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1979"
81971$at_failed && at_fn_log_failure
81972$at_traceon; }
81973
81974{ set +x
81975$as_echo "$at_srcdir/run_file.at:1980: \$COBCRUN_DIRECT ./prog"
81976at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1980"
81977( $at_check_trace; $COBCRUN_DIRECT ./prog
81978) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81979at_status=$? at_failed=false
81980$at_check_filter
81981echo >>"$at_stderr"; $as_echo "libcob: prog.cob:23: error: inconsistent file name (status = 31) for file test-file ('field with NULL address') on OPEN
81982" | \
81983  $at_diff - "$at_stderr" || at_failed=:
81984at_fn_diff_devnull "$at_stdout" || at_failed=:
81985at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1980"
81986$at_failed && at_fn_log_failure
81987$at_traceon; }
81988
81989# Tested again without source location and checks
81990{ set +x
81991$as_echo "$at_srcdir/run_file.at:1984: \$COBC -x prog.cob"
81992at_fn_check_prepare_dynamic "$COBC -x prog.cob" "run_file.at:1984"
81993( $at_check_trace; $COBC -x prog.cob
81994) >>"$at_stdout" 2>>"$at_stderr" 5>&-
81995at_status=$? at_failed=false
81996$at_check_filter
81997at_fn_diff_devnull "$at_stderr" || at_failed=:
81998at_fn_diff_devnull "$at_stdout" || at_failed=:
81999at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1984"
82000$at_failed && at_fn_log_failure
82001$at_traceon; }
82002
82003{ set +x
82004$as_echo "$at_srcdir/run_file.at:1985: \$COBCRUN_DIRECT ./prog"
82005at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1985"
82006( $at_check_trace; $COBCRUN_DIRECT ./prog
82007) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82008at_status=$? at_failed=false
82009$at_check_filter
82010echo >>"$at_stderr"; $as_echo "libcob: error: inconsistent file name (status = 31) for file test-file ('field with NULL address')
82011" | \
82012  $at_diff - "$at_stderr" || at_failed=:
82013at_fn_diff_devnull "$at_stdout" || at_failed=:
82014at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1985"
82015$at_failed && at_fn_log_failure
82016$at_traceon; }
82017
82018
82019
82020{ set +x
82021$as_echo "$at_srcdir/run_file.at:1990: \$COMPILE prog2.cob"
82022at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:1990"
82023( $at_check_trace; $COMPILE prog2.cob
82024) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82025at_status=$? at_failed=false
82026$at_check_filter
82027at_fn_diff_devnull "$at_stderr" || at_failed=:
82028at_fn_diff_devnull "$at_stdout" || at_failed=:
82029at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1990"
82030$at_failed && at_fn_log_failure
82031$at_traceon; }
82032
82033{ set +x
82034$as_echo "$at_srcdir/run_file.at:1991: \$COBCRUN_DIRECT ./prog2"
82035at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:1991"
82036( $at_check_trace; $COBCRUN_DIRECT ./prog2
82037) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82038at_status=$? at_failed=false
82039$at_check_filter
82040at_fn_diff_devnull "$at_stderr" || at_failed=:
82041at_fn_diff_devnull "$at_stdout" || at_failed=:
82042at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1991"
82043$at_failed && at_fn_log_failure
82044$at_traceon; }
82045
82046
82047  set +x
82048  $at_times_p && times >"$at_times_file"
82049) 5>&1 2>&1 7>&- | eval $at_tee_pipe
82050read at_status <"$at_status_file"
82051#AT_STOP_751
82052#AT_START_752
82053at_fn_group_banner 752 'run_file.at:1996' \
82054  "ASSIGN DYNAMIC with data item in LINKAGE" "       " 4
82055at_xfail=no
82056(
82057  $as_echo "752. $at_setup_line: testing $at_desc ..."
82058  $at_traceon
82059
82060
82061
82062cat >prog.cob <<'_ATEOF'
82063
82064       IDENTIFICATION DIVISION.
82065       PROGRAM-ID. prog.
82066
82067       ENVIRONMENT DIVISION.
82068       DATA DIVISION.
82069       WORKING-STORAGE SECTION.
82070       01  f-path     PIC X(80) VALUE "fooasg.txt".
82071       01  x-path     PIC X(80) VALUE "foxasg.txt".
82072       01  y-path     PIC X(80) VALUE "foyasg.txt".
82073       01  REC1       PIC 9(4) VALUE 1.
82074       01  REC2       PIC 9(4) VALUE 2.
82075       01  CUST-STAT  PIC X(2) VALUE "XX".
82076
82077       PROCEDURE DIVISION.
82078           CALL "TSTOPN"  USING OMITTED.
82079           CALL "TSTOPN"  USING y-path.
82080           CALL "TSTOPEN" USING f-path  REC1 CUST-STAT.
82081           CALL "TSTOPEN" USING x-path  REC1 CUST-STAT.
82082           CALL "TSTOPEN" USING OMITTED REC1 CUST-STAT.
82083           CALL "TSTOPEN" USING f-path  REC2 CUST-STAT.
82084           CALL "TSTOPEN" USING x-path  REC2 CUST-STAT.
82085           STOP RUN.
82086           END PROGRAM prog.
82087
82088       IDENTIFICATION DIVISION.
82089       PROGRAM-ID. TSTOPEN.
82090
82091       ENVIRONMENT DIVISION.
82092       INPUT-OUTPUT SECTION.
82093       FILE-CONTROL.
82094           SELECT f ASSIGN s-path
82095           ORGANIZATION RELATIVE
82096           ACCESS IS RANDOM
82097           RELATIVE KEY IS REC-NUM
82098           FILE STATUS IS CUST-STAT.
82099
82100       DATA DIVISION.
82101       FILE SECTION.
82102       FD  f.
82103       01  f-line PIC X(79).
82104
82105       WORKING-STORAGE SECTION.
82106       01  z-path   PIC X(80) VALUE "foozzz.txt".
82107
82108       LINKAGE SECTION.
82109       01  s-path     PIC X(80).
82110       01  REC-NUM    PIC 9(4).
82111       01  CUST-STAT  PIC X(2).
82112
82113       PROCEDURE DIVISION USING s-path, REC-NUM, CUST-STAT.
82114           IF ADDRESS OF s-path = NULL
82115              SET ADDRESS OF s-path TO ADDRESS OF z-path
82116           END-IF.
82117           IF REC-NUM > 1
82118              OPEN I-O f
82119              DISPLAY "Extend file: " s-path(1:10)
82120                   " - " CUST-STAT " #" REC-NUM "."
82121           ELSE
82122              OPEN OUTPUT f
82123              DISPLAY "Output file: " s-path(1:10)
82124                   " - " CUST-STAT " #" REC-NUM "."
82125           END-IF.
82126           IF CUST-STAT NOT = "00"
82127               DISPLAY "Opened error: " CUST-STAT "."
82128               GOBACK
82129           END-IF.
82130           MOVE "Hello World" TO f-line.
82131           MOVE REC-NUM       TO f-line (20:4).
82132           WRITE f-line.
82133           IF CUST-STAT NOT = "00"
82134               DISPLAY "WRITE error: " CUST-STAT "."
82135           END-IF.
82136           CLOSE f.
82137           GOBACK.
82138       END PROGRAM TSTOPEN.
82139
82140       IDENTIFICATION DIVISION.
82141       PROGRAM-ID. TSTOPN.
82142
82143       ENVIRONMENT DIVISION.
82144       INPUT-OUTPUT SECTION.
82145       FILE-CONTROL.
82146           SELECT f ASSIGN s-path
82147           ORGANIZATION LINE SEQUENTIAL
82148           FILE STATUS IS IO-STS.
82149
82150       DATA DIVISION.
82151       FILE SECTION.
82152       FD  f.
82153       01  f-line PIC X(80).
82154
82155       WORKING-STORAGE SECTION.
82156       01  IO-STS   PIC X(2) VALUE "00".
82157
82158       LINKAGE SECTION.
82159       01  s-path   PIC X(80).
82160
82161       PROCEDURE DIVISION USING s-path.
82162           OPEN OUTPUT f
82163           IF IO-STS NOT = "00"
82164               DISPLAY "Opened error: " IO-STS "."
82165               GOBACK
82166           END-IF.
82167           DISPLAY "Opened file: " s-path(1:10) ".".
82168           MOVE "Hello World" TO f-line.
82169           WRITE f-line.
82170           CLOSE f.
82171           GOBACK.
82172       END PROGRAM TSTOPN.
82173_ATEOF
82174
82175
82176cat >prog2.cob <<'_ATEOF'
82177
82178       IDENTIFICATION DIVISION.
82179       PROGRAM-ID. prog2.
82180
82181       ENVIRONMENT DIVISION.
82182       DATA DIVISION.
82183       WORKING-STORAGE SECTION.
82184
82185       PROCEDURE DIVISION.
82186           CALL "TSTOPEN" USING OMITTED.
82187           STOP RUN.
82188           END PROGRAM prog2.
82189
82190       IDENTIFICATION DIVISION.
82191       PROGRAM-ID. TSTOPEN.
82192
82193       ENVIRONMENT DIVISION.
82194       INPUT-OUTPUT SECTION.
82195       FILE-CONTROL.
82196           SELECT f ASSIGN s-path
82197           ORGANIZATION SEQUENTIAL.
82198
82199       DATA DIVISION.
82200       FILE SECTION.
82201       FD  f.
82202       01  f-line PIC X(79).
82203
82204       LINKAGE SECTION.
82205       01  s-path     PIC X(80).
82206
82207       PROCEDURE DIVISION USING s-path.
82208           OPEN OUTPUT f
82209           GOBACK.
82210       END PROGRAM TSTOPEN.
82211_ATEOF
82212
82213
82214{ set +x
82215$as_echo "$at_srcdir/run_file.at:2147: \$COMPILE prog.cob"
82216at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2147"
82217( $at_check_trace; $COMPILE prog.cob
82218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82219at_status=$? at_failed=false
82220$at_check_filter
82221at_fn_diff_devnull "$at_stderr" || at_failed=:
82222at_fn_diff_devnull "$at_stdout" || at_failed=:
82223at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2147"
82224$at_failed && at_fn_log_failure
82225$at_traceon; }
82226
82227
82228{ set +x
82229$as_echo "$at_srcdir/run_file.at:2149: \$COBCRUN_DIRECT ./prog"
82230at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2149"
82231( $at_check_trace; $COBCRUN_DIRECT ./prog
82232) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82233at_status=$? at_failed=false
82234$at_check_filter
82235at_fn_diff_devnull "$at_stderr" || at_failed=:
82236echo >>"$at_stdout"; $as_echo "Opened error: 31.
82237Opened file: foyasg.txt.
82238Output file: fooasg.txt - 00 #0001.
82239Output file: foxasg.txt - 00 #0001.
82240Output file: foozzz.txt - 00 #0001.
82241Extend file: fooasg.txt - 00 #0002.
82242Extend file: foxasg.txt - 00 #0002.
82243" | \
82244  $at_diff - "$at_stdout" || at_failed=:
82245at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2149"
82246$at_failed && at_fn_log_failure
82247$at_traceon; }
82248
82249
82250{ set +x
82251$as_echo "$at_srcdir/run_file.at:2159: \$COMPILE prog2.cob"
82252at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:2159"
82253( $at_check_trace; $COMPILE prog2.cob
82254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82255at_status=$? at_failed=false
82256$at_check_filter
82257at_fn_diff_devnull "$at_stderr" || at_failed=:
82258at_fn_diff_devnull "$at_stdout" || at_failed=:
82259at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2159"
82260$at_failed && at_fn_log_failure
82261$at_traceon; }
82262
82263
82264{ set +x
82265$as_echo "$at_srcdir/run_file.at:2161: \$COBCRUN_DIRECT ./prog2"
82266at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:2161"
82267( $at_check_trace; $COBCRUN_DIRECT ./prog2
82268) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82269at_status=$? at_failed=false
82270$at_check_filter
82271echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:32: error: inconsistent file name (status = 31) for file f ('field with NULL address') on OPEN
82272" | \
82273  $at_diff - "$at_stderr" || at_failed=:
82274at_fn_diff_devnull "$at_stdout" || at_failed=:
82275at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:2161"
82276$at_failed && at_fn_log_failure
82277$at_traceon; }
82278
82279
82280  set +x
82281  $at_times_p && times >"$at_times_file"
82282) 5>&1 2>&1 7>&- | eval $at_tee_pipe
82283read at_status <"$at_status_file"
82284#AT_STOP_752
82285#AT_START_753
82286at_fn_group_banner 753 'run_file.at:2168' \
82287  "ASSIGN DYNAMIC with empty data item" "            " 4
82288at_xfail=no
82289(
82290  $as_echo "753. $at_setup_line: testing $at_desc ..."
82291  $at_traceon
82292
82293
82294
82295cat >prog.cob <<'_ATEOF'
82296
82297       IDENTIFICATION   DIVISION.
82298       PROGRAM-ID.      prog.
82299       ENVIRONMENT      DIVISION.
82300       INPUT-OUTPUT     SECTION.
82301       FILE-CONTROL.
82302       SELECT test-file ASSIGN path
82303                        ORGANIZATION LINE SEQUENTIAL.
82304       DATA             DIVISION.
82305       FILE	            SECTION.
82306       FD  test-file.
82307       01  test-rec     PIC X(5).
82308       WORKING-STORAGE  SECTION.
82309       01  path         PIC X(10).
82310       01  x            PIC X.
82311       PROCEDURE        DIVISION CHAINING x.
82312           IF X = SPACE
82313              MOVE SPACES     TO path
82314           ELSE
82315              MOVE LOW-VALUES TO path
82316           END-IF
82317           OPEN INPUT test-file
82318           DISPLAY "Hello"
82319           STOP RUN.
82320_ATEOF
82321
82322
82323{ set +x
82324$as_echo "$at_srcdir/run_file.at:2197: \$COMPILE prog.cob"
82325at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2197"
82326( $at_check_trace; $COMPILE prog.cob
82327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82328at_status=$? at_failed=false
82329$at_check_filter
82330at_fn_diff_devnull "$at_stderr" || at_failed=:
82331at_fn_diff_devnull "$at_stdout" || at_failed=:
82332at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2197"
82333$at_failed && at_fn_log_failure
82334$at_traceon; }
82335
82336{ set +x
82337$as_echo "$at_srcdir/run_file.at:2198: \$COBCRUN_DIRECT ./prog"
82338at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2198"
82339( $at_check_trace; $COBCRUN_DIRECT ./prog
82340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82341at_status=$? at_failed=false
82342$at_check_filter
82343echo >>"$at_stderr"; $as_echo "libcob: prog.cob:22: error: inconsistent file name (status = 31) for file test-file ('') on OPEN
82344" | \
82345  $at_diff - "$at_stderr" || at_failed=:
82346at_fn_diff_devnull "$at_stdout" || at_failed=:
82347at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:2198"
82348$at_failed && at_fn_log_failure
82349$at_traceon; }
82350
82351{ set +x
82352$as_echo "$at_srcdir/run_file.at:2201: \$COBCRUN_DIRECT ./prog X"
82353at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X" "run_file.at:2201"
82354( $at_check_trace; $COBCRUN_DIRECT ./prog X
82355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82356at_status=$? at_failed=false
82357$at_check_filter
82358echo >>"$at_stderr"; $as_echo "libcob: prog.cob:22: error: inconsistent file name (status = 31) for file test-file ('') on OPEN
82359" | \
82360  $at_diff - "$at_stderr" || at_failed=:
82361at_fn_diff_devnull "$at_stdout" || at_failed=:
82362at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:2201"
82363$at_failed && at_fn_log_failure
82364$at_traceon; }
82365
82366
82367  set +x
82368  $at_times_p && times >"$at_times_file"
82369) 5>&1 2>&1 7>&- | eval $at_tee_pipe
82370read at_status <"$at_status_file"
82371#AT_STOP_753
82372#AT_START_754
82373at_fn_group_banner 754 'run_file.at:2208' \
82374  "ASSIGN DYNAMIC with unset implicit data item" "   " 4
82375at_xfail=no
82376(
82377  $as_echo "754. $at_setup_line: testing $at_desc ..."
82378  $at_traceon
82379
82380
82381
82382cat >prog.cob <<'_ATEOF'
82383
82384       IDENTIFICATION   DIVISION.
82385       PROGRAM-ID.      prog.
82386       ENVIRONMENT      DIVISION.
82387       INPUT-OUTPUT     SECTION.
82388       FILE-CONTROL.
82389       SELECT test-file ASSIGN fpath
82390                        ORGANIZATION LINE SEQUENTIAL.
82391       DATA             DIVISION.
82392       FILE	            SECTION.
82393       FD  test-file.
82394       01  test-rec     PIC X(5).
82395       PROCEDURE        DIVISION.
82396           OPEN INPUT test-file
82397           DISPLAY "Hello"
82398           STOP RUN.
82399_ATEOF
82400
82401
82402{ set +x
82403$as_echo "$at_srcdir/run_file.at:2229: \$COMPILE prog.cob"
82404at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2229"
82405( $at_check_trace; $COMPILE prog.cob
82406) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82407at_status=$? at_failed=false
82408$at_check_filter
82409at_fn_diff_devnull "$at_stderr" || at_failed=:
82410at_fn_diff_devnull "$at_stdout" || at_failed=:
82411at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2229"
82412$at_failed && at_fn_log_failure
82413$at_traceon; }
82414
82415{ set +x
82416$as_echo "$at_srcdir/run_file.at:2230: \$COBCRUN_DIRECT ./prog"
82417at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2230"
82418( $at_check_trace; $COBCRUN_DIRECT ./prog
82419) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82420at_status=$? at_failed=false
82421$at_check_filter
82422echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: file does not exist (status = 35) for file test-file ('fpath') on OPEN
82423" | \
82424  $at_diff - "$at_stderr" || at_failed=:
82425at_fn_diff_devnull "$at_stdout" || at_failed=:
82426at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:2230"
82427$at_failed && at_fn_log_failure
82428$at_traceon; }
82429
82430{ set +x
82431$as_echo "$at_srcdir/run_file.at:2233: fpath=\"not.there\" \$COBCRUN_DIRECT ./prog X"
82432at_fn_check_prepare_dynamic "fpath=\"not.there\" $COBCRUN_DIRECT ./prog X" "run_file.at:2233"
82433( $at_check_trace; fpath="not.there" $COBCRUN_DIRECT ./prog X
82434) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82435at_status=$? at_failed=false
82436$at_check_filter
82437echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: file does not exist (status = 35) for file test-file ('fpath' => not.there) on OPEN
82438" | \
82439  $at_diff - "$at_stderr" || at_failed=:
82440at_fn_diff_devnull "$at_stdout" || at_failed=:
82441at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:2233"
82442$at_failed && at_fn_log_failure
82443$at_traceon; }
82444
82445
82446  set +x
82447  $at_times_p && times >"$at_times_file"
82448) 5>&1 2>&1 7>&- | eval $at_tee_pipe
82449read at_status <"$at_status_file"
82450#AT_STOP_754
82451#AT_START_755
82452at_fn_group_banner 755 'run_file.at:2240' \
82453  "INDEXED file key-name" "                          " 4
82454at_xfail=no
82455(
82456  $as_echo "755. $at_setup_line: testing $at_desc ..."
82457  $at_traceon
82458
82459
82460
82461# FIXME: separate both test parts
82462
82463$as_echo "run_file.at:2245" >"$at_check_line_file"
82464(test "$COB_HAS_ISAM" = "no") \
82465  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2245"
82466
82467cat >prog.cob <<'_ATEOF'
82468
82469       IDENTIFICATION DIVISION.
82470       PROGRAM-ID. "test".
82471       ENVIRONMENT DIVISION.
82472       INPUT-OUTPUT SECTION.
82473       FILE-CONTROL.
82474           SELECT TEST-FILE ASSIGN "FILE"
82475               ORGANIZATION IS INDEXED
82476               ACCESS IS DYNAMIC
82477               RECORD KEY IS KEY01 = QQINDEX.
82478       DATA DIVISION.
82479       FILE SECTION.
82480       FD TEST-FILE.
82481       01 TEST-REC.
82482          03 QQDATA     PIC X(80).
82483          03 QQINDEX    PIC XXX9999.
82484          03 QQSEQUENCE PIC 9999.
82485       PROCEDURE DIVISION.
82486           OPEN OUTPUT TEST-FILE
82487           MOVE 'TEST DATA 1' TO QQDATA
82488           MOVE 'ABC0001'     TO QQINDEX
82489           WRITE TEST-REC
82490           MOVE 'TEST DATA 2' TO QQDATA
82491           MOVE 'ABC0002'     TO QQINDEX
82492           WRITE TEST-REC
82493           CLOSE TEST-FILE
82494           DISPLAY 'FINE' WITH NO ADVANCING
82495           GOBACK.
82496_ATEOF
82497
82498{ set +x
82499$as_echo "$at_srcdir/run_file.at:2276: \$COMPILE prog.cob"
82500at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2276"
82501( $at_check_trace; $COMPILE prog.cob
82502) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82503at_status=$? at_failed=false
82504$at_check_filter
82505at_fn_diff_devnull "$at_stderr" || at_failed=:
82506at_fn_diff_devnull "$at_stdout" || at_failed=:
82507at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2276"
82508$at_failed && at_fn_log_failure
82509$at_traceon; }
82510
82511
82512{ set +x
82513$as_echo "$at_srcdir/run_file.at:2278: \$COBCRUN_DIRECT ./prog"
82514at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2278"
82515( $at_check_trace; $COBCRUN_DIRECT ./prog
82516) >>"$at_stdout" 2>>"$at_stderr" 5>&-
82517at_status=$? at_failed=false
82518$at_check_filter
82519at_fn_diff_devnull "$at_stderr" || at_failed=:
82520echo >>"$at_stdout"; $as_echo "FINE" | \
82521  $at_diff - "$at_stdout" || at_failed=:
82522at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2278"
82523$at_failed && at_fn_log_failure
82524$at_traceon; }
82525
82526  set +x
82527  $at_times_p && times >"$at_times_file"
82528) 5>&1 2>&1 7>&- | eval $at_tee_pipe
82529read at_status <"$at_status_file"
82530#AT_STOP_755
82531#AT_START_756
82532at_fn_group_banner 756 'run_file.at:2282' \
82533  "INDEXED file sparse/split keys" "                 " 4
82534at_xfail=no
82535(
82536  $as_echo "756. $at_setup_line: testing $at_desc ..."
82537  $at_traceon
82538
82539
82540
82541# FIXME: separate both test parts
82542
82543$as_echo "run_file.at:2287" >"$at_check_line_file"
82544(test "$COB_HAS_ISAM" = "no") \
82545  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2287"
82546
82547cat >prog.cob <<'_ATEOF'
82548
82549       IDENTIFICATION DIVISION.
82550
82551       PROGRAM-ID. prog.
82552
82553       ENVIRONMENT DIVISION.
82554       CONFIGURATION SECTION.
82555
82556       INPUT-OUTPUT SECTION.
82557       FILE-CONTROL.
82558           SELECT TSPFILE
82559           ASSIGN TO "testisam"
82560           ORGANIZATION INDEXED ACCESS DYNAMIC
82561           RECORD KEY IS PRIME-KEY
82562           SOURCE IS CM-CUST-NUM, CM-COMPANY
82563
82564           ALTERNATE RECORD KEY IS SPLIT-KEY2
82565           SOURCE IS CM-TELEPHONE,CM-MACHINE WITH DUPLICATES
82566
82567           ALTERNATE RECORD KEY IS SPLIT-KEY3
82568           SOURCE IS CM-DISK,CM-TAPE WITH DUPLICATES
82569                SUPPRESS WHEN ALL "*"
82570           FILE STATUS IS CUST-STAT
82571           .
82572
82573       DATA  DIVISION.
82574       FILE SECTION.
82575       FD  TSPFILE
82576           BLOCK CONTAINS 5 RECORDS.
82577
82578       01  TSPFL-RECORD.
82579           05  TSPFL-REC.
82580           10  CM-CUST-NUM                     PICTURE X(8).
82581           10  CM-STATUS                       PICTURE X.
82582           10  CM-COMPANY                      PICTURE X(25).
82583           10  CM-ADDRESS-1                    PICTURE X(25).
82584           10  CM-ADDRESS-2                    PICTURE X(25).
82585           10  CM-ADDRESS-3                    PICTURE X(25).
82586           10  CM-TELEPHONE                    PICTURE 9(10).
82587           10  CM-DP-MGR                       PICTURE X(25).
82588           10  CM-MACHINE                      PICTURE X(8).
82589           10  CM-MEMORY                       PICTURE X(4).
82590           10  CM-DISK                         PICTURE X(8).
82591           10  CM-TAPE                         PICTURE X(8).
82592           10  CM-NO-TERMINALS                 PICTURE 9(5).
82593
82594       WORKING-STORAGE SECTION.
82595
82596       01  CUST-STAT.
82597           05  STAT-1 PICTURE 9(4) COMP SYNC.
82598           05  FILLER REDEFINES STAT-1.
82599               10  STAT-X1 PIC X COMP-X.
82600               10  STAT-X2 PIC X COMP-X.
82601       77  BYTE-1  PICTURE 9(3).
82602       77  BYTE-2  PICTURE 9(3).
82603       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
82604
82605       01  TEST-DATA.
82606
82607         02  DATA-CUST-NUM-TBL.
82608
82609           05  FILLER PIC X(8) VALUE "ALP00000".
82610           05  FILLER PIC X(8) VALUE "BET00000".
82611           05  FILLER PIC X(8) VALUE "GAM00000".
82612           05  FILLER PIC X(8) VALUE "DEL00000".
82613           05  FILLER PIC X(8) VALUE "EPS00000".
82614           05  FILLER PIC X(8) VALUE "FOR00000".
82615           05  FILLER PIC X(8) VALUE "GIB00000".
82616           05  FILLER PIC X(8) VALUE "H&J00000".
82617           05  FILLER PIC X(8) VALUE "INC00000".
82618           05  FILLER PIC X(8) VALUE "JOH00000".
82619           05  FILLER PIC X(8) VALUE "KON00000".
82620           05  FILLER PIC X(8) VALUE "LEW00000".
82621           05  FILLER PIC X(8) VALUE "MOR00000".
82622           05  FILLER PIC X(8) VALUE "NEW00000".
82623           05  FILLER PIC X(8) VALUE "OLD00000".
82624           05  FILLER PIC X(8) VALUE "PRE00000".
82625
82626         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
82627                                       PIC X(8) OCCURS 16.
82628         02  DATA-COMPANY-TBL.
82629
82630           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
82631           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
82632           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
82633           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
82634           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
82635           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
82636           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
82637           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
82638           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
82639           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
82640           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
82641           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
82642           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
82643           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
82644           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
82645           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".
82646
82647         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
82648                                       PIC X(25) OCCURS 16.
82649         02  DATA-ADDRESS-1-TBL.
82650
82651           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
82652           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
82653           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
82654           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
82655           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
82656           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
82657           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
82658           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
82659           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
82660           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
82661           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
82662           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
82663           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
82664           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
82665           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
82666           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".
82667
82668         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
82669                                       PIC X(25) OCCURS 16.
82670         02  DATA-ADDRESS-2-TBL.
82671
82672           05  FILLER PIC X(10) VALUE "NEW YORK  ".
82673           05  FILLER PIC X(10) VALUE "ATLANTA   ".
82674           05  FILLER PIC X(10) VALUE "WASHINGTON".
82675           05  FILLER PIC X(10) VALUE "TORONTO   ".
82676           05  FILLER PIC X(10) VALUE "CALGARY   ".
82677           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
82678           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
82679           05  FILLER PIC X(10) VALUE "MADISON   ".
82680           05  FILLER PIC X(10) VALUE "WILBUR    ".
82681           05  FILLER PIC X(10) VALUE "TOPEKA    ".
82682           05  FILLER PIC X(10) VALUE "SEATTLE   ".
82683           05  FILLER PIC X(10) VALUE "NEW JERSEY".
82684           05  FILLER PIC X(10) VALUE "FORT WAYNE".
82685           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
82686           05  FILLER PIC X(10) VALUE "RICHMOND  ".
82687           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
82688
82689         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
82690                                       PIC X(10) OCCURS 16.
82691         02  DATA-ADDRESS-3-TBL.
82692
82693           05  FILLER PIC X(10) VALUE "N.Y.      ".
82694           05  FILLER PIC X(10) VALUE "GEORGIA   ".
82695           05  FILLER PIC X(10) VALUE "D.C.      ".
82696           05  FILLER PIC X(10) VALUE "CANADA    ".
82697           05  FILLER PIC X(10) VALUE "CANADA    ".
82698           05  FILLER PIC X(10) VALUE "CALIFORNIA".
82699           05  FILLER PIC X(10) VALUE "NEW MEXICO".
82700           05  FILLER PIC X(10) VALUE "WISCONSIN ".
82701           05  FILLER PIC X(10) VALUE "DELAWARE  ".
82702           05  FILLER PIC X(10) VALUE "KANSAS    ".
82703           05  FILLER PIC X(10) VALUE "WASHINGTON".
82704           05  FILLER PIC X(10) VALUE "N.J.      ".
82705           05  FILLER PIC X(10) VALUE "COLORADO  ".
82706           05  FILLER PIC X(10) VALUE "OHIO      ".
82707           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
82708           05  FILLER PIC X(10) VALUE "N.Y.      ".
82709
82710         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
82711                                       PIC X(10) OCCURS 16.
82712         02  DATA-TELEPHONE-TBL.
82713
82714           05  FILLER PIC 9(10) VALUE 3131234432.
82715           05  FILLER PIC 9(10) VALUE 4082938498.
82716           05  FILLER PIC 9(10) VALUE 8372487274.
82717           05  FILLER PIC 9(10) VALUE 4169898509.
82718           05  FILLER PIC 9(10) VALUE 5292398745.
82719           05  FILLER PIC 9(10) VALUE 8009329492.
82720           05  FILLER PIC 9(10) VALUE 6456445643.
82721           05  FILLER PIC 9(10) VALUE 6546456333.
82722           05  FILLER PIC 9(10) VALUE 3455445444.
82723           05  FILLER PIC 9(10) VALUE 6456445643.
82724           05  FILLER PIC 9(10) VALUE 7456434355.
82725           05  FILLER PIC 9(10) VALUE 6554456433.
82726           05  FILLER PIC 9(10) VALUE 4169898509.
82727           05  FILLER PIC 9(10) VALUE 7534587453.
82728           05  FILLER PIC 9(10) VALUE 8787458374.
82729           05  FILLER PIC 9(10) VALUE 4169898509.
82730
82731         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
82732                                       PIC 9(10) OCCURS 16.
82733         02  DATA-DP-MGR-TBL.
82734
82735           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
82736           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
82737           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
82738           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
82739           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
82740           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
82741           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
82742           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
82743           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
82744           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
82745           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
82746           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
82747           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
82748           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
82749           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
82750           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".
82751
82752         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
82753                                       PIC X(20) OCCURS 16.
82754         02  DATA-MACHINE-TBL.
82755
82756           05  FILLER PIC X(8) VALUE "UNI-9030".
82757           05  FILLER PIC X(8) VALUE "UNI-9040".
82758           05  FILLER PIC X(8) VALUE "UNI-80/3".
82759           05  FILLER PIC X(8) VALUE "UNI-80/5".
82760           05  FILLER PIC X(8) VALUE "UNI-80/6".
82761           05  FILLER PIC X(8) VALUE "UNI-80/6".
82762           05  FILLER PIC X(8) VALUE "UNI-80/6".
82763           05  FILLER PIC X(8) VALUE "UNI-80/8".
82764           05  FILLER PIC X(8) VALUE "UNI-80/8".
82765           05  FILLER PIC X(8) VALUE "UNI-80/8".
82766           05  FILLER PIC X(8) VALUE "UNI-80/8".
82767           05  FILLER PIC X(8) VALUE "UNI-80/8".
82768           05  FILLER PIC X(8) VALUE "UNI-80/8".
82769           05  FILLER PIC X(8) VALUE "UNI-80/8".
82770           05  FILLER PIC X(8) VALUE "UNI-9040".
82771           05  FILLER PIC X(8) VALUE "UNI-9040".
82772
82773         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
82774                                       PIC X(8) OCCURS 16.
82775         02  DATA-NO-TERMINALS-TBL.
82776
82777           05  FILLER PIC 9(3) COMP-3 VALUE 85.
82778           05  FILLER PIC 9(3) COMP-3 VALUE 34.
82779           05  FILLER PIC 9(3) COMP-3 VALUE 75.
82780           05  FILLER PIC 9(3) COMP-3 VALUE 45.
82781           05  FILLER PIC 9(3) COMP-3 VALUE 90.
82782           05  FILLER PIC 9(3) COMP-3 VALUE 107.
82783           05  FILLER PIC 9(3) COMP-3 VALUE 67.
82784           05  FILLER PIC 9(3) COMP-3 VALUE 32.
82785           05  FILLER PIC 9(3) COMP-3 VALUE 16.
82786           05  FILLER PIC 9(3) COMP-3 VALUE 34.
82787           05  FILLER PIC 9(3) COMP-3 VALUE 128.
82788           05  FILLER PIC 9(3) COMP-3 VALUE 64.
82789           05  FILLER PIC 9(3) COMP-3 VALUE 110.
82790           05  FILLER PIC 9(3) COMP-3 VALUE 324.
82791           05  FILLER PIC 9(3) COMP-3 VALUE 124.
82792           05  FILLER PIC 9(3) COMP-3 VALUE 86.
82793
82794         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
82795                                       PIC 9(3) COMP-3 OCCURS 16.
82796
82797       01  WORK-AREA.
82798           05  REC-NUM                         PICTURE 9(6) VALUE 0.
82799           05  REC-MAX                         PICTURE 9(6) VALUE 10.
82800           05  SUB                             PICTURE 9(4) COMP SYNC.
82801               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.
82802               88  NULL-KEY                    VALUE 4 5 8 12 14.
82803
82804           05  TSPFL-KEY                       PICTURE X(8).
82805
82806       PROCEDURE DIVISION.
82807
82808       MAINFILE.
82809           PERFORM LOADFILE.
82810           PERFORM LISTFILE.
82811           STOP RUN.
82812
82813       LOADFILE.
82814           DISPLAY "Loading sample data file."
82815                            UPON CONSOLE.
82816
82817           OPEN OUTPUT TSPFILE
82818           IF CUST-STAT NOT = "00"
82819               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
82820               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
82821               " opening 'testisam' file"
82822                                UPON CONSOLE
82823               STOP RUN
82824           END-IF.
82825
82826           PERFORM 1000-LOAD-RECORD
82827                        VARYING SUB FROM 1 BY 1
82828                          UNTIL SUB > MAX-SUB.
82829
82830           DISPLAY "Sample data file load complete."
82831                            UPON CONSOLE.
82832           CLOSE TSPFILE.
82833
82834      *---------------------------------------------------------------*
82835      *         LOAD A RECORD FROM DATA TABLES                        *
82836      *---------------------------------------------------------------*
82837
82838       1000-LOAD-RECORD.
82839
82840           MOVE SPACES                       TO TSPFL-RECORD.
82841           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
82842           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
82843           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
82844           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
82845           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
82846           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
82847           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
82848           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
82849           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
82850           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
82851
82852           IF  ODD-RECORD
82853               MOVE "8417"                   TO CM-DISK
82854               MOVE "1600 BPI"               TO CM-TAPE
82855               MOVE "1MEG"                   TO CM-MEMORY
82856           ELSE
82857               MOVE "8470"                   TO CM-DISK
82858               MOVE "6250 BPI"               TO CM-TAPE
82859               MOVE "3MEG"                   TO CM-MEMORY.
82860           IF  NULL-KEY
82861               MOVE ALL "*"                  TO CM-DISK
82862               MOVE ALL "*"                  TO CM-TAPE.
82863
82864           WRITE TSPFL-RECORD.
82865           IF CUST-STAT NOT = "00"
82866           AND CUST-STAT NOT = "02"
82867               DISPLAY "Key: " TSPFL-KEY ", Status: " CUST-STAT
82868                                 UPON CONSOLE.
82869
82870       LISTFILE.
82871           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
82872           MOVE ZERO TO REC-NUM
82873           OPEN INPUT TSPFILE
82874           IF CUST-STAT NOT = "00"
82875               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE "
82876                                             UPON CONSOLE
82877               IF CUST-STAT (1:1) = "9"
82878                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
82879               END-IF
82880               STOP RUN
82881           END-IF.
82882           MOVE SPACES                       TO TSPFL-RECORD.
82883           START TSPFILE KEY GREATER THAN PRIME-KEY
82884           IF CUST-STAT NOT = "00"
82885               DISPLAY "Error " CUST-STAT " starting file"
82886                                UPON CONSOLE
82887               IF CUST-STAT (1:1) = "9"
82888                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
82889               END-IF
82890               STOP RUN
82891           END-IF.
82892           READ  TSPFILE NEXT RECORD WITH NO LOCK
82893           IF CUST-STAT NOT = "00"
82894               DISPLAY "Error " CUST-STAT " on 1st read of file"
82895                                UPON CONSOLE
82896               IF CUST-STAT (1:1) = "9"
82897                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
82898               END-IF
82899               STOP RUN
82900           END-IF.
82901           PERFORM UNTIL CUST-STAT NOT = "00"
82902                      OR REC-NUM > REC-MAX
82903               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
82904                        " Disk=" CM-DISK ":"
82905                         UPON CONSOLE
82906               READ TSPFILE NEXT RECORD
82907                    AT END
82908                        MOVE "99" TO CUST-STAT
82909                END-READ
82910                ADD 1 TO REC-NUM
82911           END-PERFORM
82912           IF CUST-STAT = "99"
82913               DISPLAY "Hit End of File" UPON CONSOLE
82914           END-IF.
82915
82916           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
82917           MOVE ZERO TO REC-NUM
82918           START TSPFILE KEY LESS THAN PRIME-KEY
82919           IF CUST-STAT NOT = "00"
82920               DISPLAY "Error " CUST-STAT " starting file"
82921                                UPON CONSOLE
82922               STOP RUN
82923           END-IF.
82924           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
82925           IF CUST-STAT NOT = "00"
82926               DISPLAY "Error " CUST-STAT " on 1st read of file"
82927                                UPON CONSOLE
82928               STOP RUN
82929           END-IF.
82930           PERFORM UNTIL CUST-STAT NOT = "00"
82931                      OR REC-NUM > REC-MAX
82932               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
82933                        " Disk=" CM-DISK ":"
82934                         UPON CONSOLE
82935               READ TSPFILE PREVIOUS RECORD
82936                    AT END
82937                        MOVE "99" TO CUST-STAT
82938                END-READ
82939                ADD 1 TO REC-NUM
82940           END-PERFORM.
82941
82942           DISPLAY "LIST SAMPLE FILE BY KEY3" UPON CONSOLE.
82943           MOVE ZERO                         TO REC-NUM
82944           MOVE SPACES                       TO TSPFL-RECORD.
82945           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY3
82946           IF  CUST-STAT NOT = "00"
82947           AND CUST-STAT NOT = "02"
82948               DISPLAY "Error " CUST-STAT " starting file"
82949                                UPON CONSOLE
82950               STOP RUN
82951           END-IF.
82952           READ  TSPFILE NEXT RECORD WITH NO LOCK
82953           IF  CUST-STAT NOT = "00"
82954           AND CUST-STAT NOT = "02"
82955               DISPLAY "Error " CUST-STAT " on 1st read of file"
82956                                UPON CONSOLE
82957               STOP RUN
82958           END-IF.
82959           PERFORM UNTIL (CUST-STAT NOT = "00"
82960                      AND CUST-STAT NOT = "02")
82961                      OR REC-NUM > REC-MAX
82962               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
82963                        " Disk=" CM-DISK ":"
82964                         UPON CONSOLE
82965               READ TSPFILE NEXT RECORD
82966                    AT END
82967                        MOVE "99" TO CUST-STAT
82968                END-READ
82969                ADD 1 TO REC-NUM
82970           END-PERFORM.
82971      *---- Some results may be different with VB-ISAM  ------*
82972           MOVE SPACES                       TO TSPFL-RECORD.
82973           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
82974           READ TSPFILE KEY IS PRIME-KEY
82975           IF  CUST-STAT NOT = "23"
82976               DISPLAY "Error " CUST-STAT " instead of 23"
82977                                UPON CONSOLE
82978           END-IF.
82979           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
82980           READ TSPFILE KEY IS PRIME-KEY
82981           IF  CUST-STAT NOT = "00"
82982               DISPLAY "Error " CUST-STAT " on primary read "
82983                                UPON CONSOLE
82984           ELSE
82985               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
82986                        " Disk=" CM-DISK ":"
82987                         UPON CONSOLE
82988           END-IF.
82989           READ TSPFILE NEXT RECORD
82990           IF  CUST-STAT NOT = "00"
82991               DISPLAY "Error " CUST-STAT " on next read "
82992                                UPON CONSOLE
82993           ELSE
82994               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
82995                        " Disk=" CM-DISK ":"
82996                         UPON CONSOLE
82997           END-IF.
82998           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
82999           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
83000           READ TSPFILE KEY IS SPLIT-KEY2
83001           IF  CUST-STAT NOT = "00"
83002               DISPLAY "Error " CUST-STAT " instead of 23"
83003                                UPON CONSOLE
83004           ELSE
83005               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
83006                        " Mach=" CM-MACHINE ":"
83007                         UPON CONSOLE
83008           END-IF.
83009           CLOSE TSPFILE.
83010_ATEOF
83011
83012
83013{ set +x
83014$as_echo "$at_srcdir/run_file.at:2753: \$COMPILE prog.cob"
83015at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2753"
83016( $at_check_trace; $COMPILE prog.cob
83017) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83018at_status=$? at_failed=false
83019$at_check_filter
83020at_fn_diff_devnull "$at_stderr" || at_failed=:
83021at_fn_diff_devnull "$at_stdout" || at_failed=:
83022at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2753"
83023$at_failed && at_fn_log_failure
83024$at_traceon; }
83025
83026
83027{ set +x
83028$as_echo "$at_srcdir/run_file.at:2755: \$COBCRUN_DIRECT ./prog"
83029at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2755"
83030( $at_check_trace; $COBCRUN_DIRECT ./prog
83031) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83032at_status=$? at_failed=false
83033$at_check_filter
83034at_fn_diff_devnull "$at_stderr" || at_failed=:
83035echo >>"$at_stdout"; $as_echo "Loading sample data file.
83036Sample data file load complete.
83037LIST SAMPLE FILE
83038Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
83039Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
83040Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
83041Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********:
83042Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
83043Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
83044Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
83045Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********:
83046Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
83047Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
83048Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
83049LIST SAMPLE FILE DESCENDING
83050Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
83051Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
83052Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
83053Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********:
83054Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
83055Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
83056Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
83057Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********:
83058Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
83059Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
83060Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
83061LIST SAMPLE FILE BY KEY3
83062Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
83063Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
83064Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
83065Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
83066Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
83067Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
83068Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
83069Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
83070Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    :
83071Key: OLD00000 is OLD TYME PIZZA MFG. CO.   Disk=8470    :
83072Key: PRE00000 is PRESTIGE OFFICE FURNITURE Disk=8470    :
83073Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
83074Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
83075Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6:
83076" | \
83077  $at_diff - "$at_stdout" || at_failed=:
83078at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2755"
83079$at_failed && at_fn_log_failure
83080$at_traceon; }
83081
83082
83083  set +x
83084  $at_times_p && times >"$at_times_file"
83085) 5>&1 2>&1 7>&- | eval $at_tee_pipe
83086read at_status <"$at_status_file"
83087#AT_STOP_756
83088#AT_START_757
83089at_fn_group_banner 757 'run_file.at:2802' \
83090  "INDEXED file split keys WITH DUPLICATES" "        " 4
83091at_xfail=no
83092(
83093  $as_echo "757. $at_setup_line: testing $at_desc ..."
83094  $at_traceon
83095
83096
83097
83098$as_echo "run_file.at:2805" >"$at_check_line_file"
83099(test "$COB_HAS_ISAM" = "no") \
83100  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2805"
83101## Note: The order in which secondary records with duplicate keys
83102##       are returnded is not guaranteed.
83103
83104cat >prog.cob <<'_ATEOF'
83105
83106       IDENTIFICATION   DIVISION.
83107       PROGRAM-ID.      prog.
83108
83109       ENVIRONMENT      DIVISION.
83110       INPUT-OUTPUT     SECTION.
83111       FILE-CONTROL.
83112           SELECT test-file
83113               ASSIGN        "TESTFILE"
83114               ACCESS        DYNAMIC
83115               ORGANIZATION  INDEXED
83116               RECORD KEY           test-key-1 SOURCE IS test-key-p1
83117               ALTERNATE RECORD KEY test-key-2 SOURCE IS test-key-p2,
83118                                                         test-key-p3
83119               WITH DUPLICATES
83120           .
83121
83122       DATA             DIVISION.
83123       FILE             SECTION.
83124       FD  test-file.
83125       01  test-rec.
83126           03  test-key-p1 PIC X(4).
83127           03  test-key-p2 PIC 9(4).
83128           03  test-data   PIC X(4).
83129           03  test-key-p3 PIC X(4).
83130
83131       WORKING-STORAGE SECTION.
83132       01  found        PIC X(03).
83133
83134       PROCEDURE        DIVISION.
83135           OPEN OUTPUT test-file
83136           WRITE test-rec FROM "BBBB0001dat1aaaa"
83137           WRITE test-rec FROM "AAAA0001dat2aaaa"
83138           WRITE test-rec FROM "CCCC0002dat3aaaa"
83139           WRITE test-rec FROM "DDDD0002dat4bbbb"
83140           WRITE test-rec FROM "EEEE0002dat5bbbb"
83141           CLOSE test-file
83142
83143           OPEN INPUT test-file
83144
83145           MOVE "CCCC" TO test-key-p1
83146           READ test-file KEY IS test-key-1
83147               INVALID KEY
83148                   DISPLAY "READ with CCCC found no record"
83149               NOT INVALID KEY
83150                   IF test-data NOT = "dat3"
83151                       DISPLAY "READ with wrong result: "
83152                           test-rec
83153           END-READ
83154
83155           MOVE SPACES   TO found
83156
83157           MOVE 0001     TO test-key-p2
83158           MOVE "aaaa"   TO test-key-p3
83159           START test-file KEY >= test-key-2
83160               INVALID KEY
83161                   DISPLAY "START >= 0001/aaaa found no record"
83162               NOT INVALID KEY
83163                   READ  test-file NEXT
83164                       AT END
83165                           DISPLAY "READ NEXT (1) found no record"
83166                       NOT AT END
83167                           EVALUATE test-data
83168                              WHEN "dat1"
83169                                 MOVE 'X' TO found (1:1)
83170                              WHEN "dat2"
83171                                 MOVE 'X' TO found (2:1)
83172                              WHEN OTHER
83173                                 DISPLAY "READ NEXT (1) "
83174                                     "with wrong result: "
83175                                     test-data
83176                   END-READ
83177                   READ  test-file NEXT
83178                       AT END
83179                           DISPLAY "READ NEXT (2) found no record"
83180                       NOT AT END
83181                           EVALUATE test-data
83182                              WHEN "dat1"
83183                                 MOVE 'X' TO found (1:1)
83184                              WHEN "dat2"
83185                                 MOVE 'X' TO found (2:1)
83186                              WHEN OTHER
83187                                 DISPLAY "READ NEXT (2) "
83188                                     "with wrong result: "
83189                                     test-data
83190                   END-READ
83191                   IF found NOT = 'XX '
83192                      DISPLAY "START >= + READ NEXT * 2 "
83193                          "with wrong result: " found
83194           END-START
83195           MOVE 0001      TO test-key-p2
83196           MOVE "aaaa"    TO test-key-p3
83197           START test-file KEY > test-key-2
83198               INVALID KEY
83199                   DISPLAY "START > 0001/aaaa found no record"
83200               NOT INVALID KEY
83201                   READ  test-file NEXT
83202                       AT END
83203                           DISPLAY "READ NEXT (3) found no record"
83204                       NOT AT END
83205                           IF test-data NOT = "dat3"
83206                               DISPLAY "READ NEXT (3) "
83207                                   "with wrong result: "
83208                                   test-data
83209                   END-READ
83210           END-START
83211
83212           MOVE 0002      TO test-key-p2
83213           MOVE ALL "z"   TO test-key-p3
83214           START test-file KEY IS < test-key-2
83215               INVALID KEY
83216                   DISPLAY "START < 0002/zzzz found no record"
83217               NOT INVALID KEY
83218                   READ  test-file PREVIOUS
83219                       AT END
83220                           DISPLAY "READ PREVIOUS (1) found no record"
83221                       NOT AT END
83222                           IF test-data NOT = "dat5"
83223                              DISPLAY "READ PREVIOUS (1) "
83224                                  "with wrong result: "
83225                                  test-data
83226                   END-READ
83227                   READ  test-file PREVIOUS
83228                       AT END
83229                           DISPLAY "READ PREVIOUS (2) found no record"
83230                       NOT AT END
83231                           IF test-data NOT = "dat4"
83232                              DISPLAY "READ PREVIOUS (2) "
83233                                  "with wrong result: "
83234                                  test-data
83235                   END-READ
83236                   READ  test-file PREVIOUS
83237                       AT END
83238                           DISPLAY "READ PREVIOUS (3) found no record"
83239                       NOT AT END
83240                           IF test-data NOT = "dat3"
83241                              DISPLAY "READ PREVIOUS (3) "
83242                                  "with wrong result: "
83243                                  test-data
83244                   END-READ
83245           END-START
83246
83247           CLOSE test-file
83248           STOP RUN.
83249_ATEOF
83250
83251
83252{ set +x
83253$as_echo "$at_srcdir/run_file.at:2955: \$COMPILE prog.cob"
83254at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2955"
83255( $at_check_trace; $COMPILE prog.cob
83256) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83257at_status=$? at_failed=false
83258$at_check_filter
83259at_fn_diff_devnull "$at_stderr" || at_failed=:
83260at_fn_diff_devnull "$at_stdout" || at_failed=:
83261at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2955"
83262$at_failed && at_fn_log_failure
83263$at_traceon; }
83264
83265{ set +x
83266$as_echo "$at_srcdir/run_file.at:2956: \$COBCRUN_DIRECT ./prog"
83267at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2956"
83268( $at_check_trace; $COBCRUN_DIRECT ./prog
83269) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83270at_status=$? at_failed=false
83271$at_check_filter
83272at_fn_diff_devnull "$at_stderr" || at_failed=:
83273at_fn_diff_devnull "$at_stdout" || at_failed=:
83274at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2956"
83275$at_failed && at_fn_log_failure
83276$at_traceon; }
83277
83278  set +x
83279  $at_times_p && times >"$at_times_file"
83280) 5>&1 2>&1 7>&- | eval $at_tee_pipe
83281read at_status <"$at_status_file"
83282#AT_STOP_757
83283#AT_START_758
83284at_fn_group_banner 758 'run_file.at:2960' \
83285  "INDEXED file variable length record" "            " 4
83286at_xfail=no
83287(
83288  $as_echo "758. $at_setup_line: testing $at_desc ..."
83289  $at_traceon
83290
83291
83292
83293$as_echo "run_file.at:2963" >"$at_check_line_file"
83294(test "$COB_HAS_ISAM" = "no") \
83295  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2963"
83296
83297cat >prog.cob <<'_ATEOF'
83298
83299       Identification division.
83300       Program-id. prog.
83301      *
83302       Environment division.
83303
83304       Input-output section.
83305       File-control.
83306      *
83307           Select optional tbw
83308               assign to path-tbw
83309               organization is indexed
83310               access mode is dynamic
83311               record key is tbw-key
83312               alternate record key is tbw-alt
83313                   suppress when space
83314               sharing with no other
83315               file status is fs-file-status.
83316      *
83317       I-o-control.
83318      *
83319       Data division.
83320       File section.
83321      *
83322       FD  tbw
83323           record is varying in size
83324               from 107 to 362 characters
83325               depending on end-tbw-record
83326	       .
83327       01  tbw-record.
83328           02 tbw-key                        pic x(100).
83329           02 tbw-alt.
83330               03 tbw-alt-1                  pic 9(02).
83331               03 tbw-alt-2                  pic 9(04).
83332           02 tbw-f1                         pic x(01).
83333           02 tbw-f2                         pic x(255).
83334      *
83335       Working-storage section.
83336
83337       01  fs-file-status                 pic x(02).
83338
83339       01  end-tbw-record                 pic 9(09) binary.
83340
83341       01  flag-tbw                       pic x(01) value low-value.
83342           88 flag-tbw-open   value high-value.
83343           88 flag-tbw-closed value low-value.
83344
83345       01  path-tbw                       pic x(255) value space.
83346
83347       Procedure division.
83348
83349      * Prepare.
83350           Move "tbw" to path-tbw.
83351
83352      * First test.
83353           Perform tbw-delete-file thru tbw-exit.
83354
83355           Perform tbw-open-i-o    thru tbw-exit.
83356
83357           Move low-values to tbw-key.
83358           Perform tbw-start-primary-greater thru tbw-exit.
83359
83360           Perform tbw-read-next thru tbw-exit.
83361
83362           Move 122 to end-tbw-record.
83363           Move "aaaaa" to tbw-key.
83364           Move spaces to tbw-alt
83365                          tbw-f1
83366                          tbw-f2.
83367           Perform tbw-write thru tbw-exit.
83368
83369           Move low-values to tbw-alt.
83370           Perform tbw-start-alternate thru tbw-exit.
83371
83372           Move low-values to tbw-key.
83373           Perform tbw-start-primary-greater thru tbw-exit.
83374
83375           Perform tbw-read-next thru tbw-exit.
83376
83377           Perform tbw-read-next thru tbw-exit.
83378
83379           Perform tbw-close thru tbw-exit.
83380
83381      * Second test.
83382
83383           Perform tbw-delete-file thru tbw-exit.
83384
83385           Perform tbw-open-i-o thru tbw-exit.
83386
83387           Move low-values to tbw-key.
83388           Perform tbw-start-primary-greater thru tbw-exit.
83389
83390           Perform tbw-read-next thru tbw-exit.
83391
83392           Move 163 to end-tbw-record.
83393           Move "aaaaa" to tbw-key.
83394           Move 1 to tbw-alt-1
83395                     tbw-alt-2.
83396           Move spaces to tbw-f1
83397                          tbw-f2.
83398           Perform tbw-write thru tbw-exit.
83399
83400           Move 122 to end-tbw-record.
83401           Move "aaaab" to tbw-key.
83402           Move spaces to tbw-alt
83403                          tbw-f1
83404                          tbw-f2.
83405           Perform tbw-write thru tbw-exit.
83406
83407           Move low-values to tbw-alt.
83408           Perform tbw-start-alternate thru tbw-exit.
83409
83410           Perform tbw-read-next thru tbw-exit.
83411
83412           Move spaces to tbw-alt.
83413           Perform tbw-rewrite thru tbw-exit.
83414
83415      *>   note: should not have status 02 as it a suppressed alternate key
83416      *>         therefore duplicate checks must be skipped
83417
83418      * Finish.
83419           Perform tbw-close thru tbw-exit.
83420           Display "Test completed".
83421           Stop run.
83422
83423      * I/O.
83424       tbw-Open-I-O.
83425           If flag-tbw-open
83426               Perform tbw-Close thru tbw-Close-exit.
83427           Display "open".
83428           Open i-o tbw.
83429           Display "open done".
83430           If fs-file-status is less than "10"
83431               Set flag-tbw-open to true.
83432           Go to tbw-exit.
83433      *
83434       tbw-Start-Primary-Greater.
83435           Display "start > tbw-key".
83436           Start tbw
83437               key is greater than tbw-key
83438               invalid key
83439                 Display "start > tbw-key inv"
83440                 Go to tbw-exit
83441               not invalid
83442                 Display "start > tbw-key done"
83443                 Go to tbw-exit.
83444           Display "start > tbw-key "  fs-file-status
83445           Go to tbw-exit.
83446      *
83447       tbw-Start-Alternate.
83448           Display "start >= tbw-alt".
83449           Start tbw
83450               key is not less than tbw-alt
83451               invalid key
83452      *>Inspect! Display "start >= tbw-alt inv"
83453                 Display "start >= tbw-alt done"
83454                 Go to tbw-exit
83455               not invalid
83456                 Display "start >= tbw-alt done"
83457                 Go to tbw-exit.
83458           Display "start >= tbw-alt "  fs-file-status
83459           Go to tbw-exit.
83460      *
83461       tbw-Read-Next.
83462           Display "read next".
83463           Read tbw
83464               next record
83465               at end
83466                 Display "read next end"
83467                 Go to tbw-exit
83468               not at end
83469                 Display "read next done"
83470                 Go to tbw-exit.
83471           Display "read next "  fs-file-status
83472           Go to tbw-exit.
83473      *
83474       tbw-Write.
83475           Display "write".
83476           Write tbw-record
83477               invalid key
83478                 Display "write inv"
83479                 Go to tbw-exit
83480               not invalid
83481                 Display "write done"
83482                 Go to tbw-exit.
83483           Display "write "  fs-file-status
83484           Go to tbw-exit.
83485      *
83486       tbw-Rewrite.
83487           Display "rewrite".
83488           Rewrite tbw-record
83489               invalid key
83490                 Display "rewrite inv "  fs-file-status
83491                 Go to tbw-exit
83492               not invalid
83493                 Display "rewrite done " fs-file-status
83494                 Go to tbw-exit.
83495           Display "rewrite "  fs-file-status
83496           Go to tbw-exit.
83497      *
83498       tbw-Delete-File.
83499           If flag-tbw-open
83500               Perform tbw-Close thru tbw-Close-exit.
83501           Move "xx" to fs-file-status.
83502           Display "delete file".
83503           Delete file tbw.
83504           Display "delete file done".
83505           Go to tbw-exit.
83506      *
83507       tbw-Close.
83508           If flag-tbw-open
83509               Display "close"
83510               Close tbw
83511               Display "close done"
83512               Set flag-tbw-closed to true
83513           end-if.
83514       tbw-Close-exit.
83515           Exit.
83516       tbw-exit.
83517           Exit.
83518_ATEOF
83519
83520
83521{ set +x
83522$as_echo "$at_srcdir/run_file.at:3187: \$COMPILE prog.cob "
83523at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_file.at:3187"
83524( $at_check_trace; $COMPILE prog.cob
83525) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83526at_status=$? at_failed=false
83527$at_check_filter
83528at_fn_diff_devnull "$at_stderr" || at_failed=:
83529at_fn_diff_devnull "$at_stdout" || at_failed=:
83530at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3187"
83531$at_failed && at_fn_log_failure
83532$at_traceon; }
83533
83534
83535{ set +x
83536$as_echo "$at_srcdir/run_file.at:3189: \$COBCRUN_DIRECT ./prog"
83537at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3189"
83538( $at_check_trace; $COBCRUN_DIRECT ./prog
83539) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83540at_status=$? at_failed=false
83541$at_check_filter
83542at_fn_diff_devnull "$at_stderr" || at_failed=:
83543echo >>"$at_stdout"; $as_echo "delete file
83544delete file done
83545open
83546open done
83547start > tbw-key
83548start > tbw-key inv
83549read next
83550read next 46
83551write
83552write done
83553start >= tbw-alt
83554start >= tbw-alt done
83555start > tbw-key
83556start > tbw-key done
83557read next
83558read next done
83559read next
83560read next end
83561close
83562close done
83563delete file
83564delete file done
83565open
83566open done
83567start > tbw-key
83568start > tbw-key inv
83569read next
83570read next 46
83571write
83572write done
83573write
83574write done
83575start >= tbw-alt
83576start >= tbw-alt done
83577read next
83578read next done
83579rewrite
83580rewrite done 00
83581close
83582close done
83583Test completed
83584" | \
83585  $at_diff - "$at_stdout" || at_failed=:
83586at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3189"
83587$at_failed && at_fn_log_failure
83588$at_traceon; }
83589
83590
83591  set +x
83592  $at_times_p && times >"$at_times_file"
83593) 5>&1 2>&1 7>&- | eval $at_tee_pipe
83594read at_status <"$at_status_file"
83595#AT_STOP_758
83596#AT_START_759
83597at_fn_group_banner 759 'run_file.at:3236' \
83598  "INDEXED sample" "                                 " 4
83599at_xfail=no
83600(
83601  $as_echo "759. $at_setup_line: testing $at_desc ..."
83602  $at_traceon
83603
83604
83605
83606# modified version of GC-FAQ: indexing example
83607# Author: Brian Tiffin, Date:   17-Feb-2009, 28-Jan-2014
83608
83609$as_echo "run_file.at:3242" >"$at_check_line_file"
83610(test "$COB_HAS_ISAM" = "no") \
83611  && at_fn_check_skip 77 "$at_srcdir/run_file.at:3242"
83612
83613cat >prog.cob <<'_ATEOF'
83614
83615
83616       identification division.
83617       program-id. linage.
83618
83619       environment division.
83620       configuration section.
83621
83622       input-output section.
83623       file-control.
83624          select optional indexed-file
83625          assign to "indexed-file.dat"
83626          status is indexing-status-code
83627          organization is indexed
83628          access mode is dynamic
83629          record key is keyfield of indexing-record
83630          alternate record key is altkey of indexing-record
83631              with duplicates
83632          .
83633
83634       data division.
83635       file section.
83636       fd indexed-file.
83637       01 indexing-record.
83638          03 keyfield          pic x(8).
83639          03 filler            pic x.
83640          03 altkey.
83641             05 first-part     pic 99.
83642             05 middle-part    pic x.
83643             05 last-part      pic 99.
83644          03 filler            pic x.
83645          03 data-part         pic x(18).
83646
83647       working-storage section.
83648       01 indexing-status-code pic xx.
83649       01 indexing-status redefines indexing-status-code pic 99.
83650          88 indexing-ok       values 0 thru 10.
83651
83652       78 line-separator       value
83653           '-----------------------------------------'.
83654       01 display-record.
83655          03 filler            pic x(4)  value spaces.
83656          03 keyfield          pic x(8).
83657          03 filler            pic xx    value spaces.
83658          03 altkey.
83659             05 first-part     pic 99.
83660             05 filler         pic x     value space.
83661             05 middle-part    pic x.
83662             05 filler         pic x     value space.
83663             05 last-part      pic 99.
83664          03 filler            pic xx    value ", ".
83665          03 data-part         pic x(18).
83666       77 safety-net           pic 99.
83667
83668      *> control break
83669       01 oldkey               pic 99x99.
83670
83671      *> read control fields
83672       01 duplicate-flag       pic x.
83673          88 no-more-duplicates          value high-value
83674             when set to false                 low-value.
83675       01 record-flag          pic x.
83676          88 no-more-records             value high-value
83677             when set to false                 low-value.
83678
83679      *> ***************************************************************
83680       procedure division.
83681       main.
83682      *> Populate a sample database, create or overwrite keys
83683           perform populate-sample
83684
83685      *> clear the record space for this example
83686           move spaces to indexing-record
83687
83688      *> open the data file again
83689           open i-o indexed-file
83690           perform indexing-check
83691           if not indexing-ok
83692             stop run returning 1
83693           end-if
83694
83695      *> read all the duplicate 00b02 keys
83696           move 00 to first-part of indexing-record
83697           move "b" to middle-part of indexing-record
83698           move 02 to last-part of indexing-record
83699
83700      *> using read key and then next key / last key compare
83701           set no-more-duplicates to false
83702
83703           display "Read all 00b02 keys sequentially" end-display
83704           perform read-indexing-record
83705           perform read-next-record
83706      *>       this is only here for safety...
83707               varying safety-net from 1 by 1
83708               until no-more-duplicates
83709      *>         s a f e  against broken indexed i/o
83710                  or safety-net > 40
83711           if safety-net > 40
83712               display "Safety kicked in!" end-display
83713           end-if
83714           display line-separator end-display
83715
83716      *> read by key of reference ... the cool stuff
83717           move 00 to first-part of indexing-record
83718           move "a" to middle-part of indexing-record
83719           move 02 to last-part of indexing-record
83720           set no-more-records to false
83721
83722      *> using start and read next
83723           display "Read all alternate keys greater than 00a02"
83724           end-display
83725           perform start-at-key
83726           perform read-next-by-key
83727      *>       this is only here for safety...
83728               varying safety-net from 1 by 1
83729               until no-more-records
83730      *>         s a f e  against broken indexed i/o
83731                  or safety-net > 40
83732           if safety-net > 40
83733               display "Safety kicked in!" end-display
83734           end-if
83735           display line-separator end-display
83736
83737      *> read by primary key of reference
83738           move "87654321" to keyfield of indexing-record
83739           set no-more-records to false
83740
83741      *> using start and previous by key
83742           display
83743               "Read all primary keys less than "
83744               function trim (keyfield of indexing-record)
83745           end-display
83746           perform start-prime-key
83747           perform read-previous-by-key
83748      *>       this is only here for safety...
83749               varying safety-net from 1 by 1
83750               until no-more-records
83751      *>         s a f e  against broken indexed i/o
83752                  or safety-net > 40
83753           if safety-net > 40
83754             display "Safety kicked in!" end-display
83755           end-if
83756           display line-separator end-display
83757
83758      *> and with that we are done with indexing sample
83759           close indexed-file
83760
83761           goback
83762           .
83763      *> ***************************************************************
83764
83765      *> ***************************************************************
83766      *><* read by alternate key paragraph
83767       read-indexing-record.
83768           display "Reading: " altkey of indexing-record end-display
83769           read indexed-file key is altkey of indexing-record
83770               invalid key
83771                   display
83772                       "bad read key: "
83773                       function trim (altkey of indexing-record)
83774                       upon syserr
83775                   end-display
83776               set no-more-duplicates to true
83777           end-read
83778           perform indexing-check
83779           .
83780
83781      *><* read next sequential paragraph
83782       read-next-record.
83783           move corresponding indexing-record to display-record
83784           display display-record end-display
83785           move altkey of indexing-record to oldkey
83786
83787           read indexed-file next record
83788               at end set no-more-duplicates to true
83789               not at end
83790                   if oldkey not equal altkey of indexing-record
83791                       set no-more-duplicates to true
83792                   end-if
83793           end-read
83794           perform indexing-check
83795           .
83796
83797      *><* start primary key of reference paragraph
83798       start-prime-key.
83799           display "Prime < " keyfield of indexing-record end-display
83800           start indexed-file
83801              key is less than
83802                  keyfield of indexing-record
83803              invalid key
83804                  display
83805                      "bad start: "
83806                      function trim (keyfield of indexing-record)
83807                      upon syserr
83808                  end-display
83809                  set no-more-records to true
83810              not invalid key
83811                  read indexed-file previous record
83812                      at end set no-more-records to true
83813                  end-read
83814           end-start
83815           perform indexing-check
83816           .
83817
83818      *><* read previous by key of reference paragraph
83819       read-previous-by-key.
83820           move corresponding indexing-record to display-record
83821           display display-record end-display
83822
83823           read indexed-file previous record
83824               at end set no-more-records to true
83825           end-read
83826           perform indexing-check
83827           .
83828      *><* start alternate key of reference paragraph
83829       start-at-key.
83830           display "Seeking >= " altkey of indexing-record end-display
83831           start indexed-file
83832              key is greater than or equal to
83833                  altkey of indexing-record
83834              invalid key
83835                  display
83836                      "bad start: "
83837                      function trim (altkey of indexing-record)
83838                      upon syserr
83839                  end-display
83840                  set no-more-records to true
83841              not invalid key
83842                  read indexed-file next record
83843                      at end set no-more-records to true
83844                  end-read
83845           end-start
83846           perform indexing-check
83847           .
83848
83849      *><* read next by key of reference paragraph
83850       read-next-by-key.
83851           move corresponding indexing-record to display-record
83852           display display-record end-display
83853
83854           read indexed-file next record
83855               at end set no-more-records to true
83856           end-read
83857           perform indexing-check
83858           .
83859
83860      *><* populate a sample database
83861       populate-sample.
83862
83863      *> Open optional index file for read write
83864           open i-o indexed-file
83865           perform indexing-check
83866
83867           move "12345678 00a01 some 12345678 data" to indexing-record
83868           perform write-indexing-record
83869           move "87654321 00a01 some 87654321 data" to indexing-record
83870           perform write-indexing-record
83871           move "12348765 00a01 some 12348765 data" to indexing-record
83872           perform write-indexing-record
83873           move "87651234 00a01 some 87651234 data" to indexing-record
83874           perform write-indexing-record
83875
83876           move "12345679 00b02 some 12345679 data" to indexing-record
83877           perform write-indexing-record
83878           move "97654321 00b02 some 97654321 data" to indexing-record
83879           perform write-indexing-record
83880           move "12349765 00b02 some 12349765 data" to indexing-record
83881           perform write-indexing-record
83882           move "97651234 00b02 some 97651234 data" to indexing-record
83883           perform write-indexing-record
83884
83885           move "12345689 00c13 some 12345689 data" to indexing-record
83886           perform write-indexing-record
83887           move "98654321 00c13 some 98654321 data" to indexing-record
83888           perform write-indexing-record
83889           move "12349865 00c13 some 12349865 data" to indexing-record
83890           perform write-indexing-record
83891           move "98651234 00c13 some 98651234 data" to indexing-record
83892           perform write-indexing-record
83893
83894      *> close it ... not necessary, but for the example we will
83895           close indexed-file
83896           perform indexing-check
83897           .
83898
83899      *><* Write paragraph
83900       write-indexing-record.
83901           write indexing-record
83902               invalid key
83903                   display
83904                       "rewriting key: "
83905                       function trim (keyfield of indexing-record)
83906                       upon syserr
83907                   end-display
83908                   rewrite indexing-record
83909                       invalid key
83910                           display
83911                               "really bad key: "
83912                             function trim (keyfield of indexing-record)
83913                               upon syserr
83914                           end-display
83915                   end-rewrite
83916           end-write
83917           .
83918
83919      *><* file status quick check.  For this sample, keep running
83920       indexing-check.
83921           if not indexing-ok then
83922               display
83923                   "isam file io problem: " indexing-status
83924                   upon syserr
83925               end-display
83926           end-if
83927           .
83928_ATEOF
83929
83930
83931{ set +x
83932$as_echo "$at_srcdir/run_file.at:3560: \$COMPILE prog.cob"
83933at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3560"
83934( $at_check_trace; $COMPILE prog.cob
83935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83936at_status=$? at_failed=false
83937$at_check_filter
83938at_fn_diff_devnull "$at_stderr" || at_failed=:
83939at_fn_diff_devnull "$at_stdout" || at_failed=:
83940at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3560"
83941$at_failed && at_fn_log_failure
83942$at_traceon; }
83943
83944{ set +x
83945$as_echo "$at_srcdir/run_file.at:3561: rm -f \"indexed-file.*\""
83946at_fn_check_prepare_trace "run_file.at:3561"
83947( $at_check_trace; rm -f "indexed-file.*"
83948) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83949at_status=$? at_failed=false
83950$at_check_filter
83951at_fn_diff_devnull "$at_stderr" || at_failed=:
83952at_fn_diff_devnull "$at_stdout" || at_failed=:
83953at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3561"
83954$at_failed && at_fn_log_failure
83955$at_traceon; }
83956
83957{ set +x
83958$as_echo "$at_srcdir/run_file.at:3562: \$COBCRUN_DIRECT ./prog"
83959at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3562"
83960( $at_check_trace; $COBCRUN_DIRECT ./prog
83961) >>"$at_stdout" 2>>"$at_stderr" 5>&-
83962at_status=$? at_failed=false
83963$at_check_filter
83964at_fn_diff_devnull "$at_stderr" || at_failed=:
83965echo >>"$at_stdout"; $as_echo "Read all 00b02 keys sequentially
83966Reading: 00b02
83967    12345679  00 b 02, some 12345679 data
83968    97654321  00 b 02, some 97654321 data
83969    12349765  00 b 02, some 12349765 data
83970    97651234  00 b 02, some 97651234 data
83971-----------------------------------------
83972Read all alternate keys greater than 00a02
83973Seeking >= 00a02
83974    12345679  00 b 02, some 12345679 data
83975    97654321  00 b 02, some 97654321 data
83976    12349765  00 b 02, some 12349765 data
83977    97651234  00 b 02, some 97651234 data
83978    12345689  00 c 13, some 12345689 data
83979    98654321  00 c 13, some 98654321 data
83980    12349865  00 c 13, some 12349865 data
83981    98651234  00 c 13, some 98651234 data
83982-----------------------------------------
83983Read all primary keys less than 87654321
83984Prime < 87654321
83985    87651234  00 a 01, some 87651234 data
83986    12349865  00 c 13, some 12349865 data
83987    12349765  00 b 02, some 12349765 data
83988    12348765  00 a 01, some 12348765 data
83989    12345689  00 c 13, some 12345689 data
83990    12345679  00 b 02, some 12345679 data
83991    12345678  00 a 01, some 12345678 data
83992-----------------------------------------
83993" | \
83994  $at_diff - "$at_stdout" || at_failed=:
83995at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3562"
83996$at_failed && at_fn_log_failure
83997$at_traceon; }
83998
83999{ set +x
84000$as_echo "$at_srcdir/run_file.at:3592: \$COBCRUN_DIRECT ./prog"
84001at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3592"
84002( $at_check_trace; $COBCRUN_DIRECT ./prog
84003) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84004at_status=$? at_failed=false
84005$at_check_filter
84006echo >>"$at_stderr"; $as_echo "rewriting key: 12345678
84007rewriting key: 87654321
84008rewriting key: 12348765
84009rewriting key: 87651234
84010rewriting key: 12345679
84011rewriting key: 97654321
84012rewriting key: 12349765
84013rewriting key: 97651234
84014rewriting key: 12345689
84015rewriting key: 98654321
84016rewriting key: 12349865
84017rewriting key: 98651234
84018" | \
84019  $at_diff - "$at_stderr" || at_failed=:
84020echo >>"$at_stdout"; $as_echo "Read all 00b02 keys sequentially
84021Reading: 00b02
84022    12345679  00 b 02, some 12345679 data
84023    97654321  00 b 02, some 97654321 data
84024    12349765  00 b 02, some 12349765 data
84025    97651234  00 b 02, some 97651234 data
84026-----------------------------------------
84027Read all alternate keys greater than 00a02
84028Seeking >= 00a02
84029    12345679  00 b 02, some 12345679 data
84030    97654321  00 b 02, some 97654321 data
84031    12349765  00 b 02, some 12349765 data
84032    97651234  00 b 02, some 97651234 data
84033    12345689  00 c 13, some 12345689 data
84034    98654321  00 c 13, some 98654321 data
84035    12349865  00 c 13, some 12349865 data
84036    98651234  00 c 13, some 98651234 data
84037-----------------------------------------
84038Read all primary keys less than 87654321
84039Prime < 87654321
84040    87651234  00 a 01, some 87651234 data
84041    12349865  00 c 13, some 12349865 data
84042    12349765  00 b 02, some 12349765 data
84043    12348765  00 a 01, some 12348765 data
84044    12345689  00 c 13, some 12345689 data
84045    12345679  00 b 02, some 12345679 data
84046    12345678  00 a 01, some 12345678 data
84047-----------------------------------------
84048" | \
84049  $at_diff - "$at_stdout" || at_failed=:
84050at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3592"
84051$at_failed && at_fn_log_failure
84052$at_traceon; }
84053
84054
84055  set +x
84056  $at_times_p && times >"$at_times_file"
84057) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84058read at_status <"$at_status_file"
84059#AT_STOP_759
84060#AT_START_760
84061at_fn_group_banner 760 'run_file.at:3639' \
84062  "WRITE + REWRITE FILE name" "                      " 4
84063at_xfail=no
84064(
84065  $as_echo "760. $at_setup_line: testing $at_desc ..."
84066  $at_traceon
84067
84068
84069
84070cat >prog.cob <<'_ATEOF'
84071
84072       IDENTIFICATION DIVISION.
84073       PROGRAM-ID. prog.
84074       ENVIRONMENT DIVISION.
84075       CONFIGURATION SECTION.
84076
84077       INPUT-OUTPUT SECTION.
84078       FILE-CONTROL.
84079           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
84080           ORGANIZATION RELATIVE
84081           ACCESS IS SEQUENTIAL RELATIVE KEY IS REC-NUM
84082           FILE STATUS IS CUST-STAT.
84083
84084           SELECT FLATFILE2 ASSIGN EXTERNAL RELFIX
84085           ORGANIZATION RELATIVE
84086           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
84087           FILE STATUS IS CUST-STAT.
84088
84089       DATA  DIVISION.
84090       FILE SECTION.
84091       FD  FLATFILE
84092           BLOCK CONTAINS 5 RECORDS.
84093
84094       01  TSPFL-RECORD.
84095           10  CM-CUST-NUM                     PICTURE X(8).
84096           10  CM-COMPANY                      PICTURE X(25).
84097           10  CM-DISK                         PICTURE X(8).
84098           10  CM-NO-TERMINALS                 PICTURE 9(4).
84099
84100       FD  FLATFILE2
84101           BLOCK CONTAINS 5 RECORDS.
84102
84103       01  TSP2-RECORD.
84104           10  C2-CUST-NUM                     PICTURE X(8).
84105           10  C2-COMPANY                      PICTURE X(25).
84106           10  C2-DISK                         PICTURE X(8).
84107           10  C2-NO-TERMINALS                 PICTURE 9(4).
84108
84109       WORKING-STORAGE SECTION.
84110
84111       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
84112       77  CUST-STAT                           PICTURE X(2).
84113       77  REC-NUM           VALUE  1          PICTURE 9(4).
84114
84115       01  TEST-DATA.
84116
84117         02  DATA-CUST-NUM-TBL.
84118
84119           05  FILLER PIC X(8) VALUE "ALP00000".
84120           05  FILLER PIC X(8) VALUE "BET00000".
84121           05  FILLER PIC X(8) VALUE "DEL00000".
84122           05  FILLER PIC X(8) VALUE "EPS00000".
84123           05  FILLER PIC X(8) VALUE "FOR00000".
84124           05  FILLER PIC X(8) VALUE "GAM00000".
84125
84126         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
84127                                       PIC X(8) OCCURS 6.
84128         02  DATA-COMPANY-TBL.
84129
84130           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
84131           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
84132           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
84133           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
84134           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
84135           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
84136         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
84137                                       PIC X(25) OCCURS 6.
84138         02  DATA-ADDRESS-2-TBL.
84139
84140           05  FILLER PIC X(10) VALUE "ATLANTA   ".
84141           05  FILLER PIC X(10) VALUE "CALGARY   ".
84142           05  FILLER PIC X(10) VALUE "NEW YORK  ".
84143           05  FILLER PIC X(10) VALUE "TORONTO   ".
84144           05  FILLER PIC X(10) VALUE "WASHINGTON".
84145           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
84146         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
84147                                       PIC X(10) OCCURS 6.
84148
84149         02  DATA-NO-TERMINALS-TBL.
84150
84151           05  FILLER PIC 9(3) COMP-3 VALUE 10.
84152           05  FILLER PIC 9(3) COMP-3 VALUE 13.
84153           05  FILLER PIC 9(3) COMP-3 VALUE 75.
84154           05  FILLER PIC 9(3) COMP-3 VALUE 10.
84155           05  FILLER PIC 9(3) COMP-3 VALUE 90.
84156           05  FILLER PIC 9(3) COMP-3 VALUE 254.
84157
84158         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
84159                                       PIC 9(3) COMP-3 OCCURS 6.
84160       01  WORK-AREA.
84161           05  SUB                             PICTURE 9(4) COMP SYNC.
84162               88  ODD-RECORD                  VALUE 1 3 5.
84163
84164
84165       PROCEDURE DIVISION.
84166
84167           PERFORM LOADFILE.
84168
84169           OPEN I-O FLATFILE2.
84170           MOVE 2 TO REC-NUM
84171           READ FLATFILE2
84172           DISPLAY "Read    " C2-CUST-NUM " Sts:" CUST-STAT
84173                   " Trms:" C2-NO-TERMINALS.
84174           ADD 1 TO C2-NO-TERMINALS
84175           REWRITE FILE FLATFILE2 FROM TSP2-RECORD
84176           READ FLATFILE2
84177           DISPLAY "REWROTE " C2-CUST-NUM " Sts:" CUST-STAT
84178                   " Trms:" C2-NO-TERMINALS.
84179           CLOSE FLATFILE2.
84180           STOP RUN.
84181
84182       LOADFILE.
84183           DISPLAY "Loading sample program data file."
84184                            UPON CONSOLE.
84185
84186           OPEN OUTPUT FLATFILE.
84187
84188           PERFORM LOAD-RECORD
84189                        VARYING SUB FROM 1 BY 1
84190                          UNTIL SUB > MAX-SUB.
84191
84192           DISPLAY "Sample program data file load complete."
84193                            UPON CONSOLE.
84194           CLOSE FLATFILE.
84195
84196       LOAD-RECORD.
84197
84198           MOVE SPACES                       TO TSPFL-RECORD.
84199           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
84200           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
84201           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
84202           IF  ODD-RECORD
84203               MOVE "8417"                   TO CM-DISK
84204           ELSE
84205               MOVE "8470"                   TO CM-DISK.
84206           WRITE FILE FLATFILE FROM TSPFL-RECORD.
84207_ATEOF
84208
84209
84210{ set +x
84211$as_echo "$at_srcdir/run_file.at:3780: \$COMPILE prog.cob"
84212at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3780"
84213( $at_check_trace; $COMPILE prog.cob
84214) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84215at_status=$? at_failed=false
84216$at_check_filter
84217at_fn_diff_devnull "$at_stderr" || at_failed=:
84218at_fn_diff_devnull "$at_stdout" || at_failed=:
84219at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3780"
84220$at_failed && at_fn_log_failure
84221$at_traceon; }
84222
84223
84224{ set +x
84225$as_echo "$at_srcdir/run_file.at:3782: \$COBCRUN_DIRECT ./prog"
84226at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3782"
84227( $at_check_trace; $COBCRUN_DIRECT ./prog
84228) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84229at_status=$? at_failed=false
84230$at_check_filter
84231at_fn_diff_devnull "$at_stderr" || at_failed=:
84232echo >>"$at_stdout"; $as_echo "Loading sample program data file.
84233Sample program data file load complete.
84234Read    BET00000 Sts:00 Trms:0013
84235REWROTE BET00000 Sts:00 Trms:0014
84236" | \
84237  $at_diff - "$at_stdout" || at_failed=:
84238at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3782"
84239$at_failed && at_fn_log_failure
84240$at_traceon; }
84241
84242
84243  set +x
84244  $at_times_p && times >"$at_times_file"
84245) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84246read at_status <"$at_status_file"
84247#AT_STOP_760
84248#AT_START_761
84249at_fn_group_banner 761 'run_file.at:3792' \
84250  "START RELATIVE (1)" "                             " 4
84251at_xfail=no
84252(
84253  $as_echo "761. $at_setup_line: testing $at_desc ..."
84254  $at_traceon
84255
84256
84257
84258cat >prog.cob <<'_ATEOF'
84259
84260       IDENTIFICATION   DIVISION.
84261       PROGRAM-ID.      prog.
84262       ENVIRONMENT      DIVISION.
84263       INPUT-OUTPUT     SECTION.
84264       FILE-CONTROL.
84265       SELECT OPTIONAL TEST-FILE
84266              ASSIGN      "TESTFILE"
84267              ACCESS       DYNAMIC
84268              ORGANIZATION RELATIVE
84269              STATUS       TESTSTAT
84270              RELATIVE KEY TESTKEY
84271       .
84272       DATA             DIVISION.
84273       FILE             SECTION.
84274       FD  TEST-FILE.
84275       01  TEST-REC     PIC X(4).
84276       WORKING-STORAGE  SECTION.
84277       01  TESTKEY      USAGE BINARY-LONG UNSIGNED.
84278       01  TESTSTAT     PIC XX.
84279           88  V-OK     VALUE "00" "05".
84280       PROCEDURE        DIVISION.
84281           DELETE FILE TEST-FILE.
84282           OPEN  I-O   TEST-FILE.
84283           IF NOT V-OK
84284              DISPLAY "OPEN " TESTSTAT
84285              END-DISPLAY
84286              GOBACK
84287           END-IF.
84288           MOVE 99 TO TESTKEY.
84289           START TEST-FILE KEY < TESTKEY
84290           END-START.
84291           IF TESTSTAT NOT = "23"
84292              DISPLAY "START " TESTSTAT
84293              END-DISPLAY
84294           END-IF.
84295           CLOSE TEST-FILE.
84296       END PROGRAM prog.
84297_ATEOF
84298
84299
84300{ set +x
84301$as_echo "$at_srcdir/run_file.at:3835: \$COMPILE prog.cob"
84302at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3835"
84303( $at_check_trace; $COMPILE prog.cob
84304) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84305at_status=$? at_failed=false
84306$at_check_filter
84307at_fn_diff_devnull "$at_stderr" || at_failed=:
84308at_fn_diff_devnull "$at_stdout" || at_failed=:
84309at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3835"
84310$at_failed && at_fn_log_failure
84311$at_traceon; }
84312
84313{ set +x
84314$as_echo "$at_srcdir/run_file.at:3836: \$COBCRUN_DIRECT ./prog"
84315at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3836"
84316( $at_check_trace; $COBCRUN_DIRECT ./prog
84317) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84318at_status=$? at_failed=false
84319$at_check_filter
84320at_fn_diff_devnull "$at_stderr" || at_failed=:
84321at_fn_diff_devnull "$at_stdout" || at_failed=:
84322at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3836"
84323$at_failed && at_fn_log_failure
84324$at_traceon; }
84325
84326
84327  set +x
84328  $at_times_p && times >"$at_times_file"
84329) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84330read at_status <"$at_status_file"
84331#AT_STOP_761
84332#AT_START_762
84333at_fn_group_banner 762 'run_file.at:3841' \
84334  "START RELATIVE (2)" "                             " 4
84335at_xfail=no
84336(
84337  $as_echo "762. $at_setup_line: testing $at_desc ..."
84338  $at_traceon
84339
84340
84341
84342cat >prog.cob <<'_ATEOF'
84343
84344       IDENTIFICATION   DIVISION.
84345       PROGRAM-ID.      prog.
84346       ENVIRONMENT      DIVISION.
84347       INPUT-OUTPUT     SECTION.
84348       FILE-CONTROL.
84349       SELECT OPTIONAL TEST-FILE
84350              ASSIGN      "TESTFILE"
84351              ACCESS       DYNAMIC
84352              ORGANIZATION RELATIVE
84353              STATUS       TESTSTAT
84354              RELATIVE KEY TESTKEY
84355       .
84356       DATA             DIVISION.
84357       FILE             SECTION.
84358       FD  TEST-FILE.
84359       01  TEST-REC     PIC X(4).
84360       WORKING-STORAGE  SECTION.
84361       01  TESTKEY      USAGE BINARY-LONG UNSIGNED.
84362       01  TESTSTAT     PIC XX.
84363           88  V-OK     VALUE "00" "05".
84364           88  V-ZERO   VALUE "00".
84365       PROCEDURE        DIVISION.
84366           OPEN  I-O   TEST-FILE.
84367           IF NOT V-OK
84368              DISPLAY "OPEN " TESTSTAT
84369              END-DISPLAY
84370              GOBACK
84371           END-IF.
84372           MOVE 3 TO TESTKEY.
84373           MOVE "0003" TO TEST-REC.
84374           WRITE TEST-REC INVALID KEY
84375                 DISPLAY "WRITE " TESTSTAT
84376                 END-DISPLAY
84377           END-WRITE.
84378           MOVE 2 TO TESTKEY.
84379           MOVE "0002" TO TEST-REC.
84380           WRITE TEST-REC INVALID KEY
84381                 DISPLAY "WRITE " TESTSTAT
84382                 END-DISPLAY
84383           END-WRITE.
84384           MOVE 99 TO TESTKEY.
84385           START TEST-FILE KEY < TESTKEY
84386           END-START.
84387           IF NOT V-ZERO
84388              DISPLAY "START " TESTSTAT
84389              END-DISPLAY
84390           END-IF.
84391           IF TESTKEY NOT = 99
84392              DISPLAY "TESTKEY " TESTKEY
84393              END-DISPLAY
84394           END-IF.
84395           MOVE  SPACE TO TEST-REC.
84396           READ  TEST-FILE NEXT
84397           END-READ.
84398           IF NOT V-ZERO
84399              DISPLAY "READ " TESTSTAT
84400              END-DISPLAY
84401           END-IF.
84402           IF TEST-REC NOT = "0003"
84403              DISPLAY "READ RECORD " TEST-REC
84404              END-DISPLAY
84405           END-IF.
84406           CLOSE TEST-FILE.
84407       END PROGRAM prog.
84408_ATEOF
84409
84410
84411{ set +x
84412$as_echo "$at_srcdir/run_file.at:3911: \$COMPILE prog.cob"
84413at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3911"
84414( $at_check_trace; $COMPILE prog.cob
84415) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84416at_status=$? at_failed=false
84417$at_check_filter
84418at_fn_diff_devnull "$at_stderr" || at_failed=:
84419at_fn_diff_devnull "$at_stdout" || at_failed=:
84420at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3911"
84421$at_failed && at_fn_log_failure
84422$at_traceon; }
84423
84424{ set +x
84425$as_echo "$at_srcdir/run_file.at:3912: \$COBCRUN_DIRECT ./prog"
84426at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3912"
84427( $at_check_trace; $COBCRUN_DIRECT ./prog
84428) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84429at_status=$? at_failed=false
84430$at_check_filter
84431at_fn_diff_devnull "$at_stderr" || at_failed=:
84432at_fn_diff_devnull "$at_stdout" || at_failed=:
84433at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3912"
84434$at_failed && at_fn_log_failure
84435$at_traceon; }
84436
84437
84438  set +x
84439  $at_times_p && times >"$at_times_file"
84440) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84441read at_status <"$at_status_file"
84442#AT_STOP_762
84443#AT_START_763
84444at_fn_group_banner 763 'run_file.at:3917' \
84445  "START RELATIVE (3)" "                             " 4
84446at_xfail=no
84447(
84448  $as_echo "763. $at_setup_line: testing $at_desc ..."
84449  $at_traceon
84450
84451
84452
84453cat >prog.cob <<'_ATEOF'
84454
84455       IDENTIFICATION DIVISION.
84456       PROGRAM-ID. prog.
84457       ENVIRONMENT DIVISION.
84458       INPUT-OUTPUT SECTION.
84459       FILE-CONTROL.
84460       SELECT file1 ASSIGN TO DISK
84461                    ORGANIZATION RELATIVE
84462                    ACCESS DYNAMIC RELATIVE KEY file1-key.
84463       DATA DIVISION.
84464       FILE SECTION.
84465       FD file1.
84466       1  file1-rec pic 999.
84467       WORKING-STORAGE SECTION.
84468       77  file1-key pic 9(6).
84469       PROCEDURE DIVISION.
84470          OPEN OUTPUT file1.
84471          CLOSE file1.
84472          OPEN I-O file1.
84473          MOVE 10 TO file1-key file1-rec.
84474          WRITE file1-rec.
84475          MOVE 11 TO file1-key file1-rec.
84476          WRITE file1-rec.
84477          MOVE 12 TO file1-key file1-rec.
84478          WRITE file1-rec.
84479          MOVE 13 TO file1-key file1-rec.
84480          WRITE file1-rec.
84481      *
84482          MOVE 0 TO file1-key.
84483          START file1 KEY > file1-key.
84484          READ file1 NEXT.
84485          IF (file1-rec <> 10)
84486             DISPLAY "FAILED: START key > 0".
84487      *
84488          MOVE 99 TO file1-key.
84489          START file1 KEY < file1-key.
84490          READ file1 NEXT.
84491          IF (file1-rec <> 13)
84492             DISPLAY "FAILED: START key < 99".
84493      *
84494          MOVE 0 TO file1-key.
84495          START file1 FIRST.
84496          READ file1 NEXT.
84497          IF (file1-rec <> 10)
84498             DISPLAY "FAILED: START key FIRST".
84499      *
84500          MOVE 0 TO file1-key.
84501          START file1 LAST.
84502          READ file1 NEXT.
84503          IF (file1-rec <> 13)
84504             DISPLAY "FAILED: START key LAST".
84505      *
84506          MOVE 0 TO file1-key.
84507          START file1 KEY >= file1-key.
84508          READ file1 NEXT.
84509          IF (file1-rec <> 10)
84510             DISPLAY "FAILED: START key >= 0".
84511      *
84512          MOVE 99 TO file1-key.
84513          START file1 KEY <= file1-key.
84514          READ file1 NEXT.
84515          IF (file1-rec <> 13)
84516             DISPLAY "FAILED: START key <= 99".
84517      *
84518          CLOSE file1.
84519          STOP RUN.
84520_ATEOF
84521
84522
84523{ set +x
84524$as_echo "$at_srcdir/run_file.at:3988: \$COMPILE prog.cob"
84525at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3988"
84526( $at_check_trace; $COMPILE prog.cob
84527) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84528at_status=$? at_failed=false
84529$at_check_filter
84530at_fn_diff_devnull "$at_stderr" || at_failed=:
84531at_fn_diff_devnull "$at_stdout" || at_failed=:
84532at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3988"
84533$at_failed && at_fn_log_failure
84534$at_traceon; }
84535
84536{ set +x
84537$as_echo "$at_srcdir/run_file.at:3989: \$COBCRUN_DIRECT ./prog"
84538at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3989"
84539( $at_check_trace; $COBCRUN_DIRECT ./prog
84540) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84541at_status=$? at_failed=false
84542$at_check_filter
84543at_fn_diff_devnull "$at_stderr" || at_failed=:
84544at_fn_diff_devnull "$at_stdout" || at_failed=:
84545at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3989"
84546$at_failed && at_fn_log_failure
84547$at_traceon; }
84548
84549  set +x
84550  $at_times_p && times >"$at_times_file"
84551) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84552read at_status <"$at_status_file"
84553#AT_STOP_763
84554#AT_START_764
84555at_fn_group_banner 764 'run_file.at:3993' \
84556  "READ on OPTIONAL missing RELATIVE / SEQUENTIAL" " " 4
84557at_xfail=no
84558(
84559  $as_echo "764. $at_setup_line: testing $at_desc ..."
84560  $at_traceon
84561
84562
84563
84564cat >prog.cob <<'_ATEOF'
84565
84566       IDENTIFICATION DIVISION.
84567       PROGRAM-ID. prog.
84568       ENVIRONMENT DIVISION.
84569       CONFIGURATION SECTION.
84570       INPUT-OUTPUT SECTION.
84571       FILE-CONTROL.
84572           SELECT OPTIONAL INFILE  ASSIGN TO
84573                "missing.txt"
84574                ORGANIZATION IS RELATIVE
84575                ACCESS IS SEQUENTIAL
84576                FILE STATUS IS WSFS.
84577           SELECT OPTIONAL INFILES ASSIGN TO
84578                "missings.txt"
84579                ORGANIZATION IS SEQUENTIAL
84580                ACCESS IS SEQUENTIAL
84581                FILE STATUS IS WSFS.
84582       DATA DIVISION.
84583       FILE SECTION.
84584       FD  INFILE.
84585       01  INREC             PIC X(80).
84586       FD  INFILES.
84587       01  INRECS            PIC X(80).
84588       WORKING-STORAGE SECTION.
84589       01  WSFS           PIC X(2).
84590           88  RECORDFOUND VALUE "00".
84591       01  WSINREC         PIC X(80).
84592       PROCEDURE DIVISION.
84593       MAIN-PROCEDURE.
84594      *    Open missing file
84595           OPEN INPUT INFILE
84596           DISPLAY "R: OPEN INPUT on missing optional file = " WSFS " "
84597                    NO ADVANCING
84598           IF WSFS = '05'
84599              DISPLAY "OK"
84600           ELSE
84601              DISPLAY "Bad"
84602           END-IF.
84603           OPEN INPUT INFILES
84604           DISPLAY "S: OPEN INPUT on missing optional file = " WSFS " "
84605                    NO ADVANCING
84606           IF WSFS = '05'
84607              DISPLAY "OK"
84608           ELSE
84609              DISPLAY "Bad"
84610           END-IF.
84611      *    First read, raise a FS 10 (AT END) which is expected
84612           READ INFILE INTO WSINREC
84613           DISPLAY "R: 1st READ on missing optional file = " WSFS " "
84614                    NO ADVANCING
84615           IF WSFS = '10'
84616              DISPLAY "OK"
84617           ELSE
84618              DISPLAY "Bad"
84619           END-IF.
84620           READ INFILES INTO WSINREC
84621           DISPLAY "S: 1st READ on missing optional file = " WSFS " "
84622                    NO ADVANCING
84623           IF WSFS = '10'
84624              DISPLAY "OK"
84625           ELSE
84626              DISPLAY "Bad"
84627           END-IF.
84628
84629      *    Second read, should raise a FS 46 (READ AFTER AT END).
84630           READ INFILE INTO WSINREC
84631           DISPLAY "R: 2nd READ on missing optional file = " WSFS " "
84632                    NO ADVANCING
84633           IF WSFS = '46'
84634              DISPLAY "OK"
84635           ELSE
84636              DISPLAY "Bad"
84637           END-IF.
84638           READ INFILES INTO WSINREC
84639           DISPLAY "S: 2nd READ on missing optional file = " WSFS " "
84640                    NO ADVANCING
84641           IF WSFS = '46'
84642              DISPLAY "OK"
84643           ELSE
84644              DISPLAY "Bad"
84645           END-IF.
84646           READ INFILE
84647           DISPLAY "R: 3rd READ on missing optional file = " WSFS " "
84648                    NO ADVANCING
84649           IF WSFS = '46'
84650              DISPLAY "OK"
84651           ELSE
84652              DISPLAY "Bad"
84653           END-IF.
84654           READ INFILES
84655           DISPLAY "S: 3rd READ on missing optional file = " WSFS " "
84656                    NO ADVANCING
84657           IF WSFS = '46'
84658              DISPLAY "OK"
84659           ELSE
84660              DISPLAY "Bad"
84661           END-IF.
84662
84663           CLOSE INFILE
84664           CLOSE INFILES
84665           STOP RUN.
84666_ATEOF
84667
84668
84669{ set +x
84670$as_echo "$at_srcdir/run_file.at:4099: \$COMPILE prog.cob"
84671at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4099"
84672( $at_check_trace; $COMPILE prog.cob
84673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84674at_status=$? at_failed=false
84675$at_check_filter
84676at_fn_diff_devnull "$at_stderr" || at_failed=:
84677at_fn_diff_devnull "$at_stdout" || at_failed=:
84678at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4099"
84679$at_failed && at_fn_log_failure
84680$at_traceon; }
84681
84682
84683{ set +x
84684$as_echo "$at_srcdir/run_file.at:4101: \$COBCRUN_DIRECT ./prog"
84685at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4101"
84686( $at_check_trace; $COBCRUN_DIRECT ./prog
84687) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84688at_status=$? at_failed=false
84689$at_check_filter
84690at_fn_diff_devnull "$at_stderr" || at_failed=:
84691echo >>"$at_stdout"; $as_echo "R: OPEN INPUT on missing optional file = 05 OK
84692S: OPEN INPUT on missing optional file = 05 OK
84693R: 1st READ on missing optional file = 10 OK
84694S: 1st READ on missing optional file = 10 OK
84695R: 2nd READ on missing optional file = 46 OK
84696S: 2nd READ on missing optional file = 46 OK
84697R: 3rd READ on missing optional file = 46 OK
84698S: 3rd READ on missing optional file = 46 OK
84699" | \
84700  $at_diff - "$at_stdout" || at_failed=:
84701at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4101"
84702$at_failed && at_fn_log_failure
84703$at_traceon; }
84704
84705
84706  set +x
84707  $at_times_p && times >"$at_times_file"
84708) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84709read at_status <"$at_status_file"
84710#AT_STOP_764
84711#AT_START_765
84712at_fn_group_banner 765 'run_file.at:4115' \
84713  "READ on OPTIONAL missing INDEXED file" "          " 4
84714at_xfail=no
84715(
84716  $as_echo "765. $at_setup_line: testing $at_desc ..."
84717  $at_traceon
84718
84719
84720
84721$as_echo "run_file.at:4118" >"$at_check_line_file"
84722(test "$COB_HAS_ISAM" = "no") \
84723  && at_fn_check_skip 77 "$at_srcdir/run_file.at:4118"
84724
84725cat >prog.cob <<'_ATEOF'
84726
84727       IDENTIFICATION DIVISION.
84728       PROGRAM-ID. prog.
84729
84730       ENVIRONMENT DIVISION.
84731       INPUT-OUTPUT SECTION.
84732       FILE-CONTROL.
84733           SELECT OPTIONAL file1 ASSIGN "fileX"
84734               ORGANIZATION IS INDEXED
84735               RECORD KEY IS file1-key
84736               STATUS f-status.
84737
84738       DATA DIVISION.
84739       FILE SECTION.
84740       FD  file1.
84741       01  file1-key PIC X.
84742
84743       WORKING-STORAGE SECTION.
84744       01  f-status PIC XX.
84745
84746       PROCEDURE DIVISION.
84747           DELETE FILE file1.
84748           OPEN INPUT file1.
84749           IF (f-status <> "05")
84750               DISPLAY "FAILED OPEN: fs=" f-status
84751           END-IF
84752           READ file1
84753               AT END
84754                   IF (f-status <> "10")
84755                       DISPLAY "FAILED READ AT END: fs=" f-status
84756                   END-IF
84757
84758               NOT AT END
84759                   DISPLAY "FAILED READ NO AT END: status " f-status
84760           END-READ
84761           CLOSE file1
84762           .
84763_ATEOF
84764
84765
84766{ set +x
84767$as_echo "$at_srcdir/run_file.at:4159: \$COMPILE prog.cob"
84768at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4159"
84769( $at_check_trace; $COMPILE prog.cob
84770) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84771at_status=$? at_failed=false
84772$at_check_filter
84773at_fn_diff_devnull "$at_stderr" || at_failed=:
84774at_fn_diff_devnull "$at_stdout" || at_failed=:
84775at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4159"
84776$at_failed && at_fn_log_failure
84777$at_traceon; }
84778
84779{ set +x
84780$as_echo "$at_srcdir/run_file.at:4160: \$COBCRUN_DIRECT ./prog"
84781at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4160"
84782( $at_check_trace; $COBCRUN_DIRECT ./prog
84783) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84784at_status=$? at_failed=false
84785$at_check_filter
84786at_fn_diff_devnull "$at_stderr" || at_failed=:
84787at_fn_diff_devnull "$at_stdout" || at_failed=:
84788at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4160"
84789$at_failed && at_fn_log_failure
84790$at_traceon; }
84791
84792
84793  set +x
84794  $at_times_p && times >"$at_times_file"
84795) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84796read at_status <"$at_status_file"
84797#AT_STOP_765
84798#AT_START_766
84799at_fn_group_banner 766 'run_file.at:4165' \
84800  "EXTERNAL RELATIVE file" "                         " 4
84801at_xfail=no
84802(
84803  $as_echo "766. $at_setup_line: testing $at_desc ..."
84804  $at_traceon
84805
84806# FIXME: Check the function of the EXTERNAL file using a second program, too
84807
84808
84809cat >prog.cob <<'_ATEOF'
84810
84811       IDENTIFICATION DIVISION.
84812       PROGRAM-ID. prog.
84813
84814       ENVIRONMENT DIVISION.
84815       INPUT-OUTPUT SECTION.
84816       FILE-CONTROL.
84817           SELECT my-file
84818               ASSIGN TO "somefile"
84819               ORGANIZATION IS RELATIVE
84820               RELATIVE KEY IS my-key.
84821
84822       DATA DIVISION.
84823       FILE SECTION.
84824       FD my-file EXTERNAL.
84825       01 my-record.
84826           03 my-record-data PIC X(80).
84827
84828       WORKING-STORAGE SECTION.
84829       01  my-key PIC 9.
84830
84831       PROCEDURE DIVISION.
84832           CONTINUE
84833           .
84834_ATEOF
84835
84836
84837{ set +x
84838$as_echo "$at_srcdir/run_file.at:4195: \$COMPILE prog.cob"
84839at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4195"
84840( $at_check_trace; $COMPILE prog.cob
84841) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84842at_status=$? at_failed=false
84843$at_check_filter
84844at_fn_diff_devnull "$at_stderr" || at_failed=:
84845at_fn_diff_devnull "$at_stdout" || at_failed=:
84846at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4195"
84847$at_failed && at_fn_log_failure
84848$at_traceon; }
84849
84850{ set +x
84851$as_echo "$at_srcdir/run_file.at:4196: \$COBCRUN_DIRECT ./prog"
84852at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4196"
84853( $at_check_trace; $COBCRUN_DIRECT ./prog
84854) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84855at_status=$? at_failed=false
84856$at_check_filter
84857at_fn_diff_devnull "$at_stderr" || at_failed=:
84858at_fn_diff_devnull "$at_stdout" || at_failed=:
84859at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4196"
84860$at_failed && at_fn_log_failure
84861$at_traceon; }
84862
84863
84864  set +x
84865  $at_times_p && times >"$at_times_file"
84866) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84867read at_status <"$at_status_file"
84868#AT_STOP_766
84869#AT_START_767
84870at_fn_group_banner 767 'run_file.at:4201' \
84871  "DECLARATIVES procedure referencing" "             " 4
84872at_xfail=no
84873(
84874  $as_echo "767. $at_setup_line: testing $at_desc ..."
84875  $at_traceon
84876
84877
84878
84879cat >prog.cob <<'_ATEOF'
84880
84881       IDENTIFICATION   DIVISION.
84882       PROGRAM-ID.      prog.
84883       ENVIRONMENT      DIVISION.
84884       INPUT-OUTPUT     SECTION.
84885       FILE-CONTROL.
84886       SELECT TEST-FILE ASSIGN "./TEST-FILE".
84887       DATA             DIVISION.
84888       FILE             SECTION.
84889       FD TEST-FILE.
84890       01 TEST-REC      PIC X(10).
84891       WORKING-STORAGE  SECTION.
84892       01 Z             USAGE BINARY-LONG VALUE 0.
84893       PROCEDURE        DIVISION.
84894       DECLARATIVES.
84895       P01 SECTION.
84896           USE AFTER ERROR PROCEDURE ON TEST-FILE.
84897       P0101.
84898           ADD 1 TO Z.
84899       END DECLARATIVES.
84900       MP01 SECTION.
84901       MP0101.
84902           OPEN INPUT TEST-FILE.
84903           PERFORM P0101.
84904           IF Z NOT = 2
84905              DISPLAY Z
84906              END-DISPLAY
84907           END-IF.
84908           STOP RUN.
84909_ATEOF
84910
84911
84912{ set +x
84913$as_echo "$at_srcdir/run_file.at:4235: \$COMPILE prog.cob"
84914at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4235"
84915( $at_check_trace; $COMPILE prog.cob
84916) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84917at_status=$? at_failed=false
84918$at_check_filter
84919at_fn_diff_devnull "$at_stderr" || at_failed=:
84920at_fn_diff_devnull "$at_stdout" || at_failed=:
84921at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4235"
84922$at_failed && at_fn_log_failure
84923$at_traceon; }
84924
84925{ set +x
84926$as_echo "$at_srcdir/run_file.at:4236: \$COBCRUN_DIRECT ./prog"
84927at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4236"
84928( $at_check_trace; $COBCRUN_DIRECT ./prog
84929) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84930at_status=$? at_failed=false
84931$at_check_filter
84932at_fn_diff_devnull "$at_stderr" || at_failed=:
84933at_fn_diff_devnull "$at_stdout" || at_failed=:
84934at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4236"
84935$at_failed && at_fn_log_failure
84936$at_traceon; }
84937
84938
84939  set +x
84940  $at_times_p && times >"$at_times_file"
84941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
84942read at_status <"$at_status_file"
84943#AT_STOP_767
84944#AT_START_768
84945at_fn_group_banner 768 'run_file.at:4241' \
84946  "DECLARATIVES procedure referencing (multiple)" "  " 4
84947at_xfail=no
84948(
84949  $as_echo "768. $at_setup_line: testing $at_desc ..."
84950  $at_traceon
84951
84952
84953
84954cat >prog.cob <<'_ATEOF'
84955
84956       IDENTIFICATION   DIVISION.
84957       PROGRAM-ID.      prog.
84958       ENVIRONMENT      DIVISION.
84959       INPUT-OUTPUT     SECTION.
84960       FILE-CONTROL.
84961       SELECT TEST-FILE ASSIGN "./TEST-FILE".
84962       DATA             DIVISION.
84963       FILE             SECTION.
84964       FD TEST-FILE.
84965       01 TEST-REC      PIC X(10).
84966       WORKING-STORAGE  SECTION.
84967       01 Z             USAGE BINARY-LONG VALUE 0.
84968       PROCEDURE        DIVISION.
84969       DECLARATIVES.
84970       P01 SECTION.
84971           USE AFTER ERROR PROCEDURE ON TEST-FILE.
84972       P0101.
84973           ADD 1 TO Z.
84974       P02 SECTION.
84975           USE AFTER ERROR PROCEDURE ON OUTPUT.
84976       P0201.
84977           ADD 1 TO Z.
84978       END DECLARATIVES.
84979       MP01 SECTION.
84980       MP0101.
84981           OPEN  INPUT  TEST-FILE.
84982           PERFORM P01 THRU P02.
84983           IF Z NOT = 3
84984              DISPLAY Z
84985              END-DISPLAY
84986           END-IF.
84987           STOP RUN.
84988_ATEOF
84989
84990
84991{ set +x
84992$as_echo "$at_srcdir/run_file.at:4279: \$COMPILE prog.cob"
84993at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4279"
84994( $at_check_trace; $COMPILE prog.cob
84995) >>"$at_stdout" 2>>"$at_stderr" 5>&-
84996at_status=$? at_failed=false
84997$at_check_filter
84998at_fn_diff_devnull "$at_stderr" || at_failed=:
84999at_fn_diff_devnull "$at_stdout" || at_failed=:
85000at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4279"
85001$at_failed && at_fn_log_failure
85002$at_traceon; }
85003
85004{ set +x
85005$as_echo "$at_srcdir/run_file.at:4280: \$COBCRUN_DIRECT ./prog"
85006at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4280"
85007( $at_check_trace; $COBCRUN_DIRECT ./prog
85008) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85009at_status=$? at_failed=false
85010$at_check_filter
85011at_fn_diff_devnull "$at_stderr" || at_failed=:
85012at_fn_diff_devnull "$at_stdout" || at_failed=:
85013at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4280"
85014$at_failed && at_fn_log_failure
85015$at_traceon; }
85016
85017
85018  set +x
85019  $at_times_p && times >"$at_times_file"
85020) 5>&1 2>&1 7>&- | eval $at_tee_pipe
85021read at_status <"$at_status_file"
85022#AT_STOP_768
85023#AT_START_769
85024at_fn_group_banner 769 'run_file.at:4285' \
85025  "System routines for directories (1)" "            " 4
85026at_xfail=no
85027(
85028  $as_echo "769. $at_setup_line: testing $at_desc ..."
85029  $at_traceon
85030
85031
85032
85033cat >prog.cob <<'_ATEOF'
85034
85035        IDENTIFICATION DIVISION.
85036        PROGRAM-ID. prog.
85037        DATA DIVISION.
85038        WORKING-STORAGE SECTION.
85039        01 DIR PIC X(4) VALUE 'ABCD'.
85040
85041        PROCEDURE DIVISION.
85042        CALL 'CBL_CREATE_DIR' USING DIR END-CALL
85043        IF RETURN-CODE NOT = 0
85044            DISPLAY 'error creating dir ...' END-DISPLAY
85045        END-IF
85046
85047        CALL 'CBL_CHANGE_DIR' USING DIR END-CALL
85048        IF RETURN-CODE NOT = 0
85049            DISPLAY 'error changing dir ...' END-DISPLAY
85050        END-IF
85051
85052        CALL 'CBL_CHANGE_DIR' USING '..' END-CALL
85053        IF RETURN-CODE NOT = 0
85054            DISPLAY 'error changing dir up ...' END-DISPLAY
85055        END-IF
85056
85057        CALL 'CBL_DELETE_DIR' USING DIR END-CALL
85058        IF RETURN-CODE NOT = 0
85059            DISPLAY 'error deleting dir' END-DISPLAY
85060        END-IF
85061
85062        STOP RUN.
85063_ATEOF
85064
85065
85066
85067{ set +x
85068$as_echo "$at_srcdir/run_file.at:4320: \$COMPILE prog.cob"
85069at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4320"
85070( $at_check_trace; $COMPILE prog.cob
85071) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85072at_status=$? at_failed=false
85073$at_check_filter
85074at_fn_diff_devnull "$at_stderr" || at_failed=:
85075at_fn_diff_devnull "$at_stdout" || at_failed=:
85076at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4320"
85077$at_failed && at_fn_log_failure
85078$at_traceon; }
85079
85080{ set +x
85081$as_echo "$at_srcdir/run_file.at:4321: \$COBCRUN_DIRECT ./prog"
85082at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4321"
85083( $at_check_trace; $COBCRUN_DIRECT ./prog
85084) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85085at_status=$? at_failed=false
85086$at_check_filter
85087at_fn_diff_devnull "$at_stderr" || at_failed=:
85088at_fn_diff_devnull "$at_stdout" || at_failed=:
85089at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4321"
85090$at_failed && at_fn_log_failure
85091$at_traceon; }
85092
85093{ set +x
85094$as_echo "$at_srcdir/run_file.at:4322: test -e abcd"
85095at_fn_check_prepare_trace "run_file.at:4322"
85096( $at_check_trace; test -e abcd
85097) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85098at_status=$? at_failed=false
85099$at_check_filter
85100at_fn_diff_devnull "$at_stderr" || at_failed=:
85101at_fn_diff_devnull "$at_stdout" || at_failed=:
85102at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:4322"
85103$at_failed && at_fn_log_failure
85104$at_traceon; }
85105
85106
85107  set +x
85108  $at_times_p && times >"$at_times_file"
85109) 5>&1 2>&1 7>&- | eval $at_tee_pipe
85110read at_status <"$at_status_file"
85111#AT_STOP_769
85112#AT_START_770
85113at_fn_group_banner 770 'run_file.at:4327' \
85114  "System routines for directories (2)" "            " 4
85115at_xfail=no
85116(
85117  $as_echo "770. $at_setup_line: testing $at_desc ..."
85118  $at_traceon
85119
85120
85121
85122cat >prog.cob <<'_ATEOF'
85123
85124       IDENTIFICATION      DIVISION.
85125       PROGRAM-ID.         prog.
85126
85127       DATA                DIVISION.
85128       WORKING-STORAGE     SECTION.
85129       01  fh              PIC X(4) COMP-5.
85130       01  rb              PIC X(8) COMP-X.
85131       01  cb-bfr          PIC X(4) COMP-X VALUE 16.
85132       01  w-dirname-1     PIC X(4) VALUE "tmp1".
85133       01  w-dirname-2     PIC X(9) VALUE "tmp1/tmp2".
85134       01  w-dirname-3     PIC X(14) VALUE "tmp1/tmp2/tmp3".
85135       01  w-filename      PIC X(20) VALUE "tmp1/tmp2/tmp3/file1".
85136       01  w-finfo         PIC X(16).
85137
85138       PROCEDURE DIVISION.
85139           CALL "CBL_CREATE_DIR" USING w-dirname-1.
85140           IF RETURN-CODE <> 0
85141              DISPLAY "FAILED 1: CBL_CREATE_DIR (res=" RETURN-CODE ")"
85142           END-IF
85143
85144           CALL "CBL_CREATE_DIR" USING w-dirname-2.
85145           IF RETURN-CODE <> 0
85146              DISPLAY "FAILED 2: CBL_CREATE_DIR (res=" RETURN-CODE ")"
85147           END-IF
85148
85149      *    Should fail because directory does NOT exists yet.
85150           CALL "CBL_CREATE_FILE"
85151              USING w-filename, 1, 0, 0, fh.
85152           IF RETURN-CODE <> 35
85153              DISPLAY "FAILED 3: CBL_CREATE_FILE expected fail (res="
85154                      RETURN-CODE ")"
85155              IF RETURN-CODE = ZERO
85156                 CALL "CBL_CLOSE_FILE" USING fh
85157              END-IF
85158           END-IF
85159
85160           CALL "CBL_CREATE_DIR" USING w-dirname-3.
85161           IF RETURN-CODE <> 0
85162              DISPLAY "FAILED 4: CBL_CREATE_DIR (res=" RETURN-CODE ")"
85163           END-IF
85164
85165           CALL "CBL_CREATE_FILE"
85166              USING w-filename, 1, 0, 0, fh.
85167           IF RETURN-CODE <> 0
85168              DISPLAY "FAILED 5: CBL_CREATE_FILE (res="
85169                      RETURN-CODE ")"
85170           END-IF
85171
85172           CALL "CBL_CLOSE_FILE" USING fh.
85173           IF RETURN-CODE <> 0
85174              DISPLAY "FAILED 6: CBL_CLOSE_FILE (res="
85175                      RETURN-CODE ")"
85176           END-IF
85177
85178           CALL "CBL_CHECK_FILE_EXIST" USING w-filename, w-finfo.
85179           IF RETURN-CODE <> 0
85180              DISPLAY "FAILED 7: CBL_CHECK_FILE_EXIST (res="
85181                      RETURN-CODE ")"
85182           END-IF
85183
85184
85185      *    Should fail because directory is NOT empty.
85186           CALL "CBL_DELETE_DIR" USING w-dirname-1.
85187           IF RETURN-CODE = 0
85188              DISPLAY "FAILED 8: CBL_DELETE_DIR EXPECTED TO FAIL"
85189           END-IF
85190      ***********************
85191      * TO-DO: IMPLEMENT CBL_PURGE_DIR? NOT IN MF OR ACU.
85192      ***********************
85193      *    Remove all files (including sub-directories) in tmp1
85194      *    CALL "CBL_PURGE_DIR" USING w-dirname-1.
85195      *    IF RETURN-CODE <> 0
85196      *        DISPLAY "FAILED 9: CBL_PURGE_DIR (res=" RETURN-CODE ")"
85197      *  END-IF
85198      *
85199      *     Should succeed because directory is NOW empty.
85200      *     CALL "CBL_DELETE_DIR" USING w-dirname-1.
85201      *     IF RETURN-CODE <> 0
85202      *         DISPLAY "FAILED 10: CBL_DELETE_DIR (res=" RETURN-CODE ")"
85203      *     END-IF
85204
85205           STOP RUN NORMAL
85206           .
85207_ATEOF
85208
85209
85210{ set +x
85211$as_echo "$at_srcdir/run_file.at:4418: \$COMPILE prog.cob"
85212at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4418"
85213( $at_check_trace; $COMPILE prog.cob
85214) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85215at_status=$? at_failed=false
85216$at_check_filter
85217at_fn_diff_devnull "$at_stderr" || at_failed=:
85218at_fn_diff_devnull "$at_stdout" || at_failed=:
85219at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4418"
85220$at_failed && at_fn_log_failure
85221$at_traceon; }
85222
85223{ set +x
85224$as_echo "$at_srcdir/run_file.at:4419: \$COBCRUN_DIRECT ./prog"
85225at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4419"
85226( $at_check_trace; $COBCRUN_DIRECT ./prog
85227) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85228at_status=$? at_failed=false
85229$at_check_filter
85230at_fn_diff_devnull "$at_stderr" || at_failed=:
85231at_fn_diff_devnull "$at_stdout" || at_failed=:
85232at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4419"
85233$at_failed && at_fn_log_failure
85234$at_traceon; }
85235
85236
85237  set +x
85238  $at_times_p && times >"$at_times_file"
85239) 5>&1 2>&1 7>&- | eval $at_tee_pipe
85240read at_status <"$at_status_file"
85241#AT_STOP_770
85242#AT_START_771
85243at_fn_group_banner 771 'run_file.at:4424' \
85244  "System routines for files" "                      " 4
85245at_xfail=no
85246(
85247  $as_echo "771. $at_setup_line: testing $at_desc ..."
85248  $at_traceon
85249
85250
85251
85252cat >file1 <<'_ATEOF'
85253
85254dummy
85255_ATEOF
85256
85257cat >file2 <<'_ATEOF'
85258
85259test
85260_ATEOF
85261
85262cat >file3 <<'_ATEOF'
85263
85264data
85265_ATEOF
85266
85267
85268cat >prog.cob <<'_ATEOF'
85269
85270        IDENTIFICATION DIVISION.
85271        PROGRAM-ID.     prog.
85272        DATA DIVISION.
85273        WORKING-STORAGE SECTION.
85274        01 FNAME        PIC X(256) VALUE 'testtext.txt'.
85275        01 ACCESS-MODE  PIC X      USAGE COMP-X VALUE 2.
85276        01 FHANDLE      PIC X(4)   USAGE COMP-X.
85277
85278        01 OFFSET       PIC X(8)   USAGE COMP-X.
85279        01 NBYTES       PIC X(4)   USAGE COMP-X.
85280        01 WRITE-BUFFER PIC X(20).
85281
85282        PROCEDURE DIVISION.
85283        CALL 'CBL_CREATE_FILE' USING FNAME 55 11 22 FHANDLE
85284        END-CALL
85285        IF RETURN-CODE NOT = -1
85286           DISPLAY 'Wrong return codes ...' END-DISPLAY
85287        END-IF
85288        MOVE 0 TO RETURN-CODE
85289
85290        CALL 'CBL_CREATE_FILE' USING
85291        FNAME ACCESS-MODE 0 0 FHANDLE
85292        END-CALL
85293        IF RETURN-CODE NOT = 0
85294           DISPLAY 'error creating file ...' END-DISPLAY
85295           MOVE 0 TO RETURN-CODE
85296        END-IF
85297
85298        MOVE 'TestText.ABCD' TO WRITE-BUFFER.
85299        MOVE 0 TO OFFSET.
85300        MOVE 9 TO NBYTES.
85301
85302        CALL 'CBL_WRITE_FILE' USING
85303        FHANDLE OFFSET NBYTES '0' WRITE-BUFFER
85304        END-CALL
85305        IF RETURN-CODE NOT = 0
85306           DISPLAY 'error writing file ...' END-DISPLAY
85307           MOVE 0 TO RETURN-CODE
85308        END-IF
85309
85310        CALL 'CBL_FLUSH_FILE' USING FHANDLE END-CALL
85311        IF RETURN-CODE NOT = 0
85312           DISPLAY 'error flushing file ...' END-DISPLAY
85313           MOVE 0 TO RETURN-CODE
85314        END-IF
85315
85316        CALL 'CBL_CLOSE_FILE' USING FHANDLE END-CALL
85317        IF RETURN-CODE NOT = 0
85318           DISPLAY 'error closing file ...' END-DISPLAY
85319           MOVE 0 TO RETURN-CODE
85320        END-IF
85321
85322        STOP RUN.
85323_ATEOF
85324
85325
85326cat >prog2.cob <<'_ATEOF'
85327
85328        IDENTIFICATION DIVISION.
85329        PROGRAM-ID.     prog2.
85330        DATA DIVISION.
85331        WORKING-STORAGE SECTION.
85332        01 FNAME        PIC X(256) VALUE 'testtext.txt'.
85333        01 RET          PIC -9.
85334        01 FHANDLE      PIC X(4)   USAGE COMP-X.
85335
85336        01 OFFSET       PIC X(8)   USAGE COMP-X.
85337        01 NBYTES       PIC X(4)   USAGE COMP-X.
85338        01 READ-BUFFER  PIC X(10).
85339
85340        PROCEDURE DIVISION.
85341        CALL 'CBL_OPEN_FILE' USING FNAME 1 0 0 FHANDLE
85342        END-CALL
85343        IF RETURN-CODE NOT = 0
85344           DISPLAY 'error opening file ...' END-DISPLAY
85345        END-IF
85346
85347        MOVE SPACES TO READ-BUFFER.
85348        MOVE 2 TO OFFSET.
85349        MOVE 9 TO NBYTES.
85350
85351        CALL 'CBL_READ_FILE' USING
85352        FHANDLE OFFSET NBYTES 0 READ-BUFFER
85353        END-CALL
85354        IF RETURN-CODE NOT = 0
85355           DISPLAY 'error reading file ...'
85356                   return-code
85357           END-DISPLAY
85358           MOVE 0 TO RETURN-CODE
85359        END-IF
85360        IF READ-BUFFER NOT = 'stText.' *> text from first test
85361           DISPLAY 'Wrong readbuffer ...' END-DISPLAY
85362        END-IF
85363
85364        CALL 'CBL_CLOSE_FILE' USING FHANDLE END-CALL
85365        IF RETURN-CODE NOT = 0
85366           DISPLAY 'error closing file ...'
85367                   return-code
85368           END-DISPLAY
85369           MOVE 0 TO RETURN-CODE
85370        END-IF
85371
85372        CALL 'CBL_RENAME_FILE' USING FNAME 'foo.txt' END-CALL
85373        IF RETURN-CODE NOT = 0
85374           DISPLAY 'error renaming file ...'
85375                   return-code
85376           END-DISPLAY
85377           MOVE 0 TO RETURN-CODE
85378        END-IF
85379
85380        CALL 'CBL_DELETE_FILE' USING 'file1' END-CALL
85381        IF RETURN-CODE NOT = 0
85382           DISPLAY 'error deleting file1 ...'
85383                   return-code
85384           END-DISPLAY
85385           MOVE 0 TO RETURN-CODE
85386        END-IF
85387        CALL 'CBL_DELETE_FILE' USING 'file1' END-CALL
85388        IF RETURN-CODE = 0
85389           DISPLAY 'no error on deleting file1 for the second time...'
85390                   return-code
85391           END-DISPLAY
85392        END-IF
85393        MOVE 0 TO RETURN-CODE
85394
85395        CALL 'C$DELETE' USING 'file2' 'S' END-CALL
85396        IF RETURN-CODE NOT = 0
85397           DISPLAY 'error deleting file2 ...'
85398                   return-code
85399           END-DISPLAY
85400           MOVE 0 TO RETURN-CODE
85401        END-IF
85402        CALL 'CBL_DELETE_FILE' USING 'file2' END-CALL
85403        IF RETURN-CODE = 0   *> note: should only return 0 or 1 when in ACUCOBOL mode
85404           DISPLAY 'no error on deleting file2 for the second time...'
85405                   return-code
85406           END-DISPLAY
85407        END-IF
85408        MOVE 0 TO RETURN-CODE
85409
85410        STOP RUN.
85411_ATEOF
85412
85413
85414cat >prog3.cob <<'_ATEOF'
85415
85416        IDENTIFICATION DIVISION.
85417        PROGRAM-ID.     prog3.
85418        DATA DIVISION.
85419        WORKING-STORAGE SECTION.
85420        01 FNAME        PIC X(256).
85421        01 RET          PIC -9.
85422        01 FHANDLE      PIC X(4)   USAGE COMP-X.
85423
85424        01 OFFSET       PIC X(8)   USAGE COMP-X.
85425        01 NBYTES       PIC X(4)   USAGE COMP-X.
85426        01 READ-BUFFER  PIC X(10).
85427
85428        PROCEDURE DIVISION CHAINING FNAME.
85429        DISPLAY 'RUN WITH ' FUNCTION TRIM (FNAME TRAILING).
85430        CALL 'CBL_OPEN_FILE' USING FNAME 1 0 0 FHANDLE.
85431        IF RETURN-CODE NOT = 0
85432           DISPLAY 'error opening file ...'
85433           MOVE 0 TO RETURN-CODE
85434           STOP RUN.
85435
85436        CALL 'CBL_CLOSE_FILE' USING FHANDLE.
85437        IF RETURN-CODE NOT = 0
85438           DISPLAY 'error closing file ...'
85439                   return-code
85440           MOVE 0 TO RETURN-CODE.
85441
85442        STOP RUN.
85443_ATEOF
85444
85445
85446
85447{ set +x
85448$as_echo "$at_srcdir/run_file.at:4612: \$COMPILE prog.cob"
85449at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4612"
85450( $at_check_trace; $COMPILE prog.cob
85451) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85452at_status=$? at_failed=false
85453$at_check_filter
85454at_fn_diff_devnull "$at_stderr" || at_failed=:
85455at_fn_diff_devnull "$at_stdout" || at_failed=:
85456at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4612"
85457$at_failed && at_fn_log_failure
85458$at_traceon; }
85459
85460{ set +x
85461$as_echo "$at_srcdir/run_file.at:4613: \$COBCRUN_DIRECT ./prog"
85462at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4613"
85463( $at_check_trace; $COBCRUN_DIRECT ./prog
85464) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85465at_status=$? at_failed=false
85466$at_check_filter
85467echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: warning: call to CBL_CREATE_FILE with wrong file_lock: 11
85468libcob: prog.cob:15: warning: call to CBL_CREATE_FILE with wrong file_dev: 22
85469libcob: prog.cob:15: warning: call to CBL_OPEN_FILE with wrong access mode: 55
85470" | \
85471  $at_diff - "$at_stderr" || at_failed=:
85472at_fn_diff_devnull "$at_stdout" || at_failed=:
85473at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4613"
85474$at_failed && at_fn_log_failure
85475$at_traceon; }
85476
85477
85478{ set +x
85479$as_echo "$at_srcdir/run_file.at:4619: \$COMPILE prog2.cob"
85480at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4619"
85481( $at_check_trace; $COMPILE prog2.cob
85482) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85483at_status=$? at_failed=false
85484$at_check_filter
85485at_fn_diff_devnull "$at_stderr" || at_failed=:
85486at_fn_diff_devnull "$at_stdout" || at_failed=:
85487at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4619"
85488$at_failed && at_fn_log_failure
85489$at_traceon; }
85490
85491{ set +x
85492$as_echo "$at_srcdir/run_file.at:4620: \$COBCRUN_DIRECT ./prog2"
85493at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:4620"
85494( $at_check_trace; $COBCRUN_DIRECT ./prog2
85495) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85496at_status=$? at_failed=false
85497$at_check_filter
85498at_fn_diff_devnull "$at_stderr" || at_failed=:
85499at_fn_diff_devnull "$at_stdout" || at_failed=:
85500at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4620"
85501$at_failed && at_fn_log_failure
85502$at_traceon; }
85503
85504
85505{ set +x
85506$as_echo "$at_srcdir/run_file.at:4622: mkdir -p sub"
85507at_fn_check_prepare_trace "run_file.at:4622"
85508( $at_check_trace; mkdir -p sub
85509) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85510at_status=$? at_failed=false
85511$at_check_filter
85512at_fn_diff_devnull "$at_stderr" || at_failed=:
85513at_fn_diff_devnull "$at_stdout" || at_failed=:
85514at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4622"
85515$at_failed && at_fn_log_failure
85516$at_traceon; }
85517
85518{ set +x
85519$as_echo "$at_srcdir/run_file.at:4623: \$COMPILE prog3.cob"
85520at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_file.at:4623"
85521( $at_check_trace; $COMPILE prog3.cob
85522) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85523at_status=$? at_failed=false
85524$at_check_filter
85525at_fn_diff_devnull "$at_stderr" || at_failed=:
85526at_fn_diff_devnull "$at_stdout" || at_failed=:
85527at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4623"
85528$at_failed && at_fn_log_failure
85529$at_traceon; }
85530
85531{ set +x
85532$as_echo "$at_srcdir/run_file.at:4624: \$COBCRUN_DIRECT ./prog3 notthere"
85533at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 notthere" "run_file.at:4624"
85534( $at_check_trace; $COBCRUN_DIRECT ./prog3 notthere
85535) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85536at_status=$? at_failed=false
85537$at_check_filter
85538at_fn_diff_devnull "$at_stderr" || at_failed=:
85539echo >>"$at_stdout"; $as_echo "RUN WITH notthere
85540error opening file ...
85541" | \
85542  $at_diff - "$at_stdout" || at_failed=:
85543at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4624"
85544$at_failed && at_fn_log_failure
85545$at_traceon; }
85546
85547{ set +x
85548$as_echo "$at_srcdir/run_file.at:4628: \$COBCRUN_DIRECT ./prog3 prog2"
85549at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 prog2" "run_file.at:4628"
85550( $at_check_trace; $COBCRUN_DIRECT ./prog3 prog2
85551) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85552at_status=$? at_failed=false
85553$at_check_filter
85554at_fn_diff_devnull "$at_stderr" || at_failed=:
85555echo >>"$at_stdout"; $as_echo "RUN WITH prog2
85556" | \
85557  $at_diff - "$at_stdout" || at_failed=:
85558at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4628"
85559$at_failed && at_fn_log_failure
85560$at_traceon; }
85561
85562{ set +x
85563$as_echo "$at_srcdir/run_file.at:4631: \$COBCRUN_DIRECT ./prog3 ./prog2"
85564at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 ./prog2" "run_file.at:4631"
85565( $at_check_trace; $COBCRUN_DIRECT ./prog3 ./prog2
85566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85567at_status=$? at_failed=false
85568$at_check_filter
85569at_fn_diff_devnull "$at_stderr" || at_failed=:
85570echo >>"$at_stdout"; $as_echo "RUN WITH ./prog2
85571" | \
85572  $at_diff - "$at_stdout" || at_failed=:
85573at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4631"
85574$at_failed && at_fn_log_failure
85575$at_traceon; }
85576
85577# the first part is resolved by DD_var and dd_var
85578{ set +x
85579$as_echo "$at_srcdir/run_file.at:4635: DD_dot=\".\" dd_dot=\"A\" dot=\"B\"  \$COBCRUN_DIRECT ./prog3 'dot/prog'"
85580at_fn_check_prepare_dynamic "DD_dot=\".\" dd_dot=\"A\" dot=\"B\"  $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4635"
85581( $at_check_trace; DD_dot="." dd_dot="A" dot="B"  $COBCRUN_DIRECT ./prog3 'dot/prog'
85582) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85583at_status=$? at_failed=false
85584$at_check_filter
85585at_fn_diff_devnull "$at_stderr" || at_failed=:
85586echo >>"$at_stdout"; $as_echo "RUN WITH dot/prog
85587" | \
85588  $at_diff - "$at_stdout" || at_failed=:
85589at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4635"
85590$at_failed && at_fn_log_failure
85591$at_traceon; }
85592
85593{ set +x
85594$as_echo "$at_srcdir/run_file.at:4638: DD_dot=\"\" dd_dot=\".\" dot=\"A\"  \$COBCRUN_DIRECT ./prog3 'dot/prog'"
85595at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\".\" dot=\"A\"  $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4638"
85596( $at_check_trace; DD_dot="" dd_dot="." dot="A"  $COBCRUN_DIRECT ./prog3 'dot/prog'
85597) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85598at_status=$? at_failed=false
85599$at_check_filter
85600at_fn_diff_devnull "$at_stderr" || at_failed=:
85601echo >>"$at_stdout"; $as_echo "RUN WITH dot/prog
85602" | \
85603  $at_diff - "$at_stdout" || at_failed=:
85604at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4638"
85605$at_failed && at_fn_log_failure
85606$at_traceon; }
85607
85608# MF would say (ignore for now as this conflicts with ACUCOBOL) don't resolve by $
85609# as it does not start with $:
85610#AT_CHECK([DD_dot="" dd_dot="" dot="." $COBCRUN_DIRECT ./prog3 'dot/prog'], [0],
85611#[RUN WITH dot/prog
85612#error opening file ...
85613#], [])
85614{ set +x
85615$as_echo "$at_srcdir/run_file.at:4647: DD_dot=\"\" dd_dot=\"\" dot=\".\" \$COBCRUN_DIRECT ./prog3 'dot/prog'"
85616at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\".\" $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4647"
85617( $at_check_trace; DD_dot="" dd_dot="" dot="." $COBCRUN_DIRECT ./prog3 'dot/prog'
85618) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85619at_status=$? at_failed=false
85620$at_check_filter
85621at_fn_diff_devnull "$at_stderr" || at_failed=:
85622echo >>"$at_stdout"; $as_echo "RUN WITH dot/prog
85623" | \
85624  $at_diff - "$at_stdout" || at_failed=:
85625at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4647"
85626$at_failed && at_fn_log_failure
85627$at_traceon; }
85628
85629{ set +x
85630$as_echo "$at_srcdir/run_file.at:4650: DD_dot=\"\" dd_dot=\"\" dot=\"\" \$COBCRUN_DIRECT ./prog3 'dot/prog'"
85631at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\" $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4650"
85632( $at_check_trace; DD_dot="" dd_dot="" dot="" $COBCRUN_DIRECT ./prog3 'dot/prog'
85633) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85634at_status=$? at_failed=false
85635$at_check_filter
85636at_fn_diff_devnull "$at_stderr" || at_failed=:
85637echo >>"$at_stdout"; $as_echo "RUN WITH dot/prog
85638error opening file ...
85639" | \
85640  $at_diff - "$at_stdout" || at_failed=:
85641at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4650"
85642$at_failed && at_fn_log_failure
85643$at_traceon; }
85644
85645# the first part with $  is resolved by DD_var and dd_var and var
85646{ set +x
85647$as_echo "$at_srcdir/run_file.at:4655: DD_dot=\".\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
85648at_fn_check_prepare_dynamic "DD_dot=\".\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4655"
85649( $at_check_trace; DD_dot="." dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/prog'
85650) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85651at_status=$? at_failed=false
85652$at_check_filter
85653at_fn_diff_devnull "$at_stderr" || at_failed=:
85654echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/prog
85655" | \
85656  $at_diff - "$at_stdout" || at_failed=:
85657at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4655"
85658$at_failed && at_fn_log_failure
85659$at_traceon; }
85660
85661{ set +x
85662$as_echo "$at_srcdir/run_file.at:4658: DD_dot=\"\" dd_dot=\".\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
85663at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\".\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4658"
85664( $at_check_trace; DD_dot="" dd_dot="." dot=""  $COBCRUN_DIRECT ./prog3 '$dot/prog'
85665) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85666at_status=$? at_failed=false
85667$at_check_filter
85668at_fn_diff_devnull "$at_stderr" || at_failed=:
85669echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/prog
85670" | \
85671  $at_diff - "$at_stdout" || at_failed=:
85672at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4658"
85673$at_failed && at_fn_log_failure
85674$at_traceon; }
85675
85676{ set +x
85677$as_echo "$at_srcdir/run_file.at:4661: DD_dot=\"\" dd_dot=\"\" dot=\".\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
85678at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\".\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4661"
85679( $at_check_trace; DD_dot="" dd_dot="" dot="."  $COBCRUN_DIRECT ./prog3 '$dot/prog'
85680) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85681at_status=$? at_failed=false
85682$at_check_filter
85683at_fn_diff_devnull "$at_stderr" || at_failed=:
85684echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/prog
85685" | \
85686  $at_diff - "$at_stdout" || at_failed=:
85687at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4661"
85688$at_failed && at_fn_log_failure
85689$at_traceon; }
85690
85691# if a _leading_ $ does not exist it is removed, together with the following slash
85692# should ignore the variable and the first slash
85693{ set +x
85694$as_echo "$at_srcdir/run_file.at:4666: DD_dot=\"\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
85695at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4666"
85696( $at_check_trace; DD_dot="" dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/prog'
85697) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85698at_status=$? at_failed=false
85699$at_check_filter
85700at_fn_diff_devnull "$at_stderr" || at_failed=:
85701echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/prog
85702" | \
85703  $at_diff - "$at_stdout" || at_failed=:
85704at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4666"
85705$at_failed && at_fn_log_failure
85706$at_traceon; }
85707
85708# would _possibly_ fail with MF (docs are wrong here in any case...)
85709# but this is by GnuCOBOL design here:
85710{ set +x
85711$as_echo "$at_srcdir/run_file.at:4671: DD_dot=\"\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/\$dotter/prog'"
85712at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/$dotter/prog'" "run_file.at:4671"
85713( $at_check_trace; DD_dot="" dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/$dotter/prog'
85714) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85715at_status=$? at_failed=false
85716$at_check_filter
85717at_fn_diff_devnull "$at_stderr" || at_failed=:
85718echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/\$dotter/prog
85719" | \
85720  $at_diff - "$at_stdout" || at_failed=:
85721at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4671"
85722$at_failed && at_fn_log_failure
85723$at_traceon; }
85724
85725{ set +x
85726$as_echo "$at_srcdir/run_file.at:4674: DD_dot=\"\" dd_dot=\"\" dot=\"dot\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
85727at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"dot\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4674"
85728( $at_check_trace; DD_dot="" dd_dot="" dot="dot"  $COBCRUN_DIRECT ./prog3 '$dot/prog'
85729) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85730at_status=$? at_failed=false
85731$at_check_filter
85732at_fn_diff_devnull "$at_stderr" || at_failed=:
85733echo >>"$at_stdout"; $as_echo "RUN WITH \$dot/prog
85734error opening file ...
85735" | \
85736  $at_diff - "$at_stdout" || at_failed=:
85737at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4674"
85738$at_failed && at_fn_log_failure
85739$at_traceon; }
85740
85741# should try './prog'
85742{ set +x
85743$as_echo "$at_srcdir/run_file.at:4679: DD_prog=\"A\" dd_prog=\"B\" prog=\"C\"  \$COBCRUN_DIRECT ./prog3 './prog'"
85744at_fn_check_prepare_dynamic "DD_prog=\"A\" dd_prog=\"B\" prog=\"C\"  $COBCRUN_DIRECT ./prog3 './prog'" "run_file.at:4679"
85745( $at_check_trace; DD_prog="A" dd_prog="B" prog="C"  $COBCRUN_DIRECT ./prog3 './prog'
85746) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85747at_status=$? at_failed=false
85748$at_check_filter
85749at_fn_diff_devnull "$at_stderr" || at_failed=:
85750echo >>"$at_stdout"; $as_echo "RUN WITH ./prog
85751" | \
85752  $at_diff - "$at_stdout" || at_failed=:
85753at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4679"
85754$at_failed && at_fn_log_failure
85755$at_traceon; }
85756
85757# should try './$prog'
85758{ set +x
85759$as_echo "$at_srcdir/run_file.at:4683: DD_prog=\"\" dd_prog=\"\" prog=\"\"  \$COBCRUN_DIRECT ./prog3 './\$prog'"
85760at_fn_check_prepare_dynamic "DD_prog=\"\" dd_prog=\"\" prog=\"\"  $COBCRUN_DIRECT ./prog3 './$prog'" "run_file.at:4683"
85761( $at_check_trace; DD_prog="" dd_prog="" prog=""  $COBCRUN_DIRECT ./prog3 './$prog'
85762) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85763at_status=$? at_failed=false
85764$at_check_filter
85765at_fn_diff_devnull "$at_stderr" || at_failed=:
85766echo >>"$at_stdout"; $as_echo "RUN WITH ./\$prog
85767error opening file ...
85768" | \
85769  $at_diff - "$at_stdout" || at_failed=:
85770at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4683"
85771$at_failed && at_fn_log_failure
85772$at_traceon; }
85773
85774{ set +x
85775$as_echo "$at_srcdir/run_file.at:4687: \$COBCRUN_DIRECT ./prog3 ../prog2"
85776at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 ../prog2" "run_file.at:4687"
85777( $at_check_trace; $COBCRUN_DIRECT ./prog3 ../prog2
85778) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85779at_status=$? at_failed=false
85780$at_check_filter
85781at_fn_diff_devnull "$at_stderr" || at_failed=:
85782echo >>"$at_stdout"; $as_echo "RUN WITH ../prog2
85783error opening file ...
85784" | \
85785  $at_diff - "$at_stdout" || at_failed=:
85786at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4687"
85787$at_failed && at_fn_log_failure
85788$at_traceon; }
85789
85790{ set +x
85791$as_echo "$at_srcdir/run_file.at:4691: \$COBCRUN_DIRECT ./prog3 sub/../prog2"
85792at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 sub/../prog2" "run_file.at:4691"
85793( $at_check_trace; $COBCRUN_DIRECT ./prog3 sub/../prog2
85794) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85795at_status=$? at_failed=false
85796$at_check_filter
85797at_fn_diff_devnull "$at_stderr" || at_failed=:
85798echo >>"$at_stdout"; $as_echo "RUN WITH sub/../prog2
85799" | \
85800  $at_diff - "$at_stdout" || at_failed=:
85801at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4691"
85802$at_failed && at_fn_log_failure
85803$at_traceon; }
85804
85805
85806  set +x
85807  $at_times_p && times >"$at_times_file"
85808) 5>&1 2>&1 7>&- | eval $at_tee_pipe
85809read at_status <"$at_status_file"
85810#AT_STOP_771
85811#AT_START_772
85812at_fn_group_banner 772 'run_file.at:4698' \
85813  "System routine CBL_COPY_FILE" "                   " 4
85814at_xfail=no
85815(
85816  $as_echo "772. $at_setup_line: testing $at_desc ..."
85817  $at_traceon
85818
85819
85820
85821cat >prog.cob <<'_ATEOF'
85822
85823        IDENTIFICATION DIVISION.
85824        PROGRAM-ID. prog.
85825        DATA DIVISION.
85826        WORKING-STORAGE SECTION.
85827        PROCEDURE DIVISION.
85828        DISPLAY "test" END-DISPLAY
85829        STOP RUN.
85830_ATEOF
85831
85832
85833cat >prog2.cob <<'_ATEOF'
85834
85835        IDENTIFICATION DIVISION.
85836        PROGRAM-ID. prog2.
85837        DATA DIVISION.
85838        WORKING-STORAGE SECTION.
85839        01 FILE1 PIC X(8) VALUE 'prog.cob'.
85840        01 FILE2 PIC X(9) VALUE 'prog3.cob'.
85841
85842        PROCEDURE DIVISION.
85843        CALL 'CBL_COPY_FILE' USING
85844        FILE1 FILE2
85845        END-CALL
85846        STOP RUN.
85847_ATEOF
85848
85849
85850{ set +x
85851$as_echo "$at_srcdir/run_file.at:4726: \$COMPILE prog2.cob"
85852at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4726"
85853( $at_check_trace; $COMPILE prog2.cob
85854) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85855at_status=$? at_failed=false
85856$at_check_filter
85857at_fn_diff_devnull "$at_stderr" || at_failed=:
85858at_fn_diff_devnull "$at_stdout" || at_failed=:
85859at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4726"
85860$at_failed && at_fn_log_failure
85861$at_traceon; }
85862
85863{ set +x
85864$as_echo "$at_srcdir/run_file.at:4727: \$COBCRUN_DIRECT ./prog2"
85865at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:4727"
85866( $at_check_trace; $COBCRUN_DIRECT ./prog2
85867) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85868at_status=$? at_failed=false
85869$at_check_filter
85870at_fn_diff_devnull "$at_stderr" || at_failed=:
85871at_fn_diff_devnull "$at_stdout" || at_failed=:
85872at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4727"
85873$at_failed && at_fn_log_failure
85874$at_traceon; }
85875
85876{ set +x
85877$as_echo "$at_srcdir/run_file.at:4728: diff prog.cob prog3.cob"
85878at_fn_check_prepare_trace "run_file.at:4728"
85879( $at_check_trace; diff prog.cob prog3.cob
85880) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85881at_status=$? at_failed=false
85882$at_check_filter
85883at_fn_diff_devnull "$at_stderr" || at_failed=:
85884at_fn_diff_devnull "$at_stdout" || at_failed=:
85885at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4728"
85886$at_failed && at_fn_log_failure
85887$at_traceon; }
85888
85889
85890  set +x
85891  $at_times_p && times >"$at_times_file"
85892) 5>&1 2>&1 7>&- | eval $at_tee_pipe
85893read at_status <"$at_status_file"
85894#AT_STOP_772
85895#AT_START_773
85896at_fn_group_banner 773 'run_file.at:4733' \
85897  "Default file external name" "                     " 4
85898at_xfail=no
85899(
85900  $as_echo "773. $at_setup_line: testing $at_desc ..."
85901  $at_traceon
85902
85903
85904
85905cat >fexists_signed.c <<'_ATEOF'
85906
85907
85908#include <string.h>
85909#include <stdio.h>
85910#include <stdlib.h>
85911#include <libcob.h>
85912
85913/*
85914 * Check file is present and correct by comparing
85915 * its content to a given signature.
85916 */
85917COB_EXT_EXPORT int
85918fexists_signed (char *fid, char *signature, int signature_size)
85919{
85920	char *bfr;
85921	FILE *f;
85922	int res = -1;
85923
85924	f = fopen (fid, "r");
85925	if (f != NULL) {
85926		 bfr = (char *) malloc (signature_size);
85927		 if (1 == fread (bfr, signature_size, 1, f)) {
85928				if (!memcmp (signature, bfr, signature_size)) {
85929					 res = 0;
85930				}
85931		 }
85932		 free (bfr);
85933	}
85934	return res;
85935}
85936_ATEOF
85937
85938cat >prog.cob <<'_ATEOF'
85939
85940       IDENTIFICATION DIVISION.
85941       PROGRAM-ID. prog.
85942       ENVIRONMENT DIVISION.
85943       INPUT-OUTPUT SECTION.
85944       FILE-CONTROL.
85945       SELECT file1 ASSIGN DISK.
85946       DATA DIVISION.
85947       FILE SECTION.
85948       FD file1.
85949       1  file1-rec.
85950          2  file1-date pic x(8).
85951          2  file1-time pic x(8).
85952       WORKING-STORAGE SECTION.
85953       77 erc PIC 9(8) COMP.
85954       77 rec-size PIC 9(8) COMP VALUE 16.
85955       PROCEDURE DIVISION.
85956           ACCEPT file1-date FROM DATE YYYYMMDD.
85957           ACCEPT file1-time FROM TIME.
85958           OPEN OUTPUT file1.
85959           WRITE file1-rec.
85960           CLOSE file1.
85961           CALL "fexists_signed" USING
85962                BY REFERENCE "./file1" file1-rec
85963                BY VALUE rec-size
85964                RETURNING erc.
85965           IF (erc <> 0)
85966              DISPLAY "FAILED file1".
85967           STOP RUN.
85968_ATEOF
85969
85970
85971{ set +x
85972$as_echo "$at_srcdir/run_file.at:4798: \$COMPILE_MODULE fexists_signed.c"
85973at_fn_check_prepare_dynamic "$COMPILE_MODULE fexists_signed.c" "run_file.at:4798"
85974( $at_check_trace; $COMPILE_MODULE fexists_signed.c
85975) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85976at_status=$? at_failed=false
85977$at_check_filter
85978at_fn_diff_devnull "$at_stderr" || at_failed=:
85979at_fn_diff_devnull "$at_stdout" || at_failed=:
85980at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4798"
85981$at_failed && at_fn_log_failure
85982$at_traceon; }
85983
85984{ set +x
85985$as_echo "$at_srcdir/run_file.at:4799: \$COMPILE prog.cob"
85986at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4799"
85987( $at_check_trace; $COMPILE prog.cob
85988) >>"$at_stdout" 2>>"$at_stderr" 5>&-
85989at_status=$? at_failed=false
85990$at_check_filter
85991at_fn_diff_devnull "$at_stderr" || at_failed=:
85992at_fn_diff_devnull "$at_stdout" || at_failed=:
85993at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4799"
85994$at_failed && at_fn_log_failure
85995$at_traceon; }
85996
85997{ set +x
85998$as_echo "$at_srcdir/run_file.at:4800: unset COB_FILE_PATH ; ./prog"
85999at_fn_check_prepare_trace "run_file.at:4800"
86000( $at_check_trace; unset COB_FILE_PATH ; ./prog
86001) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86002at_status=$? at_failed=false
86003$at_check_filter
86004at_fn_diff_devnull "$at_stderr" || at_failed=:
86005at_fn_diff_devnull "$at_stdout" || at_failed=:
86006at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4800"
86007$at_failed && at_fn_log_failure
86008$at_traceon; }
86009
86010
86011  set +x
86012  $at_times_p && times >"$at_times_file"
86013) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86014read at_status <"$at_status_file"
86015#AT_STOP_773
86016#AT_START_774
86017at_fn_group_banner 774 'run_file.at:4807' \
86018  "SEQUENTIAL basic I/O" "                           " 4
86019at_xfail=no
86020(
86021  $as_echo "774. $at_setup_line: testing $at_desc ..."
86022  $at_traceon
86023
86024
86025
86026cat >prog.cob <<'_ATEOF'
86027
86028       IDENTIFICATION DIVISION.
86029       PROGRAM-ID. prog.
86030       ENVIRONMENT DIVISION.
86031       INPUT-OUTPUT SECTION.
86032       FILE-CONTROL.
86033       SELECT file1 ASSIGN DISK ORGANIZATION SEQUENTIAL.
86034       DATA DIVISION.
86035       FILE SECTION.
86036       FD file1.
86037       1  file1-rec pic x.
86038       PROCEDURE DIVISION.
86039           DELETE FILE file1.
86040           OPEN OUTPUT file1.
86041           MOVE "A" TO file1-rec.
86042           WRITE file1-rec.
86043           CLOSE file1.
86044           OPEN INPUT file1.
86045           READ file1.
86046           IF (file1-rec <> "A")
86047              display "FAILED".
86048           CLOSE file1.
86049           STOP RUN.
86050_ATEOF
86051
86052
86053{ set +x
86054$as_echo "$at_srcdir/run_file.at:4835: \$COMPILE prog.cob"
86055at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4835"
86056( $at_check_trace; $COMPILE prog.cob
86057) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86058at_status=$? at_failed=false
86059$at_check_filter
86060at_fn_diff_devnull "$at_stderr" || at_failed=:
86061at_fn_diff_devnull "$at_stdout" || at_failed=:
86062at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4835"
86063$at_failed && at_fn_log_failure
86064$at_traceon; }
86065
86066{ set +x
86067$as_echo "$at_srcdir/run_file.at:4836: \$COBCRUN_DIRECT ./prog"
86068at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4836"
86069( $at_check_trace; $COBCRUN_DIRECT ./prog
86070) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86071at_status=$? at_failed=false
86072$at_check_filter
86073at_fn_diff_devnull "$at_stderr" || at_failed=:
86074at_fn_diff_devnull "$at_stdout" || at_failed=:
86075at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4836"
86076$at_failed && at_fn_log_failure
86077$at_traceon; }
86078
86079
86080  set +x
86081  $at_times_p && times >"$at_times_file"
86082) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86083read at_status <"$at_status_file"
86084#AT_STOP_774
86085#AT_START_775
86086at_fn_group_banner 775 'run_file.at:4841' \
86087  "LINE SEQUENTIAL basic I/O" "                      " 4
86088at_xfail=no
86089(
86090  $as_echo "775. $at_setup_line: testing $at_desc ..."
86091  $at_traceon
86092
86093
86094
86095cat >prog.cob <<'_ATEOF'
86096
86097       IDENTIFICATION DIVISION.
86098       PROGRAM-ID. prog.
86099       ENVIRONMENT DIVISION.
86100       INPUT-OUTPUT SECTION.
86101       FILE-CONTROL.
86102       SELECT file1 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
86103       SELECT file2 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
86104       DATA DIVISION.
86105       FILE SECTION.
86106       FD file1.
86107       1  file1-rec pic x.
86108       FD file2.
86109       1  file2-rec pic xx.
86110       PROCEDURE DIVISION.
86111           DELETE FILE file1, file2
86112           OPEN OUTPUT file1, file2
86113           MOVE "A" TO file1-rec, file2-rec
86114           WRITE file1-rec
86115           WRITE file2-rec
86116           MOVE " " TO file1-rec, file2-rec
86117           WRITE file1-rec
86118           WRITE file2-rec
86119           WRITE file1-rec FROM "A"
86120           WRITE file2-rec FROM "AA"
86121           WRITE file1-rec FROM " "
86122           WRITE file2-rec FROM " A"
86123           CLOSE file1, file2
86124           OPEN INPUT file1, file2
86125           READ file1
86126           IF file1-rec NOT = "A"
86127              display "FAILED 1 file1 - '" file1-rec "'".
86128           READ file2
86129           IF file2-rec NOT = "A"
86130              display "FAILED 1 file2 - '" file2-rec "'".
86131           READ file1
86132           IF file1-rec NOT = SPACE
86133              display "FAILED 2 file1 - '" file1-rec "'".
86134           READ file2
86135           IF file2-rec NOT = SPACES
86136              display "FAILED 2 file2 - '" file2-rec "'".
86137           READ file1
86138           IF file1-rec NOT = "A"
86139              display "FAILED 3 file1 - '" file1-rec "'".
86140           READ file2
86141           IF file2-rec NOT = "AA"
86142              display "FAILED 3 file2 - '" file2-rec "'".
86143           READ file1
86144           IF file1-rec NOT = SPACE
86145              display "FAILED 4 file1 - '" file1-rec "'".
86146           READ file2
86147           IF file2-rec NOT = " A"
86148              display "FAILED 4 file2 - '" file2-rec "'".
86149           CLOSE file1, file2.
86150           STOP RUN.
86151_ATEOF
86152
86153
86154{ set +x
86155$as_echo "$at_srcdir/run_file.at:4901: \$COMPILE prog.cob"
86156at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4901"
86157( $at_check_trace; $COMPILE prog.cob
86158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86159at_status=$? at_failed=false
86160$at_check_filter
86161at_fn_diff_devnull "$at_stderr" || at_failed=:
86162at_fn_diff_devnull "$at_stdout" || at_failed=:
86163at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4901"
86164$at_failed && at_fn_log_failure
86165$at_traceon; }
86166
86167{ set +x
86168$as_echo "$at_srcdir/run_file.at:4902: \$COBCRUN_DIRECT ./prog"
86169at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4902"
86170( $at_check_trace; $COBCRUN_DIRECT ./prog
86171) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86172at_status=$? at_failed=false
86173$at_check_filter
86174at_fn_diff_devnull "$at_stderr" || at_failed=:
86175at_fn_diff_devnull "$at_stdout" || at_failed=:
86176at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4902"
86177$at_failed && at_fn_log_failure
86178$at_traceon; }
86179
86180
86181  set +x
86182  $at_times_p && times >"$at_times_file"
86183) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86184read at_status <"$at_status_file"
86185#AT_STOP_775
86186#AT_START_776
86187at_fn_group_banner 776 'run_file.at:4907' \
86188  "LINE SEQUENTIAL record truncation" "              " 4
86189at_xfail=no
86190(
86191  $as_echo "776. $at_setup_line: testing $at_desc ..."
86192  $at_traceon
86193
86194
86195
86196cat >TEST-FILE <<'_ATEOF'
86197a
86198ab
86199abc
86200abcd
86201abcde
86202abcdef
86203_ATEOF
86204
86205
86206cat >prog.cob <<'_ATEOF'
86207
86208       IDENTIFICATION   DIVISION.
86209       PROGRAM-ID.      prog.
86210       ENVIRONMENT      DIVISION.
86211       INPUT-OUTPUT     SECTION.
86212       FILE-CONTROL.
86213       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
86214                        ORGANIZATION IS LINE SEQUENTIAL.
86215       DATA             DIVISION.
86216       FILE             SECTION.
86217       FD TEST-FILE.
86218       01 TEST-REC      PIC X(4).
86219       PROCEDURE        DIVISION.
86220           OPEN INPUT TEST-FILE.
86221           PERFORM 6 TIMES
86222               READ TEST-FILE
86223               DISPLAY "(" TEST-REC ")"
86224           END-PERFORM
86225           CLOSE TEST-FILE.
86226           STOP RUN.
86227_ATEOF
86228
86229
86230{ set +x
86231$as_echo "$at_srcdir/run_file.at:4941: \$COMPILE prog.cob"
86232at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4941"
86233( $at_check_trace; $COMPILE prog.cob
86234) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86235at_status=$? at_failed=false
86236$at_check_filter
86237at_fn_diff_devnull "$at_stderr" || at_failed=:
86238at_fn_diff_devnull "$at_stdout" || at_failed=:
86239at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4941"
86240$at_failed && at_fn_log_failure
86241$at_traceon; }
86242
86243{ set +x
86244$as_echo "$at_srcdir/run_file.at:4942: \$COBCRUN_DIRECT ./prog"
86245at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4942"
86246( $at_check_trace; $COBCRUN_DIRECT ./prog
86247) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86248at_status=$? at_failed=false
86249$at_check_filter
86250at_fn_diff_devnull "$at_stderr" || at_failed=:
86251echo >>"$at_stdout"; $as_echo "(a   )
86252(ab  )
86253(abc )
86254(abcd)
86255(abcd)
86256(abcd)
86257" | \
86258  $at_diff - "$at_stdout" || at_failed=:
86259at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4942"
86260$at_failed && at_fn_log_failure
86261$at_traceon; }
86262
86263
86264  set +x
86265  $at_times_p && times >"$at_times_file"
86266) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86267read at_status <"$at_status_file"
86268#AT_STOP_776
86269#AT_START_777
86270at_fn_group_banner 777 'run_file.at:4954' \
86271  "SEQUENTIAL file I/O with variable records" "      " 4
86272at_xfail=no
86273(
86274  $as_echo "777. $at_setup_line: testing $at_desc ..."
86275  $at_traceon
86276
86277
86278
86279cat >prog.cob <<'_ATEOF'
86280
86281       IDENTIFICATION DIVISION.
86282       PROGRAM-ID. prog.
86283
86284       ENVIRONMENT DIVISION.
86285       INPUT-OUTPUT SECTION.
86286       FILE-CONTROL.
86287           SELECT f ASSIGN DISK.
86288
86289       DATA DIVISION.
86290       FILE SECTION.
86291       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
86292       01  f-rec.
86293           02  f-x OCCURS 20 PIC X.
86294
86295       WORKING-STORAGE SECTION.
86296       01  rec-size PIC 99.
86297       01  i PIC 99.
86298       01  1-template VALUE "+12345678++12345678+".
86299           02  1-x OCCURS 20 PIC X.
86300
86301       PROCEDURE DIVISION.
86302           OPEN OUTPUT f
86303           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
86304               WRITE f-rec FROM 1-template
86305           END-PERFORM
86306           CLOSE f
86307
86308           OPEN INPUT f
86309      *    rec-size should not influence READ
86310           MOVE 15 TO rec-size
86311           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
86312               READ f
86313                   AT END
86314                       DISPLAY "Failed: EOF"
86315                       STOP RUN ERROR
86316               END-READ
86317
86318      *        Note the characters f-rec (rec-size + 1:) are all undefined,
86319      *        hence the refmod (1:rec-size).
86320               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
86321               IF rec-size NOT = i
86322                   DISPLAY "Failed: bad record size"
86323                   STOP RUN ERROR
86324               END-IF
86325               IF f-x (rec-size) NOT = 1-x (rec-size)
86326                   DISPLAY "Failed: bad data"
86327                   STOP RUN ERROR
86328               END-IF
86329           END-PERFORM
86330           CLOSE f
86331           .
86332_ATEOF
86333
86334
86335{ set +x
86336$as_echo "$at_srcdir/run_file.at:5011: \$COMPILE prog.cob"
86337at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5011"
86338( $at_check_trace; $COMPILE prog.cob
86339) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86340at_status=$? at_failed=false
86341$at_check_filter
86342at_fn_diff_devnull "$at_stderr" || at_failed=:
86343at_fn_diff_devnull "$at_stdout" || at_failed=:
86344at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5011"
86345$at_failed && at_fn_log_failure
86346$at_traceon; }
86347
86348{ set +x
86349$as_echo "$at_srcdir/run_file.at:5012: \$COBCRUN_DIRECT ./prog"
86350at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5012"
86351( $at_check_trace; $COBCRUN_DIRECT ./prog
86352) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86353at_status=$? at_failed=false
86354$at_check_filter
86355at_fn_diff_devnull "$at_stderr" || at_failed=:
86356echo >>"$at_stdout"; $as_echo "20: >+12345678++12345678+<
8635719: >+12345678++12345678<
8635818: >+12345678++1234567<
8635917: >+12345678++123456<
8636016: >+12345678++12345<
8636115: >+12345678++1234<
8636214: >+12345678++123<
8636313: >+12345678++12<
8636412: >+12345678++1<
8636511: >+12345678++<
8636610: >+12345678+<
86367" | \
86368  $at_diff - "$at_stdout" || at_failed=:
86369at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5012"
86370$at_failed && at_fn_log_failure
86371$at_traceon; }
86372
86373
86374  set +x
86375  $at_times_p && times >"$at_times_file"
86376) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86377read at_status <"$at_status_file"
86378#AT_STOP_777
86379#AT_START_778
86380at_fn_group_banner 778 'run_file.at:5029' \
86381  "LINE SEQUENTIAL file I/O with variable records" " " 4
86382at_xfail=no
86383(
86384  $as_echo "778. $at_setup_line: testing $at_desc ..."
86385  $at_traceon
86386
86387
86388
86389cat >prog.cob <<'_ATEOF'
86390
86391       IDENTIFICATION DIVISION.
86392       PROGRAM-ID. prog.
86393
86394       ENVIRONMENT DIVISION.
86395       INPUT-OUTPUT SECTION.
86396       FILE-CONTROL.
86397           SELECT f ASSIGN DISK
86398               LINE SEQUENTIAL.
86399
86400       DATA DIVISION.
86401       FILE SECTION.
86402       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
86403       01  f-rec.
86404           02  f-x OCCURS 20 PIC X.
86405
86406       WORKING-STORAGE SECTION.
86407       01  rec-size PIC 99.
86408       01  i PIC 99.
86409       01  1-template VALUE "+12345678++12345678+".
86410           02  1-x OCCURS 20 PIC X.
86411
86412       PROCEDURE DIVISION.
86413           OPEN OUTPUT f
86414           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
86415               WRITE f-rec FROM 1-template
86416           END-PERFORM
86417           CLOSE f
86418
86419           OPEN INPUT f
86420      *    rec-size should not influence READ
86421           MOVE 15 TO rec-size
86422           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
86423               READ f
86424                   AT END
86425                       DISPLAY "Failed: EOF"
86426                       STOP RUN ERROR
86427               END-READ
86428
86429               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
86430               IF rec-size NOT = i
86431                   DISPLAY "Failed: bad record size"
86432                   STOP RUN ERROR
86433               END-IF
86434               IF f-x (rec-size) NOT = 1-x (rec-size)
86435                   DISPLAY "Failed: bad data"
86436                   STOP RUN ERROR
86437               END-IF
86438           END-PERFORM
86439           CLOSE f
86440           .
86441_ATEOF
86442
86443
86444{ set +x
86445$as_echo "$at_srcdir/run_file.at:5085: \$COMPILE prog.cob"
86446at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5085"
86447( $at_check_trace; $COMPILE prog.cob
86448) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86449at_status=$? at_failed=false
86450$at_check_filter
86451at_fn_diff_devnull "$at_stderr" || at_failed=:
86452at_fn_diff_devnull "$at_stdout" || at_failed=:
86453at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5085"
86454$at_failed && at_fn_log_failure
86455$at_traceon; }
86456
86457{ set +x
86458$as_echo "$at_srcdir/run_file.at:5086: \$COBCRUN_DIRECT ./prog"
86459at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5086"
86460( $at_check_trace; $COBCRUN_DIRECT ./prog
86461) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86462at_status=$? at_failed=false
86463$at_check_filter
86464at_fn_diff_devnull "$at_stderr" || at_failed=:
86465echo >>"$at_stdout"; $as_echo "20: >+12345678++12345678+<
8646619: >+12345678++12345678<
8646718: >+12345678++1234567<
8646817: >+12345678++123456<
8646916: >+12345678++12345<
8647015: >+12345678++1234<
8647114: >+12345678++123<
8647213: >+12345678++12<
8647312: >+12345678++1<
8647411: >+12345678++<
8647510: >+12345678+<
86476" | \
86477  $at_diff - "$at_stdout" || at_failed=:
86478at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5086"
86479$at_failed && at_fn_log_failure
86480$at_traceon; }
86481
86482
86483  set +x
86484  $at_times_p && times >"$at_times_file"
86485) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86486read at_status <"$at_status_file"
86487#AT_STOP_778
86488#AT_START_779
86489at_fn_group_banner 779 'run_file.at:5103' \
86490  "SEQUENTIAL file REWRITE" "                        " 4
86491at_xfail=no
86492(
86493  $as_echo "779. $at_setup_line: testing $at_desc ..."
86494  $at_traceon
86495
86496
86497
86498cat >prog.cob <<'_ATEOF'
86499
86500       IDENTIFICATION DIVISION.
86501       PROGRAM-ID.  prog.
86502
86503       ENVIRONMENT DIVISION.
86504       CONFIGURATION SECTION.
86505       INPUT-OUTPUT SECTION.
86506       FILE-CONTROL.
86507           SELECT file1 ASSIGN DISK.
86508
86509       DATA DIVISION.
86510       FILE SECTION.
86511       FD  file1.
86512       01  file1-rec.
86513           02  file1-serial-1 PIC 9(6).
86514           02  file1-xseen PIC 9(4).
86515           02  file1-serial-2 PIC 9(6).
86516
86517       WORKING-STORAGE SECTION.
86518       01  w-count PIC 9(6) VALUE 0.
86519       01  w-eof PIC 9 VALUE 0.
86520           88  eof VALUE 1 FALSE 0.
86521       01  w-abort PIC 9 VALUE 0.
86522           88  abort VALUE 1 FALSE 0.
86523
86524       PROCEDURE DIVISION.
86525           OPEN OUTPUT file1
86526           PERFORM VARYING w-count FROM 1 BY 1
86527                   UNTIL w-count > 20
86528               MOVE w-count TO file1-serial-1
86529               MOVE 0 TO file1-xseen
86530               ADD 100 w-count GIVING file1-serial-2
86531               WRITE file1-rec
86532           END-PERFORM
86533           CLOSE file1
86534
86535           OPEN I-O file1
86536           SET eof TO FALSE
86537           PERFORM VARYING w-count FROM 1 BY 1
86538                   UNTIL eof OR abort
86539               READ file1
86540                   AT END
86541                       SET eof TO TRUE
86542
86543                   NOT AT END
86544                       IF (file1-serial-1 <> w-count)
86545                           DISPLAY "FAIL 1: " w-count " :: "
86546                               file1-serial-1
86547                           SET abort TO TRUE
86548                       ELSE IF (file1-serial-2 <> (100 + w-count))
86549                           DISPLAY "FAIL 2: " w-count " :: "
86550                               file1-serial-2
86551                           SET abort TO TRUE
86552                       ELSE IF (file1-xseen <> 0)
86553                           DISPLAY "FAIL 3: " w-count " :: " file1-xseen
86554                           SET abort TO TRUE
86555                       ELSE IF (w-count = 5 OR 10 OR 15 OR 20)
86556                           ADD 1000 w-count GIVING file1-serial-2
86557                           ADD 1 TO file1-xseen
86558                           REWRITE file1-rec
86559                       END-IF
86560               END-READ
86561           END-PERFORM
86562           IF NOT ((w-count = 22) AND eof)
86563               DISPLAY "FAIL 4"
86564           END-IF
86565           CLOSE file1
86566
86567           OPEN INPUT file1
86568           SET eof TO FALSE
86569           SET abort TO FALSE
86570           PERFORM VARYING w-count FROM 1 BY 1
86571                   UNTIL eof OR abort
86572               READ file1
86573                   AT END
86574                       SET eof TO TRUE
86575
86576                   NOT AT END
86577                       IF (file1-serial-1 <> w-count)
86578                           DISPLAY "FAIL 5"
86579                           SET abort TO TRUE
86580                       ELSE IF (w-count = 5 OR 10 OR 15 OR 20)
86581                           IF NOT ((file1-serial-2 = (1000 + w-count))
86582                                   AND (file1-xseen = 1))
86583                               DISPLAY "FAIL 6"
86584                               SET abort TO TRUE
86585                           END-IF
86586                       ELSE
86587                           IF NOT ((file1-serial-2 = (100 + w-count))
86588                                   AND (file1-xseen = 0))
86589                               DISPLAY "FAIL 7"
86590                               SET abort TO TRUE
86591                           END-IF
86592                       END-IF
86593               END-READ
86594           END-PERFORM
86595           CLOSE file1
86596           .
86597_ATEOF
86598
86599
86600{ set +x
86601$as_echo "$at_srcdir/run_file.at:5206: \$COMPILE prog.cob"
86602at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5206"
86603( $at_check_trace; $COMPILE prog.cob
86604) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86605at_status=$? at_failed=false
86606$at_check_filter
86607at_fn_diff_devnull "$at_stderr" || at_failed=:
86608at_fn_diff_devnull "$at_stdout" || at_failed=:
86609at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5206"
86610$at_failed && at_fn_log_failure
86611$at_traceon; }
86612
86613{ set +x
86614$as_echo "$at_srcdir/run_file.at:5207: \$COBCRUN_DIRECT ./prog"
86615at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5207"
86616( $at_check_trace; $COBCRUN_DIRECT ./prog
86617) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86618at_status=$? at_failed=false
86619$at_check_filter
86620at_fn_diff_devnull "$at_stderr" || at_failed=:
86621at_fn_diff_devnull "$at_stdout" || at_failed=:
86622at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5207"
86623$at_failed && at_fn_log_failure
86624$at_traceon; }
86625
86626
86627  set +x
86628  $at_times_p && times >"$at_times_file"
86629) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86630read at_status <"$at_status_file"
86631#AT_STOP_779
86632#AT_START_780
86633at_fn_group_banner 780 'run_file.at:5215' \
86634  "SEQUENTIAL file with LOCK MODE EXCLUSIVE" "       " 4
86635at_xfail=yes
86636(
86637  $as_echo "780. $at_setup_line: testing $at_desc ..."
86638  $at_traceon
86639
86640
86641
86642
86643
86644cat >prog1.cob <<'_ATEOF'
86645
86646       identification division.
86647       program-id. prog1.
86648       environment division.
86649       input-output section.
86650       file-control.
86651       select file1 assign disk
86652           lock mode is exclusive
86653           status is fs.
86654       data division.
86655       file section.
86656       fd file1.
86657       1    file1-rec pic x.
86658       working-storage section.
86659       1    fs pic xx.
86660       1    os-check   pic x(7).
86661         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
86662       78  callee       value "./prog2".
86663       78  callee-wdos  value ".\prog2".
86664       procedure division.
86665           open output file1.
86666           close file1.
86667           open input file1.
86668           accept os-check from environment "OS".
86669           if os-check = spaces
86670             accept os-check from environment "OS_NAME".
86671           inspect os-check converting "werfdosin" to "WERFDOSIN".
86672           if os-is-windows-or-dos
86673             call "SYSTEM" using callee-wdos
86674           else
86675             call "SYSTEM" using callee.
86676           close file1.
86677           stop run.
86678_ATEOF
86679
86680cat >prog2.cob <<'_ATEOF'
86681
86682       identification division.
86683       program-id. prog2.
86684       environment division.
86685       input-output section.
86686       file-control.
86687       select file1 assign disk status is fs.
86688       data division.
86689       file section.
86690       fd file1.
86691       1    file1-rec pic x.
86692       working-storage section.
86693       1    fs pic xx.
86694       procedure division.
86695           open input file1.
86696           if fs not = "61"
86697              display "FAILED: " fs
86698              close file1
86699           end-if.
86700           stop run.
86701_ATEOF
86702
86703
86704{ set +x
86705$as_echo "$at_srcdir/run_file.at:5276: \$COMPILE prog1.cob"
86706at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5276"
86707( $at_check_trace; $COMPILE prog1.cob
86708) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86709at_status=$? at_failed=false
86710$at_check_filter
86711at_fn_diff_devnull "$at_stderr" || at_failed=:
86712at_fn_diff_devnull "$at_stdout" || at_failed=:
86713at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5276"
86714$at_failed && at_fn_log_failure
86715$at_traceon; }
86716
86717{ set +x
86718$as_echo "$at_srcdir/run_file.at:5277: \$COMPILE prog2.cob"
86719at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5277"
86720( $at_check_trace; $COMPILE prog2.cob
86721) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86722at_status=$? at_failed=false
86723$at_check_filter
86724at_fn_diff_devnull "$at_stderr" || at_failed=:
86725at_fn_diff_devnull "$at_stdout" || at_failed=:
86726at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5277"
86727$at_failed && at_fn_log_failure
86728$at_traceon; }
86729
86730{ set +x
86731$as_echo "$at_srcdir/run_file.at:5278: \$COBCRUN_DIRECT ./prog1"
86732at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5278"
86733( $at_check_trace; $COBCRUN_DIRECT ./prog1
86734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86735at_status=$? at_failed=false
86736$at_check_filter
86737at_fn_diff_devnull "$at_stderr" || at_failed=:
86738at_fn_diff_devnull "$at_stdout" || at_failed=:
86739at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5278"
86740$at_failed && at_fn_log_failure
86741$at_traceon; }
86742
86743
86744  set +x
86745  $at_times_p && times >"$at_times_file"
86746) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86747read at_status <"$at_status_file"
86748#AT_STOP_780
86749#AT_START_781
86750at_fn_group_banner 781 'run_file.at:5283' \
86751  "SEQUENTIAL file with OPEN WITH LOCK" "            " 4
86752at_xfail=yes
86753(
86754  $as_echo "781. $at_setup_line: testing $at_desc ..."
86755  $at_traceon
86756
86757
86758
86759
86760
86761cat >prog1.cob <<'_ATEOF'
86762
86763       identification division.
86764       program-id. prog1.
86765       environment division.
86766       input-output section.
86767       file-control.
86768       select file1 assign disk status is fs.
86769       data division.
86770       file section.
86771       fd file1.
86772       1    file1-rec pic x.
86773       working-storage section.
86774       1    fs pic xx.
86775       1    os-check   pic x(7).
86776         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
86777       78  callee       value "./prog2".
86778       78  callee-wdos  value ".\prog2".
86779       procedure division.
86780           open output file1.
86781           close file1.
86782           open input file1 with lock.
86783           accept os-check from environment "OS".
86784           if os-check = spaces
86785             accept os-check from environment "OS_NAME".
86786           inspect os-check converting "werfdosin" to "WERFDOSIN".
86787           if os-is-windows-or-dos
86788             call "SYSTEM" using callee-wdos
86789           else
86790             call "SYSTEM" using callee.
86791           close file1.
86792           stop run.
86793_ATEOF
86794
86795cat >prog2.cob <<'_ATEOF'
86796
86797       identification division.
86798       program-id. prog2.
86799       environment division.
86800       input-output section.
86801       file-control.
86802       select file1 assign disk status is fs.
86803       data division.
86804       file section.
86805       fd file1.
86806       1    file1-rec pic x.
86807       working-storage section.
86808       1    fs pic xx.
86809       procedure division.
86810           open input file1.
86811           if fs not = "61"
86812              display "FAILED: " fs
86813              close file1
86814           end-if.
86815           stop run.
86816_ATEOF
86817
86818
86819{ set +x
86820$as_echo "$at_srcdir/run_file.at:5342: \$COMPILE prog1.cob"
86821at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5342"
86822( $at_check_trace; $COMPILE prog1.cob
86823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86824at_status=$? at_failed=false
86825$at_check_filter
86826at_fn_diff_devnull "$at_stderr" || at_failed=:
86827at_fn_diff_devnull "$at_stdout" || at_failed=:
86828at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5342"
86829$at_failed && at_fn_log_failure
86830$at_traceon; }
86831
86832{ set +x
86833$as_echo "$at_srcdir/run_file.at:5343: \$COMPILE prog2.cob"
86834at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5343"
86835( $at_check_trace; $COMPILE prog2.cob
86836) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86837at_status=$? at_failed=false
86838$at_check_filter
86839at_fn_diff_devnull "$at_stderr" || at_failed=:
86840at_fn_diff_devnull "$at_stdout" || at_failed=:
86841at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5343"
86842$at_failed && at_fn_log_failure
86843$at_traceon; }
86844
86845{ set +x
86846$as_echo "$at_srcdir/run_file.at:5344: \$COBCRUN_DIRECT ./prog1"
86847at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5344"
86848( $at_check_trace; $COBCRUN_DIRECT ./prog1
86849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86850at_status=$? at_failed=false
86851$at_check_filter
86852at_fn_diff_devnull "$at_stderr" || at_failed=:
86853at_fn_diff_devnull "$at_stdout" || at_failed=:
86854at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5344"
86855$at_failed && at_fn_log_failure
86856$at_traceon; }
86857
86858
86859  set +x
86860  $at_times_p && times >"$at_times_file"
86861) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86862read at_status <"$at_status_file"
86863#AT_STOP_781
86864#AT_START_782
86865at_fn_group_banner 782 'run_file.at:5349' \
86866  "SEQUENTIAL file with SHARING NO" "                " 4
86867at_xfail=yes
86868(
86869  $as_echo "782. $at_setup_line: testing $at_desc ..."
86870  $at_traceon
86871
86872
86873
86874
86875
86876cat >prog1.cob <<'_ATEOF'
86877
86878       identification division.
86879       program-id. prog1.
86880       environment division.
86881       input-output section.
86882       file-control.
86883       select file1 assign disk
86884           sharing no
86885           status is fs.
86886       data division.
86887       file section.
86888       fd file1.
86889       1    file1-rec pic x.
86890       working-storage section.
86891       1    fs pic xx.
86892       1    os-check   pic x(7).
86893         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
86894       78  callee       value "./prog2".
86895       78  callee-wdos  value ".\prog2".
86896       procedure division.
86897           open output file1.
86898           close file1.
86899           open input file1.
86900           accept os-check from environment "OS".
86901           if os-check = spaces
86902             accept os-check from environment "OS_NAME".
86903           inspect os-check converting "werfdosin" to "WERFDOSIN".
86904           if os-is-windows-or-dos
86905             call "SYSTEM" using callee-wdos
86906           else
86907             call "SYSTEM" using callee.
86908           close file1.
86909           stop run.
86910_ATEOF
86911
86912cat >prog2.cob <<'_ATEOF'
86913
86914       identification division.
86915       program-id. prog2.
86916       environment division.
86917       input-output section.
86918       file-control.
86919       select file1 assign disk status is fs.
86920       data division.
86921       file section.
86922       fd file1.
86923       1    file1-rec pic x.
86924       working-storage section.
86925       1    fs pic xx.
86926       procedure division.
86927           open input file1.
86928           if fs not = "61"
86929              display "FAILED: " fs
86930              close file1
86931           end-if.
86932           stop run.
86933_ATEOF
86934
86935
86936{ set +x
86937$as_echo "$at_srcdir/run_file.at:5410: \$COMPILE prog1.cob"
86938at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5410"
86939( $at_check_trace; $COMPILE prog1.cob
86940) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86941at_status=$? at_failed=false
86942$at_check_filter
86943at_fn_diff_devnull "$at_stderr" || at_failed=:
86944at_fn_diff_devnull "$at_stdout" || at_failed=:
86945at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5410"
86946$at_failed && at_fn_log_failure
86947$at_traceon; }
86948
86949{ set +x
86950$as_echo "$at_srcdir/run_file.at:5411: \$COMPILE prog2.cob"
86951at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5411"
86952( $at_check_trace; $COMPILE prog2.cob
86953) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86954at_status=$? at_failed=false
86955$at_check_filter
86956at_fn_diff_devnull "$at_stderr" || at_failed=:
86957at_fn_diff_devnull "$at_stdout" || at_failed=:
86958at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5411"
86959$at_failed && at_fn_log_failure
86960$at_traceon; }
86961
86962{ set +x
86963$as_echo "$at_srcdir/run_file.at:5412: \$COBCRUN_DIRECT ./prog1"
86964at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5412"
86965( $at_check_trace; $COBCRUN_DIRECT ./prog1
86966) >>"$at_stdout" 2>>"$at_stderr" 5>&-
86967at_status=$? at_failed=false
86968$at_check_filter
86969at_fn_diff_devnull "$at_stderr" || at_failed=:
86970at_fn_diff_devnull "$at_stdout" || at_failed=:
86971at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5412"
86972$at_failed && at_fn_log_failure
86973$at_traceon; }
86974
86975
86976  set +x
86977  $at_times_p && times >"$at_times_file"
86978) 5>&1 2>&1 7>&- | eval $at_tee_pipe
86979read at_status <"$at_status_file"
86980#AT_STOP_782
86981#AT_START_783
86982at_fn_group_banner 783 'run_file.at:5417' \
86983  "SEQUENTIAL file with SHARING READ ONLY" "         " 4
86984at_xfail=no
86985(
86986  $as_echo "783. $at_setup_line: testing $at_desc ..."
86987  $at_traceon
86988
86989
86990
86991cat >prog1.cob <<'_ATEOF'
86992
86993       identification division.
86994       program-id. prog1.
86995       environment division.
86996       input-output section.
86997       file-control.
86998       select file1 assign disk
86999           sharing read only
87000           status is fs.
87001       data division.
87002       file section.
87003       fd file1.
87004       1    file1-rec pic x.
87005       working-storage section.
87006       1    fs pic xx.
87007       1    os-check   pic x(7).
87008         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
87009       78  callee       value "./prog2".
87010       78  callee-wdos  value ".\prog2".
87011       procedure division.
87012           open output file1.
87013           close file1.
87014           open input file1.
87015           accept os-check from environment "OS".
87016           if os-check = spaces
87017             accept os-check from environment "OS_NAME".
87018           inspect os-check converting "werfdosin" to "WERFDOSIN".
87019           if os-is-windows-or-dos
87020             call "SYSTEM" using callee-wdos
87021           else
87022             call "SYSTEM" using callee.
87023           close file1.
87024           stop run.
87025_ATEOF
87026
87027cat >prog2.cob <<'_ATEOF'
87028
87029       identification division.
87030       program-id. prog2.
87031       environment division.
87032       input-output section.
87033       file-control.
87034       select file1 assign disk status is fs.
87035       data division.
87036       file section.
87037       fd file1.
87038       1    file1-rec pic x.
87039       working-storage section.
87040       1    fs pic xx.
87041       procedure division.
87042           open i-o file1.
87043           if fs not = "61"
87044              display "FAILED 1: " fs
87045              close file1
87046           end-if.
87047           open input file1.
87048           if fs not = "00"
87049              display "FAILED 2: " fs
87050           else
87051              close file1
87052           end-if.
87053           stop run.
87054_ATEOF
87055
87056
87057{ set +x
87058$as_echo "$at_srcdir/run_file.at:5482: \$COMPILE prog1.cob"
87059at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5482"
87060( $at_check_trace; $COMPILE prog1.cob
87061) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87062at_status=$? at_failed=false
87063$at_check_filter
87064at_fn_diff_devnull "$at_stderr" || at_failed=:
87065at_fn_diff_devnull "$at_stdout" || at_failed=:
87066at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5482"
87067$at_failed && at_fn_log_failure
87068$at_traceon; }
87069
87070{ set +x
87071$as_echo "$at_srcdir/run_file.at:5483: \$COMPILE prog2.cob"
87072at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5483"
87073( $at_check_trace; $COMPILE prog2.cob
87074) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87075at_status=$? at_failed=false
87076$at_check_filter
87077at_fn_diff_devnull "$at_stderr" || at_failed=:
87078at_fn_diff_devnull "$at_stdout" || at_failed=:
87079at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5483"
87080$at_failed && at_fn_log_failure
87081$at_traceon; }
87082
87083{ set +x
87084$as_echo "$at_srcdir/run_file.at:5484: \$COBCRUN_DIRECT ./prog1"
87085at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5484"
87086( $at_check_trace; $COBCRUN_DIRECT ./prog1
87087) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87088at_status=$? at_failed=false
87089$at_check_filter
87090at_fn_diff_devnull "$at_stderr" || at_failed=:
87091at_fn_diff_devnull "$at_stdout" || at_failed=:
87092at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5484"
87093$at_failed && at_fn_log_failure
87094$at_traceon; }
87095
87096
87097  set +x
87098  $at_times_p && times >"$at_times_file"
87099) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87100read at_status <"$at_status_file"
87101#AT_STOP_783
87102#AT_START_784
87103at_fn_group_banner 784 'run_file.at:5490' \
87104  "SEQUENTIAL file with blocked lock" "              " 4
87105at_xfail=yes
87106(
87107  $as_echo "784. $at_setup_line: testing $at_desc ..."
87108  $at_traceon
87109
87110
87111
87112
87113
87114cat >prog1.cob <<'_ATEOF'
87115
87116       identification division.
87117       program-id. prog1.
87118       environment division.
87119       input-output section.
87120       file-control.
87121       select file1 assign disk.
87122       data division.
87123       file section.
87124       fd file1.
87125       1    file1-rec pic x.
87126       working-storage section.
87127       1    os-check   pic x(7).
87128         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
87129       78  callee       value "./prog2".
87130       78  callee-wdos  value ".\prog2".
87131       procedure division.
87132           open output file1.
87133           close file1.
87134           open input file1.
87135           accept os-check from environment "OS".
87136           if os-check = spaces
87137             accept os-check from environment "OS_NAME".
87138           inspect os-check converting "werfdosin" to "WERFDOSIN".
87139           if os-is-windows-or-dos
87140             call "SYSTEM" using callee-wdos
87141           else
87142             call "SYSTEM" using callee.
87143           close file1.
87144           stop run.
87145_ATEOF
87146
87147cat >prog2.cob <<'_ATEOF'
87148
87149       identification division.
87150       program-id. prog2.
87151       environment division.
87152       input-output section.
87153       file-control.
87154       select file1 assign disk status is fs.
87155       data division.
87156       file section.
87157       fd file1.
87158       1    file1-rec pic x.
87159       working-storage section.
87160       1    fs pic xx.
87161       procedure division.
87162           open input file1.
87163           if fs not = "00"
87164              display "FAILED: " fs
87165              stop run
87166           end-if.
87167           close file1
87168           open input file1 with lock.
87169           if fs not = "61"
87170              display "FAILED: " fs
87171              close file1
87172           end-if.
87173           stop run.
87174_ATEOF
87175
87176
87177{ set +x
87178$as_echo "$at_srcdir/run_file.at:5554: \$COMPILE prog1.cob"
87179at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5554"
87180( $at_check_trace; $COMPILE prog1.cob
87181) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87182at_status=$? at_failed=false
87183$at_check_filter
87184at_fn_diff_devnull "$at_stderr" || at_failed=:
87185at_fn_diff_devnull "$at_stdout" || at_failed=:
87186at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5554"
87187$at_failed && at_fn_log_failure
87188$at_traceon; }
87189
87190{ set +x
87191$as_echo "$at_srcdir/run_file.at:5555: \$COMPILE prog2.cob"
87192at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5555"
87193( $at_check_trace; $COMPILE prog2.cob
87194) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87195at_status=$? at_failed=false
87196$at_check_filter
87197at_fn_diff_devnull "$at_stderr" || at_failed=:
87198at_fn_diff_devnull "$at_stdout" || at_failed=:
87199at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5555"
87200$at_failed && at_fn_log_failure
87201$at_traceon; }
87202
87203{ set +x
87204$as_echo "$at_srcdir/run_file.at:5556: \$COBCRUN_DIRECT ./prog1"
87205at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5556"
87206( $at_check_trace; $COBCRUN_DIRECT ./prog1
87207) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87208at_status=$? at_failed=false
87209$at_check_filter
87210at_fn_diff_devnull "$at_stderr" || at_failed=:
87211at_fn_diff_devnull "$at_stdout" || at_failed=:
87212at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5556"
87213$at_failed && at_fn_log_failure
87214$at_traceon; }
87215
87216
87217  set +x
87218  $at_times_p && times >"$at_times_file"
87219) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87220read at_status <"$at_status_file"
87221#AT_STOP_784
87222#AT_START_785
87223at_fn_group_banner 785 'run_file.at:5561' \
87224  "RELATIVE SEQUENTIAL basic I/O" "                  " 4
87225at_xfail=no
87226(
87227  $as_echo "785. $at_setup_line: testing $at_desc ..."
87228  $at_traceon
87229
87230
87231
87232cat >prog.cob <<'_ATEOF'
87233
87234       IDENTIFICATION DIVISION.
87235       PROGRAM-ID. prog.
87236       ENVIRONMENT DIVISION.
87237       INPUT-OUTPUT SECTION.
87238       FILE-CONTROL.
87239       SELECT file1 ASSIGN DISK ORGANIZATION RELATIVE.
87240       DATA DIVISION.
87241       FILE SECTION.
87242       FD file1.
87243       1  file1-rec pic x.
87244       PROCEDURE DIVISION.
87245           DELETE FILE file1.
87246           OPEN OUTPUT file1.
87247           MOVE "A" TO file1-rec.
87248           WRITE file1-rec.
87249           CLOSE file1.
87250           OPEN INPUT file1.
87251           READ file1.
87252           IF (file1-rec <> "A")
87253              display "FAILED".
87254           CLOSE file1.
87255           STOP RUN.
87256_ATEOF
87257
87258
87259{ set +x
87260$as_echo "$at_srcdir/run_file.at:5589: \$COMPILE prog.cob"
87261at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5589"
87262( $at_check_trace; $COMPILE prog.cob
87263) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87264at_status=$? at_failed=false
87265$at_check_filter
87266at_fn_diff_devnull "$at_stderr" || at_failed=:
87267at_fn_diff_devnull "$at_stdout" || at_failed=:
87268at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5589"
87269$at_failed && at_fn_log_failure
87270$at_traceon; }
87271
87272{ set +x
87273$as_echo "$at_srcdir/run_file.at:5590: \$COBCRUN_DIRECT ./prog"
87274at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5590"
87275( $at_check_trace; $COBCRUN_DIRECT ./prog
87276) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87277at_status=$? at_failed=false
87278$at_check_filter
87279at_fn_diff_devnull "$at_stderr" || at_failed=:
87280at_fn_diff_devnull "$at_stdout" || at_failed=:
87281at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5590"
87282$at_failed && at_fn_log_failure
87283$at_traceon; }
87284
87285
87286  set +x
87287  $at_times_p && times >"$at_times_file"
87288) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87289read at_status <"$at_status_file"
87290#AT_STOP_785
87291#AT_START_786
87292at_fn_group_banner 786 'run_file.at:5595' \
87293  "RELATIVE RANDOM basic I/O" "                      " 4
87294at_xfail=no
87295(
87296  $as_echo "786. $at_setup_line: testing $at_desc ..."
87297  $at_traceon
87298
87299
87300
87301cat >prog.cob <<'_ATEOF'
87302
87303       IDENTIFICATION DIVISION.
87304       PROGRAM-ID. prog.
87305       ENVIRONMENT DIVISION.
87306       INPUT-OUTPUT SECTION.
87307       FILE-CONTROL.
87308       SELECT file1 ASSIGN DISK
87309          ORGANIZATION RELATIVE
87310          ACCESS RANDOM RELATIVE KEY file1-key.
87311       DATA DIVISION.
87312       FILE SECTION.
87313       FD file1.
87314       1  file1-rec pic x.
87315       WORKING-STORAGE SECTION.
87316       77  file1-key pic 99.
87317       PROCEDURE DIVISION.
87318           DELETE FILE file1.
87319           OPEN OUTPUT file1.
87320           MOVE 1 to file1-key.
87321           MOVE "A" TO file1-rec.
87322           WRITE file1-rec.
87323           MOVE 2 to file1-key.
87324           MOVE "B" TO file1-rec.
87325           WRITE file1-rec.
87326           MOVE 3 to file1-key.
87327           MOVE "C" TO file1-rec.
87328           WRITE file1-rec.
87329           CLOSE file1.
87330           OPEN INPUT file1.
87331           MOVE 2 to file1-key.
87332           READ file1.
87333           IF (file1-rec <> "B")
87334              display "FAILED".
87335           MOVE 1 to file1-key.
87336           READ file1.
87337           IF (file1-rec <> "A")
87338              display "FAILED".
87339           CLOSE file1.
87340           STOP RUN.
87341_ATEOF
87342
87343
87344{ set +x
87345$as_echo "$at_srcdir/run_file.at:5639: \$COMPILE prog.cob"
87346at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5639"
87347( $at_check_trace; $COMPILE prog.cob
87348) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87349at_status=$? at_failed=false
87350$at_check_filter
87351at_fn_diff_devnull "$at_stderr" || at_failed=:
87352at_fn_diff_devnull "$at_stdout" || at_failed=:
87353at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5639"
87354$at_failed && at_fn_log_failure
87355$at_traceon; }
87356
87357{ set +x
87358$as_echo "$at_srcdir/run_file.at:5640: \$COBCRUN_DIRECT ./prog"
87359at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5640"
87360( $at_check_trace; $COBCRUN_DIRECT ./prog
87361) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87362at_status=$? at_failed=false
87363$at_check_filter
87364at_fn_diff_devnull "$at_stderr" || at_failed=:
87365at_fn_diff_devnull "$at_stdout" || at_failed=:
87366at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5640"
87367$at_failed && at_fn_log_failure
87368$at_traceon; }
87369
87370
87371  set +x
87372  $at_times_p && times >"$at_times_file"
87373) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87374read at_status <"$at_status_file"
87375#AT_STOP_786
87376#AT_START_787
87377at_fn_group_banner 787 'run_file.at:5645' \
87378  "RELATIVE SEQUENTIAL with variable records" "      " 4
87379at_xfail=no
87380(
87381  $as_echo "787. $at_setup_line: testing $at_desc ..."
87382  $at_traceon
87383
87384
87385
87386cat >prog.cob <<'_ATEOF'
87387
87388       IDENTIFICATION DIVISION.
87389       PROGRAM-ID. prog.
87390
87391       ENVIRONMENT DIVISION.
87392       INPUT-OUTPUT SECTION.
87393       FILE-CONTROL.
87394           SELECT f ASSIGN DISK
87395               ORGANIZATION RELATIVE.
87396
87397       DATA DIVISION.
87398       FILE SECTION.
87399       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
87400       01  f-rec.
87401           02  f-x OCCURS 20 PIC X.
87402
87403       WORKING-STORAGE SECTION.
87404       01  rec-size PIC 99.
87405       01  i PIC 99.
87406       01  1-template VALUE "+12345678++12345678+".
87407           02  1-x OCCURS 20 PIC X.
87408
87409       PROCEDURE DIVISION.
87410           OPEN OUTPUT f
87411           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
87412               WRITE f-rec FROM 1-template
87413           END-PERFORM
87414           CLOSE f
87415
87416           OPEN INPUT f
87417      *    rec-size should not influence READ
87418           MOVE 15 TO rec-size
87419           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
87420               READ f
87421                   AT END
87422                       DISPLAY "Failed: EOF"
87423                       STOP RUN ERROR
87424               END-READ
87425
87426               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
87427               IF rec-size NOT = i
87428                   DISPLAY "Failed: bad record size"
87429                   STOP RUN ERROR
87430               END-IF
87431               IF f-x (rec-size) NOT = 1-x (rec-size)
87432                   DISPLAY "Failed: bad data"
87433                   STOP RUN ERROR
87434               END-IF
87435           END-PERFORM
87436           CLOSE f
87437           .
87438_ATEOF
87439
87440
87441{ set +x
87442$as_echo "$at_srcdir/run_file.at:5701: \$COMPILE prog.cob"
87443at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5701"
87444( $at_check_trace; $COMPILE prog.cob
87445) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87446at_status=$? at_failed=false
87447$at_check_filter
87448at_fn_diff_devnull "$at_stderr" || at_failed=:
87449at_fn_diff_devnull "$at_stdout" || at_failed=:
87450at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5701"
87451$at_failed && at_fn_log_failure
87452$at_traceon; }
87453
87454{ set +x
87455$as_echo "$at_srcdir/run_file.at:5702: \$COBCRUN_DIRECT ./prog"
87456at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5702"
87457( $at_check_trace; $COBCRUN_DIRECT ./prog
87458) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87459at_status=$? at_failed=false
87460$at_check_filter
87461at_fn_diff_devnull "$at_stderr" || at_failed=:
87462echo >>"$at_stdout"; $as_echo "20: >+12345678++12345678+<
8746319: >+12345678++12345678<
8746418: >+12345678++1234567<
8746517: >+12345678++123456<
8746616: >+12345678++12345<
8746715: >+12345678++1234<
8746814: >+12345678++123<
8746913: >+12345678++12<
8747012: >+12345678++1<
8747111: >+12345678++<
8747210: >+12345678+<
87473" | \
87474  $at_diff - "$at_stdout" || at_failed=:
87475at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5702"
87476$at_failed && at_fn_log_failure
87477$at_traceon; }
87478
87479
87480  set +x
87481  $at_times_p && times >"$at_times_file"
87482) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87483read at_status <"$at_status_file"
87484#AT_STOP_787
87485#AT_START_788
87486at_fn_group_banner 788 'run_file.at:5719' \
87487  "INDEXED SEQUENTIAL basic I/O" "                   " 4
87488at_xfail=no
87489(
87490  $as_echo "788. $at_setup_line: testing $at_desc ..."
87491  $at_traceon
87492
87493
87494
87495$as_echo "run_file.at:5722" >"$at_check_line_file"
87496(test "$COB_HAS_ISAM" = "no") \
87497  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5722"
87498
87499cat >prog.cob <<'_ATEOF'
87500
87501       IDENTIFICATION DIVISION.
87502       PROGRAM-ID. prog.
87503       ENVIRONMENT DIVISION.
87504       INPUT-OUTPUT SECTION.
87505       FILE-CONTROL.
87506       SELECT fileX ASSIGN DISK ORGANIZATION INDEXED
87507           RECORD KEY fileX-key.
87508       DATA DIVISION.
87509       FILE SECTION.
87510       FD fileX.
87511       1  fileX-rec.
87512          2 fileX-key pic x(6).
87513          2 fileX-data pic x(10).
87514       PROCEDURE DIVISION.
87515           OPEN OUTPUT fileX.
87516           MOVE ALL "A" TO fileX-rec.
87517           WRITE fileX-rec.
87518           CLOSE fileX.
87519           OPEN INPUT fileX.
87520           READ fileX.
87521           IF (fileX-rec <> ALL "A")
87522              display "FAILED".
87523           CLOSE fileX.
87524           STOP RUN.
87525_ATEOF
87526
87527
87528{ set +x
87529$as_echo "$at_srcdir/run_file.at:5751: \$COMPILE prog.cob"
87530at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5751"
87531( $at_check_trace; $COMPILE prog.cob
87532) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87533at_status=$? at_failed=false
87534$at_check_filter
87535at_fn_diff_devnull "$at_stderr" || at_failed=:
87536at_fn_diff_devnull "$at_stdout" || at_failed=:
87537at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5751"
87538$at_failed && at_fn_log_failure
87539$at_traceon; }
87540
87541{ set +x
87542$as_echo "$at_srcdir/run_file.at:5752: \$COBCRUN_DIRECT ./prog"
87543at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5752"
87544( $at_check_trace; $COBCRUN_DIRECT ./prog
87545) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87546at_status=$? at_failed=false
87547$at_check_filter
87548at_fn_diff_devnull "$at_stderr" || at_failed=:
87549at_fn_diff_devnull "$at_stdout" || at_failed=:
87550at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5752"
87551$at_failed && at_fn_log_failure
87552$at_traceon; }
87553
87554
87555  set +x
87556  $at_times_p && times >"$at_times_file"
87557) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87558read at_status <"$at_status_file"
87559#AT_STOP_788
87560#AT_START_789
87561at_fn_group_banner 789 'run_file.at:5757' \
87562  "INDEXED SEQUENTIAL with variable records" "       " 4
87563at_xfail=no
87564(
87565  $as_echo "789. $at_setup_line: testing $at_desc ..."
87566  $at_traceon
87567
87568
87569
87570$as_echo "run_file.at:5760" >"$at_check_line_file"
87571(test "$COB_HAS_ISAM" = "no") \
87572  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5760"
87573
87574cat >prog.cob <<'_ATEOF'
87575
87576       IDENTIFICATION DIVISION.
87577       PROGRAM-ID. prog.
87578
87579       ENVIRONMENT DIVISION.
87580       INPUT-OUTPUT SECTION.
87581       FILE-CONTROL.
87582           SELECT f ASSIGN DISK
87583               INDEXED
87584               RECORD KEY f-key
87585               ACCESS RANDOM.
87586
87587       DATA DIVISION.
87588       FILE SECTION.
87589       FD  f RECORD VARYING FROM 12 TO 22 DEPENDING rec-size.
87590       01  f-rec.
87591           02  f-key PIC 99.
87592           02  f-data.
87593               03  f-x OCCURS 20 PIC X.
87594
87595       WORKING-STORAGE SECTION.
87596       01  rec-size PIC 99.
87597       01  1-template VALUE "+12345678++12345678+".
87598           02  1-x OCCURS 20 PIC X.
87599
87600       PROCEDURE DIVISION.
87601           OPEN OUTPUT f
87602           MOVE 1 TO f-key
87603           PERFORM VARYING rec-size FROM 22 BY -1 UNTIL rec-size < 12
87604               MOVE 1-template TO f-data
87605               WRITE f-rec
87606               ADD 1 TO f-key
87607           END-PERFORM
87608           CLOSE f
87609
87610           OPEN INPUT f
87611      *    rec-size should not influence READ
87612           MOVE 15 TO rec-size
87613           PERFORM VARYING f-key FROM 1 BY 1 UNTIL f-key > 11
87614               READ f
87615                   AT END
87616                       DISPLAY "Failed: EOF"
87617                       STOP RUN ERROR
87618               END-READ
87619
87620               DISPLAY rec-size ": >" f-rec (3:rec-size - 2) "<"
87621               IF rec-size NOT = (22 - f-key) + 1
87622                   DISPLAY "Failed: bad record size - " rec-size
87623                   STOP RUN ERROR
87624               END-IF
87625               IF f-x (rec-size - 2) NOT = 1-x (rec-size - 2)
87626                   DISPLAY "Failed: bad data - " f-data
87627                   STOP RUN ERROR
87628               END-IF
87629           END-PERFORM
87630           CLOSE f
87631           .
87632_ATEOF
87633
87634
87635{ set +x
87636$as_echo "$at_srcdir/run_file.at:5821: \$COMPILE prog.cob"
87637at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5821"
87638( $at_check_trace; $COMPILE prog.cob
87639) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87640at_status=$? at_failed=false
87641$at_check_filter
87642at_fn_diff_devnull "$at_stderr" || at_failed=:
87643at_fn_diff_devnull "$at_stdout" || at_failed=:
87644at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5821"
87645$at_failed && at_fn_log_failure
87646$at_traceon; }
87647
87648{ set +x
87649$as_echo "$at_srcdir/run_file.at:5822: \$COBCRUN_DIRECT ./prog"
87650at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5822"
87651( $at_check_trace; $COBCRUN_DIRECT ./prog
87652) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87653at_status=$? at_failed=false
87654$at_check_filter
87655at_fn_diff_devnull "$at_stderr" || at_failed=:
87656echo >>"$at_stdout"; $as_echo "22: >+12345678++12345678+<
8765721: >+12345678++12345678<
8765820: >+12345678++1234567<
8765919: >+12345678++123456<
8766018: >+12345678++12345<
8766117: >+12345678++1234<
8766216: >+12345678++123<
8766315: >+12345678++12<
8766414: >+12345678++1<
8766513: >+12345678++<
8766612: >+12345678+<
87667" | \
87668  $at_diff - "$at_stdout" || at_failed=:
87669at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5822"
87670$at_failed && at_fn_log_failure
87671$at_traceon; }
87672
87673
87674  set +x
87675  $at_times_p && times >"$at_times_file"
87676) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87677read at_status <"$at_status_file"
87678#AT_STOP_789
87679#AT_START_790
87680at_fn_group_banner 790 'run_file.at:5839' \
87681  "INDEXED file with LOCK MODE EXCLUSIVE" "          " 4
87682at_xfail=yes
87683(
87684  $as_echo "790. $at_setup_line: testing $at_desc ..."
87685  $at_traceon
87686
87687
87688
87689## TO-DO: Support INDEXED file sharing/locking.
87690$as_echo "run_file.at:5843" >"$at_check_line_file"
87691(test "$COB_HAS_ISAM" = "no") \
87692  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5843"
87693
87694
87695cat >prog1.cob <<'_ATEOF'
87696
87697       identification division.
87698       program-id. prog1.
87699       environment division.
87700       input-output section.
87701       file-control.
87702       select file1 assign disk
87703           organization indexed
87704           record key file1-key
87705           lock mode is exclusive
87706           status is fs.
87707       data division.
87708       file section.
87709       fd file1.
87710       1    file1-rec.
87711        2   file1-key pic x.
87712       working-storage section.
87713       1    fs pic xx.
87714       1    os-check   pic x(7).
87715         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
87716       78  callee       value "./prog2".
87717       78  callee-wdos  value ".\prog2".
87718       procedure division.
87719           open output file1.
87720           close file1.
87721           open input file1.
87722           accept os-check from environment "OS".
87723           if os-check = spaces
87724             accept os-check from environment "OS_NAME".
87725           inspect os-check converting "werfdosin" to "WERFDOSIN".
87726           if os-is-windows-or-dos
87727             call "SYSTEM" using callee-wdos
87728           else
87729             call "SYSTEM" using callee.
87730           close file1.
87731           stop run.
87732_ATEOF
87733
87734cat >prog2.cob <<'_ATEOF'
87735
87736       identification division.
87737       program-id. prog2.
87738       environment division.
87739       input-output section.
87740       file-control.
87741       select file1 assign disk
87742           organization indexed
87743           record key file1-key
87744           status is fs.
87745       data division.
87746       file section.
87747       fd file1.
87748       1    file1-rec.
87749        2   file1-key pic x.
87750       working-storage section.
87751       1    fs pic xx.
87752       procedure division.
87753           open input file1.
87754           if fs not = "61"
87755              display "FAILED: " fs
87756              close file1
87757           end-if.
87758           stop run.
87759_ATEOF
87760
87761
87762{ set +x
87763$as_echo "$at_srcdir/run_file.at:5909: \$COMPILE prog1.cob"
87764at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5909"
87765( $at_check_trace; $COMPILE prog1.cob
87766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87767at_status=$? at_failed=false
87768$at_check_filter
87769at_fn_diff_devnull "$at_stderr" || at_failed=:
87770at_fn_diff_devnull "$at_stdout" || at_failed=:
87771at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5909"
87772$at_failed && at_fn_log_failure
87773$at_traceon; }
87774
87775{ set +x
87776$as_echo "$at_srcdir/run_file.at:5910: \$COMPILE prog2.cob"
87777at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5910"
87778( $at_check_trace; $COMPILE prog2.cob
87779) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87780at_status=$? at_failed=false
87781$at_check_filter
87782at_fn_diff_devnull "$at_stderr" || at_failed=:
87783at_fn_diff_devnull "$at_stdout" || at_failed=:
87784at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5910"
87785$at_failed && at_fn_log_failure
87786$at_traceon; }
87787
87788{ set +x
87789$as_echo "$at_srcdir/run_file.at:5911: \$COBCRUN_DIRECT ./prog1"
87790at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5911"
87791( $at_check_trace; $COBCRUN_DIRECT ./prog1
87792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87793at_status=$? at_failed=false
87794$at_check_filter
87795at_fn_diff_devnull "$at_stderr" || at_failed=:
87796at_fn_diff_devnull "$at_stdout" || at_failed=:
87797at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5911"
87798$at_failed && at_fn_log_failure
87799$at_traceon; }
87800
87801
87802  set +x
87803  $at_times_p && times >"$at_times_file"
87804) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87805read at_status <"$at_status_file"
87806#AT_STOP_790
87807#AT_START_791
87808at_fn_group_banner 791 'run_file.at:5916' \
87809  "INDEXED file with OPEN WITH LOCK" "               " 4
87810at_xfail=yes
87811(
87812  $as_echo "791. $at_setup_line: testing $at_desc ..."
87813  $at_traceon
87814
87815
87816
87817## TO-DO: Support INDEXED file sharing/locking.
87818$as_echo "run_file.at:5920" >"$at_check_line_file"
87819(test "$COB_HAS_ISAM" = "no") \
87820  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5920"
87821
87822
87823cat >prog1.cob <<'_ATEOF'
87824
87825       identification division.
87826       program-id. prog1.
87827       environment division.
87828       input-output section.
87829       file-control.
87830       select file1 assign disk
87831           organization indexed
87832           record key file1-key
87833           status is fs.
87834       data division.
87835       file section.
87836       fd file1.
87837       1    file1-rec.
87838        2   file1-key pic x.
87839       working-storage section.
87840       1    fs pic xx.
87841       1    os-check   pic x(7).
87842         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
87843       78  callee       value "./prog2".
87844       78  callee-wdos  value ".\prog2".
87845       procedure division.
87846           open output file1.
87847           close file1.
87848           open input file1 with lock.
87849           accept os-check from environment "OS".
87850           if os-check = spaces
87851             accept os-check from environment "OS_NAME".
87852           inspect os-check converting "werfdosin" to "WERFDOSIN".
87853           if os-is-windows-or-dos
87854             call "SYSTEM" using callee-wdos
87855           else
87856             call "SYSTEM" using callee.
87857           close file1.
87858           stop run.
87859_ATEOF
87860
87861cat >prog2.cob <<'_ATEOF'
87862
87863       identification division.
87864       program-id. prog2.
87865       environment division.
87866       input-output section.
87867       file-control.
87868       select file1 assign disk
87869           organization indexed
87870           record key file1-key
87871           status is fs.
87872       data division.
87873       file section.
87874       fd file1.
87875       1    file1-rec.
87876        2   file1-key pic x.
87877       working-storage section.
87878       1    fs pic xx.
87879       procedure division.
87880           open input file1.
87881           if fs not = "61"
87882              display "FAILED: " fs
87883              close file1
87884           end-if.
87885           stop run.
87886_ATEOF
87887
87888
87889{ set +x
87890$as_echo "$at_srcdir/run_file.at:5985: \$COMPILE prog1.cob"
87891at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5985"
87892( $at_check_trace; $COMPILE prog1.cob
87893) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87894at_status=$? at_failed=false
87895$at_check_filter
87896at_fn_diff_devnull "$at_stderr" || at_failed=:
87897at_fn_diff_devnull "$at_stdout" || at_failed=:
87898at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5985"
87899$at_failed && at_fn_log_failure
87900$at_traceon; }
87901
87902{ set +x
87903$as_echo "$at_srcdir/run_file.at:5986: \$COMPILE prog2.cob"
87904at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5986"
87905( $at_check_trace; $COMPILE prog2.cob
87906) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87907at_status=$? at_failed=false
87908$at_check_filter
87909at_fn_diff_devnull "$at_stderr" || at_failed=:
87910at_fn_diff_devnull "$at_stdout" || at_failed=:
87911at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5986"
87912$at_failed && at_fn_log_failure
87913$at_traceon; }
87914
87915{ set +x
87916$as_echo "$at_srcdir/run_file.at:5987: \$COBCRUN_DIRECT ./prog1"
87917at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5987"
87918( $at_check_trace; $COBCRUN_DIRECT ./prog1
87919) >>"$at_stdout" 2>>"$at_stderr" 5>&-
87920at_status=$? at_failed=false
87921$at_check_filter
87922at_fn_diff_devnull "$at_stderr" || at_failed=:
87923at_fn_diff_devnull "$at_stdout" || at_failed=:
87924at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5987"
87925$at_failed && at_fn_log_failure
87926$at_traceon; }
87927
87928
87929  set +x
87930  $at_times_p && times >"$at_times_file"
87931) 5>&1 2>&1 7>&- | eval $at_tee_pipe
87932read at_status <"$at_status_file"
87933#AT_STOP_791
87934#AT_START_792
87935at_fn_group_banner 792 'run_file.at:5992' \
87936  "INDEXED file with SHARING NO" "                   " 4
87937at_xfail=yes
87938(
87939  $as_echo "792. $at_setup_line: testing $at_desc ..."
87940  $at_traceon
87941
87942
87943
87944## TO-DO: Support INDEXED file sharing/locking.
87945$as_echo "run_file.at:5996" >"$at_check_line_file"
87946(test "$COB_HAS_ISAM" = "no") \
87947  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5996"
87948
87949
87950cat >prog1.cob <<'_ATEOF'
87951
87952       identification division.
87953       program-id. prog1.
87954       environment division.
87955       input-output section.
87956       file-control.
87957       select file1 assign disk
87958           organization indexed
87959           record key file1-key
87960           sharing no
87961           status is fs.
87962       data division.
87963       file section.
87964       fd file1.
87965       1    file1-rec.
87966        2   file1-key pic x.
87967       working-storage section.
87968       1    fs pic xx.
87969       1    os-check   pic x(7).
87970         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
87971       78  callee       value "./prog2".
87972       78  callee-wdos  value ".\prog2".
87973       procedure division.
87974           open output file1.
87975           close file1.
87976           open input file1.
87977           accept os-check from environment "OS".
87978           if os-check = spaces
87979             accept os-check from environment "OS_NAME".
87980           inspect os-check converting "werfdosin" to "WERFDOSIN".
87981           if os-is-windows-or-dos
87982             call "SYSTEM" using callee-wdos
87983           else
87984             call "SYSTEM" using callee.
87985           close file1.
87986           stop run.
87987_ATEOF
87988
87989cat >prog2.cob <<'_ATEOF'
87990
87991       identification division.
87992       program-id. prog2.
87993       environment division.
87994       input-output section.
87995       file-control.
87996       select file1 assign disk
87997           organization indexed
87998           record key file1-key
87999           status is fs.
88000       data division.
88001       file section.
88002       fd file1.
88003       1    file1-rec.
88004        2   file1-key pic x.
88005       working-storage section.
88006       1    fs pic xx.
88007       procedure division.
88008           open input file1.
88009           if fs not = "61"
88010              display "FAILED: " fs
88011              close file1
88012           end-if.
88013           stop run.
88014_ATEOF
88015
88016
88017{ set +x
88018$as_echo "$at_srcdir/run_file.at:6062: \$COMPILE prog1.cob"
88019at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6062"
88020( $at_check_trace; $COMPILE prog1.cob
88021) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88022at_status=$? at_failed=false
88023$at_check_filter
88024at_fn_diff_devnull "$at_stderr" || at_failed=:
88025at_fn_diff_devnull "$at_stdout" || at_failed=:
88026at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6062"
88027$at_failed && at_fn_log_failure
88028$at_traceon; }
88029
88030{ set +x
88031$as_echo "$at_srcdir/run_file.at:6063: \$COMPILE prog2.cob"
88032at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6063"
88033( $at_check_trace; $COMPILE prog2.cob
88034) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88035at_status=$? at_failed=false
88036$at_check_filter
88037at_fn_diff_devnull "$at_stderr" || at_failed=:
88038at_fn_diff_devnull "$at_stdout" || at_failed=:
88039at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6063"
88040$at_failed && at_fn_log_failure
88041$at_traceon; }
88042
88043{ set +x
88044$as_echo "$at_srcdir/run_file.at:6064: \$COBCRUN_DIRECT ./prog1"
88045at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6064"
88046( $at_check_trace; $COBCRUN_DIRECT ./prog1
88047) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88048at_status=$? at_failed=false
88049$at_check_filter
88050at_fn_diff_devnull "$at_stderr" || at_failed=:
88051at_fn_diff_devnull "$at_stdout" || at_failed=:
88052at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6064"
88053$at_failed && at_fn_log_failure
88054$at_traceon; }
88055
88056
88057  set +x
88058  $at_times_p && times >"$at_times_file"
88059) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88060read at_status <"$at_status_file"
88061#AT_STOP_792
88062#AT_START_793
88063at_fn_group_banner 793 'run_file.at:6069' \
88064  "INDEXED file with SHARING READ ONLY" "            " 4
88065at_xfail=yes
88066(
88067  $as_echo "793. $at_setup_line: testing $at_desc ..."
88068  $at_traceon
88069
88070
88071
88072## TO-DO: Support INDEXED file sharing/locking.
88073$as_echo "run_file.at:6073" >"$at_check_line_file"
88074(test "$COB_HAS_ISAM" = "no") \
88075  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6073"
88076
88077
88078cat >prog1.cob <<'_ATEOF'
88079
88080       identification division.
88081       program-id. prog1.
88082       environment division.
88083       input-output section.
88084       file-control.
88085       select file1 assign disk
88086           organization indexed
88087           record key file1-key
88088           sharing read only
88089           status is fs.
88090       data division.
88091       file section.
88092       fd file1.
88093       1    file1-rec.
88094        2   file1-key pic x.
88095       working-storage section.
88096       1    fs pic xx.
88097       1    os-check   pic x(7).
88098         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
88099       78  callee       value "./prog2".
88100       78  callee-wdos  value ".\prog2".
88101       procedure division.
88102           open output file1.
88103           close file1.
88104           open input file1.
88105           accept os-check from environment "OS".
88106           if os-check = spaces
88107             accept os-check from environment "OS_NAME".
88108           inspect os-check converting "werfdosin" to "WERFDOSIN".
88109           if os-is-windows-or-dos
88110             call "SYSTEM" using callee-wdos
88111           else
88112             call "SYSTEM" using callee.
88113           close file1.
88114           stop run.
88115_ATEOF
88116
88117cat >prog2.cob <<'_ATEOF'
88118
88119       identification division.
88120       program-id. prog2.
88121       environment division.
88122       input-output section.
88123       file-control.
88124       select file1 assign disk
88125           organization indexed
88126           record key file1-key
88127           status is fs.
88128       data division.
88129       file section.
88130       fd file1.
88131       1    file1-rec.
88132        2   file1-key pic x.
88133       working-storage section.
88134       1    fs pic xx.
88135       procedure division.
88136           open i-o file1.
88137           if fs not = "61"
88138              display "FAILED: " fs
88139              close file1
88140           end-if.
88141           open input file1.
88142           if fs not = "00"
88143              display "FAILED: " fs
88144           else
88145              close file1
88146           end-if.
88147           stop run.
88148_ATEOF
88149
88150
88151{ set +x
88152$as_echo "$at_srcdir/run_file.at:6145: \$COMPILE prog1.cob"
88153at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6145"
88154( $at_check_trace; $COMPILE prog1.cob
88155) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88156at_status=$? at_failed=false
88157$at_check_filter
88158at_fn_diff_devnull "$at_stderr" || at_failed=:
88159at_fn_diff_devnull "$at_stdout" || at_failed=:
88160at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6145"
88161$at_failed && at_fn_log_failure
88162$at_traceon; }
88163
88164{ set +x
88165$as_echo "$at_srcdir/run_file.at:6146: \$COMPILE prog2.cob"
88166at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6146"
88167( $at_check_trace; $COMPILE prog2.cob
88168) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88169at_status=$? at_failed=false
88170$at_check_filter
88171at_fn_diff_devnull "$at_stderr" || at_failed=:
88172at_fn_diff_devnull "$at_stdout" || at_failed=:
88173at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6146"
88174$at_failed && at_fn_log_failure
88175$at_traceon; }
88176
88177{ set +x
88178$as_echo "$at_srcdir/run_file.at:6147: \$COBCRUN_DIRECT ./prog1"
88179at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6147"
88180( $at_check_trace; $COBCRUN_DIRECT ./prog1
88181) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88182at_status=$? at_failed=false
88183$at_check_filter
88184at_fn_diff_devnull "$at_stderr" || at_failed=:
88185at_fn_diff_devnull "$at_stdout" || at_failed=:
88186at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6147"
88187$at_failed && at_fn_log_failure
88188$at_traceon; }
88189
88190
88191  set +x
88192  $at_times_p && times >"$at_times_file"
88193) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88194read at_status <"$at_status_file"
88195#AT_STOP_793
88196#AT_START_794
88197at_fn_group_banner 794 'run_file.at:6153' \
88198  "INDEXED file with blocked lock" "                 " 4
88199at_xfail=yes
88200(
88201  $as_echo "794. $at_setup_line: testing $at_desc ..."
88202  $at_traceon
88203
88204
88205
88206## TO-DO: Support INDEXED file sharing/locking.
88207$as_echo "run_file.at:6157" >"$at_check_line_file"
88208(test "$COB_HAS_ISAM" = "no") \
88209  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6157"
88210
88211
88212cat >prog1.cob <<'_ATEOF'
88213
88214       identification division.
88215       program-id. prog1.
88216       environment division.
88217       input-output section.
88218       file-control.
88219       select file1 assign disk
88220           organization indexed
88221           record key file1-key.
88222       data division.
88223       file section.
88224       fd file1.
88225       1    file1-rec.
88226        2   file1-key pic x.
88227       working-storage section.
88228       1    os-check   pic x(7).
88229         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
88230       78  callee       value "./prog2".
88231       78  callee-wdos  value ".\prog2".
88232       procedure division.
88233           open output file1.
88234           close file1.
88235           open input file1.
88236           accept os-check from environment "OS".
88237           if os-check = spaces
88238             accept os-check from environment "OS_NAME".
88239           inspect os-check converting "werfdosin" to "WERFDOSIN".
88240           if os-is-windows-or-dos
88241             call "SYSTEM" using callee-wdos
88242           else
88243             call "SYSTEM" using callee.
88244           close file1.
88245           stop run.
88246_ATEOF
88247
88248cat >prog2.cob <<'_ATEOF'
88249
88250       identification division.
88251       program-id. prog2.
88252       environment division.
88253       input-output section.
88254       file-control.
88255       select file1 assign disk
88256           organization indexed
88257           record key file1-key
88258           status is fs.
88259       data division.
88260       file section.
88261       fd file1.
88262       1    file1-rec.
88263        2   file1-key pic x.
88264       working-storage section.
88265       1    fs pic xx.
88266       procedure division.
88267           open input file1.
88268           if fs not = "00"
88269              display "FAILED: " fs
88270              stop run
88271           end-if.
88272           close file1
88273           open input file1 with lock.
88274           if fs not = "61"
88275              display "FAILED: " fs
88276              close file1
88277           end-if.
88278           stop run.
88279_ATEOF
88280
88281
88282{ set +x
88283$as_echo "$at_srcdir/run_file.at:6226: \$COMPILE prog1.cob"
88284at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6226"
88285( $at_check_trace; $COMPILE prog1.cob
88286) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88287at_status=$? at_failed=false
88288$at_check_filter
88289at_fn_diff_devnull "$at_stderr" || at_failed=:
88290at_fn_diff_devnull "$at_stdout" || at_failed=:
88291at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6226"
88292$at_failed && at_fn_log_failure
88293$at_traceon; }
88294
88295{ set +x
88296$as_echo "$at_srcdir/run_file.at:6227: \$COMPILE prog2.cob"
88297at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6227"
88298( $at_check_trace; $COMPILE prog2.cob
88299) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88300at_status=$? at_failed=false
88301$at_check_filter
88302at_fn_diff_devnull "$at_stderr" || at_failed=:
88303at_fn_diff_devnull "$at_stdout" || at_failed=:
88304at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6227"
88305$at_failed && at_fn_log_failure
88306$at_traceon; }
88307
88308{ set +x
88309$as_echo "$at_srcdir/run_file.at:6228: \$COBCRUN_DIRECT ./prog1"
88310at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6228"
88311( $at_check_trace; $COBCRUN_DIRECT ./prog1
88312) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88313at_status=$? at_failed=false
88314$at_check_filter
88315at_fn_diff_devnull "$at_stderr" || at_failed=:
88316at_fn_diff_devnull "$at_stdout" || at_failed=:
88317at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6228"
88318$at_failed && at_fn_log_failure
88319$at_traceon; }
88320
88321
88322  set +x
88323  $at_times_p && times >"$at_times_file"
88324) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88325read at_status <"$at_status_file"
88326#AT_STOP_794
88327#AT_START_795
88328at_fn_group_banner 795 'run_file.at:6233' \
88329  "INDEXED file with LOCK AUTOMATIC (1)" "           " 4
88330at_xfail=yes
88331(
88332  $as_echo "795. $at_setup_line: testing $at_desc ..."
88333  $at_traceon
88334
88335
88336
88337$as_echo "run_file.at:6236" >"$at_check_line_file"
88338(test "$COB_HAS_ISAM" = "no") \
88339  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6236"
88340
88341
88342cat >prog1.cob <<'_ATEOF'
88343
88344       identification division.
88345       program-id. prog1.
88346       environment division.
88347       input-output section.
88348       file-control.
88349       select file1 assign disk
88350           access mode is random
88351           organization indexed
88352           record key file1-key
88353           lock mode is automatic
88354           status is fs.
88355       data division.
88356       file section.
88357       fd file1.
88358       1    file1-rec.
88359        2   file1-key pic x.
88360       working-storage section.
88361       1    fs pic xx.
88362       1    os-check   pic x(7).
88363         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
88364       78  callee       value "./prog2".
88365       78  callee-wdos  value ".\prog2".
88366       procedure division.
88367           open output file1.
88368           move "X" to file1-key.
88369           write file1-rec.
88370           if fs not = "00"
88371              display "FAILED 1::w fs=" fs.
88372           close file1.
88373           open i-o file1.
88374           move "X" to file1-key.
88375           read file1.
88376           if fs not = "00"
88377              display "FAILED 1::r fs=" fs.
88378           accept os-check from environment "OS".
88379           if os-check = spaces
88380             accept os-check from environment "OS_NAME".
88381           inspect os-check converting "werfdosin" to "WERFDOSIN".
88382           if os-is-windows-or-dos
88383             call "SYSTEM" using callee-wdos
88384           else
88385             call "SYSTEM" using callee.
88386           close file1.
88387           stop run.
88388_ATEOF
88389
88390cat >prog2.cob <<'_ATEOF'
88391
88392       identification division.
88393       program-id. prog2.
88394       environment division.
88395       input-output section.
88396       file-control.
88397       select file1 assign disk
88398           access mode is random
88399           organization indexed
88400           record key file1-key
88401           lock mode is automatic
88402           status is fs.
88403       data division.
88404       file section.
88405       fd file1.
88406       1    file1-rec.
88407        2   file1-key pic x.
88408       working-storage section.
88409       1    fs pic xx.
88410       procedure division.
88411           open i-o file1.
88412           move "X" to file1-key.
88413           read file1.
88414           if fs not = "61"
88415              display "FAILED 2::r " fs.
88416           close file1
88417           stop run.
88418_ATEOF
88419
88420
88421{ set +x
88422$as_echo "$at_srcdir/run_file.at:6314: \$COMPILE prog1.cob"
88423at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6314"
88424( $at_check_trace; $COMPILE prog1.cob
88425) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88426at_status=$? at_failed=false
88427$at_check_filter
88428at_fn_diff_devnull "$at_stderr" || at_failed=:
88429at_fn_diff_devnull "$at_stdout" || at_failed=:
88430at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6314"
88431$at_failed && at_fn_log_failure
88432$at_traceon; }
88433
88434{ set +x
88435$as_echo "$at_srcdir/run_file.at:6315: \$COMPILE prog2.cob"
88436at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6315"
88437( $at_check_trace; $COMPILE prog2.cob
88438) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88439at_status=$? at_failed=false
88440$at_check_filter
88441at_fn_diff_devnull "$at_stderr" || at_failed=:
88442at_fn_diff_devnull "$at_stdout" || at_failed=:
88443at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6315"
88444$at_failed && at_fn_log_failure
88445$at_traceon; }
88446
88447{ set +x
88448$as_echo "$at_srcdir/run_file.at:6316: \$COBCRUN_DIRECT ./prog1"
88449at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6316"
88450( $at_check_trace; $COBCRUN_DIRECT ./prog1
88451) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88452at_status=$? at_failed=false
88453$at_check_filter
88454at_fn_diff_devnull "$at_stderr" || at_failed=:
88455at_fn_diff_devnull "$at_stdout" || at_failed=:
88456at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6316"
88457$at_failed && at_fn_log_failure
88458$at_traceon; }
88459
88460
88461
88462  set +x
88463  $at_times_p && times >"$at_times_file"
88464) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88465read at_status <"$at_status_file"
88466#AT_STOP_795
88467#AT_START_796
88468at_fn_group_banner 796 'run_file.at:6322' \
88469  "INDEXED file with LOCK AUTOMATIC (2)" "           " 4
88470at_xfail=no
88471(
88472  $as_echo "796. $at_setup_line: testing $at_desc ..."
88473  $at_traceon
88474
88475
88476
88477$as_echo "run_file.at:6325" >"$at_check_line_file"
88478(test "$COB_HAS_ISAM" = "no") \
88479  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6325"
88480
88481cat >prog1.cob <<'_ATEOF'
88482
88483       identification division.
88484       program-id. prog1.
88485       environment division.
88486       input-output section.
88487       file-control.
88488       select file1 assign disk
88489           access mode is random
88490           organization indexed
88491           record key file1-key
88492           lock mode is automatic
88493           status is fs.
88494       data division.
88495       file section.
88496       fd file1.
88497       1    file1-rec.
88498        2   file1-key pic x.
88499       working-storage section.
88500       1    fs pic xx.
88501       1    os-check   pic x(7).
88502         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
88503       78  callee       value "./prog2".
88504       78  callee-wdos  value ".\prog2".
88505       procedure division.
88506           open output file1.
88507           move "X" to file1-key.
88508           write file1-rec.
88509           if fs not = "00"
88510              display "FAILED 1::w fs=" fs.
88511           close file1.
88512           open i-o file1.
88513           move "X" to file1-key.
88514           read file1.
88515           if fs not = "00"
88516              display "FAILED 1::r fs=" fs.
88517           rewrite file1-rec.
88518           if fs not = "00"
88519              display "FAILED 1::rw fs=" fs.
88520           accept os-check from environment "OS".
88521           if os-check = spaces
88522             accept os-check from environment "OS_NAME".
88523           inspect os-check converting "werfdosin" to "WERFDOSIN".
88524           if os-is-windows-or-dos
88525             call "SYSTEM" using callee-wdos
88526           else
88527             call "SYSTEM" using callee.
88528           close file1.
88529           stop run.
88530_ATEOF
88531
88532cat >prog2.cob <<'_ATEOF'
88533
88534       identification division.
88535       program-id. prog2.
88536       environment division.
88537       input-output section.
88538       file-control.
88539       select file1 assign disk
88540           access mode is random
88541           organization indexed
88542           record key file1-key
88543           status is fs.
88544       data division.
88545       file section.
88546       fd file1.
88547       1    file1-rec.
88548        2   file1-key pic x.
88549       working-storage section.
88550       1    fs pic xx.
88551       procedure division.
88552           open input file1.
88553           move "X" to file1-key.
88554           read file1.
88555           if fs not = "00"
88556              display "FAILED 2::r " fs
88557           end-if.
88558           close file1
88559           stop run.
88560_ATEOF
88561
88562
88563{ set +x
88564$as_echo "$at_srcdir/run_file.at:6405: \$COMPILE prog1.cob"
88565at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6405"
88566( $at_check_trace; $COMPILE prog1.cob
88567) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88568at_status=$? at_failed=false
88569$at_check_filter
88570at_fn_diff_devnull "$at_stderr" || at_failed=:
88571at_fn_diff_devnull "$at_stdout" || at_failed=:
88572at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6405"
88573$at_failed && at_fn_log_failure
88574$at_traceon; }
88575
88576{ set +x
88577$as_echo "$at_srcdir/run_file.at:6406: \$COMPILE prog2.cob"
88578at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6406"
88579( $at_check_trace; $COMPILE prog2.cob
88580) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88581at_status=$? at_failed=false
88582$at_check_filter
88583at_fn_diff_devnull "$at_stderr" || at_failed=:
88584at_fn_diff_devnull "$at_stdout" || at_failed=:
88585at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6406"
88586$at_failed && at_fn_log_failure
88587$at_traceon; }
88588
88589{ set +x
88590$as_echo "$at_srcdir/run_file.at:6407: \$COBCRUN_DIRECT ./prog1"
88591at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6407"
88592( $at_check_trace; $COBCRUN_DIRECT ./prog1
88593) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88594at_status=$? at_failed=false
88595$at_check_filter
88596at_fn_diff_devnull "$at_stderr" || at_failed=:
88597at_fn_diff_devnull "$at_stdout" || at_failed=:
88598at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6407"
88599$at_failed && at_fn_log_failure
88600$at_traceon; }
88601
88602
88603  set +x
88604  $at_times_p && times >"$at_times_file"
88605) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88606read at_status <"$at_status_file"
88607#AT_STOP_796
88608#AT_START_797
88609at_fn_group_banner 797 'run_file.at:6412' \
88610  "INDEXED file with LOCK MANUAL" "                  " 4
88611at_xfail=yes
88612(
88613  $as_echo "797. $at_setup_line: testing $at_desc ..."
88614  $at_traceon
88615
88616
88617
88618$as_echo "run_file.at:6415" >"$at_check_line_file"
88619(test "$COB_HAS_ISAM" = "no") \
88620  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6415"
88621
88622
88623cat >prog1.cob <<'_ATEOF'
88624
88625       identification division.
88626       program-id. prog1.
88627       environment division.
88628       input-output section.
88629       file-control.
88630       select file1 assign disk
88631           access mode is random
88632           organization indexed
88633           record key file1-key
88634           lock mode is manual
88635           status is fs.
88636       data division.
88637       file section.
88638       fd file1.
88639       1    file1-rec.
88640        2   file1-key pic x.
88641       working-storage section.
88642       1    fs pic xx.
88643       1    os-check   pic x(7).
88644         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
88645       78  callee       value "./prog2".
88646       78  callee-wdos  value ".\prog2".
88647       procedure division.
88648           open output file1.
88649           move "X" to file1-key.
88650           write file1-rec.
88651           if fs not = "00"
88652              display "FAILED 1::w fs=" fs.
88653           close file1.
88654           open i-o file1.
88655           move "X" to file1-key.
88656           read file1 with lock.
88657           if fs not = "00"
88658              display "FAILED 1::r fs=" fs.
88659           accept os-check from environment "OS".
88660           if os-check = spaces
88661             accept os-check from environment "OS_NAME".
88662           inspect os-check converting "werfdosin" to "WERFDOSIN".
88663           if os-is-windows-or-dos
88664             call "SYSTEM" using callee-wdos
88665           else
88666             call "SYSTEM" using callee.
88667           close file1.
88668           stop run.
88669_ATEOF
88670
88671cat >prog2.cob <<'_ATEOF'
88672
88673       identification division.
88674       program-id. prog2.
88675       environment division.
88676       input-output section.
88677       file-control.
88678       select file1 assign disk
88679           access mode is random
88680           organization indexed
88681           record key file1-key
88682           status is fs.
88683       data division.
88684       file section.
88685       fd file1.
88686       1    file1-rec.
88687        2   file1-key pic x.
88688       working-storage section.
88689       1    fs pic xx.
88690       procedure division.
88691           open i-o file1.
88692           move "X" to file1-key.
88693           read file1.
88694           if fs not = "61"
88695              display "FAILED 2::r " fs
88696           end-if.
88697           close file1
88698           stop run.
88699_ATEOF
88700
88701
88702{ set +x
88703$as_echo "$at_srcdir/run_file.at:6493: \$COMPILE prog1.cob"
88704at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6493"
88705( $at_check_trace; $COMPILE prog1.cob
88706) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88707at_status=$? at_failed=false
88708$at_check_filter
88709at_fn_diff_devnull "$at_stderr" || at_failed=:
88710at_fn_diff_devnull "$at_stdout" || at_failed=:
88711at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6493"
88712$at_failed && at_fn_log_failure
88713$at_traceon; }
88714
88715{ set +x
88716$as_echo "$at_srcdir/run_file.at:6494: \$COMPILE prog2.cob"
88717at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6494"
88718( $at_check_trace; $COMPILE prog2.cob
88719) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88720at_status=$? at_failed=false
88721$at_check_filter
88722at_fn_diff_devnull "$at_stderr" || at_failed=:
88723at_fn_diff_devnull "$at_stdout" || at_failed=:
88724at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6494"
88725$at_failed && at_fn_log_failure
88726$at_traceon; }
88727
88728{ set +x
88729$as_echo "$at_srcdir/run_file.at:6495: \$COBCRUN_DIRECT ./prog1"
88730at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6495"
88731( $at_check_trace; $COBCRUN_DIRECT ./prog1
88732) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88733at_status=$? at_failed=false
88734$at_check_filter
88735at_fn_diff_devnull "$at_stderr" || at_failed=:
88736at_fn_diff_devnull "$at_stdout" || at_failed=:
88737at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6495"
88738$at_failed && at_fn_log_failure
88739$at_traceon; }
88740
88741
88742  set +x
88743  $at_times_p && times >"$at_times_file"
88744) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88745read at_status <"$at_status_file"
88746#AT_STOP_797
88747#AT_START_798
88748at_fn_group_banner 798 'run_file.at:6500' \
88749  "START INDEXED" "                                  " 4
88750at_xfail=no
88751(
88752  $as_echo "798. $at_setup_line: testing $at_desc ..."
88753  $at_traceon
88754
88755
88756
88757$as_echo "run_file.at:6503" >"$at_check_line_file"
88758(test "$COB_HAS_ISAM" = "no") \
88759  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6503"
88760
88761cat >prog.cob <<'_ATEOF'
88762
88763       IDENTIFICATION DIVISION.
88764       PROGRAM-ID. prog.
88765       ENVIRONMENT DIVISION.
88766       INPUT-OUTPUT SECTION.
88767       FILE-CONTROL.
88768       SELECT file1 ASSIGN TO "./file1X"
88769                    ORGANIZATION INDEXED
88770                    ACCESS DYNAMIC RECORD KEY file1-key.
88771       DATA DIVISION.
88772       FILE SECTION.
88773       FD file1.
88774       1  file1-rec.
88775          2  file1-key pic 999.
88776          2  file1-data pic 999.
88777       PROCEDURE DIVISION.
88778          OPEN OUTPUT file1.
88779          CLOSE file1.
88780          OPEN I-O file1.
88781          MOVE 10 TO file1-key file1-data.
88782          WRITE file1-rec.
88783          MOVE 11 TO file1-key file1-data.
88784          WRITE file1-rec.
88785          MOVE 12 TO file1-key file1-data.
88786          WRITE file1-rec.
88787          MOVE 13 TO file1-key file1-data.
88788          WRITE file1-rec.
88789      *
88790          MOVE 0 TO file1-key.
88791          START file1 KEY > file1-key.
88792          READ file1 NEXT.
88793          IF (file1-data <> 10)
88794             DISPLAY "FAILED: START key > 0".
88795      *
88796          MOVE 99 TO file1-key.
88797          START file1 KEY < file1-key.
88798          READ file1 NEXT.
88799          IF (file1-data <> 13)
88800             DISPLAY "FAILED: START key < 99".
88801      *
88802          MOVE 999 TO file1-key.
88803          START file1 FIRST.
88804          READ file1 NEXT.
88805          IF (file1-data <> 10)
88806             DISPLAY "FAILED: START key FIRST".
88807      *
88808          MOVE 0 TO file1-key.
88809          START file1 LAST.
88810          READ file1 NEXT.
88811          IF (file1-data <> 13)
88812             DISPLAY "FAILED: START key LAST".
88813      *
88814          MOVE 0 TO file1-key.
88815          START file1 KEY >= file1-key.
88816          READ file1 NEXT.
88817          IF (file1-data <> 10)
88818             DISPLAY "FAILED: START key >= 0".
88819      *
88820          MOVE 99 TO file1-key.
88821          START file1 KEY <= file1-key.
88822          READ file1 NEXT.
88823          IF (file1-data <> 13)
88824             DISPLAY "FAILED: START key <= 99".
88825
88826          CLOSE file1.
88827          STOP RUN.
88828_ATEOF
88829
88830
88831{ set +x
88832$as_echo "$at_srcdir/run_file.at:6573: \$COMPILE prog.cob"
88833at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6573"
88834( $at_check_trace; $COMPILE prog.cob
88835) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88836at_status=$? at_failed=false
88837$at_check_filter
88838at_fn_diff_devnull "$at_stderr" || at_failed=:
88839at_fn_diff_devnull "$at_stdout" || at_failed=:
88840at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6573"
88841$at_failed && at_fn_log_failure
88842$at_traceon; }
88843
88844{ set +x
88845$as_echo "$at_srcdir/run_file.at:6574: \$COBCRUN_DIRECT ./prog"
88846at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6574"
88847( $at_check_trace; $COBCRUN_DIRECT ./prog
88848) >>"$at_stdout" 2>>"$at_stderr" 5>&-
88849at_status=$? at_failed=false
88850$at_check_filter
88851at_fn_diff_devnull "$at_stderr" || at_failed=:
88852at_fn_diff_devnull "$at_stdout" || at_failed=:
88853at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6574"
88854$at_failed && at_fn_log_failure
88855$at_traceon; }
88856
88857
88858  set +x
88859  $at_times_p && times >"$at_times_file"
88860) 5>&1 2>&1 7>&- | eval $at_tee_pipe
88861read at_status <"$at_status_file"
88862#AT_STOP_798
88863#AT_START_799
88864at_fn_group_banner 799 'run_file.at:6579' \
88865  "INDEXED partial keys" "                           " 4
88866at_xfail=no
88867(
88868  $as_echo "799. $at_setup_line: testing $at_desc ..."
88869  $at_traceon
88870
88871
88872
88873$as_echo "run_file.at:6582" >"$at_check_line_file"
88874(test "$COB_HAS_ISAM" = "no") \
88875  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6582"
88876
88877cat >prog.cob <<'_ATEOF'
88878
88879       IDENTIFICATION DIVISION.
88880       PROGRAM-ID. prog.
88881
88882       ENVIRONMENT DIVISION.
88883       INPUT-OUTPUT SECTION.
88884       FILE-CONTROL.
88885           SELECT OPTIONAL f ASSIGN "fileX"
88886               ORGANIZATION INDEXED
88887               ACCESS DYNAMIC
88888               RECORD KEY f-key1
88889               ALTERNATE RECORD f-key2
88890               ALTERNATE RECORD f-key3 DUPLICATES
88891               STATUS f-status.
88892
88893       DATA DIVISION.
88894       FILE SECTION.
88895       FD  f.
88896       01  f-rec.
88897           02  f-key1.
88898               03  f-key1-1 PIC X(3).
88899               03  f-key1-2 PIC X(3).
88900           02  f-key2.
88901               03  f-key2-1 PIC X(3).
88902               03  f-key2-2 PIC X(3).
88903           02  f-key3.
88904               03  f-key3-1 PIC X(3).
88905               03  f-key3-2 PIC X(3).
88906           02  file1-serial PIC 99.
88907
88908       WORKING-STORAGE SECTION.
88909       01  f-status PIC XX.
88910       01  w-serial PIC 99 VALUE 0.
88911
88912       PROCEDURE DIVISION.
88913           DELETE FILE f
88914           OPEN I-O f
88915           MOVE "AAAAAAaaaaaaXX----" TO f-rec
88916           PERFORM write-f
88917           MOVE "AAAAABaaaaabXX----" TO f-rec
88918           PERFORM write-f
88919           MOVE "AAAABBaaaabbXX----" TO f-rec
88920           PERFORM write-f
88921           MOVE "AAABBBaaabbbXXX---" TO f-rec
88922           PERFORM write-f
88923           MOVE "AABBBBaabbbbXXX---" TO f-rec
88924           PERFORM write-f
88925           MOVE "ABBBBBabbbbbXXX---" TO f-rec
88926           PERFORM write-f
88927           MOVE "BBBBBBbbbbbbXXX---" TO f-rec
88928           PERFORM write-f
88929
88930           MOVE "AAB" TO f-key1-1
88931           MOVE "~~~" TO f-key1-2
88932           START f KEY = f-key1-1
88933           READ f NEXT
88934           IF (f-status <> "00") OR
88935                   (file1-serial <> 4)
88936               DISPLAY "FAILED 1: status " f-status "-"
88937                       "serial: " file1-serial
88938           END-IF
88939
88940           MOVE "AAB" TO f-key1-1
88941           MOVE "~~~" TO f-key1-2
88942           START f KEY < f-key1-1
88943           READ f PREVIOUS
88944           IF (f-status <> "00") OR
88945                   (file1-serial <> 3)
88946               DISPLAY "FAILED 2: status " f-status "-"
88947                       "serial: " file1-serial
88948           END-IF
88949
88950           MOVE "AAA" TO f-key1-1
88951           MOVE "~~~" TO f-key1-2
88952           START f KEY > f-key1-1
88953           READ f NEXT
88954           IF (f-status <> "00") OR
88955                   (file1-serial <> 4)
88956               DISPLAY "FAILED 3: status " f-status "-"
88957                       "serial: " file1-serial
88958           END-IF
88959
88960           MOVE "aab" TO f-key2-1
88961           MOVE "~~~" TO f-key2-2
88962           START f KEY = f-key2-1
88963           READ f NEXT
88964           IF (f-status <> "00") OR
88965                   (file1-serial <> 4)
88966               DISPLAY "FAILED 4: status " f-status "-"
88967                       "serial: " file1-serial
88968           END-IF
88969
88970           MOVE "aab" TO f-key2-1
88971           MOVE "~~~" TO f-key2-2
88972           START f KEY < f-key2-1
88973           READ f PREVIOUS
88974           IF (f-status <> "00") OR
88975                   (file1-serial <> 3)
88976               DISPLAY "FAILED 5: status " f-status "-"
88977                       "serial: " file1-serial
88978           END-IF
88979
88980           MOVE "aaa" TO f-key2-1
88981           MOVE "~~~" TO f-key2-2
88982           START f KEY > f-key2-1
88983           READ f NEXT
88984           IF (f-status <> "00") OR
88985                   (file1-serial <> 4)
88986               DISPLAY "FAILED 6: status " f-status "-"
88987                       "serial: " file1-serial
88988           END-IF
88989
88990           MOVE "XX-" TO f-key3-1
88991           START f KEY > f-key3-1
88992           READ f NEXT
88993      *  CHECK: Return file-status "02" if duplicates exist
88994           IF (f-status <> "02"
88995      *    Depends on xISAM implementation and the way BDB is used (not yet
88996      *    implemented in 3.x)
88997            AND f-status <> "00"
88998               ) OR file1-serial <> 3
88999               DISPLAY "FAILED 7: status " f-status "-"
89000           END-IF
89001           CLOSE f
89002           STOP RUN
89003           .
89004       write-f.
89005           MOVE w-serial TO file1-serial
89006           WRITE f-rec
89007           ADD 1 TO w-serial
89008           .
89009_ATEOF
89010
89011
89012{ set +x
89013$as_echo "$at_srcdir/run_file.at:6717: \$COMPILE prog.cob"
89014at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6717"
89015( $at_check_trace; $COMPILE prog.cob
89016) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89017at_status=$? at_failed=false
89018$at_check_filter
89019at_fn_diff_devnull "$at_stderr" || at_failed=:
89020at_fn_diff_devnull "$at_stdout" || at_failed=:
89021at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6717"
89022$at_failed && at_fn_log_failure
89023$at_traceon; }
89024
89025{ set +x
89026$as_echo "$at_srcdir/run_file.at:6718: \$COBCRUN_DIRECT ./prog"
89027at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6718"
89028( $at_check_trace; $COBCRUN_DIRECT ./prog
89029) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89030at_status=$? at_failed=false
89031$at_check_filter
89032at_fn_diff_devnull "$at_stderr" || at_failed=:
89033at_fn_diff_devnull "$at_stdout" || at_failed=:
89034at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6718"
89035$at_failed && at_fn_log_failure
89036$at_traceon; }
89037
89038
89039  set +x
89040  $at_times_p && times >"$at_times_file"
89041) 5>&1 2>&1 7>&- | eval $at_tee_pipe
89042read at_status <"$at_status_file"
89043#AT_STOP_799
89044#AT_START_800
89045at_fn_group_banner 800 'run_file.at:6726' \
89046  "INDEXED undeclared keys" "                        " 4
89047at_xfail=no
89048(
89049  $as_echo "800. $at_setup_line: testing $at_desc ..."
89050  $at_traceon
89051
89052
89053
89054$as_echo "run_file.at:6729" >"$at_check_line_file"
89055(test "$COB_HAS_ISAM" = "no") \
89056  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6729"
89057
89058# real ISAM has the key information and will "fail" one part,
89059# BDB hasn't and will "pass" this one but fail the other
89060# -> skip as 4.x feature
89061$as_echo "run_file.at:6734" >"$at_check_line_file"
89062at_fn_check_skip 77 "$at_srcdir/run_file.at:6734"
89063
89064cat >prog.cob <<'_ATEOF'
89065
89066       IDENTIFICATION DIVISION.
89067       PROGRAM-ID. prog.
89068       ENVIRONMENT DIVISION.
89069       INPUT-OUTPUT SECTION.
89070       FILE-CONTROL.
89071       SELECT file1 ASSIGN TO "./fileX"
89072                    ORGANIZATION INDEXED
89073                    ACCESS RANDOM
89074                    RECORD KEY file1-key1
89075                    ALTERNATE RECORD KEY file1-key2
89076                    ALTERNATE RECORD KEY file1-key3.
89077       SELECT file2 ASSIGN TO "./fileX"
89078                    ORGANIZATION INDEXED
89079                    ACCESS RANDOM
89080                    RECORD KEY file2-key1
89081                    ALTERNATE RECORD KEY file2-key2.
89082       SELECT file3 ASSIGN TO "./fileX"
89083                    ORGANIZATION INDEXED
89084                    ACCESS RANDOM
89085                    RECORD KEY file3-key1.
89086       DATA DIVISION.
89087       FILE SECTION.
89088       FD file1.
89089       1  file1-rec.
89090          2  file1-key1 pic 999.
89091          2  file1-key2 pic 999.
89092          2  file1-key3 pic 999.
89093          2  file1-data pic 999.
89094       FD file2.
89095       1  file2-rec.
89096          2  file2-key1 pic 999.
89097          2  file2-key2 pic 999.
89098          2  file2-key3 pic 999.
89099          2  file2-data pic 999.
89100       FD file3.
89101       1  file3-rec.
89102          2  file3-key1 pic 999.
89103          2  file3-key2 pic 999.
89104          2  file3-key3 pic 999.
89105          2  file3-data pic 999.
89106       WORKING-STORAGE SECTION.
89107       77 ix pic 9(6).
89108       PROCEDURE DIVISION.
89109          OPEN OUTPUT file1.
89110          PERFORM VARYING ix FROM 1 BY 1
89111             UNTIL ix > 10
89112             MOVE ix TO file1-key1 file1-data
89113             ADD 100 TO ix GIVING file1-key2
89114             ADD 200 TO ix GIVING file1-key3
89115             WRITE file1-rec
89116          END-PERFORM.
89117          CLOSE file1.
89118      *
89119          OPEN INPUT file1.
89120          PERFORM VARYING ix FROM 1 BY 1
89121             UNTIL ix > 10
89122             MOVE ix TO file1-key1
89123             READ file1 KEY file1-key1
89124             IF (file1-data <> ix)
89125                DISPLAY "FAILED 1-1"
89126             END-IF
89127          END-PERFORM.
89128          PERFORM VARYING ix FROM 1 BY 1
89129             UNTIL ix > 10
89130             ADD 100 TO ix GIVING file1-key2
89131             READ file1 KEY file1-key2
89132             IF (file1-data <> ix)
89133                DISPLAY "FAILED 1-2"
89134             END-IF
89135          END-PERFORM.
89136          PERFORM VARYING ix FROM 1 BY 1
89137             UNTIL ix > 10
89138             ADD 200 TO ix GIVING file1-key3
89139             READ file1 KEY file1-key3
89140             IF (file1-data <> ix)
89141                DISPLAY "FAILED 1-3"
89142             END-IF
89143          END-PERFORM.
89144          CLOSE file1.
89145      *
89146          OPEN INPUT file2.
89147          PERFORM VARYING ix FROM 1 BY 1
89148             UNTIL ix > 10
89149             MOVE ix TO file2-key1
89150             READ file2 KEY file2-key1
89151             IF (file2-data <> ix)
89152                DISPLAY "FAILED 2-1"
89153             END-IF
89154          END-PERFORM.
89155          PERFORM VARYING ix FROM 1 BY 1
89156             UNTIL ix > 10
89157             ADD 100 TO ix GIVING file2-key2
89158             READ file2 KEY file2-key2
89159             IF (file2-data <> ix)
89160                DISPLAY "FAILED 2-2"
89161             END-IF
89162          END-PERFORM.
89163          CLOSE file2.
89164      *
89165          OPEN INPUT file3.
89166          PERFORM VARYING ix FROM 1 BY 1
89167             UNTIL ix > 10
89168             MOVE ix TO file3-key1
89169             READ file3 KEY file3-key1
89170             IF (file3-data <> ix)
89171                DISPLAY "FAILED 3-1"
89172             END-IF
89173          END-PERFORM.
89174          CLOSE file3.
89175      *
89176      *   Insert rec via file with only 1 index declared
89177          OPEN I-O file3.
89178          MOVE 20 TO ix.
89179          MOVE ix TO file3-key1 file3-data
89180          ADD 100 TO ix GIVING file3-key2
89181          ADD 200 TO ix GIVING file3-key3
89182          WRITE file3-rec
89183          CLOSE file3
89184      *
89185      *   Check new rec is visible in other files
89186          OPEN INPUT file1.
89187          MOVE 10 TO file1-key1.
89188          READ file1 KEY file1-key1.
89189          IF (file1-data <> 10)
89190             DISPLAY "FAILED 1-4".
89191          MOVE SPACES TO file1-rec.
89192          MOVE 110 TO file1-key2.
89193          READ file1 KEY file1-key2.
89194          IF (file1-data <> 10)
89195             DISPLAY "FAILED 1-5".
89196          MOVE SPACES TO file1-rec.
89197          MOVE 210 TO file1-key3.
89198          READ file1 KEY file1-key3.
89199          IF (file1-data <> 10)
89200             DISPLAY "FAILED 1-6".
89201          CLOSE file1.
89202      *
89203          OPEN INPUT file2.
89204          MOVE 10 TO file2-key1.
89205          READ file2 KEY file2-key1.
89206          IF (file2-data <> 10)
89207             DISPLAY "FAILED 2-3".
89208          MOVE SPACES TO file2-rec.
89209          MOVE 110 TO file2-key2.
89210          READ file2 KEY file2-key2.
89211          IF (file2-data <> 10)
89212             DISPLAY "FAILED 2-4".
89213          CLOSE file2.
89214          STOP RUN.
89215_ATEOF
89216
89217
89218{ set +x
89219$as_echo "$at_srcdir/run_file.at:6888: \$COMPILE prog.cob"
89220at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6888"
89221( $at_check_trace; $COMPILE prog.cob
89222) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89223at_status=$? at_failed=false
89224$at_check_filter
89225at_fn_diff_devnull "$at_stderr" || at_failed=:
89226at_fn_diff_devnull "$at_stdout" || at_failed=:
89227at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6888"
89228$at_failed && at_fn_log_failure
89229$at_traceon; }
89230
89231{ set +x
89232$as_echo "$at_srcdir/run_file.at:6889: \$COBCRUN_DIRECT ./prog"
89233at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6889"
89234( $at_check_trace; $COBCRUN_DIRECT ./prog
89235) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89236at_status=$? at_failed=false
89237$at_check_filter
89238echo >>"$at_stderr"; $as_echo "libcob: prog.cob:82: error: unknown file error (status = 39) for file file2 ('.' => ./fileX) on OPEN
89239" | \
89240  $at_diff - "$at_stderr" || at_failed=:
89241at_fn_diff_devnull "$at_stdout" || at_failed=:
89242at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:6889"
89243$at_failed && at_fn_log_failure
89244$at_traceon; }
89245
89246{ set +x
89247$as_echo "$at_srcdir/run_file.at:6892: COB_KEYCHECK=OFF \$COBCRUN_DIRECT ./prog"
89248at_fn_check_prepare_dynamic "COB_KEYCHECK=OFF $COBCRUN_DIRECT ./prog" "run_file.at:6892"
89249( $at_check_trace; COB_KEYCHECK=OFF $COBCRUN_DIRECT ./prog
89250) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89251at_status=$? at_failed=false
89252$at_check_filter
89253at_fn_diff_devnull "$at_stderr" || at_failed=:
89254at_fn_diff_devnull "$at_stdout" || at_failed=:
89255at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6892"
89256$at_failed && at_fn_log_failure
89257$at_traceon; }
89258
89259
89260  set +x
89261  $at_times_p && times >"$at_times_file"
89262) 5>&1 2>&1 7>&- | eval $at_tee_pipe
89263read at_status <"$at_status_file"
89264#AT_STOP_800
89265#AT_START_801
89266at_fn_group_banner 801 'run_file.at:6897' \
89267  "READ INPUT pipe & WRITE OUTPUT pipe" "            " 4
89268at_xfail=yes
89269(
89270  $as_echo "801. $at_setup_line: testing $at_desc ..."
89271  $at_traceon
89272
89273
89274
89275# only implemented with 4+
89276
89277
89278cat >test-data-in <<'_ATEOF'
89279NAME
89280STREET
89281TOWN
89282COUNTRY
89283_ATEOF
89284
89285
89286cat >provider <<'_ATEOF'
89287
89288cat $1
89289_ATEOF
89290
89291
89292cat >consumer <<'_ATEOF'
89293
89294cat
89295_ATEOF
89296
89297
89298cat >prog.cob <<'_ATEOF'
89299
89300       identification division.
89301       program-id. prog.
89302       environment division.
89303       configuration section.
89304       input-output section.
89305       file-control.
89306           select pipe-in
89307               organization line sequential
89308               access sequential
89309               assign to w-command
89310               status is f-status.
89311           select pipe-out
89312               organization line sequential
89313               access sequential
89314               assign to w-command
89315               status is f-status.
89316       data division.
89317       file section.
89318       fd  pipe-in.
89319       1   pipe-msg-in pic x(132).
89320       fd  pipe-out.
89321       1   pipe-msg-out pic x(132).
89322       working-storage section.
89323       77  f-status pic xx.
89324           88  f-status-ok value "00".
89325       77  w-command pic x(100).
89326       procedure division.
89327           move "< sh ./provider ./test-data-in"
89328             to w-command.
89329           open input pipe-in.
89330           if not f-status-ok
89331              display "FAILED: OPEN INPUT"
89332              stop run
89333           end-if.
89334           move "> sh ./consumer > ./test-data-out"
89335             to w-command.
89336           open output pipe-out.
89337           if not f-status-ok
89338              display "FAILED: OPEN OUTPUT"
89339              stop run
89340           end-if.
89341           perform until not f-status-ok
89342              read pipe-in
89343              if f-status-ok
89344                 perform x01-100-map
89345                 write pipe-msg-out
89346              end-if
89347           end-perform.
89348           close pipe-in.
89349           close pipe-out.
89350           stop run.
89351      *
89352       x01-100-map.
89353           move "*** Jacques Tati ***" to pipe-msg-out.
89354           if (pipe-msg-in = "COUNTRY")
89355              move "Country: FRANCE" to pipe-msg-out.
89356           if (pipe-msg-in = "TOWN")
89357              move "Town: DEAUVILLE" to pipe-msg-out.
89358           if (pipe-msg-in = "NAME")
89359              move "Name: M. Hulot" to pipe-msg-out.
89360           if (pipe-msg-in = "STREET")
89361              move "Street: Rue des Anglais" to pipe-msg-out.
89362_ATEOF
89363
89364
89365{ set +x
89366$as_echo "$at_srcdir/run_file.at:6983: \$COMPILE prog.cob"
89367at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6983"
89368( $at_check_trace; $COMPILE prog.cob
89369) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89370at_status=$? at_failed=false
89371$at_check_filter
89372at_fn_diff_devnull "$at_stderr" || at_failed=:
89373at_fn_diff_devnull "$at_stdout" || at_failed=:
89374at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6983"
89375$at_failed && at_fn_log_failure
89376$at_traceon; }
89377
89378{ set +x
89379$as_echo "$at_srcdir/run_file.at:6984: \$COBCRUN_DIRECT ./prog"
89380at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6984"
89381( $at_check_trace; $COBCRUN_DIRECT ./prog
89382) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89383at_status=$? at_failed=false
89384$at_check_filter
89385at_fn_diff_devnull "$at_stderr" || at_failed=:
89386at_fn_diff_devnull "$at_stdout" || at_failed=:
89387at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6984"
89388$at_failed && at_fn_log_failure
89389$at_traceon; }
89390
89391{ set +x
89392$as_echo "$at_srcdir/run_file.at:6985: cat test-data-out"
89393at_fn_check_prepare_trace "run_file.at:6985"
89394( $at_check_trace; cat test-data-out
89395) >>"$at_stdout" 2>>"$at_stderr" 5>&-
89396at_status=$? at_failed=false
89397$at_check_filter
89398at_fn_diff_devnull "$at_stderr" || at_failed=:
89399echo >>"$at_stdout"; $as_echo "Name: M. Hulot
89400Street: Rue des Anglais
89401Town: DEAUVILLE
89402Country: FRANCE
89403" | \
89404  $at_diff - "$at_stdout" || at_failed=:
89405at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6985"
89406$at_failed && at_fn_log_failure
89407$at_traceon; }
89408
89409
89410  set +x
89411  $at_times_p && times >"$at_times_file"
89412) 5>&1 2>&1 7>&- | eval $at_tee_pipe
89413read at_status <"$at_status_file"
89414#AT_STOP_801
89415#AT_START_802
89416at_fn_group_banner 802 'run_file.at:6995' \
89417  "EXTFH: using ISAM callback" "                     " 4
89418at_xfail=no
89419(
89420  $as_echo "802. $at_setup_line: testing $at_desc ..."
89421  $at_traceon
89422
89423
89424
89425$as_echo "run_file.at:6998" >"$at_check_line_file"
89426(test "$COB_HAS_ISAM" = "no") \
89427  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6998"
89428
89429cat >prog.cob <<'_ATEOF'
89430
89431       IDENTIFICATION DIVISION.
89432       PROGRAM-ID. prog.
89433
89434       ENVIRONMENT DIVISION.
89435       CONFIGURATION SECTION.
89436
89437       INPUT-OUTPUT SECTION.
89438       FILE-CONTROL.
89439           SELECT OPTIONAL TSPFILE
89440           ASSIGN TO "testisam"
89441           ORGANIZATION INDEXED ACCESS DYNAMIC
89442           RECORD KEY IS CM-CUST-NUM
89443           ALTERNATE RECORD KEY IS CM-TELEPHONE WITH DUPLICATES
89444           ALTERNATE RECORD KEY IS CM-DISK WITH DUPLICATES
89445           FILE STATUS IS CUST-STAT .
89446
89447           SELECT TSTFILE
89448           ASSIGN TO "testisam"
89449           ORGANIZATION INDEXED ACCESS DYNAMIC
89450           RECORD KEY IS TS-CUST-NUM
89451           ALTERNATE RECORD KEY IS TS-TELEPHONE WITH DUPLICATES
89452           ALTERNATE RECORD KEY IS TS-DISK WITH DUPLICATES
89453           FILE STATUS IS CUST-STAT .
89454
89455           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
89456           ORGANIZATION RELATIVE
89457           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
89458           FILE STATUS IS CUST-STAT.
89459
89460       DATA  DIVISION.
89461       FILE SECTION.
89462       FD  TSPFILE
89463           BLOCK CONTAINS 5 RECORDS.
89464
89465       01  TSPFL-RECORD.
89466           05  TSPFL-REC.
89467           10  CM-CUST-NUM.
89468             15  CM-CUST-PRE                   PICTURE X(3).
89469             15  CM-CUST-NNN                   PICTURE X(5).
89470           10  CM-STATUS                       PICTURE X.
89471           10  CM-COMPANY                      PICTURE X(25).
89472           10  CM-ADDRESS-1                    PICTURE X(25).
89473           10  CM-ADDRESS-2                    PICTURE X(25).
89474           10  CM-ADDRESS-3                    PICTURE X(25).
89475           10  CM-TELEPHONE                    PICTURE 9(10).
89476           10  CM-DP-MGR                       PICTURE X(25).
89477           10  CM-MACHINE                      PICTURE X(8).
89478           10  CM-MEMORY                       PICTURE X(4).
89479           10  CM-DISK                         PICTURE X(8).
89480           10  CM-TAPE                         PICTURE X(8).
89481           10  CM-NO-TERMINALS                 PICTURE 9(5).
89482
89483       FD  TSTFILE
89484           BLOCK CONTAINS 5 RECORDS.
89485
89486       01  TSTFL-RECORD.
89487           05  TSTFL-REC.
89488           10  TS-CUST-NUM                     PICTURE X(8).
89489           10  TS-STATUS                       PICTURE X.
89490           10  TS-COMPANY                      PICTURE X(25).
89491           10  TS-ADDRESS-1                    PICTURE X(25).
89492           10  TS-ADDRESS-2                    PICTURE X(25).
89493           10  TS-ADDRESS-3                    PICTURE X(25).
89494           10  TS-TELEPHONE                    PICTURE 9(10).
89495           10  TS-DP-MGR                       PICTURE X(25).
89496           10  TS-MACHINE                      PICTURE X(8).
89497           10  TS-MEMORY                       PICTURE X(4).
89498           10  TS-DISK                         PICTURE X(8).
89499           10  TS-TAPE                         PICTURE X(8).
89500
89501       FD  FLATFILE
89502           BLOCK CONTAINS 5 RECORDS.
89503
89504       01  TSP2-RECORD.
89505           10  C2-CUST-NUM                     PICTURE X(8).
89506           10  C2-COMPANY                      PICTURE X(25).
89507           10  C2-DISK                         PICTURE X(8).
89508           10  C2-NO-TERMINALS                 PICTURE 9(4) COMP-4.
89509           10  C2-PK-DATE                      PICTURE S9(14) COMP-3.
89510
89511       WORKING-STORAGE SECTION.
89512
89513       01  CUST-STAT.
89514           05  FILLER PICTURE XX.
89515       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
89516
89517       01  TEST-DATA.
89518
89519         02  DATA-CUST-NUM-TBL.
89520
89521           05  FILLER PIC X(8) VALUE "ALP00000".
89522           05  FILLER PIC X(8) VALUE "BET00000".
89523           05  FILLER PIC X(8) VALUE "GAM00000".
89524           05  FILLER PIC X(8) VALUE "DEL00000".
89525           05  FILLER PIC X(8) VALUE "EPS00000".
89526           05  FILLER PIC X(8) VALUE "FOR00000".
89527           05  FILLER PIC X(8) VALUE "GIB00000".
89528           05  FILLER PIC X(8) VALUE "H&J00000".
89529           05  FILLER PIC X(8) VALUE "INC00000".
89530           05  FILLER PIC X(8) VALUE "JOH00000".
89531           05  FILLER PIC X(8) VALUE "KON00000".
89532           05  FILLER PIC X(8) VALUE "LEW00000".
89533           05  FILLER PIC X(8) VALUE "MOR00000".
89534           05  FILLER PIC X(8) VALUE "NEW00000".
89535           05  FILLER PIC X(8) VALUE "OLD00000".
89536           05  FILLER PIC X(8) VALUE "PRE00000".
89537
89538         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
89539                                       PIC X(8) OCCURS 16.
89540         02  DATA-COMPANY-TBL.
89541
89542           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
89543           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
89544           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
89545           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
89546           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
89547           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
89548           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
89549           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
89550           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
89551           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
89552           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
89553           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
89554           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
89555           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
89556           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
89557           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".
89558
89559         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
89560                                       PIC X(25) OCCURS 16.
89561         02  DATA-ADDRESS-1-TBL.
89562
89563           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
89564           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
89565           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
89566           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
89567           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
89568           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
89569           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
89570           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
89571           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
89572           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
89573           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
89574           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
89575           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
89576           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
89577           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
89578           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".
89579
89580         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
89581                                       PIC X(25) OCCURS 16.
89582         02  DATA-ADDRESS-2-TBL.
89583
89584           05  FILLER PIC X(10) VALUE "NEW YORK  ".
89585           05  FILLER PIC X(10) VALUE "ATLANTA   ".
89586           05  FILLER PIC X(10) VALUE "WASHINGTON".
89587           05  FILLER PIC X(10) VALUE "TORONTO   ".
89588           05  FILLER PIC X(10) VALUE "CALGARY   ".
89589           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
89590           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
89591           05  FILLER PIC X(10) VALUE "MADISON   ".
89592           05  FILLER PIC X(10) VALUE "WILBUR    ".
89593           05  FILLER PIC X(10) VALUE "TOPEKA    ".
89594           05  FILLER PIC X(10) VALUE "SEATTLE   ".
89595           05  FILLER PIC X(10) VALUE "NEW JERSEY".
89596           05  FILLER PIC X(10) VALUE "FORT WAYNE".
89597           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
89598           05  FILLER PIC X(10) VALUE "RICHMOND  ".
89599           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
89600
89601         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
89602                                       PIC X(10) OCCURS 16.
89603         02  DATA-ADDRESS-3-TBL.
89604
89605           05  FILLER PIC X(10) VALUE "N.Y.      ".
89606           05  FILLER PIC X(10) VALUE "GEORGIA   ".
89607           05  FILLER PIC X(10) VALUE "D.C.      ".
89608           05  FILLER PIC X(10) VALUE "CANADA    ".
89609           05  FILLER PIC X(10) VALUE "CANADA    ".
89610           05  FILLER PIC X(10) VALUE "CALIFORNIA".
89611           05  FILLER PIC X(10) VALUE "NEW MEXICO".
89612           05  FILLER PIC X(10) VALUE "WISCONSIN ".
89613           05  FILLER PIC X(10) VALUE "DELAWARE  ".
89614           05  FILLER PIC X(10) VALUE "KANSAS    ".
89615           05  FILLER PIC X(10) VALUE "WASHINGTON".
89616           05  FILLER PIC X(10) VALUE "N.J.      ".
89617           05  FILLER PIC X(10) VALUE "COLORADO  ".
89618           05  FILLER PIC X(10) VALUE "OHIO      ".
89619           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
89620           05  FILLER PIC X(10) VALUE "N.Y.      ".
89621
89622         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
89623                                       PIC X(10) OCCURS 16.
89624         02  DATA-TELEPHONE-TBL.
89625
89626           05  FILLER PIC 9(10) VALUE 3131234432.
89627           05  FILLER PIC 9(10) VALUE 4082938498.
89628           05  FILLER PIC 9(10) VALUE 8372487274.
89629           05  FILLER PIC 9(10) VALUE 4169898509.
89630           05  FILLER PIC 9(10) VALUE 5292398745.
89631           05  FILLER PIC 9(10) VALUE 8009329492.
89632           05  FILLER PIC 9(10) VALUE 6456445643.
89633           05  FILLER PIC 9(10) VALUE 6546456333.
89634           05  FILLER PIC 9(10) VALUE 3455445444.
89635           05  FILLER PIC 9(10) VALUE 6456445643.
89636           05  FILLER PIC 9(10) VALUE 7456434355.
89637           05  FILLER PIC 9(10) VALUE 6554456433.
89638           05  FILLER PIC 9(10) VALUE 4169898509.
89639           05  FILLER PIC 9(10) VALUE 7534587453.
89640           05  FILLER PIC 9(10) VALUE 8787458374.
89641           05  FILLER PIC 9(10) VALUE 4169898509.
89642
89643         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
89644                                       PIC 9(10) OCCURS 16.
89645         02  DATA-DP-MGR-TBL.
89646
89647           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
89648           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
89649           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
89650           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
89651           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
89652           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
89653           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
89654           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
89655           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
89656           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
89657           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
89658           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
89659           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
89660           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
89661           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
89662           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".
89663
89664         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
89665                                       PIC X(20) OCCURS 16.
89666         02  DATA-MACHINE-TBL.
89667
89668           05  FILLER PIC X(8) VALUE "UNI-9030".
89669           05  FILLER PIC X(8) VALUE "UNI-9040".
89670           05  FILLER PIC X(8) VALUE "UNI-80/3".
89671           05  FILLER PIC X(8) VALUE "UNI-80/5".
89672           05  FILLER PIC X(8) VALUE "UNI-80/6".
89673           05  FILLER PIC X(8) VALUE "UNI-80/6".
89674           05  FILLER PIC X(8) VALUE "UNI-80/6".
89675           05  FILLER PIC X(8) VALUE "UNI-80/8".
89676           05  FILLER PIC X(8) VALUE "UNI-80/8".
89677           05  FILLER PIC X(8) VALUE "UNI-80/8".
89678           05  FILLER PIC X(8) VALUE "UNI-80/8".
89679           05  FILLER PIC X(8) VALUE "UNI-80/8".
89680           05  FILLER PIC X(8) VALUE "UNI-80/8".
89681           05  FILLER PIC X(8) VALUE "UNI-80/8".
89682           05  FILLER PIC X(8) VALUE "UNI-9040".
89683           05  FILLER PIC X(8) VALUE "UNI-9040".
89684
89685         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
89686                                       PIC X(8) OCCURS 16.
89687         02  DATA-NO-TERMINALS-TBL.
89688
89689           05  FILLER PIC 9(3) COMP-3 VALUE 85.
89690           05  FILLER PIC 9(3) COMP-3 VALUE 34.
89691           05  FILLER PIC 9(3) COMP-3 VALUE 75.
89692           05  FILLER PIC 9(3) COMP-3 VALUE 45.
89693           05  FILLER PIC 9(3) COMP-3 VALUE 90.
89694           05  FILLER PIC 9(3) COMP-3 VALUE 107.
89695           05  FILLER PIC 9(3) COMP-3 VALUE 67.
89696           05  FILLER PIC 9(3) COMP-3 VALUE 32.
89697           05  FILLER PIC 9(3) COMP-3 VALUE 16.
89698           05  FILLER PIC 9(3) COMP-3 VALUE 34.
89699           05  FILLER PIC 9(3) COMP-3 VALUE 128.
89700           05  FILLER PIC 9(3) COMP-3 VALUE 64.
89701           05  FILLER PIC 9(3) COMP-3 VALUE 110.
89702           05  FILLER PIC 9(3) COMP-3 VALUE 324.
89703           05  FILLER PIC 9(3) COMP-3 VALUE 124.
89704           05  FILLER PIC 9(3) COMP-3 VALUE 86.
89705
89706         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
89707                                       PIC 9(3) COMP-3 OCCURS 16.
89708
89709       01  WORK-AREA.
89710           05  REC-NUM                         PICTURE 9(6) VALUE 0.
89711           05  REC-MAX                         PICTURE 9(6) VALUE 10.
89712           05  SUB                             PICTURE 9(4) COMP SYNC.
89713               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.
89714
89715           05  TSPFL-KEY                       PICTURE X(8).
89716
89717       PROCEDURE DIVISION.
89718
89719       MAINFILE.
89720           OPEN OUTPUT TSPFILE
89721           CLOSE TSPFILE.
89722
89723           OPEN I-O TSPFILE
89724           MOVE '99' TO CUST-STAT
89725           READ  TSPFILE NEXT RECORD WITH NO LOCK
89726           IF CUST-STAT NOT = "10"
89727               DISPLAY "Error " CUST-STAT " on read of empty file"
89728                                UPON CONSOLE
89729               STOP RUN
89730           END-IF.
89731           MOVE LOW-VALUES                     TO TSPFL-RECORD.
89732           START TSPFILE KEY GREATER THAN CM-CUST-NUM
89733           IF CUST-STAT NOT = "23"
89734               DISPLAY "Error " CUST-STAT " starting empty file"
89735                                UPON CONSOLE
89736               STOP RUN
89737           END-IF.
89738           READ  TSPFILE NEXT RECORD WITH NO LOCK
89739           IF CUST-STAT NOT = "46"
89740               DISPLAY "Error " CUST-STAT " start/read of empty file"
89741                                UPON CONSOLE
89742               STOP RUN
89743           END-IF.
89744           DISPLAY "OK: Operations on empty file"
89745           CLOSE TSPFILE.
89746
89747           PERFORM LOADFILE.
89748           PERFORM LISTFILE.
89749           OPEN INPUT TSTFILE
89750           IF CUST-STAT NOT = "00"
89751               DISPLAY "Expected ERROR " CUST-STAT
89752                       " opening TSTFILE, Record size different"
89753                       UPON CONSOLE
89754           ELSE
89755               DISPLAY "Un-Expected open TSTFILE, Record size different"
89756                       UPON CONSOLE
89757               CLOSE TSTFILE
89758           END-IF.
89759           PERFORM LOADFLAT.
89760           STOP RUN.
89761
89762       LOADFILE.
89763           DISPLAY "Loading sample data file."
89764                            UPON CONSOLE.
89765
89766           OPEN OUTPUT TSPFILE
89767           IF CUST-STAT NOT = "00"
89768               DISPLAY "Error " CUST-STAT
89769               " opening 'testisam' file" UPON CONSOLE
89770               STOP RUN
89771           END-IF.
89772
89773           PERFORM 1000-LOAD-RECORD
89774                        VARYING SUB FROM 1 BY 1
89775                          UNTIL SUB > MAX-SUB.
89776
89777           DISPLAY "Sample data file load complete."
89778                            UPON CONSOLE.
89779           CLOSE TSPFILE.
89780
89781      *---------------------------------------------------------------*
89782      *         LOAD A RECORD FROM DATA TABLES                        *
89783      *---------------------------------------------------------------*
89784
89785       1000-LOAD-RECORD.
89786
89787           MOVE SPACES                       TO TSPFL-RECORD.
89788           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
89789           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
89790           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
89791           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
89792           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
89793           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
89794           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
89795           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
89796           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
89797           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
89798
89799           IF  ODD-RECORD
89800               MOVE "8417"                   TO CM-DISK
89801               MOVE "1600 BPI"               TO CM-TAPE
89802               MOVE "1MEG"                   TO CM-MEMORY
89803           ELSE
89804               MOVE "8470"                   TO CM-DISK
89805               MOVE "6250 BPI"               TO CM-TAPE
89806               MOVE "3MEG"                   TO CM-MEMORY.
89807
89808           WRITE TSPFL-RECORD.
89809           IF CUST-STAT NOT = "00"
89810           AND CUST-STAT NOT = "02"
89811               DISPLAY "Load - Key: " TSPFL-KEY ", Status: " CUST-STAT
89812                                 UPON CONSOLE.
89813
89814       LISTFILE.
89815           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
89816           OPEN INPUT TSTFILE
89817           MOVE SPACES                       TO TSTFL-RECORD.
89818           MOVE "PRE00000" TO CM-CUST-NUM.
89819           START TSTFILE KEY GREATER THAN OR EQUAL TO TS-CUST-NUM
89820           READ  TSTFILE NEXT RECORD
89821           READ  TSTFILE NEXT RECORD
89822           CLOSE TSTFILE.
89823
89824           MOVE ZERO TO REC-NUM
89825           OPEN INPUT TSPFILE
89826           IF CUST-STAT NOT = "00"
89827               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE"
89828                                             UPON CONSOLE
89829               STOP RUN
89830           END-IF.
89831           MOVE SPACES                       TO TSPFL-RECORD.
89832           MOVE "PRE00000" TO CM-CUST-NUM.
89833           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
89834           READ  TSPFILE NEXT RECORD
89835           READ  TSPFILE NEXT RECORD
89836
89837           MOVE SPACES                       TO TSPFL-RECORD.
89838           MOVE "DEL00000" TO CM-CUST-NUM.
89839           START TSPFILE KEY GREATER THAN CM-CUST-NUM
89840           IF CUST-STAT NOT = "00"
89841               DISPLAY "Error " CUST-STAT " starting file"
89842                                UPON CONSOLE
89843               STOP RUN
89844           END-IF.
89845           READ  TSPFILE NEXT RECORD WITH NO LOCK
89846           IF CUST-STAT NOT = "00"
89847               DISPLAY "Error " CUST-STAT " on 1st read of file"
89848                                UPON CONSOLE
89849               STOP RUN
89850           END-IF.
89851           PERFORM UNTIL CUST-STAT NOT = "00"
89852                      OR REC-NUM > REC-MAX
89853               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
89854                        " Disk=" CM-DISK "."
89855                         UPON CONSOLE
89856               READ TSPFILE NEXT RECORD
89857                    AT END
89858                        MOVE "99" TO CUST-STAT
89859                END-READ
89860                ADD 1 TO REC-NUM
89861           END-PERFORM
89862           IF CUST-STAT = "99"
89863               DISPLAY "Hit End of File" UPON CONSOLE
89864           END-IF.
89865
89866           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
89867           MOVE ZERO TO REC-NUM
89868           START TSPFILE KEY LESS THAN CM-CUST-NUM
89869           IF CUST-STAT NOT = "00"
89870               DISPLAY "Error " CUST-STAT " starting file"
89871                                UPON CONSOLE
89872               STOP RUN
89873           END-IF.
89874           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
89875           IF CUST-STAT NOT = "00"
89876               DISPLAY "Error " CUST-STAT " on 1st read of file"
89877                                UPON CONSOLE
89878               STOP RUN
89879           END-IF.
89880           PERFORM UNTIL CUST-STAT NOT = "00"
89881                      OR REC-NUM > REC-MAX
89882               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
89883                        " Disk=" CM-DISK "."
89884                         UPON CONSOLE
89885               READ TSPFILE PREVIOUS RECORD
89886                    AT END
89887                        MOVE "99" TO CUST-STAT
89888                END-READ
89889                ADD 1 TO REC-NUM
89890           END-PERFORM.
89891
89892           CLOSE TSPFILE.
89893
89894           OPEN I-O TSPFILE.
89895           MOVE SPACES                       TO TSPFL-RECORD.
89896           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
89897           MOVE 'X'                          TO CM-CUST-NUM (5:1).
89898           READ TSPFILE KEY IS CM-CUST-NUM
89899           IF  CUST-STAT NOT = "23"
89900               DISPLAY "Error " CUST-STAT " instead of 23."
89901                                UPON CONSOLE
89902           END-IF.
89903           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
89904           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
89905           READ TSPFILE KEY IS CM-CUST-NUM
89906           IF  CUST-STAT NOT = "00"
89907               DISPLAY "Error " CUST-STAT " on primary read ."
89908                                UPON CONSOLE
89909           ELSE
89910               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
89911                        " Disk=" CM-DISK "."
89912                         UPON CONSOLE
89913           END-IF.
89914           READ TSPFILE NEXT RECORD
89915           IF  CUST-STAT NOT = "00"
89916               DISPLAY "Error " CUST-STAT " on next read"
89917                                UPON CONSOLE
89918           ELSE
89919               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
89920                        " Disk=" CM-DISK "."
89921                         UPON CONSOLE
89922           END-IF.
89923           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
89924           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
89925           READ TSPFILE KEY IS CM-TELEPHONE
89926           IF  CUST-STAT NOT = "00"
89927               DISPLAY "Error " CUST-STAT " instead of 23"
89928                                UPON CONSOLE
89929           ELSE
89930               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
89931                        " Mach=" CM-MACHINE "."
89932                         UPON CONSOLE
89933           END-IF.
89934           WRITE TSPFL-RECORD
89935           IF  CUST-STAT NOT = "22"
89936               DISPLAY "Error " CUST-STAT " instead of 22"
89937                                UPON CONSOLE
89938           ELSE
89939               DISPLAY "  Write: " CM-CUST-NUM " got 22 as expected"
89940                         UPON CONSOLE
89941           END-IF.
89942           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
89943           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
89944           READ TSPFILE KEY IS CM-CUST-NUM
89945           DISPLAY "   Read: " CM-CUST-NUM " got "
89946                         CUST-STAT " as expected "
89947                         CM-NO-TERMINALS " terminals"
89948                         UPON CONSOLE.
89949           ADD 5 TO CM-NO-TERMINALS
89950           REWRITE TSPFL-RECORD
89951           IF  CUST-STAT NOT = "02"
89952           AND CUST-STAT NOT = "00"
89953               DISPLAY "Error " CUST-STAT " instead of 02"
89954                                UPON CONSOLE
89955           ELSE
89956               DISPLAY "ReWrite: " CM-CUST-NUM " got "
89957                         "00/02 as expected "
89958                         CM-NO-TERMINALS " terminals"
89959                         UPON CONSOLE
89960           END-IF.
89961           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
89962           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
89963           READ TSPFILE KEY IS CM-CUST-NUM
89964           DISPLAY "   Read: " CM-CUST-NUM " got "
89965                         CUST-STAT " as expected "
89966                         CM-NO-TERMINALS " terminals"
89967                         UPON CONSOLE.
89968           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
89969           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
89970           REWRITE TSPFL-RECORD
89971           IF  CUST-STAT NOT = "02"
89972           AND CUST-STAT NOT = "00"
89973               DISPLAY "Error " CUST-STAT " instead of 02"
89974                                UPON CONSOLE
89975           ELSE
89976               DISPLAY "ReWrite: " CM-CUST-NUM " got "
89977                       "00/02 as expected"
89978                         UPON CONSOLE
89979           END-IF.
89980           MOVE DATA-CUST-NUM      (6)       TO CM-CUST-NUM.
89981           MOVE DATA-COMPANY       (6)       TO CM-COMPANY.
89982           READ TSPFILE KEY IS CM-CUST-NUM
89983           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
89984           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
89985           REWRITE TSPFL-RECORD
89986           IF  CUST-STAT NOT = "02"
89987           AND CUST-STAT NOT = "00"
89988               DISPLAY "Error " CUST-STAT " instead of 02"
89989                                UPON CONSOLE
89990           ELSE
89991               DISPLAY "ReWrite: " CM-CUST-NUM " got "
89992                        "00/02 as expected"
89993                         UPON CONSOLE
89994           END-IF.
89995           DELETE TSPFILE.
89996           CLOSE TSPFILE.
89997
89998       LOADFLAT.
89999           OPEN OUTPUT FLATFILE.
90000           PERFORM FLAT-RECORD
90001                        VARYING SUB FROM 1 BY 1
90002                          UNTIL SUB > MAX-SUB
90003                             OR SUB > 5.
90004           CLOSE FLATFILE.
90005           OPEN INPUT FLATFILE.
90006           MOVE 3 TO REC-NUM
90007           READ FLATFILE
90008           MOVE 999 TO REC-NUM
90009           READ FLATFILE
90010           CLOSE FLATFILE.
90011
90012       FLAT-RECORD.
90013
90014           MOVE SPACES                       TO TSP2-RECORD.
90015           MOVE SUB                          TO REC-NUM.
90016           MOVE DATA-CUST-NUM      (SUB)     TO C2-CUST-NUM.
90017           MOVE DATA-COMPANY       (SUB)     TO C2-COMPANY.
90018           MOVE DATA-NO-TERMINALS  (SUB)     TO C2-NO-TERMINALS.
90019           MOVE 20070319                     TO C2-PK-DATE.
90020           IF  ODD-RECORD
90021               MOVE "8417"                   TO C2-DISK
90022           ELSE
90023               MOVE "8470"                   TO C2-DISK.
90024           WRITE TSP2-RECORD.
90025_ATEOF
90026
90027
90028cat >cmod.c <<'_ATEOF'
90029
90030#include <stdio.h>
90031#include <libcob.h>
90032
90033static char *txtOpCode(int opCode);
90034
90035/*********************************************************
90036 *  TSTFH - External File Handler entry point.
90037*********************************************************/
90038
90039COB_EXT_EXPORT int
90040TSTFH (unsigned char *opCodep, FCD3 *fcd)
90041{
90042   unsigned int   opCode;
90043
90044   if (*opCodep == 0xfa)
90045      opCode = 0xfa00 + opCodep[1];
90046   else
90047      opCode = opCodep[1];
90048
90049   if (fcd->fileOrg == ORG_LINE_SEQ
90050    || fcd->fileOrg == ORG_SEQ
90051    || fcd->fileOrg == ORG_INDEXED
90052    || fcd->fileOrg == ORG_RELATIVE) {
90053      switch (opCode) {
90054      case OP_OPEN_OUTPUT:
90055      case OP_OPEN_IO:
90056      case OP_OPEN_EXTEND:
90057      case OP_OPEN_OUTPUT_NOREWIND:
90058         return EXTFH(opCodep, fcd);
90059         break;
90060
90061      case OP_OPEN_INPUT:
90062      case OP_OPEN_INPUT_NOREWIND:
90063      case OP_OPEN_INPUT_REVERSED:
90064         return EXTFH(opCodep, fcd);
90065         break;
90066
90067      default:
90068         break;
90069      }
90070
90071   }
90072
90073   if (opCode == OP_CLOSE
90074    && (fcd->openMode & OPEN_NOT_OPEN) ) {
90075      return 0;
90076   }
90077
90078   return EXTFH(opCodep, fcd);
90079}
90080_ATEOF
90081
90082
90083{ set +x
90084$as_echo "$at_srcdir/run_file.at:7650: \$COMPILE -fcallfh=TSTFH prog.cob cmod.c"
90085at_fn_check_prepare_dynamic "$COMPILE -fcallfh=TSTFH prog.cob cmod.c" "run_file.at:7650"
90086( $at_check_trace; $COMPILE -fcallfh=TSTFH prog.cob cmod.c
90087) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90088at_status=$? at_failed=false
90089$at_check_filter
90090at_fn_diff_devnull "$at_stderr" || at_failed=:
90091at_fn_diff_devnull "$at_stdout" || at_failed=:
90092at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:7650"
90093$at_failed && at_fn_log_failure
90094$at_traceon; }
90095
90096
90097{ set +x
90098$as_echo "$at_srcdir/run_file.at:7652: \$COBCRUN_DIRECT ./prog"
90099at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:7652"
90100( $at_check_trace; $COBCRUN_DIRECT ./prog
90101) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90102at_status=$? at_failed=false
90103$at_check_filter
90104at_fn_diff_devnull "$at_stderr" || at_failed=:
90105echo >>"$at_stdout"; $as_echo "OK: Operations on empty file
90106Loading sample data file.
90107Sample data file load complete.
90108LIST SAMPLE FILE
90109Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
90110Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
90111Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
90112Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
90113Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
90114Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
90115Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
90116Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
90117Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
90118Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
90119Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
90120LIST SAMPLE FILE DESCENDING
90121Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
90122Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
90123Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
90124Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
90125Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
90126Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
90127Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
90128Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
90129Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
90130Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
90131Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
90132Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
90133Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
90134Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
90135  Write: GIB00000 got 22 as expected
90136   Read: GAM00000 got 00 as expected 00075 terminals
90137ReWrite: GAM00000 got 00/02 as expected 00080 terminals
90138   Read: BET00000 got 00 as expected 00034 terminals
90139ReWrite: GAM00000 got 00/02 as expected
90140ReWrite: FOR00000 got 00/02 as expected
90141Expected ERROR 39 opening TSTFILE, Record size different
90142" | \
90143  $at_diff - "$at_stdout" || at_failed=:
90144at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:7652"
90145$at_failed && at_fn_log_failure
90146$at_traceon; }
90147
90148
90149  set +x
90150  $at_times_p && times >"$at_times_file"
90151) 5>&1 2>&1 7>&- | eval $at_tee_pipe
90152read at_status <"$at_status_file"
90153#AT_STOP_802
90154#AT_START_803
90155at_fn_group_banner 803 'run_file.at:7695' \
90156  "EXTFH: SEQUENTIAL files" "                        " 4
90157at_xfail=no
90158(
90159  $as_echo "803. $at_setup_line: testing $at_desc ..."
90160  $at_traceon
90161
90162
90163
90164cat >prog.cob <<'_ATEOF'
90165
90166       IDENTIFICATION DIVISION.
90167       PROGRAM-ID. prog.
90168
90169       ENVIRONMENT DIVISION.
90170       CONFIGURATION SECTION.
90171
90172       INPUT-OUTPUT SECTION.
90173       FILE-CONTROL.
90174           SELECT FLATFILE ASSIGN EXTERNAL SEQFIX
90175           ORGANIZATION SEQUENTIAL
90176           FILE STATUS IS CUST-STAT .
90177
90178       DATA DIVISION.
90179       FILE SECTION.
90180       FD  FLATFILE
90181           BLOCK CONTAINS 5 RECORDS.
90182
90183       01  TSPFL-RECORD.
90184           10  CM-CUST-NUM                     PICTURE X(8).
90185           10  CM-COMPANY                      PICTURE X(25).
90186           10  CM-DISK                         PICTURE X(8).
90187           10  CM-NO-TERMINALS                 PICTURE 9(4) COMP-4.
90188           10  CM-PK-DATE                      PICTURE S9(14) COMP-3.
90189           10  CM-TRAILER                      PICTURE X(8).
90190
90191       WORKING-STORAGE SECTION.
90192
90193       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
90194       77  CUST-STAT                           PICTURE X(2).
90195
90196       01  TEST-DATA.
90197
90198         02  DATA-CUST-NUM-TBL.
90199
90200           05  FILLER PIC X(8) VALUE "ALP00000".
90201           05  FILLER PIC X(8) VALUE "BET00000".
90202           05  FILLER PIC X(8) VALUE "GAM00000".
90203           05  FILLER PIC X(8) VALUE "DEL00000".
90204           05  FILLER PIC X(8) VALUE "EPS00000".
90205           05  FILLER PIC X(8) VALUE "FOR00000".
90206
90207         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
90208                                       PIC X(8) OCCURS 6.
90209         02  DATA-COMPANY-TBL.
90210
90211           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
90212           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
90213           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
90214           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
90215           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
90216           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
90217         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
90218                                       PIC X(25) OCCURS 6.
90219         02  DATA-ADDRESS-2-TBL.
90220
90221           05  FILLER PIC X(10) VALUE "NEW YORK  ".
90222           05  FILLER PIC X(10) VALUE "ATLANTA   ".
90223           05  FILLER PIC X(10) VALUE "WASHINGTON".
90224           05  FILLER PIC X(10) VALUE "TORONTO   ".
90225           05  FILLER PIC X(10) VALUE "CALGARY   ".
90226           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
90227
90228         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
90229                                       PIC X(10) OCCURS 6.
90230
90231         02  DATA-NO-TERMINALS-TBL.
90232
90233           05  FILLER PIC 9(3) COMP-3 VALUE 10.
90234           05  FILLER PIC 9(3) COMP-3 VALUE 13.
90235           05  FILLER PIC 9(3) COMP-3 VALUE 75.
90236           05  FILLER PIC 9(3) COMP-3 VALUE 10.
90237           05  FILLER PIC 9(3) COMP-3 VALUE 90.
90238           05  FILLER PIC 9(3) COMP-3 VALUE 254.
90239
90240         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
90241                                       PIC 9(3) COMP-3 OCCURS 6.
90242       01  WORK-AREA.
90243           05  SUB                             PICTURE 9(4) COMP SYNC.
90244               88  ODD-RECORD                  VALUE 1 3 5.
90245
90246
90247       PROCEDURE DIVISION.
90248
90249           OPEN INPUT FLATFILE.
90250           DISPLAY "Open Input when no file Sts:" CUST-STAT
90251           OPEN EXTEND FLATFILE.
90252           DISPLAY "Open Extend when no file Sts:" CUST-STAT
90253           CLOSE FLATFILE.
90254           DISPLAY "Close when no open file Sts:" CUST-STAT
90255           OPEN OUTPUT FLATFILE.
90256           CLOSE FLATFILE.
90257           OPEN EXTEND FLATFILE.
90258           DISPLAY "Open Extend when empty file Sts:" CUST-STAT
90259           CLOSE FLATFILE.
90260
90261           PERFORM LOADFILE.
90262           OPEN INPUT FLATFILE.
90263           DISPLAY "Open Sts:" CUST-STAT
90264           READ FLATFILE
90265           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
90266           READ FLATFILE
90267           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
90268           CLOSE FLATFILE.
90269
90270           OPEN I-O FLATFILE.
90271           READ FLATFILE
90272           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
90273           ADD 1 TO CM-NO-TERMINALS
90274           REWRITE TSPFL-RECORD
90275           DISPLAY "REWRITE " CM-CUST-NUM " Sts " CUST-STAT
90276                   " Trms:" CM-NO-TERMINALS.
90277           CLOSE FLATFILE.
90278
90279           OPEN I-O FLATFILE.
90280           READ FLATFILE
90281           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
90282           ADD 1 TO CM-NO-TERMINALS
90283           REWRITE TSPFL-RECORD
90284           DISPLAY "REWRITE " CM-CUST-NUM " Sts " CUST-STAT
90285                   " Trms:" CM-NO-TERMINALS.
90286           READ FLATFILE WITH LOCK
90287           DISPLAY "Read " CM-CUST-NUM
90288      *    DELETE FLATFILE
90289      *    DISPLAY "DELETE " CM-CUST-NUM " Sts " CUST-STAT.
90290           CLOSE FLATFILE.
90291           OPEN INPUT FLATFILE.
90292           DISPLAY "Re-list File Open Sts:" CUST-STAT
90293           PERFORM UNTIL CUST-STAT NOT = "00"
90294               PERFORM READ-RECORD
90295           END-PERFORM.
90296           CLOSE FLATFILE.
90297           OPEN EXTEND FLATFILE.
90298           MOVE 2 TO SUB
90299           PERFORM LOAD-RECORD
90300           CLOSE FLATFILE.
90301           OPEN INPUT FLATFILE.
90302           DISPLAY "List File afer EXTEND Open Sts:" CUST-STAT
90303           PERFORM UNTIL CUST-STAT NOT = "00"
90304               PERFORM READ-RECORD
90305           END-PERFORM.
90306           CLOSE FLATFILE.
90307           STOP RUN RETURNING 0.
90308
90309       READ-RECORD.
90310           MOVE SPACES                       TO TSPFL-RECORD.
90311           READ FLATFILE
90312           IF CUST-STAT NOT = "00"
90313             DISPLAY "Read Status: " CUST-STAT
90314           ELSE
90315             DISPLAY "Read  " CM-CUST-NUM
90316                     " Trms:" CM-NO-TERMINALS
90317           END-IF.
90318
90319       LOADFILE.
90320           DISPLAY "Loading sample data file.".
90321
90322           OPEN OUTPUT FLATFILE.
90323
90324           PERFORM LOAD-RECORD
90325                        VARYING SUB FROM 1 BY 1
90326                          UNTIL SUB > MAX-SUB.
90327
90328           DISPLAY "Sample data file load complete.".
90329           CLOSE FLATFILE.
90330
90331       LOAD-RECORD.
90332
90333           MOVE SPACES                       TO TSPFL-RECORD.
90334           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
90335           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
90336           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
90337           MOVE 20070319                     TO CM-PK-DATE.
90338           IF SUB = 1 OR 4 OR 6
90339               MOVE -20070319                 TO CM-PK-DATE.
90340
90341           IF  ODD-RECORD
90342               MOVE "8417"                   TO CM-DISK
90343           ELSE
90344               MOVE "8470"                   TO CM-DISK.
90345           WRITE TSPFL-RECORD.
90346_ATEOF
90347
90348
90349cat >cmod.c <<'_ATEOF'
90350
90351#include <stdio.h>
90352#include <libcob.h>
90353
90354static char *txtOpCode(int opCode);
90355
90356static int
90357doOpenFile(
90358   unsigned char  *opCodep,
90359   FCD3  *fcd,
90360   char  *opmsg)
90361{
90362   int      sts;
90363
90364   sts = EXTFH( opCodep, fcd );
90365   printf("EXFTH did %s; Status=%c%c; File now %s\n",
90366       opmsg, fcd->fileStatus[0], fcd->fileStatus[1],
90367       (fcd->openMode & OPEN_NOT_OPEN) ? "Closed" : "Open");
90368   return sts;
90369}
90370
90371/*********************************************************
90372 *  TSTFH - External File Handler entry point.
90373*********************************************************/
90374
90375COB_EXT_EXPORT int
90376TSTFH (unsigned char *opCodep, FCD3 *fcd)
90377{
90378   unsigned int   opCode;
90379   int      sts;
90380
90381   if (*opCodep == 0xfa)
90382      opCode = 0xfa00 + opCodep[1];
90383   else
90384      opCode = opCodep[1];
90385
90386   if (fcd->fileOrg == ORG_LINE_SEQ
90387    || fcd->fileOrg == ORG_SEQ
90388    || fcd->fileOrg == ORG_INDEXED
90389    || fcd->fileOrg == ORG_RELATIVE) {
90390      switch (opCode) {
90391      case OP_OPEN_OUTPUT:
90392      case OP_OPEN_IO:
90393      case OP_OPEN_EXTEND:
90394      case OP_OPEN_OUTPUT_NOREWIND:
90395         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
90396         break;
90397
90398      case OP_OPEN_INPUT:
90399      case OP_OPEN_INPUT_NOREWIND:
90400      case OP_OPEN_INPUT_REVERSED:
90401         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
90402         break;
90403
90404      case OP_CLOSE:
90405         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
90406         break;
90407
90408      default:
90409         break;
90410      }
90411
90412   }
90413
90414   if (opCode == OP_CLOSE
90415    && (fcd->openMode & OPEN_NOT_OPEN) ) {
90416      return 0;
90417   }
90418
90419   sts = EXTFH(opCodep, fcd);
90420   printf("EXFTH did %s; Status=%c%c\n", txtOpCode(opCode),
90421       fcd->fileStatus[0], fcd->fileStatus[1]);
90422   return sts;
90423}
90424
90425static char *           /* Return Text name of function */
90426txtOpCode(int opCode)
90427{
90428   static char tmp[32];
90429   switch (opCode) {
90430   case OP_OPEN_INPUT:     return "OPEN_IN";
90431   case OP_OPEN_OUTPUT:       return "OPEN_OUT";
90432   case OP_OPEN_IO:     return "OPEN_IO";
90433   case OP_OPEN_EXTEND:       return "OPEN_EXT";
90434   case OP_OPEN_INPUT_NOREWIND:  return "OPEN_IN_NOREW";
90435   case OP_OPEN_OUTPUT_NOREWIND: return "OPEN_OUT_NOREW";
90436   case OP_OPEN_INPUT_REVERSED:  return "OPEN_IN_REV";
90437   case OP_CLOSE:          return "CLOSE";
90438   case OP_CLOSE_LOCK:     return "CLOSE_LOCK";
90439   case OP_CLOSE_NOREWIND:    return "CLOSE_NORED";
90440   case OP_CLOSE_REEL:     return "CLOSE_REEL";
90441   case OP_CLOSE_REMOVE:      return "CLOSE_REMOVE";
90442   case OP_CLOSE_NO_REWIND:   return "CLOSE_NO_REW";
90443   case OP_START_EQ:       return "START_EQ";
90444   case OP_START_EQ_ANY:      return "START_EQ_ANY";
90445   case OP_START_GT:       return "START_GT";
90446   case OP_START_GE:       return "START_GE";
90447   case OP_START_LT:       return "START_LT";
90448   case OP_START_LE:       return "START_LE";
90449   case OP_READ_SEQ_NO_LOCK:  return "READ_SEQ_NO_LK";
90450   case OP_READ_SEQ:       return "READ_SEQ";
90451   case OP_READ_SEQ_LOCK:     return "READ_SEQ_LK";
90452   case OP_READ_SEQ_KEPT_LOCK:   return "READ_SEQ_KEPT_LK";
90453   case OP_READ_PREV_NO_LOCK:    return "READ_PREV_NO_LK";
90454   case OP_READ_PREV:      return "READ_PREV";
90455   case OP_READ_PREV_LOCK:    return "READ_PREV_LK";
90456   case OP_READ_PREV_KEPT_LOCK:  return "READ_PREV_KEPT_LK";
90457   case OP_READ_RAN:       return "READ_RAN";
90458   case OP_READ_RAN_NO_LOCK:  return "READ_RAN_NO_LK";
90459   case OP_READ_RAN_KEPT_LOCK:   return "READ_RAN_KEPT_LK";
90460   case OP_READ_RAN_LOCK:     return "READ_RAN_LK";
90461   case OP_READ_DIR:       return "READ_DIR";
90462   case OP_READ_DIR_NO_LOCK:  return "READ_DIR_NO_LK";
90463   case OP_READ_DIR_KEPT_LOCK:   return "READ_DIR_KEPT_LK";
90464   case OP_READ_DIR_LOCK:     return "READ_DIR_LK";
90465   case OP_READ_POSITION:     return "READ_POSITION";
90466   case OP_WRITE:          return "WRITE";
90467   case OP_REWRITE:     return "REWRITE";
90468   case OP_DELETE:      return "DELETE";
90469   case OP_DELETE_FILE:       return "DELETE_FILE";
90470   case OP_UNLOCK:      return "UNLOCK";
90471   case OP_ROLLBACK:       return "ROLLBACK";
90472   case OP_COMMIT:      return "COMMIT";
90473   case OP_WRITE_BEFORE:      return "WRITE_BEFORE";
90474   case OP_WRITE_BEFORE_TAB:  return "WRITE_BEFORE_TAB";
90475   case OP_WRITE_BEFORE_PAGE:    return "WRITE_BEFORE_PAGE";
90476   case OP_WRITE_AFTER:       return "WRITE_AFTER";
90477   case OP_WRITE_AFTER_TAB:   return "WRITE_AFTER_TAB";
90478   case OP_WRITE_AFTER_PAGE:  return "WRITE_AFTER_PAGE";
90479   }
90480   sprintf(tmp, "Func 0x%02X:", opCode);
90481   return tmp;
90482}
90483_ATEOF
90484
90485
90486{ set +x
90487$as_echo "$at_srcdir/run_file.at:8016: \$COMPILE -fcallfh=TSTFH prog.cob cmod.c"
90488at_fn_check_prepare_dynamic "$COMPILE -fcallfh=TSTFH prog.cob cmod.c" "run_file.at:8016"
90489( $at_check_trace; $COMPILE -fcallfh=TSTFH prog.cob cmod.c
90490) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90491at_status=$? at_failed=false
90492$at_check_filter
90493at_fn_diff_devnull "$at_stderr" || at_failed=:
90494at_fn_diff_devnull "$at_stdout" || at_failed=:
90495at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8016"
90496$at_failed && at_fn_log_failure
90497$at_traceon; }
90498
90499
90500{ set +x
90501$as_echo "$at_srcdir/run_file.at:8018: \$COBCRUN_DIRECT ./prog"
90502at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:8018"
90503( $at_check_trace; $COBCRUN_DIRECT ./prog
90504) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90505at_status=$? at_failed=false
90506$at_check_filter
90507at_fn_diff_devnull "$at_stderr" || at_failed=:
90508echo >>"$at_stdout"; $as_echo "EXFTH did OPEN_IN; Status=35; File now Closed
90509Open Input when no file Sts:35
90510EXFTH did OPEN_EXT; Status=35; File now Closed
90511Open Extend when no file Sts:35
90512EXFTH did CLOSE; Status=42; File now Closed
90513Close when no open file Sts:42
90514EXFTH did OPEN_OUT; Status=00; File now Open
90515EXFTH did CLOSE; Status=00; File now Closed
90516EXFTH did OPEN_EXT; Status=00; File now Open
90517Open Extend when empty file Sts:00
90518EXFTH did CLOSE; Status=00; File now Closed
90519Loading sample data file.
90520EXFTH did OPEN_OUT; Status=00; File now Open
90521EXFTH did WRITE; Status=00
90522EXFTH did WRITE; Status=00
90523EXFTH did WRITE; Status=00
90524EXFTH did WRITE; Status=00
90525EXFTH did WRITE; Status=00
90526EXFTH did WRITE; Status=00
90527Sample data file load complete.
90528EXFTH did CLOSE; Status=00; File now Closed
90529EXFTH did OPEN_IN; Status=00; File now Open
90530Open Sts:00
90531EXFTH did READ_SEQ; Status=00
90532Read ALP00000 Sts:00
90533EXFTH did READ_SEQ; Status=00
90534Read BET00000 Sts:00
90535EXFTH did CLOSE; Status=00; File now Closed
90536EXFTH did OPEN_IO; Status=00; File now Open
90537EXFTH did READ_SEQ; Status=00
90538Read ALP00000 Sts:00
90539EXFTH did REWRITE; Status=00
90540REWRITE ALP00000 Sts 00 Trms:0011
90541EXFTH did CLOSE; Status=00; File now Closed
90542EXFTH did OPEN_IO; Status=00; File now Open
90543EXFTH did READ_SEQ; Status=00
90544Read ALP00000 Sts:00
90545EXFTH did REWRITE; Status=00
90546REWRITE ALP00000 Sts 00 Trms:0012
90547EXFTH did READ_SEQ; Status=00
90548Read BET00000
90549EXFTH did CLOSE; Status=00; File now Closed
90550EXFTH did OPEN_IN; Status=00; File now Open
90551Re-list File Open Sts:00
90552EXFTH did READ_SEQ; Status=00
90553Read  ALP00000 Trms:0012
90554EXFTH did READ_SEQ; Status=00
90555Read  BET00000 Trms:0013
90556EXFTH did READ_SEQ; Status=00
90557Read  GAM00000 Trms:0075
90558EXFTH did READ_SEQ; Status=00
90559Read  DEL00000 Trms:0010
90560EXFTH did READ_SEQ; Status=00
90561Read  EPS00000 Trms:0090
90562EXFTH did READ_SEQ; Status=00
90563Read  FOR00000 Trms:0254
90564EXFTH did READ_SEQ; Status=10
90565Read Status: 10
90566EXFTH did CLOSE; Status=00; File now Closed
90567EXFTH did OPEN_EXT; Status=00; File now Open
90568EXFTH did WRITE; Status=00
90569EXFTH did CLOSE; Status=00; File now Closed
90570EXFTH did OPEN_IN; Status=00; File now Open
90571List File afer EXTEND Open Sts:00
90572EXFTH did READ_SEQ; Status=00
90573Read  ALP00000 Trms:0012
90574EXFTH did READ_SEQ; Status=00
90575Read  BET00000 Trms:0013
90576EXFTH did READ_SEQ; Status=00
90577Read  GAM00000 Trms:0075
90578EXFTH did READ_SEQ; Status=00
90579Read  DEL00000 Trms:0010
90580EXFTH did READ_SEQ; Status=00
90581Read  EPS00000 Trms:0090
90582EXFTH did READ_SEQ; Status=00
90583Read  FOR00000 Trms:0254
90584EXFTH did READ_SEQ; Status=00
90585Read  BET00000 Trms:0013
90586EXFTH did READ_SEQ; Status=10
90587Read Status: 10
90588EXFTH did CLOSE; Status=00; File now Closed
90589" | \
90590  $at_diff - "$at_stdout" || at_failed=:
90591at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8018"
90592$at_failed && at_fn_log_failure
90593$at_traceon; }
90594
90595
90596  set +x
90597  $at_times_p && times >"$at_times_file"
90598) 5>&1 2>&1 7>&- | eval $at_tee_pipe
90599read at_status <"$at_status_file"
90600#AT_STOP_803
90601#AT_START_804
90602at_fn_group_banner 804 'run_file.at:8105' \
90603  "EXTFH: LINE SEQUENTIAL files, direct EXTFH" "     " 4
90604at_xfail=no
90605(
90606  $as_echo "804. $at_setup_line: testing $at_desc ..."
90607  $at_traceon
90608
90609
90610
90611cat >prog.cob <<'_ATEOF'
90612
90613       IDENTIFICATION DIVISION.
90614       PROGRAM-ID. prog.
90615       ENVIRONMENT DIVISION.
90616       CONFIGURATION SECTION.
90617       INPUT-OUTPUT SECTION.
90618       FILE-CONTROL.
90619       DATA DIVISION.
90620       FILE SECTION.
90621       WORKING-STORAGE SECTION.
90622
90623       01  I                       PIC XX COMP-X.
90624
90625       01  WS-FCD-DDNAME           PIC X(8) VALUE SPACES.
90626       01  WS-FCD-PTR              POINTER   VALUE NULL.
90627
90628       01  WS-FCD-SIZE             PIC 9(04) VALUE   0       COMP-5.
90629       01  WS-FCD-FLAGS            PIC 9(04) VALUE   0       COMP-5.
90630
90631       01  DISPLAY-BYTE.
90632          05  DISPLAY-XXX             PIC X(03).
90633          05  DISPLAY-ZZ9             REDEFINES DISPLAY-XXX
90634                                      PIC ZZ9.
90635       01  ACTION-CODE                 pic x(2).
90636          78  OP-OPEN-INPUT           value x"fa00".
90637          78  OP-OPEN-OUTPUT          value x"fa01".
90638          78  OP-OPEN-I-O             value x"fa02".
90639          78  OP-WRITE                value x"faf3".
90640          78  OP-RELEASE              value x"faf3".
90641          78  OP-REWRITE              value x"faf4".
90642          78  OP-READ-NEXT            value x"faf5".
90643          78  OP-START-EQUAL          value x"fae9".
90644          78  OP-CLOSE                value x"fa80".
90645          78  OP-QUERY-FILE           value x"0006".
90646
90647       01  ACTION-CODE-WORK            redefines ACTION-CODE.
90648          05  ACTION-CODE-1           PIC x(01)                 COMP-X.
90649          05  ACTION-CODE-2           PIC x(01)                 COMP-X.
90650
90651       01  DISPLAY-A1-XXX              PIC X(03).
90652       01  DISPLAY-A1-ZZ9              REDEFINES DISPLAY-A1-XXX
90653                                      PIC ZZ9.
90654       01  DISPLAY-A2-XXX              PIC X(03).
90655       01  DISPLAY-A2-ZZ9              REDEFINES DISPLAY-A2-XXX
90656                                       PIC ZZ9.
90657
90658       01  FCD-FILENAME               PIC X(80) value "test.out".
90659       01  FCD-RECORD                 PIC X(512) value spaces.
90660
90661       LINKAGE SECTION.
90662
90663       01  FCD-MAP.
90664           copy 'xfhfcd3.cpy'.
90665
90666      *================================================================*
90667       PROCEDURE DIVISION.
90668      *----------------------------------------------------------------*
90669       000-MAIN.
90670
90671          PERFORM 100-OPEN.
90672
90673          PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
90674            MOVE I TO DISPLAY-A1-ZZ9
90675            MOVE DISPLAY-A1-ZZ9 TO FCD-RECORD
90676            PERFORM 300-WRITE
90677          END-PERFORM.
90678
90679          PERFORM 400-CLOSE.
90680          STOP RUN.
90681
90682      *----------------------------------------------------------------*
90683      *    Process the open request
90684      *
90685       100-OPEN.
90686
90687          MOVE "TESTOUT" TO WS-FCD-DDNAME
90688
90689          MOVE LENGTH OF FCD-MAP TO WS-FCD-SIZE
90690          DISPLAY "FCD SIZE " WS-FCD-SIZE.
90691
90692          IF WS-FCD-PTR EQUAL NULL
90693             ALLOCATE ws-fcd-size characters
90694                                  returning WS-FCD-PTR
90695
90696             SET  ADDRESS OF FCD-MAP  TO WS-FCD-PTR
90697             MOVE LOW-VALUES          TO FCD-MAP
90698             MOVE WS-FCD-SIZE         TO FCD-LENGTH
90699             move fcd--version-number TO FCD-VERSION
90700             MOVE "00"                TO FCD-FILE-STATUS
90701             move fcd--status-defined to FCD-ACCESS-MODE
90702             move fcd--open-closed    to FCD-OPEN-MODE
90703             move fcd--external-name  to FCD-OTHER-FLAGS
90704             SET  FCD-HANDLE          TO NULL
90705             MOVE 8                   TO FCD-NAME-LENGTH
90706             SET  FCD-FILENAME-ADDRESS TO ADDRESS
90707                                       OF WS-FCD-DDNAME
90708             SET  FCD-KEY-DEF-ADDRESS TO NULL
90709             move fcd--allow-readers  to FCD-LOCKTYPES
90710          ELSE
90711             SET  ADDRESS OF FCD-MAP  TO WS-FCD-PTR
90712             IF FCD-OPEN-MODE NOT = fcd--open-closed
90713                DISPLAY "ERRROR - FILE ALREADY OPEN"
90714                STOP RUN
90715             END-IF
90716          END-IF
90717
90718          move fcd--line-sequential-org to FCD-ORGANIZATION
90719          move fcd--recmode-fixed       to FCD-RECORDING-MODE
90720          move 10 to FCD-MIN-REC-LENGTH, FCD-MAX-REC-LENGTH
90721          SET  FCD-RECORD-ADDRESS     TO ADDRESS OF FCD-RECORD
90722
90723      * Move fcd--cr-delimiter for CR LF after each record
90724      *   move fcd--cr-delimiter        to FCD-STATUS-TYPE
90725
90726          move op-open-output to action-code
90727
90728          PERFORM 800-CALL-EXTFH
90729          .
90730
90731      *----------------------------------------------------------------*
90732      *    Process the write request
90733      *
90734       300-WRITE.
90735
90736          move 10 to FCD-CURRENT-REC-LEN
90737          move op-write to action-code
90738          PERFORM 800-CALL-EXTFH
90739          .
90740      *----------------------------------------------------------------*
90741      *    Process the close request
90742      *
90743       400-CLOSE.
90744          MOVE "00"                   TO FCD-FILE-STATUS
90745          move op-close               to action-code
90746          PERFORM 800-CALL-EXTFH
90747          .
90748      *----------------------------------------------------------------*
90749      *    External file handler interface -- all I/O goes through here
90750      *
90751        800-CALL-EXTFH.
90752
90753            CALL "EXTFH" USING ACTION-CODE, FCD-MAP
90754
90755            IF FCD-STATUS-KEY-1 = "9" AND FCD-BINARY = 199
90756               MOVE "10" TO FCD-FILE-STATUS
90757            END-IF
90758            .
90759_ATEOF
90760
90761
90762# FIXME: by default comp-x should not be truncated (see rw-branch)
90763{ set +x
90764$as_echo "$at_srcdir/run_file.at:8258: \$COMPILE -fnotrun prog.cob"
90765at_fn_check_prepare_dynamic "$COMPILE -fnotrun prog.cob" "run_file.at:8258"
90766( $at_check_trace; $COMPILE -fnotrun prog.cob
90767) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90768at_status=$? at_failed=false
90769$at_check_filter
90770at_fn_diff_devnull "$at_stderr" || at_failed=:
90771at_fn_diff_devnull "$at_stdout" || at_failed=:
90772at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8258"
90773$at_failed && at_fn_log_failure
90774$at_traceon; }
90775
90776
90777{ set +x
90778$as_echo "$at_srcdir/run_file.at:8260: TESTOUT=TEST-OUT \$COBCRUN_DIRECT ./prog"
90779at_fn_check_prepare_dynamic "TESTOUT=TEST-OUT $COBCRUN_DIRECT ./prog" "run_file.at:8260"
90780( $at_check_trace; TESTOUT=TEST-OUT $COBCRUN_DIRECT ./prog
90781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90782at_status=$? at_failed=false
90783$at_check_filter
90784at_fn_diff_devnull "$at_stderr" || at_failed=:
90785echo >>"$at_stdout"; $as_echo "FCD SIZE 00216
90786" | \
90787  $at_diff - "$at_stdout" || at_failed=:
90788at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8260"
90789$at_failed && at_fn_log_failure
90790$at_traceon; }
90791
90792
90793
90794
90795
90796# note: currently with the same behaviour as MF
90797#       (ignoring minimal record length for line-sequential)
90798#       this may change in the future...
90799cat >reference <<'_ATEOF'
90800  1
90801  2
90802  3
90803  4
90804  5
90805  6
90806  7
90807  8
90808  9
90809 10
90810_ATEOF
90811
90812
90813{ set +x
90814$as_echo "$at_srcdir/run_file.at:8282: diff reference TEST-OUT"
90815at_fn_check_prepare_trace "run_file.at:8282"
90816( $at_check_trace; diff reference TEST-OUT
90817) >>"$at_stdout" 2>>"$at_stderr" 5>&-
90818at_status=$? at_failed=false
90819$at_check_filter
90820at_fn_diff_devnull "$at_stderr" || at_failed=:
90821at_fn_diff_devnull "$at_stdout" || at_failed=:
90822at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8282"
90823$at_failed && at_fn_log_failure  \
90824"./TEST-OUT"
90825$at_traceon; }
90826
90827
90828  set +x
90829  $at_times_p && times >"$at_times_file"
90830) 5>&1 2>&1 7>&- | eval $at_tee_pipe
90831read at_status <"$at_status_file"
90832#AT_STOP_804
90833#AT_START_805
90834at_fn_group_banner 805 'run_file.at:8287' \
90835  "INDEXED File READ/DELETE/READ" "                  " 4
90836at_xfail=no
90837(
90838  $as_echo "805. $at_setup_line: testing $at_desc ..."
90839  $at_traceon
90840
90841
90842
90843$as_echo "run_file.at:8290" >"$at_check_line_file"
90844(test "$COB_HAS_ISAM" = "no") \
90845  && at_fn_check_skip 77 "$at_srcdir/run_file.at:8290"
90846
90847cat >prog.cob <<'_ATEOF'
90848
90849       IDENTIFICATION DIVISION.
90850
90851       PROGRAM-ID. prog.
90852
90853       ENVIRONMENT DIVISION.
90854       CONFIGURATION SECTION.
90855
90856       INPUT-OUTPUT SECTION.
90857       FILE-CONTROL.
90858           SELECT TSPFILE
90859           ASSIGN TO EXTERNAL TSPFILE
90860           ORGANIZATION INDEXED ACCESS DYNAMIC
90861           RECORD KEY IS CM-CUST-NUM
90862
90863           ALTERNATE RECORD KEY IS SPLIT-KEY2
90864           SOURCE IS CM-TELEPHONE WITH DUPLICATES
90865
90866           ALTERNATE RECORD KEY IS SPLIT-KEY3
90867           SOURCE IS CM-DISK,CM-TAPE WITH DUPLICATES
90868      *         SUPPRESS WHEN ALL "*"
90869           FILE STATUS IS CUST-STAT
90870           .
90871
90872       DATA  DIVISION.
90873       FILE SECTION.
90874       FD  TSPFILE
90875           BLOCK CONTAINS 5 RECORDS.
90876
90877       01  TSPFL-RECORD.
90878           05  TSPFL-REC.
90879           10  CM-CUST-NUM.
90880             15  CM-CUST-PRE                   PICTURE X(3).
90881             15  CM-CUST-NNN                   PICTURE X(5).
90882           10  CM-STATUS                       PICTURE X.
90883           10  CM-COMPANY                      PICTURE X(25).
90884           10  CM-ADDRESS-1                    PICTURE X(25).
90885           10  CM-ADDRESS-2                    PICTURE X(25).
90886           10  CM-ADDRESS-3                    PICTURE X(25).
90887           10  CM-TELEPHONE                    PICTURE 9(10).
90888           10  CM-DP-MGR                       PICTURE X(25).
90889           10  CM-MACHINE                      PICTURE X(8).
90890           10  CM-MEMORY                       PICTURE X(4).
90891           10  CM-DISK                         PICTURE X(8).
90892           10  CM-TAPE                         PICTURE X(8).
90893           10  CM-NO-TERMINALS                 PICTURE 9(5).
90894
90895       WORKING-STORAGE SECTION.
90896
90897       01  CUST-STAT.
90898           05  STAT-1 PICTURE 9(4) COMP SYNC.
90899           05  FILLER REDEFINES STAT-1.
90900               10  STAT-X1 PIC X COMP-X.
90901               10  STAT-X2 PIC X COMP-X.
90902       77  DATA-STAT                      PICTURE XX.
90903       77  ISAM-STAT                      PICTURE XX.
90904       77  BYTE-1  PICTURE 9(3).
90905       77  BYTE-2  PICTURE 9(3).
90906       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
90907       77  SAV-KEY   PIC X(8).
90908
90909       01  TEST-DATA.
90910
90911         02  DATA-CUST-NUM-TBL.
90912
90913           05  FILLER PIC X(8) VALUE "ALP00000".
90914           05  FILLER PIC X(8) VALUE "BET00000".
90915           05  FILLER PIC X(8) VALUE "GAM00000".
90916           05  FILLER PIC X(8) VALUE "DEL00000".
90917           05  FILLER PIC X(8) VALUE "EPS00000".
90918           05  FILLER PIC X(8) VALUE "FOR00000".
90919           05  FILLER PIC X(8) VALUE "GIB00000".
90920           05  FILLER PIC X(8) VALUE "H&J00000".
90921           05  FILLER PIC X(8) VALUE "INC00000".
90922           05  FILLER PIC X(8) VALUE "JOH00000".
90923           05  FILLER PIC X(8) VALUE "KON00000".
90924           05  FILLER PIC X(8) VALUE "LEW00000".
90925           05  FILLER PIC X(8) VALUE "MOR00000".
90926           05  FILLER PIC X(8) VALUE "NEW00000".
90927           05  FILLER PIC X(8) VALUE "OLD00000".
90928           05  FILLER PIC X(8) VALUE "PRE00000".
90929
90930         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
90931                                       PIC X(8) OCCURS 16.
90932         02  DATA-COMPANY-TBL.
90933
90934           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
90935           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
90936           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
90937           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
90938           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
90939           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
90940           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
90941           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
90942           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
90943           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
90944           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
90945           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
90946           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
90947           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
90948           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
90949           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".
90950
90951         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
90952                                       PIC X(25) OCCURS 16.
90953         02  DATA-ADDRESS-1-TBL.
90954
90955           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
90956           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
90957           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
90958           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
90959           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
90960           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
90961           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
90962           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
90963           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
90964           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
90965           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
90966           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
90967           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
90968           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
90969           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
90970           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".
90971
90972         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
90973                                       PIC X(25) OCCURS 16.
90974         02  DATA-ADDRESS-2-TBL.
90975
90976           05  FILLER PIC X(10) VALUE "NEW YORK  ".
90977           05  FILLER PIC X(10) VALUE "ATLANTA   ".
90978           05  FILLER PIC X(10) VALUE "WASHINGTON".
90979           05  FILLER PIC X(10) VALUE "TORONTO   ".
90980           05  FILLER PIC X(10) VALUE "CALGARY   ".
90981           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
90982           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
90983           05  FILLER PIC X(10) VALUE "MADISON   ".
90984           05  FILLER PIC X(10) VALUE "WILBUR    ".
90985           05  FILLER PIC X(10) VALUE "TOPEKA    ".
90986           05  FILLER PIC X(10) VALUE "SEATTLE   ".
90987           05  FILLER PIC X(10) VALUE "NEW JERSEY".
90988           05  FILLER PIC X(10) VALUE "FORT WAYNE".
90989           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
90990           05  FILLER PIC X(10) VALUE "RICHMOND  ".
90991           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
90992
90993         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
90994                                       PIC X(10) OCCURS 16.
90995         02  DATA-ADDRESS-3-TBL.
90996
90997           05  FILLER PIC X(10) VALUE "N.Y.      ".
90998           05  FILLER PIC X(10) VALUE "GEORGIA   ".
90999           05  FILLER PIC X(10) VALUE "D.C.      ".
91000           05  FILLER PIC X(10) VALUE "CANADA    ".
91001           05  FILLER PIC X(10) VALUE "CANADA    ".
91002           05  FILLER PIC X(10) VALUE "CALIFORNIA".
91003           05  FILLER PIC X(10) VALUE "NEW MEXICO".
91004           05  FILLER PIC X(10) VALUE "WISCONSIN ".
91005           05  FILLER PIC X(10) VALUE "DELAWARE  ".
91006           05  FILLER PIC X(10) VALUE "KANSAS    ".
91007           05  FILLER PIC X(10) VALUE "WASHINGTON".
91008           05  FILLER PIC X(10) VALUE "N.J.      ".
91009           05  FILLER PIC X(10) VALUE "COLORADO  ".
91010           05  FILLER PIC X(10) VALUE "OHIO      ".
91011           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
91012           05  FILLER PIC X(10) VALUE "N.Y.      ".
91013
91014         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
91015                                       PIC X(10) OCCURS 16.
91016         02  DATA-TELEPHONE-TBL.
91017
91018           05  FILLER PIC 9(10) VALUE 3131234432.
91019           05  FILLER PIC 9(10) VALUE 4169898509.
91020           05  FILLER PIC 9(10) VALUE 8372487274.
91021           05  FILLER PIC 9(10) VALUE 4169898509.
91022           05  FILLER PIC 9(10) VALUE 5292398745.
91023           05  FILLER PIC 9(10) VALUE 8009329492.
91024           05  FILLER PIC 9(10) VALUE 6456445643.
91025           05  FILLER PIC 9(10) VALUE 6546456333.
91026           05  FILLER PIC 9(10) VALUE 3455445444.
91027           05  FILLER PIC 9(10) VALUE 6456445643.
91028           05  FILLER PIC 9(10) VALUE 7456434355.
91029           05  FILLER PIC 9(10) VALUE 6554456433.
91030           05  FILLER PIC 9(10) VALUE 4169898509.
91031           05  FILLER PIC 9(10) VALUE 7534587453.
91032           05  FILLER PIC 9(10) VALUE 8787458374.
91033           05  FILLER PIC 9(10) VALUE 4169898509.
91034
91035         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
91036                                       PIC 9(10) OCCURS 16.
91037         02  DATA-DP-MGR-TBL.
91038
91039           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
91040           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
91041           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
91042           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
91043           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
91044           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
91045           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
91046           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
91047           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
91048           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
91049           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
91050           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
91051           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
91052           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
91053           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
91054           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".
91055
91056         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
91057                                       PIC X(20) OCCURS 16.
91058         02  DATA-MACHINE-TBL.
91059
91060           05  FILLER PIC X(8) VALUE "UNI-9030".
91061           05  FILLER PIC X(8) VALUE "UNI-9040".
91062           05  FILLER PIC X(8) VALUE "UNI-80/3".
91063           05  FILLER PIC X(8) VALUE "UNI-80/5".
91064           05  FILLER PIC X(8) VALUE "UNI-80/6".
91065           05  FILLER PIC X(8) VALUE "UNI-80/6".
91066           05  FILLER PIC X(8) VALUE "UNI-80/6".
91067           05  FILLER PIC X(8) VALUE "UNI-80/8".
91068           05  FILLER PIC X(8) VALUE "UNI-80/8".
91069           05  FILLER PIC X(8) VALUE "UNI-80/8".
91070           05  FILLER PIC X(8) VALUE "UNI-80/8".
91071           05  FILLER PIC X(8) VALUE "UNI-80/8".
91072           05  FILLER PIC X(8) VALUE "UNI-80/8".
91073           05  FILLER PIC X(8) VALUE "UNI-80/8".
91074           05  FILLER PIC X(8) VALUE "UNI-9040".
91075           05  FILLER PIC X(8) VALUE "UNI-9040".
91076
91077         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
91078                                       PIC X(8) OCCURS 16.
91079         02  DATA-NO-TERMINALS-TBL.
91080
91081           05  FILLER PIC 9(3) COMP-3 VALUE 85.
91082           05  FILLER PIC 9(3) COMP-3 VALUE 34.
91083           05  FILLER PIC 9(3) COMP-3 VALUE 75.
91084           05  FILLER PIC 9(3) COMP-3 VALUE 45.
91085           05  FILLER PIC 9(3) COMP-3 VALUE 90.
91086           05  FILLER PIC 9(3) COMP-3 VALUE 107.
91087           05  FILLER PIC 9(3) COMP-3 VALUE 67.
91088           05  FILLER PIC 9(3) COMP-3 VALUE 32.
91089           05  FILLER PIC 9(3) COMP-3 VALUE 16.
91090           05  FILLER PIC 9(3) COMP-3 VALUE 34.
91091           05  FILLER PIC 9(3) COMP-3 VALUE 128.
91092           05  FILLER PIC 9(3) COMP-3 VALUE 64.
91093           05  FILLER PIC 9(3) COMP-3 VALUE 110.
91094           05  FILLER PIC 9(3) COMP-3 VALUE 324.
91095           05  FILLER PIC 9(3) COMP-3 VALUE 124.
91096           05  FILLER PIC 9(3) COMP-3 VALUE 86.
91097
91098         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
91099                                       PIC 9(3) COMP-3 OCCURS 16.
91100
91101       01  WORK-AREA.
91102           05  REC-NUM                PICTURE 9(8) COMP VALUE 0.
91103           05  REC-COUNT              PICTURE 9(8) COMP VALUE 0.
91104           05  REC-MAX                PICTURE 9(6) VALUE 16.
91105           05  SUB                    PICTURE 9(4) COMP SYNC.
91106               88  ODD-RECORD         VALUE 1 3 5 7 9 10 11.
91107               88  NULL-KEY           VALUE 4 5 8 12 14.
91108
91109           05  TSPFL-KEY              PICTURE X(8).
91110
91111       PROCEDURE DIVISION.
91112
91113       MAINFILE.
91114           DISPLAY "Loading sample data file."
91115                            UPON CONSOLE.
91116           PERFORM LOADFILE.
91117           DISPLAY "Sample data file load complete."
91118                            UPON CONSOLE.
91119           PERFORM LIST-FILE.
91120           PERFORM LIST-PHONE.
91121           PERFORM DELSEQ-FILE.
91122           PERFORM LIST-PHONE.
91123           PERFORM LOADFILE.
91124           PERFORM LIST-PHONE.
91125           PERFORM DELPRV-FILE.
91126           PERFORM LIST-PHONE.
91127      *    PERFORM DEL-FILE.
91128           STOP RUN.
91129
91130       LOADFILE.
91131           OPEN OUTPUT TSPFILE
91132           IF  CUST-STAT NOT = "00"
91133           AND CUST-STAT NOT = "05"
91134               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
91135               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
91136               " opening 'testisam' file"
91137                                UPON CONSOLE
91138               STOP RUN
91139           END-IF.
91140
91141           PERFORM 1000-LOAD-RECORD
91142                        VARYING SUB FROM 1 BY 1
91143                          UNTIL SUB > MAX-SUB.
91144
91145           CLOSE TSPFILE.
91146
91147       DEL-FILE.
91148           DISPLAY "Rewrite sample data file: " CUST-STAT
91149                            UPON CONSOLE.
91150
91151           OPEN I-O TSPFILE
91152           IF  CUST-STAT NOT = "00"
91153           AND CUST-STAT NOT = "05"
91154               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
91155               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
91156               " opening 'testisam' file"
91157                                UPON CONSOLE
91158               STOP RUN
91159           END-IF.
91160           MOVE "DEL00000" TO CM-CUST-NUM
91161           READ TSPFILE
91162           IF  CUST-STAT NOT = "00"
91163               DISPLAY "Error " CUST-STAT " read lock " CM-CUST-NUM
91164           END-IF
91165           DELETE TSPFILE
91166           IF  CUST-STAT NOT = "00"
91167               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91168           END-IF
91169           MOVE "INC00000" TO CM-CUST-NUM
91170           READ TSPFILE
91171           IF  CUST-STAT NOT = "00"
91172               DISPLAY "Error " CUST-STAT " read lock " CM-CUST-NUM
91173           END-IF
91174           DELETE TSPFILE
91175           IF  CUST-STAT NOT = "00"
91176               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91177           END-IF
91178
91179           DISPLAY "Sample data file rewrite complete."
91180                            UPON CONSOLE.
91181           CLOSE TSPFILE.
91182
91183       DELSEQ-FILE.
91184           DISPLAY "Test Read/Delete" UPON CONSOLE.
91185           MOVE "00" TO  CUST-STAT.
91186           OPEN I-O TSPFILE
91187           IF  CUST-STAT NOT = "00"
91188           AND CUST-STAT NOT = "05"
91189               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
91190               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
91191               " opening 'testisam' file"
91192                                UPON CONSOLE
91193               STOP RUN
91194           END-IF.
91195           MOVE "INC00000" TO CM-CUST-NUM
91196           READ TSPFILE
91197           IF  CUST-STAT NOT = "00"
91198               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91199           END-IF
91200           DELETE TSPFILE
91201           IF  CUST-STAT NOT = "00"
91202           AND CUST-STAT NOT = "02"
91203               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91204           ELSE
91205               DISPLAY " Delete: " CM-CUST-NUM " random"
91206           END-IF
91207           MOVE "ALP00000" TO CM-CUST-NUM
91208           READ TSPFILE
91209           IF  CUST-STAT NOT = "00"
91210           AND CUST-STAT NOT = "02"
91211               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91212           END-IF
91213           DELETE TSPFILE
91214           IF  CUST-STAT NOT = "00"
91215           AND CUST-STAT NOT = "02"
91216               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91217           ELSE
91218               DISPLAY " Delete: " CM-CUST-NUM " random"
91219           END-IF
91220           READ TSPFILE NEXT RECORD
91221           IF  CUST-STAT NOT = "00"
91222           AND CUST-STAT NOT = "02"
91223               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91224           ELSE
91225               DISPLAY "   Read: " CM-CUST-NUM " " CM-TELEPHONE
91226           END-IF
91227           MOVE "PRE00000" TO CM-CUST-NUM
91228           READ TSPFILE
91229           IF  CUST-STAT NOT = "00"
91230           AND CUST-STAT NOT = "02"
91231               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91232           END-IF
91233           DELETE TSPFILE
91234           IF  CUST-STAT NOT = "00"
91235           AND CUST-STAT NOT = "02"
91236               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91237           ELSE
91238               DISPLAY " Delete: " CM-CUST-NUM " random"
91239           END-IF
91240           READ TSPFILE NEXT RECORD
91241           IF  CUST-STAT NOT = "00"
91242           AND CUST-STAT NOT = "02"
91243               DISPLAY "Expected " CUST-STAT
91244                       " after delete " CM-CUST-NUM
91245           ELSE
91246               DISPLAY "   Read: " CM-CUST-NUM " " CM-TELEPHONE
91247           END-IF
91248
91249           MOVE SPACES TO TSPFL-RECORD
91250           MOVE '4169898509' TO CM-TELEPHONE
91251           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
91252           IF  CUST-STAT NOT = "00"
91253               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91254           END-IF
91255           PERFORM 4 TIMES
91256             READ TSPFILE NEXT RECORD
91257             IF  CUST-STAT NOT = "00"
91258             AND CUST-STAT NOT = "02"
91259                 DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
91260             ELSE
91261                 DISPLAY "Initial: " CM-CUST-NUM " " CM-TELEPHONE
91262                 IF CM-TELEPHONE = '4169898509'
91263                    MOVE CM-CUST-NUM TO SAV-KEY
91264                 END-IF
91265             END-IF
91266           END-PERFORM
91267           MOVE SPACES TO TSPFL-RECORD
91268           MOVE '4169898509' TO CM-TELEPHONE
91269           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
91270           IF  CUST-STAT NOT = "00"
91271               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91272           END-IF
91273           READ TSPFILE NEXT RECORD
91274           IF  CUST-STAT NOT = "00"
91275           AND CUST-STAT NOT = "02"
91276               DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
91277           ELSE
91278               DISPLAY "  Start: " CM-CUST-NUM " " CM-TELEPHONE
91279           END-IF
91280           READ TSPFILE NEXT RECORD
91281           IF  CUST-STAT NOT = "00"
91282           AND CUST-STAT NOT = "02"
91283               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91284           ELSE
91285               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
91286           END-IF
91287           DELETE TSPFILE
91288           IF  CUST-STAT NOT = "00"
91289           AND CUST-STAT NOT = "02"
91290               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91291           ELSE
91292               DISPLAY " Delete: " CM-CUST-NUM " sequential"
91293           END-IF
91294           READ TSPFILE NEXT RECORD
91295           IF  CUST-STAT NOT = "00"
91296           AND CUST-STAT NOT = "02"
91297               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91298           ELSE
91299               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
91300               IF CM-CUST-NUM NOT = SAV-KEY
91301                  DISPLAY "Problem! Expected:" SAV-KEY
91302               END-IF
91303           END-IF
91304           READ TSPFILE NEXT RECORD
91305           IF  CUST-STAT NOT = "00"
91306           AND CUST-STAT NOT = "02"
91307               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91308           ELSE
91309               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
91310           END-IF
91311           DELETE TSPFILE
91312           IF  CUST-STAT NOT = "00"
91313           AND CUST-STAT NOT = "02"
91314               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91315           ELSE
91316               DISPLAY " Delete: " CM-CUST-NUM " sequential"
91317           END-IF
91318
91319           CLOSE TSPFILE.
91320
91321       DELPRV-FILE.
91322           DISPLAY "Read Prev/Delete" UPON CONSOLE.
91323           MOVE "00" TO  CUST-STAT.
91324           OPEN I-O TSPFILE
91325           IF  CUST-STAT NOT = "00"
91326           AND CUST-STAT NOT = "05"
91327               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
91328               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
91329               " opening 'testisam' file"
91330                                UPON CONSOLE
91331               STOP RUN
91332           END-IF.
91333
91334           MOVE SPACES TO TSPFL-RECORD
91335           MOVE '5292398745' TO CM-TELEPHONE
91336           START TSPFILE KEY LESS THAN SPLIT-KEY2
91337           IF  CUST-STAT NOT = "00"
91338               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91339           END-IF
91340           PERFORM VARYING REC-NUM FROM 1 BY 1
91341                     UNTIL REC-NUM > 4
91342             READ TSPFILE PREVIOUS RECORD
91343             IF  CUST-STAT NOT = "00"
91344             AND CUST-STAT NOT = "02"
91345                 DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
91346             ELSE
91347                 DISPLAY REC-NUM " Initial: " CM-CUST-NUM
91348                         " " CM-TELEPHONE
91349                 IF REC-NUM = 3
91350                    MOVE CM-CUST-NUM TO SAV-KEY
91351                 END-IF
91352             END-IF
91353           END-PERFORM
91354           MOVE SPACES TO TSPFL-RECORD
91355           MOVE '5292398745' TO CM-TELEPHONE
91356           START TSPFILE KEY LESS THAN SPLIT-KEY2
91357           IF  CUST-STAT NOT = "00"
91358               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91359           END-IF
91360           READ TSPFILE PREVIOUS RECORD
91361           IF  CUST-STAT NOT = "00"
91362           AND CUST-STAT NOT = "02"
91363               DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
91364           ELSE
91365               DISPLAY "  Start: " CM-CUST-NUM " " CM-TELEPHONE
91366           END-IF
91367           READ TSPFILE PREVIOUS RECORD
91368           IF  CUST-STAT NOT = "00"
91369           AND CUST-STAT NOT = "02"
91370               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91371           ELSE
91372               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
91373           END-IF
91374           DELETE TSPFILE
91375           IF  CUST-STAT NOT = "00"
91376           AND CUST-STAT NOT = "02"
91377               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91378           ELSE
91379               DISPLAY " Delete: " CM-CUST-NUM " sequential"
91380           END-IF
91381           READ TSPFILE PREVIOUS RECORD
91382           IF  CUST-STAT NOT = "00"
91383           AND CUST-STAT NOT = "02"
91384               DISPLAY "Error " CUST-STAT " read prev " CM-CUST-NUM
91385               CLOSE TSPFILE
91386               STOP RUN
91387           ELSE
91388               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
91389               IF CM-CUST-NUM NOT = SAV-KEY
91390                  DISPLAY "Problem! Expected:" SAV-KEY
91391                  CLOSE TSPFILE
91392                  STOP RUN
91393               END-IF
91394           END-IF
91395           READ TSPFILE PREVIOUS RECORD
91396           IF  CUST-STAT NOT = "00"
91397           AND CUST-STAT NOT = "02"
91398               DISPLAY "Error " CUST-STAT " read prev " CM-CUST-NUM
91399           ELSE
91400               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
91401           END-IF
91402           DELETE TSPFILE
91403           IF  CUST-STAT NOT = "00"
91404           AND CUST-STAT NOT = "02"
91405               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
91406           ELSE
91407               DISPLAY " Delete: " CM-CUST-NUM " sequential"
91408           END-IF
91409
91410           CLOSE TSPFILE.
91411
91412       LIST-FILE.
91413           DISPLAY "List sample data file"
91414                            UPON CONSOLE.
91415           MOVE "00" TO  CUST-STAT.
91416           MOVE 0 TO REC-NUM.
91417           OPEN I-O TSPFILE
91418           MOVE "        " TO CM-CUST-NUM
91419           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
91420           IF  CUST-STAT NOT = "00"
91421               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91422           END-IF
91423           READ TSPFILE NEXT RECORD
91424                AT END
91425                    MOVE "99" TO CUST-STAT
91426           END-READ.
91427           IF  CUST-STAT NOT = "00"
91428               DISPLAY "Error " CUST-STAT " first read " CM-CUST-NUM
91429           END-IF
91430           PERFORM UNTIL CUST-STAT NOT = "00"
91431                      OR REC-NUM > REC-MAX
91432               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
91433                        " Disk=" CM-DISK
91434                        "." UPON CONSOLE
91435               READ TSPFILE NEXT RECORD
91436                    AT END
91437                        MOVE "99" TO CUST-STAT
91438               END-READ
91439               ADD 1 TO REC-NUM
91440           END-PERFORM.
91441           IF CUST-STAT = "99"
91442               DISPLAY "Hit End of File" UPON CONSOLE
91443           END-IF.
91444           CLOSE TSPFILE.
91445
91446       LIST-PHONE.
91447           DISPLAY "List sample data file by Phone"
91448                            UPON CONSOLE.
91449           MOVE "00" TO  CUST-STAT.
91450           MOVE 0 TO REC-NUM.
91451           OPEN I-O TSPFILE
91452           MOVE SPACES TO TSPFL-RECORD
91453           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
91454           IF  CUST-STAT NOT = "00"
91455           AND CUST-STAT NOT = "02"
91456               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
91457           END-IF
91458           READ TSPFILE NEXT RECORD
91459                AT END
91460                    MOVE "99" TO CUST-STAT
91461           END-READ.
91462           IF  CUST-STAT NOT = "00"
91463           AND CUST-STAT NOT = "02"
91464               DISPLAY "Error " CUST-STAT " first read " CM-CUST-NUM
91465           END-IF
91466           PERFORM UNTIL CUST-STAT NOT = "00"
91467                     AND CUST-STAT NOT = "02"
91468               DISPLAY "Ph=" CM-TELEPHONE
91469                       " Key: " CM-CUST-NUM " is " CM-COMPANY
91470                       "." UPON CONSOLE
91471               READ TSPFILE NEXT RECORD
91472                    AT END
91473                        MOVE "99" TO CUST-STAT
91474               END-READ
91475               ADD 1 TO REC-NUM
91476           END-PERFORM.
91477           IF CUST-STAT = "99"
91478               DISPLAY "Hit End of File" UPON CONSOLE
91479           END-IF.
91480           CLOSE TSPFILE.
91481
91482      *---------------------------------------------------------------*
91483      *         LOAD A RECORD FROM DATA TABLES                        *
91484      *---------------------------------------------------------------*
91485
91486       1000-LOAD-RECORD.
91487
91488           MOVE SPACES                       TO TSPFL-RECORD.
91489           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
91490           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
91491           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
91492           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
91493           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
91494           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
91495           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
91496           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
91497           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
91498           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
91499
91500           IF  ODD-RECORD
91501               MOVE "8417"                   TO CM-DISK
91502               MOVE "1600 BPI"               TO CM-TAPE
91503               MOVE "1MEG"                   TO CM-MEMORY
91504           ELSE
91505               MOVE "8470"                   TO CM-DISK
91506               MOVE "6250 BPI"               TO CM-TAPE
91507               MOVE "3MEG"                   TO CM-MEMORY.
91508           IF  NULL-KEY
91509               MOVE ALL "*"                  TO CM-DISK
91510               MOVE ALL "*"                  TO CM-TAPE.
91511
91512           WRITE TSPFL-RECORD
91513           IF  CUST-STAT NOT = "00"
91514           AND CUST-STAT NOT = "02"
91515               DISPLAY "WRITE: " TSPFL-KEY ", Status: "
91516                       CUST-STAT UPON CONSOLE
91517           END-IF.
91518_ATEOF
91519
91520
91521{ set +x
91522$as_echo "$at_srcdir/run_file.at:8964: \$COMPILE prog.cob"
91523at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:8964"
91524( $at_check_trace; $COMPILE prog.cob
91525) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91526at_status=$? at_failed=false
91527$at_check_filter
91528at_fn_diff_devnull "$at_stderr" || at_failed=:
91529at_fn_diff_devnull "$at_stdout" || at_failed=:
91530at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8964"
91531$at_failed && at_fn_log_failure
91532$at_traceon; }
91533
91534
91535{ set +x
91536$as_echo "$at_srcdir/run_file.at:8966: \$COBCRUN_DIRECT ./prog"
91537at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:8966"
91538( $at_check_trace; $COBCRUN_DIRECT ./prog
91539) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91540at_status=$? at_failed=false
91541$at_check_filter
91542at_fn_diff_devnull "$at_stderr" || at_failed=:
91543echo >>"$at_stdout"; $as_echo "Loading sample data file.
91544Sample data file load complete.
91545List sample data file
91546Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    .
91547Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
91548Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********.
91549Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********.
91550Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
91551Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
91552Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
91553Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********.
91554Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
91555Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
91556Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
91557Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=********.
91558Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
91559Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=********.
91560Key: OLD00000 is OLD TYME PIZZA MFG. CO.   Disk=8470    .
91561Key: PRE00000 is PRESTIGE OFFICE FURNITURE Disk=8470    .
91562Hit End of File
91563List sample data file by Phone
91564Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
91565Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
91566Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
91567Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
91568Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
91569Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
91570Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
91571Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
91572Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
91573Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
91574Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
91575Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
91576Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
91577Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
91578Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
91579Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
91580Hit End of File
91581Test Read/Delete
91582 Delete: INC00000 random
91583 Delete: ALP00000 random
91584   Read: BET00000 4169898509
91585 Delete: PRE00000 random
91586Expected 10 after delete PRE00000
91587Initial: BET00000 4169898509
91588Initial: DEL00000 4169898509
91589Initial: MOR00000 4169898509
91590Initial: EPS00000 5292398745
91591  Start: BET00000 4169898509
91592   Next: DEL00000 4169898509
91593 Delete: DEL00000 sequential
91594   Next: MOR00000 4169898509
91595   Next: EPS00000 5292398745
91596 Delete: EPS00000 sequential
91597List sample data file by Phone
91598Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
91599Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
91600Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
91601Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
91602Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
91603Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
91604Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
91605Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
91606Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
91607Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
91608Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
91609Hit End of File
91610List sample data file by Phone
91611Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
91612Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
91613Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
91614Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
91615Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
91616Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
91617Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
91618Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
91619Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
91620Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
91621Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
91622Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
91623Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
91624Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
91625Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
91626Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
91627Hit End of File
91628Read Prev/Delete
9162900000001 Initial: PRE00000 4169898509
9163000000002 Initial: MOR00000 4169898509
9163100000003 Initial: DEL00000 4169898509
9163200000004 Initial: BET00000 4169898509
91633  Start: PRE00000 4169898509
91634   Prev: MOR00000 4169898509
91635 Delete: MOR00000 sequential
91636   Prev: DEL00000 4169898509
91637   Prev: BET00000 4169898509
91638 Delete: BET00000 sequential
91639List sample data file by Phone
91640Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
91641Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
91642Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
91643Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
91644Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
91645Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
91646Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
91647Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
91648Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
91649Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
91650Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
91651Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
91652Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
91653Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
91654Hit End of File
91655" | \
91656  $at_diff - "$at_stdout" || at_failed=:
91657at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8966"
91658$at_failed && at_fn_log_failure
91659$at_traceon; }
91660
91661
91662  set +x
91663  $at_times_p && times >"$at_times_file"
91664) 5>&1 2>&1 7>&- | eval $at_tee_pipe
91665read at_status <"$at_status_file"
91666#AT_STOP_805
91667#AT_START_806
91668at_fn_group_banner 806 'run_file.at:9084' \
91669  "TURN EC-I-O" "                                    " 4
91670at_xfail=yes
91671(
91672  $as_echo "806. $at_setup_line: testing $at_desc ..."
91673  $at_traceon
91674
91675
91676
91677
91678# FIXME: FUNCTION EXCEPTION-STATUS should be empty when an EC occurs but has been
91679#   >>TURN'd off.
91680
91681cat >prog.cob <<'_ATEOF'
91682
91683       IDENTIFICATION DIVISION.
91684       PROGRAM-ID. prog.
91685
91686       ENVIRONMENT DIVISION.
91687       INPUT-OUTPUT SECTION.
91688       FILE-CONTROL.
91689           SELECT OPTIONAL f ASSIGN "out.txt"
91690               SEQUENTIAL
91691               FILE STATUS f-status.
91692
91693           SELECT g ASSIGN "out.txt"
91694               SEQUENTIAL.
91695
91696       DATA DIVISION.
91697       FILE SECTION.
91698       FD  f.
91699       01  f-rec PIC X.
91700
91701       FD  g.
91702       01  g-rec PIC X.
91703
91704       WORKING-STORAGE SECTION.
91705       01  f-status PIC XX.
91706
91707       PROCEDURE DIVISION.
91708           OPEN OUTPUT f
91709           WRITE f-rec FROM "a"
91710           CLOSE f
91711
91712           SET LAST EXCEPTION TO OFF
91713           >>TURN EC-I-O CHECKING ON
91714           *> Read f too many times without libcob error
91715           OPEN INPUT f
91716           PERFORM 2 TIMES
91717               READ f
91718               DISPLAY f-rec
91719           END-PERFORM
91720
91721           DISPLAY f-status
91722           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
91723           SET LAST EXCEPTION TO OFF
91724
91725           CLOSE f
91726
91727           >>TURN EC-I-O g CHECKING ON
91728
91729           *> Read f too many times without libcob error
91730           OPEN INPUT f
91731           PERFORM 2 TIMES
91732               READ f
91733               DISPLAY f-rec
91734           END-PERFORM
91735
91736           DISPLAY f-status
91737           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
91738           SET LAST EXCEPTION TO OFF
91739
91740           CLOSE f
91741
91742           *> Read g too many times with libcob error
91743           OPEN INPUT g
91744           PERFORM 2 TIMES
91745               READ g
91746               DISPLAY g-rec
91747           END-PERFORM
91748
91749           CLOSE g
91750           .
91751_ATEOF
91752
91753
91754{ set +x
91755$as_echo "$at_srcdir/run_file.at:9162: \$COMPILE prog.cob "
91756at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_file.at:9162"
91757( $at_check_trace; $COMPILE prog.cob
91758) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91759at_status=$? at_failed=false
91760$at_check_filter
91761at_fn_diff_devnull "$at_stderr" || at_failed=:
91762at_fn_diff_devnull "$at_stdout" || at_failed=:
91763at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:9162"
91764$at_failed && at_fn_log_failure
91765$at_traceon; }
91766
91767{ set +x
91768$as_echo "$at_srcdir/run_file.at:9163: \$COBCRUN_DIRECT ./prog"
91769at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:9163"
91770( $at_check_trace; $COBCRUN_DIRECT ./prog
91771) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91772at_status=$? at_failed=false
91773$at_check_filter
91774echo >>"$at_stderr"; $as_echo "libcob: prog.cob:61: error: end of file (status = 10) for file g ('out.txt') on READ
91775libcob: prog.cob:61: warning: implicit CLOSE of g ('out.txt')
91776" | \
91777  $at_diff - "$at_stderr" || at_failed=:
91778echo >>"$at_stdout"; $as_echo "a
91779a
9178010
91781
91782a
91783a
9178410
91785
91786a
91787" | \
91788  $at_diff - "$at_stdout" || at_failed=:
91789at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:9163"
91790$at_failed && at_fn_log_failure
91791$at_traceon; }
91792
91793
91794  set +x
91795  $at_times_p && times >"$at_times_file"
91796) 5>&1 2>&1 7>&- | eval $at_tee_pipe
91797read at_status <"$at_status_file"
91798#AT_STOP_806
91799#AT_START_807
91800at_fn_group_banner 807 'run_reportwriter.at:23' \
91801  "Report Line Order" "                              " 4
91802at_xfail=no
91803(
91804  $as_echo "807. $at_setup_line: testing $at_desc ..."
91805  $at_traceon
91806
91807
91808
91809cat >prog.cob <<'_ATEOF'
91810
91811       IDENTIFICATION DIVISION.
91812       PROGRAM-ID. prog.
91813      *>****************************************************************
91814      *> 11NOV2013 BUG 001 - RWCS Presents RF before it presents the  **
91815      *>                     last PF                                  **
91816      *>****************************************************************
91817       ENVIRONMENT DIVISION.
91818       INPUT-OUTPUT SECTION.
91819       FILE-CONTROL.
91820           SELECT REPORT-FILE     ASSIGN TO EXTERNAL PRINTOUT
91821                                       LINE SEQUENTIAL.
91822       DATA DIVISION.
91823       FILE SECTION.
91824       FD  REPORT-FILE
91825           REPORT IS RWCS-Report.
91826       WORKING-STORAGE SECTION.
91827       REPORT SECTION.
91828       RD  RWCS-Report
91829           PAGE LIMIT 12
91830               HEADING 1
91831               FIRST DETAIL 4
91832               LAST DETAIL 7.
91833
91834       01  TYPE REPORT HEADING LINE 1.
91835           05 COL 1 VALUE 'RH'.
91836
91837       01  TYPE PAGE HEADING LINE PLUS 1.
91838           05 COL 1 VALUE 'PH'.
91839
91840       01  Detail-Line TYPE DETAIL LINE PLUS 1.
91841           05 COL 1 VALUE 'DE'.
91842
91843       01  TYPE PAGE FOOTING LINE NUMBER 10.
91844           05 COL 1 VALUE 'PF'.
91845
91846       01  TYPE REPORT FOOTING LINE NUMBER PLUS 1.
91847           05 COL 1 VALUE 'RF'.
91848
91849       PROCEDURE DIVISION.
91850       010-Main SECTION.
91851       1.  OPEN OUTPUT REPORT-FILE
91852           INITIATE RWCS-Report
91853           GENERATE Detail-Line
91854           GENERATE Detail-Line
91855           GENERATE Detail-Line
91856           GENERATE Detail-Line
91857           GENERATE Detail-Line
91858           GENERATE Detail-Line
91859           GENERATE Detail-Line
91860           GENERATE Detail-Line
91861           TERMINATE RWCS-Report
91862           CLOSE REPORT-FILE
91863           .
91864_ATEOF
91865
91866
91867{ set +x
91868$as_echo "$at_srcdir/run_reportwriter.at:82: \$COMPILE prog.cob"
91869at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:82"
91870( $at_check_trace; $COMPILE prog.cob
91871) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91872at_status=$? at_failed=false
91873$at_check_filter
91874at_fn_diff_devnull "$at_stderr" || at_failed=:
91875at_fn_diff_devnull "$at_stdout" || at_failed=:
91876at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:82"
91877$at_failed && at_fn_log_failure
91878$at_traceon; }
91879
91880
91881{ set +x
91882$as_echo "$at_srcdir/run_reportwriter.at:84: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
91883at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:84"
91884( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./prog
91885) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91886at_status=$? at_failed=false
91887$at_check_filter
91888at_fn_diff_devnull "$at_stderr" || at_failed=:
91889at_fn_diff_devnull "$at_stdout" || at_failed=:
91890at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:84"
91891$at_failed && at_fn_log_failure
91892$at_traceon; }
91893
91894
91895
91896
91897
91898cat >reference <<'_ATEOF'
91899RH
91900PH
91901
91902DE
91903DE
91904DE
91905DE
91906
91907
91908PF
91909
91910PH
91911
91912
91913DE
91914DE
91915DE
91916DE
91917
91918
91919
91920PF
91921
91922RF
91923_ATEOF
91924
91925
91926{ set +x
91927$as_echo "$at_srcdir/run_reportwriter.at:115: diff reference report.txt"
91928at_fn_check_prepare_trace "run_reportwriter.at:115"
91929( $at_check_trace; diff reference report.txt
91930) >>"$at_stdout" 2>>"$at_stderr" 5>&-
91931at_status=$? at_failed=false
91932$at_check_filter
91933at_fn_diff_devnull "$at_stderr" || at_failed=:
91934at_fn_diff_devnull "$at_stdout" || at_failed=:
91935at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:115"
91936$at_failed && at_fn_log_failure  \
91937"./report.txt"
91938$at_traceon; }
91939
91940
91941  set +x
91942  $at_times_p && times >"$at_times_file"
91943) 5>&1 2>&1 7>&- | eval $at_tee_pipe
91944read at_status <"$at_status_file"
91945#AT_STOP_807
91946#AT_START_808
91947at_fn_group_banner 808 'run_reportwriter.at:120' \
91948  "REPORT COL PLUS" "                                " 4
91949at_xfail=no
91950(
91951  $as_echo "808. $at_setup_line: testing $at_desc ..."
91952  $at_traceon
91953
91954
91955
91956cat >prog.cob <<'_ATEOF'
91957
91958       IDENTIFICATION DIVISION.
91959       PROGRAM-ID. prog.
91960      *>****************************************************************
91961      *> 11NOV2013 BUG 002 - RWCS Treats "COL PLUS n" the same as     **
91962      *>                     "COL n".                                 **
91963      *>****************************************************************
91964       ENVIRONMENT DIVISION.
91965       INPUT-OUTPUT SECTION.
91966       FILE-CONTROL.
91967           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
91968                                       LINE SEQUENTIAL.
91969       DATA DIVISION.
91970       FILE SECTION.
91971       FD  REPORT-FILE
91972           REPORT IS RWCS-Report.
91973       WORKING-STORAGE SECTION.
91974       REPORT SECTION.
91975       RD  RWCS-Report
91976           PAGE LIMIT 12
91977               HEADING 1
91978               FIRST DETAIL 4
91979               LAST DETAIL 7.
91980
91981       01  Detail-Line TYPE DETAIL.
91982           05 LINE NUMBER PLUS 1.
91983              10 COL 1      PIC X(20)  VALUE '12345678901234567890'.
91984              10 COL PLUS 3 PIC X(4)   VALUE 'ABCD'.
91985              10 COL 30     PIC X(1)   VALUE '!'.
91986
91987       PROCEDURE DIVISION.
91988       010-Main SECTION.
91989       1.  OPEN OUTPUT REPORT-FILE
91990           INITIATE RWCS-Report
91991           GENERATE Detail-Line
91992           TERMINATE RWCS-Report
91993           CLOSE REPORT-FILE
91994           .
91995_ATEOF
91996
91997
91998{ set +x
91999$as_echo "$at_srcdir/run_reportwriter.at:163: \$COMPILE prog.cob"
92000at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:163"
92001( $at_check_trace; $COMPILE prog.cob
92002) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92003at_status=$? at_failed=false
92004$at_check_filter
92005at_fn_diff_devnull "$at_stderr" || at_failed=:
92006at_fn_diff_devnull "$at_stdout" || at_failed=:
92007at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:163"
92008$at_failed && at_fn_log_failure
92009$at_traceon; }
92010
92011
92012{ set +x
92013$as_echo "$at_srcdir/run_reportwriter.at:165: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
92014at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:165"
92015( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./prog
92016) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92017at_status=$? at_failed=false
92018$at_check_filter
92019at_fn_diff_devnull "$at_stderr" || at_failed=:
92020at_fn_diff_devnull "$at_stdout" || at_failed=:
92021at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:165"
92022$at_failed && at_fn_log_failure
92023$at_traceon; }
92024
92025
92026
92027
92028
92029cat >reference <<'_ATEOF'
92030
92031
92032
9203312345678901234567890  ABCD   !
92034
92035
92036
92037
92038
92039
92040
92041
92042_ATEOF
92043
92044
92045{ set +x
92046$as_echo "$at_srcdir/run_reportwriter.at:184: diff reference report.txt"
92047at_fn_check_prepare_trace "run_reportwriter.at:184"
92048( $at_check_trace; diff reference report.txt
92049) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92050at_status=$? at_failed=false
92051$at_check_filter
92052at_fn_diff_devnull "$at_stderr" || at_failed=:
92053at_fn_diff_devnull "$at_stdout" || at_failed=:
92054at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:184"
92055$at_failed && at_fn_log_failure  \
92056"./report.txt"
92057$at_traceon; }
92058
92059
92060  set +x
92061  $at_times_p && times >"$at_times_file"
92062) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92063read at_status <"$at_status_file"
92064#AT_STOP_808
92065#AT_START_809
92066at_fn_group_banner 809 'run_reportwriter.at:189' \
92067  "Report Overlapping Fields" "                      " 4
92068at_xfail=no
92069(
92070  $as_echo "809. $at_setup_line: testing $at_desc ..."
92071  $at_traceon
92072
92073
92074
92075cat >prog.cob <<'_ATEOF'
92076
92077       IDENTIFICATION DIVISION.
92078       PROGRAM-ID. prog.
92079      *>****************************************************************
92080      *> 11NOV2013 BUG 003 - RWCS causes "Abort trap 6" if an attempt **
92081      *>                     is made to overwrite previous field on   **
92082      *>                     a line                                   **
92083      *>****************************************************************
92084       ENVIRONMENT DIVISION.
92085       INPUT-OUTPUT SECTION.
92086       FILE-CONTROL.
92087           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
92088                                       LINE SEQUENTIAL.
92089       DATA DIVISION.
92090       FILE SECTION.
92091       FD  REPORT-FILE
92092           REPORT IS RWCS-Report.
92093       WORKING-STORAGE SECTION.
92094       REPORT SECTION.
92095       RD  RWCS-Report
92096           PAGE LIMIT 12
92097               HEADING 1
92098               FIRST DETAIL 4
92099               LAST DETAIL 7.
92100
92101       01  Detail-Line TYPE DETAIL.
92102           05 LINE NUMBER PLUS 1.
92103              10 COL 1      PIC X(20)  VALUE '12345678901234567890'.
92104              10 COL 10     PIC X(4)   VALUE 'ABCD'.
92105
92106       PROCEDURE DIVISION.
92107       010-Main SECTION.
92108       1.  OPEN OUTPUT REPORT-FILE
92109           INITIATE RWCS-Report
92110           GENERATE Detail-Line
92111           TERMINATE RWCS-Report
92112           CLOSE REPORT-FILE
92113           .
92114_ATEOF
92115
92116
92117{ set +x
92118$as_echo "$at_srcdir/run_reportwriter.at:232: \$COMPILE prog.cob"
92119at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:232"
92120( $at_check_trace; $COMPILE prog.cob
92121) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92122at_status=$? at_failed=false
92123$at_check_filter
92124at_fn_diff_devnull "$at_stderr" || at_failed=:
92125at_fn_diff_devnull "$at_stdout" || at_failed=:
92126at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:232"
92127$at_failed && at_fn_log_failure
92128$at_traceon; }
92129
92130
92131{ set +x
92132$as_echo "$at_srcdir/run_reportwriter.at:234: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
92133at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:234"
92134( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./prog
92135) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92136at_status=$? at_failed=false
92137$at_check_filter
92138at_fn_diff_devnull "$at_stderr" || at_failed=:
92139at_fn_diff_devnull "$at_stdout" || at_failed=:
92140at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:234"
92141$at_failed && at_fn_log_failure
92142$at_traceon; }
92143
92144
92145
92146
92147
92148cat >reference <<'_ATEOF'
92149
92150
92151
92152123456789ABCD4567890
92153
92154
92155
92156
92157
92158
92159
92160
92161_ATEOF
92162
92163
92164{ set +x
92165$as_echo "$at_srcdir/run_reportwriter.at:253: diff reference report.txt"
92166at_fn_check_prepare_trace "run_reportwriter.at:253"
92167( $at_check_trace; diff reference report.txt
92168) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92169at_status=$? at_failed=false
92170$at_check_filter
92171at_fn_diff_devnull "$at_stderr" || at_failed=:
92172at_fn_diff_devnull "$at_stdout" || at_failed=:
92173at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:253"
92174$at_failed && at_fn_log_failure  \
92175"./report.txt"
92176$at_traceon; }
92177
92178
92179  set +x
92180  $at_times_p && times >"$at_times_file"
92181) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92182read at_status <"$at_status_file"
92183#AT_STOP_809
92184#AT_START_810
92185at_fn_group_banner 810 'run_reportwriter.at:258' \
92186  "EMPTY REPORT" "                                   " 4
92187at_xfail=no
92188(
92189  $as_echo "810. $at_setup_line: testing $at_desc ..."
92190  $at_traceon
92191
92192
92193
92194cat >prog.cob <<'_ATEOF'
92195
92196       IDENTIFICATION DIVISION.
92197       PROGRAM-ID. prog.
92198      *>****************************************************************
92199      *> 11NOV2013 BUG 004 - RWCS INITIATE TERMINATE W/O GENERATE     **
92200      *>                     IS NOT SUPPOSED TO PRODUCE ANY OUTPUT    **
92201      *>****************************************************************
92202       ENVIRONMENT DIVISION.
92203       INPUT-OUTPUT SECTION.
92204       FILE-CONTROL.
92205           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
92206                                       LINE SEQUENTIAL.
92207       DATA DIVISION.
92208       FILE SECTION.
92209       FD  REPORT-FILE
92210           REPORT IS RWCS-Report.
92211       WORKING-STORAGE SECTION.
92212       REPORT SECTION.
92213       RD  RWCS-Report
92214           PAGE LIMIT 12
92215               HEADING 1
92216               FIRST DETAIL 4
92217               LAST DETAIL 7
92218           CONTROL IS FINAL.
92219
92220       01  TYPE REPORT HEADING LINE 1.
92221           05 COL 1 VALUE 'RH'.
92222
92223       01  TYPE PAGE HEADING LINE PLUS 1.
92224           05 COL 1 VALUE 'PH'.
92225
92226       01  Detail-Line TYPE DETAIL LINE PLUS 1.
92227           05 COL 1 VALUE 'DE'.
92228
92229       01  TYPE CONTROL FOOTING FINAL.
92230           05 COL 1 VALUE 'CFF'.
92231
92232       01  TYPE PAGE FOOTING LINE NUMBER 10.
92233           05 COL 1 VALUE 'PF'.
92234
92235       01  TYPE REPORT FOOTING LINE NUMBER 1.
92236           05 COL 1 VALUE 'RF'.
92237
92238       PROCEDURE DIVISION.
92239       010-Main SECTION.
92240       1.  OPEN OUTPUT REPORT-FILE
92241           INITIATE RWCS-Report
92242           TERMINATE RWCS-Report
92243           CLOSE REPORT-FILE
92244           .
92245_ATEOF
92246
92247
92248{ set +x
92249$as_echo "$at_srcdir/run_reportwriter.at:313: \$COMPILE prog.cob"
92250at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:313"
92251( $at_check_trace; $COMPILE prog.cob
92252) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92253at_status=$? at_failed=false
92254$at_check_filter
92255at_fn_diff_devnull "$at_stderr" || at_failed=:
92256at_fn_diff_devnull "$at_stdout" || at_failed=:
92257at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:313"
92258$at_failed && at_fn_log_failure
92259$at_traceon; }
92260
92261
92262{ set +x
92263$as_echo "$at_srcdir/run_reportwriter.at:315: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
92264at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:315"
92265( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./prog
92266) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92267at_status=$? at_failed=false
92268$at_check_filter
92269at_fn_diff_devnull "$at_stderr" || at_failed=:
92270at_fn_diff_devnull "$at_stdout" || at_failed=:
92271at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:315"
92272$at_failed && at_fn_log_failure
92273$at_traceon; }
92274
92275
92276
92277
92278
92279: >reference
92280
92281{ set +x
92282$as_echo "$at_srcdir/run_reportwriter.at:322: diff reference report.txt"
92283at_fn_check_prepare_trace "run_reportwriter.at:322"
92284( $at_check_trace; diff reference report.txt
92285) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92286at_status=$? at_failed=false
92287$at_check_filter
92288at_fn_diff_devnull "$at_stderr" || at_failed=:
92289at_fn_diff_devnull "$at_stdout" || at_failed=:
92290at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:322"
92291$at_failed && at_fn_log_failure  \
92292"./report.txt"
92293$at_traceon; }
92294
92295
92296  set +x
92297  $at_times_p && times >"$at_times_file"
92298) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92299read at_status <"$at_status_file"
92300#AT_STOP_810
92301#AT_START_811
92302at_fn_group_banner 811 'run_reportwriter.at:327' \
92303  "PAGE LIMIT REPORT" "                              " 4
92304at_xfail=no
92305(
92306  $as_echo "811. $at_setup_line: testing $at_desc ..."
92307  $at_traceon
92308
92309
92310
92311cat >prog.cob <<'_ATEOF'
92312
92313       IDENTIFICATION DIVISION.
92314       PROGRAM-ID. prog.
92315
92316       ENVIRONMENT DIVISION.
92317       INPUT-OUTPUT SECTION.
92318       FILE-CONTROL.
92319       SELECT report-file ASSIGN EXTERNAL PRINTOUT
92320            ORGANIZATION LINE SEQUENTIAL.
92321
92322       DATA DIVISION.
92323       FILE SECTION.
92324       FD  report-file REPORT rp.
92325
92326       WORKING-STORAGE SECTION.
92327       01  foo  PIC X(20).
92328       01  hedpos PIC 99 VALUE 10.
92329
92330       REPORT SECTION.
92331       RD  rp PAGE LIMIT 3.
92332
92333       01  rp-detail TYPE DE.
92334         02  LINE + 1.
92335         03     COL 1; SOURCE foo, PIC X(30).
92336         03     COL + 2            PIC X(6) VALUE "<--->".
92337
92338       PROCEDURE DIVISION.
92339           OPEN OUTPUT report-file.
92340           INITIATE rp.
92341
92342           MOVE "hello" TO foo.
92343            GENERATE rp-detail.
92344
92345           MOVE "goodbye" TO foo.
92346            GENERATE rp-detail.
92347
92348           TERMINATE rp.
92349             CLOSE report-file.
92350           STOP RUN.
92351           END PROGRAM prog.
92352_ATEOF
92353
92354
92355{ set +x
92356$as_echo "$at_srcdir/run_reportwriter.at:372: \$COMPILE prog.cob"
92357at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:372"
92358( $at_check_trace; $COMPILE prog.cob
92359) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92360at_status=$? at_failed=false
92361$at_check_filter
92362at_fn_diff_devnull "$at_stderr" || at_failed=:
92363at_fn_diff_devnull "$at_stdout" || at_failed=:
92364at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:372"
92365$at_failed && at_fn_log_failure
92366$at_traceon; }
92367
92368
92369{ set +x
92370$as_echo "$at_srcdir/run_reportwriter.at:374: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
92371at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:374"
92372( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
92373) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92374at_status=$? at_failed=false
92375$at_check_filter
92376at_fn_diff_devnull "$at_stderr" || at_failed=:
92377at_fn_diff_devnull "$at_stdout" || at_failed=:
92378at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:374"
92379$at_failed && at_fn_log_failure
92380$at_traceon; }
92381
92382
92383
92384
92385
92386cat >reference <<'_ATEOF'
92387hello                          <--->
92388goodbye                        <--->
92389
92390_ATEOF
92391
92392
92393{ set +x
92394$as_echo "$at_srcdir/run_reportwriter.at:384: diff reference report.txt"
92395at_fn_check_prepare_trace "run_reportwriter.at:384"
92396( $at_check_trace; diff reference report.txt
92397) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92398at_status=$? at_failed=false
92399$at_check_filter
92400at_fn_diff_devnull "$at_stderr" || at_failed=:
92401at_fn_diff_devnull "$at_stdout" || at_failed=:
92402at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:384"
92403$at_failed && at_fn_log_failure  \
92404"./report.txt"
92405$at_traceon; }
92406
92407
92408  set +x
92409  $at_times_p && times >"$at_times_file"
92410) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92411read at_status <"$at_status_file"
92412#AT_STOP_811
92413#AT_START_812
92414at_fn_group_banner 812 'run_reportwriter.at:389' \
92415  "PAGE LIMIT REPORT 2" "                            " 4
92416at_xfail=no
92417(
92418  $as_echo "812. $at_setup_line: testing $at_desc ..."
92419  $at_traceon
92420
92421
92422
92423cat >prog.cob <<'_ATEOF'
92424
92425       IDENTIFICATION DIVISION.
92426       PROGRAM-ID. prog.
92427       ENVIRONMENT DIVISION.
92428       INPUT-OUTPUT SECTION.
92429       FILE-CONTROL.
92430       SELECT report-file ASSIGN EXTERNAL PRINTOUT
92431            ORGANIZATION LINE SEQUENTIAL.
92432
92433       DATA DIVISION.
92434       FILE SECTION.
92435       FD  report-file REPORT rp.
92436
92437       WORKING-STORAGE SECTION.
92438       01  foo  PIC X(20).
92439
92440       REPORT SECTION.
92441       RD  rp PAGE LIMIT 3 LINES.
92442
92443       01  rp-detail TYPE DE.
92444         02  LINE + 1.
92445         03            SOURCE foo, PIC X(30).
92446         03     COL + 2            PIC X(6) VALUE "<--->".
92447
92448       PROCEDURE DIVISION.
92449           OPEN OUTPUT report-file.
92450           INITIATE rp.
92451
92452           MOVE "hello" TO foo.
92453           GENERATE rp-detail.
92454
92455           MOVE "world" TO foo.
92456           GENERATE rp-detail.
92457
92458           MOVE "from" TO foo.
92459           GENERATE rp-detail.
92460
92461           MOVE "REPORT WRITER" TO foo.
92462           GENERATE rp-detail.
92463
92464           MOVE "goodbye" TO foo.
92465           GENERATE rp-detail.
92466
92467           TERMINATE rp
92468           CLOSE report-file.
92469
92470           STOP RUN.
92471_ATEOF
92472
92473
92474{ set +x
92475$as_echo "$at_srcdir/run_reportwriter.at:441: \$COMPILE prog.cob"
92476at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:441"
92477( $at_check_trace; $COMPILE prog.cob
92478) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92479at_status=$? at_failed=false
92480$at_check_filter
92481at_fn_diff_devnull "$at_stderr" || at_failed=:
92482at_fn_diff_devnull "$at_stdout" || at_failed=:
92483at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:441"
92484$at_failed && at_fn_log_failure
92485$at_traceon; }
92486
92487
92488{ set +x
92489$as_echo "$at_srcdir/run_reportwriter.at:443: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
92490at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:443"
92491( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
92492) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92493at_status=$? at_failed=false
92494$at_check_filter
92495at_fn_diff_devnull "$at_stderr" || at_failed=:
92496at_fn_diff_devnull "$at_stdout" || at_failed=:
92497at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:443"
92498$at_failed && at_fn_log_failure
92499$at_traceon; }
92500
92501
92502
92503
92504
92505cat >reference <<'_ATEOF'
92506hello                          <--->
92507world                          <--->
92508from                           <--->
92509REPORT WRITER                  <--->
92510goodbye                        <--->
92511
92512_ATEOF
92513
92514
92515{ set +x
92516$as_echo "$at_srcdir/run_reportwriter.at:456: diff reference report.txt"
92517at_fn_check_prepare_trace "run_reportwriter.at:456"
92518( $at_check_trace; diff reference report.txt
92519) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92520at_status=$? at_failed=false
92521$at_check_filter
92522at_fn_diff_devnull "$at_stderr" || at_failed=:
92523at_fn_diff_devnull "$at_stdout" || at_failed=:
92524at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:456"
92525$at_failed && at_fn_log_failure  \
92526"./report.txt"
92527$at_traceon; }
92528
92529
92530  set +x
92531  $at_times_p && times >"$at_times_file"
92532) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92533read at_status <"$at_status_file"
92534#AT_STOP_812
92535#AT_START_813
92536at_fn_group_banner 813 'run_reportwriter.at:461' \
92537  "Sample Customer Report" "                         " 4
92538at_xfail=no
92539(
92540  $as_echo "813. $at_setup_line: testing $at_desc ..."
92541  $at_traceon
92542
92543
92544
92545cat >inp_data <<'_ATEOF'
925460152 J. LANGDON       87653 02475
925470152 J. LANGDON       64025 00945
925480152 J. LANGDON       41915 01370
925490152 J. LANGDON       17410 00251
925502468 L. MORRISEY      18520 00375
925512468 L. MORRISEY      20012 00420
925522468 L. MORRISEY      31572 01015
925532468 L. MORRISEY      48792 03750
925542468 L. MORRISEY      50407 01515
925552468 L. MORRISEY      61575 02010
925562468 L. MORRISEY      79204 05170
925572468 L. MORRISEY      85075 03784
925582468 L. MORRISEY      98476 08794
925593451 M. JACKSON       37847 02790
925603451 M. JACKSON       58492 06850
925613451 M. JACKSON       60010 02040
925623451 M. JACKSON       85260 07852
925633451 M. JACKSON       90520 02752
925644512 S. LEVITT        24680 03050
925654512 S. LEVITT        56784 05253
925664512 S. LEVITT        60410 01215
925674512 S. LEVITT        78952 08925
925684512 S. LEVITT        85278 04975
925694512 S. LEVITT        87492 06425
925704512 S. LEVITT        97204 08475
925715417 K. CONKLIN       13579 03572
925725417 K. CONKLIN       24615 01875
925735417 K. CONKLIN       34928 03745
925745417 K. CONKLIN       48527 08750
925755417 K. CONKLIN       50150 01895
925765417 K. CONKLIN       54652 03892
925775417 K. CONKLIN       59765 09895
925785417 K. CONKLIN       71572 01895
925795417 K. CONKLIN       85175 08010
925805417 K. CONKLIN       90275 00460
925815417 K. CONKLIN       91572 01857
925825417 K. CONKLIN       97576 08495
925836213 Z. HAMPTON       15792 06425
925846213 Z. HAMPTON       19975 09875
925856213 Z. HAMPTON       34576 05115
925866213 Z. HAMPTON       49512 08520
925877545 M. LARSON        14676 03845
925887545 M. LARSON        18592 08251
925897545 M. LARSON        19994 09898
925907545 M. LARSON        21214 01515
925917545 M. LARSON        37515 08212
925927545 M. LARSON        38592 09615
925937545 M. LARSON        48485 08714
925947545 M. LARSON        52762 03792
925957545 M. LARSON        57684 08015
925967545 M. LARSON        79015 09625
925977545 M. LARSON        80123 00560
925987545 M. LARSON        82462 02015
925997545 M. LARSON        91520 01815
926007545 M. LARSON        93715 04015
92601_ATEOF
92602
92603
92604cat >prog.cob <<'_ATEOF'
92605
92606       IDENTIFICATION DIVISION.
92607       PROGRAM-ID. prog.
92608
92609      * ************************************************************* *
92610      * REPORT WRITER EXAMPLE #1.                                     *
92611      * ************************************************************* *
92612
92613       ENVIRONMENT DIVISION.
92614       CONFIGURATION SECTION.
92615
92616       INPUT-OUTPUT SECTION.
92617       FILE-CONTROL.
92618
92619           SELECT TRANSACTION-DATA
92620               ASSIGN TO EXTERNAL DATAIN
92621                         ORGANIZATION IS LINE SEQUENTIAL.
92622
92623           SELECT REPORT-FILE
92624               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
92625
92626       DATA DIVISION.
92627       FILE SECTION.
92628
92629       FD  TRANSACTION-DATA.
92630
92631       01  TRANSACTION-RECORD.
92632           03  TR-CUSTOMER-NUMBER      PIC 9(04).
92633           03  FILLER                  PIC X(01).
92634           03  TR-CUSTOMER-NAME        PIC X(16).
92635           03  FILLER                  PIC X(01).
92636           03  TR-ITEM-NUMBER          PIC 9(05).
92637           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
92638               05  TR-ITEM-DEPARTMENT  PIC 9(01).
92639               05  FILLER              PIC 9(04).
92640           03  FILLER                  PIC X(01).
92641           03  TR-ITEM-COST            PIC 9(03)V99.
92642           03  FILLER                  PIC X(47).
92643
92644       FD  REPORT-FILE
92645           REPORT IS CUSTOMER-REPORT.
92646
92647       WORKING-STORAGE SECTION.
92648       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
92649           88  END-OF-FILE                         VALUE 'Y'.
92650
92651       REPORT SECTION.
92652       RD  CUSTOMER-REPORT
92653           PAGE LIMIT IS 66 LINES
92654           HEADING 1
92655           FIRST DETAIL 5
92656           LAST DETAIL 58.
92657
92658       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
92659           02  LINE 1.
92660               03  COLUMN 27   PIC X(41) VALUE
92661                   'C U S T O M E R  C H A R G E  R E P O R T'.
92662           02  LINE PLUS 2.
92663               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
92664               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
92665               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
92666               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
92667               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
92668
92669       01  CHARGE-DETAIL TYPE DETAIL.
92670           02  LINE PLUS 1.
92671               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
92672               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
92673               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
92674               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
92675               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
92676
92677       PROCEDURE DIVISION.
92678
92679       000-INITIATE.
92680
92681           OPEN INPUT TRANSACTION-DATA,
92682                OUTPUT REPORT-FILE.
92683
92684           INITIATE CUSTOMER-REPORT.
92685
92686           READ TRANSACTION-DATA
92687               AT END
92688                   MOVE 'Y' TO END-OF-FILE-SWITCH.
92689      *    END-READ.
92690
92691           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
92692               UNTIL END-OF-FILE.
92693
92694       000-TERMINATE.
92695           TERMINATE CUSTOMER-REPORT.
92696
92697           CLOSE TRANSACTION-DATA,
92698                 REPORT-FILE.
92699
92700           STOP RUN.
92701
92702       100-PROCESS-TRANSACTION-DATA.
92703           GENERATE CHARGE-DETAIL.
92704           READ TRANSACTION-DATA
92705               AT END
92706                   MOVE 'Y' TO END-OF-FILE-SWITCH.
92707      *    END-READ.
92708
92709       199-EXIT.
92710           EXIT.
92711
92712
92713_ATEOF
92714
92715
92716{ set +x
92717$as_echo "$at_srcdir/run_reportwriter.at:631: \$COMPILE prog.cob"
92718at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:631"
92719( $at_check_trace; $COMPILE prog.cob
92720) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92721at_status=$? at_failed=false
92722$at_check_filter
92723at_fn_diff_devnull "$at_stderr" || at_failed=:
92724at_fn_diff_devnull "$at_stdout" || at_failed=:
92725at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:631"
92726$at_failed && at_fn_log_failure
92727$at_traceon; }
92728
92729
92730{ set +x
92731$as_echo "$at_srcdir/run_reportwriter.at:633: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
92732at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:633"
92733( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
92734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92735at_status=$? at_failed=false
92736$at_check_filter
92737at_fn_diff_devnull "$at_stderr" || at_failed=:
92738at_fn_diff_devnull "$at_stdout" || at_failed=:
92739at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:633"
92740$at_failed && at_fn_log_failure
92741$at_traceon; }
92742
92743
92744
92745
92746
92747cat >reference <<'_ATEOF'
92748                          C U S T O M E R  C H A R G E  R E P O R T
92749
92750CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST
92751
92752   152   J. LANGDON            8       87653       $24.75
92753   152   J. LANGDON            6       64025        $9.45
92754   152   J. LANGDON            4       41915       $13.70
92755   152   J. LANGDON            1       17410        $2.51
92756  2468   L. MORRISEY           1       18520        $3.75
92757  2468   L. MORRISEY           2       20012        $4.20
92758  2468   L. MORRISEY           3       31572       $10.15
92759  2468   L. MORRISEY           4       48792       $37.50
92760  2468   L. MORRISEY           5       50407       $15.15
92761  2468   L. MORRISEY           6       61575       $20.10
92762  2468   L. MORRISEY           7       79204       $51.70
92763  2468   L. MORRISEY           8       85075       $37.84
92764  2468   L. MORRISEY           9       98476       $87.94
92765  3451   M. JACKSON            3       37847       $27.90
92766  3451   M. JACKSON            5       58492       $68.50
92767  3451   M. JACKSON            6       60010       $20.40
92768  3451   M. JACKSON            8       85260       $78.52
92769  3451   M. JACKSON            9       90520       $27.52
92770  4512   S. LEVITT             2       24680       $30.50
92771  4512   S. LEVITT             5       56784       $52.53
92772  4512   S. LEVITT             6       60410       $12.15
92773  4512   S. LEVITT             7       78952       $89.25
92774  4512   S. LEVITT             8       85278       $49.75
92775  4512   S. LEVITT             8       87492       $64.25
92776  4512   S. LEVITT             9       97204       $84.75
92777  5417   K. CONKLIN            1       13579       $35.72
92778  5417   K. CONKLIN            2       24615       $18.75
92779  5417   K. CONKLIN            3       34928       $37.45
92780  5417   K. CONKLIN            4       48527       $87.50
92781  5417   K. CONKLIN            5       50150       $18.95
92782  5417   K. CONKLIN            5       54652       $38.92
92783  5417   K. CONKLIN            5       59765       $98.95
92784  5417   K. CONKLIN            7       71572       $18.95
92785  5417   K. CONKLIN            8       85175       $80.10
92786  5417   K. CONKLIN            9       90275        $4.60
92787  5417   K. CONKLIN            9       91572       $18.57
92788  5417   K. CONKLIN            9       97576       $84.95
92789  6213   Z. HAMPTON            1       15792       $64.25
92790  6213   Z. HAMPTON            1       19975       $98.75
92791  6213   Z. HAMPTON            3       34576       $51.15
92792  6213   Z. HAMPTON            4       49512       $85.20
92793  7545   M. LARSON             1       14676       $38.45
92794  7545   M. LARSON             1       18592       $82.51
92795  7545   M. LARSON             1       19994       $98.98
92796  7545   M. LARSON             2       21214       $15.15
92797  7545   M. LARSON             3       37515       $82.12
92798  7545   M. LARSON             3       38592       $96.15
92799  7545   M. LARSON             4       48485       $87.14
92800  7545   M. LARSON             5       52762       $37.92
92801  7545   M. LARSON             5       57684       $80.15
92802  7545   M. LARSON             7       79015       $96.25
92803  7545   M. LARSON             8       80123        $5.60
92804  7545   M. LARSON             8       82462       $20.15
92805  7545   M. LARSON             9       91520       $18.15
92806
92807
92808
92809
92810
92811
92812
92813                          C U S T O M E R  C H A R G E  R E P O R T
92814
92815CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST
92816
92817  7545   M. LARSON             9       93715       $40.15
92818
92819
92820
92821
92822
92823
92824
92825
92826
92827
92828
92829
92830
92831
92832
92833
92834
92835
92836
92837
92838
92839
92840
92841
92842
92843
92844
92845
92846
92847
92848
92849
92850
92851
92852
92853
92854
92855
92856
92857
92858
92859
92860
92861
92862
92863
92864
92865
92866
92867
92868
92869
92870
92871
92872
92873
92874
92875
92876
92877
92878
92879_ATEOF
92880
92881
92882{ set +x
92883$as_echo "$at_srcdir/run_reportwriter.at:771: diff reference report.txt"
92884at_fn_check_prepare_trace "run_reportwriter.at:771"
92885( $at_check_trace; diff reference report.txt
92886) >>"$at_stdout" 2>>"$at_stderr" 5>&-
92887at_status=$? at_failed=false
92888$at_check_filter
92889at_fn_diff_devnull "$at_stderr" || at_failed=:
92890at_fn_diff_devnull "$at_stdout" || at_failed=:
92891at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:771"
92892$at_failed && at_fn_log_failure  \
92893"./report.txt"
92894$at_traceon; }
92895
92896
92897  set +x
92898  $at_times_p && times >"$at_times_file"
92899) 5>&1 2>&1 7>&- | eval $at_tee_pipe
92900read at_status <"$at_status_file"
92901#AT_STOP_813
92902#AT_START_814
92903at_fn_group_banner 814 'run_reportwriter.at:776' \
92904  "Sample Charge Report" "                           " 4
92905at_xfail=no
92906(
92907  $as_echo "814. $at_setup_line: testing $at_desc ..."
92908  $at_traceon
92909
92910
92911
92912cat >inp_data <<'_ATEOF'
929130152 J. LANGDON       87653 02475
929140152 J. LANGDON       64025 00945
929150152 J. LANGDON       41915 01370
929160152 J. LANGDON       17410 00251
929172468 L. MORRISEY      18520 00375
929182468 L. MORRISEY      20012 00420
929192468 L. MORRISEY      31572 01015
929202468 L. MORRISEY      48792 03750
929212468 L. MORRISEY      50407 01515
929222468 L. MORRISEY      61575 02010
929232468 L. MORRISEY      79204 05170
929242468 L. MORRISEY      85075 03784
929252468 L. MORRISEY      98476 08794
929263451 M. JACKSON       37847 02790
929273451 M. JACKSON       58492 06850
929283451 M. JACKSON       60010 02040
929293451 M. JACKSON       85260 07852
929303451 M. JACKSON       90520 02752
929314512 S. LEVITT        24680 03050
929324512 S. LEVITT        56784 05253
929334512 S. LEVITT        60410 01215
929344512 S. LEVITT        78952 08925
929354512 S. LEVITT        85278 04975
929364512 S. LEVITT        87492 06425
929374512 S. LEVITT        97204 08475
929385417 K. CONKLIN       13579 03572
929395417 K. CONKLIN       24615 01875
929405417 K. CONKLIN       34928 03745
929415417 K. CONKLIN       48527 08750
929425417 K. CONKLIN       50150 01895
929435417 K. CONKLIN       54652 03892
929445417 K. CONKLIN       59765 09895
929455417 K. CONKLIN       71572 01895
929465417 K. CONKLIN       85175 08010
929475417 K. CONKLIN       90275 00460
929485417 K. CONKLIN       91572 01857
929495417 K. CONKLIN       97576 08495
929506213 Z. HAMPTON       15792 06425
929516213 Z. HAMPTON       19975 09875
929526213 Z. HAMPTON       34576 05115
929536213 Z. HAMPTON       49512 08520
929547545 M. LARSON        14676 03845
929557545 M. LARSON        18592 08251
929567545 M. LARSON        19994 09898
929577545 M. LARSON        21214 01515
929587545 M. LARSON        37515 08212
929597545 M. LARSON        38592 09615
929607545 M. LARSON        48485 08714
929617545 M. LARSON        52762 03792
929627545 M. LARSON        57684 08015
929637545 M. LARSON        79015 09625
929647545 M. LARSON        80123 00560
929657545 M. LARSON        82462 02015
929667545 M. LARSON        91520 01815
929677545 M. LARSON        93715 04015
92968_ATEOF
92969
92970
92971cat >prog.cob <<'_ATEOF'
92972
92973       IDENTIFICATION DIVISION.
92974       PROGRAM-ID. prog.
92975      * ************************************************************* *
92976      * REPORT WRITER EXAMPLE #2.                                     *
92977      * ************************************************************* *
92978
92979       ENVIRONMENT DIVISION.
92980       CONFIGURATION SECTION.
92981
92982       INPUT-OUTPUT SECTION.
92983       FILE-CONTROL.
92984
92985           SELECT TRANSACTION-DATA
92986               ASSIGN TO EXTERNAL DATAIN
92987                         ORGANIZATION IS LINE SEQUENTIAL.
92988
92989           SELECT REPORT-FILE
92990               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
92991
92992       DATA DIVISION.
92993       FILE SECTION.
92994
92995       FD  TRANSACTION-DATA.
92996
92997       01  TRANSACTION-RECORD.
92998           03  TR-CUSTOMER-NUMBER      PIC 9(04).
92999           03  FILLER                  PIC X(01).
93000           03  TR-CUSTOMER-NAME        PIC X(16).
93001           03  FILLER                  PIC X(01).
93002           03  TR-ITEM-NUMBER          PIC 9(05).
93003           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
93004               05  TR-ITEM-DEPARTMENT  PIC 9(01).
93005               05  FILLER              PIC 9(04).
93006           03  FILLER                  PIC X(01).
93007           03  TR-ITEM-COST            PIC 9(03)V99.
93008           03  FILLER                  PIC X(47).
93009
93010       FD  REPORT-FILE
93011           REPORT IS CUSTOMER-REPORT.
93012
93013       WORKING-STORAGE SECTION.
93014       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
93015           88  END-OF-FILE                         VALUE 'Y'.
93016
93017       01  DISCOUNT-TABLE.
93018           02  FILLER                  PIC 99      VALUE 05.
93019           02  FILLER                  PIC 99      VALUE 07.
93020           02  FILLER                  PIC 99      VALUE 10.
93021           02  FILLER                  PIC 99      VALUE 15.
93022           02  FILLER                  PIC 99      VALUE 06.
93023           02  FILLER                  PIC 99      VALUE 22.
93024           02  FILLER                  PIC 99      VALUE 12.
93025           02  FILLER                  PIC 99      VALUE 09.
93026           02  FILLER                  PIC 99      VALUE 20.
93027       01  FILLER                      REDEFINES DISCOUNT-TABLE.
93028           02  DISCOUNT                OCCURS 9 TIMES
93029                                       INDEXED BY DISCOUNT-IX
93030                                       PIC V99.
93031
93032       01  CALCULATED-FIELDS.
93033           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
93034           03  WS-CHARGE-AMT           PIC 9(3)V99.
93035
93036       REPORT SECTION.
93037       RD  CUSTOMER-REPORT
93038           CONTROL IS TR-CUSTOMER-NUMBER
93039           PAGE LIMIT IS 66 LINES
93040           HEADING 1
93041           FIRST DETAIL 5
93042           LAST DETAIL 58.
93043
93044       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
93045           02  LINE 1.
93046               03  COLUMN 27   PIC X(41) VALUE
93047                   'C U S T O M E R  C H A R G E  R E P O R T'.
93048               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
93049               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
93050           02  LINE PLUS 2.
93051               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
93052               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
93053               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
93054               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
93055               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
93056               03  COLUMN 64   PIC X(08) VALUE 'DISCT. %'.
93057               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
93058               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.
93059
93060       01  CHARGE-DETAIL TYPE DETAIL.
93061           02  LINE PLUS 1.
93062               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
93063               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
93064               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
93065               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
93066               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
93067               03  COLUMN 67   PIC V99 SOURCE DISCOUNT (DISCOUNT-IX).
93068               03  COLUMN 69   PIC X(01) VALUE '%'.
93069               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
93070               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.
93071
93072       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER-NUMBER
93073           NEXT GROUP IS PLUS 2.
93074           02  LINE PLUS 1.
93075               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
93076               03  COLUMN 101  PIC X VALUE '*'.
93077
93078       PROCEDURE DIVISION.
93079
93080       000-INITIATE.
93081
93082           OPEN INPUT TRANSACTION-DATA,
93083                OUTPUT REPORT-FILE.
93084
93085           INITIATE CUSTOMER-REPORT.
93086
93087           READ TRANSACTION-DATA
93088               AT END
93089                   MOVE 'Y' TO END-OF-FILE-SWITCH
93090           END-READ.
93091
93092           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
93093               UNTIL END-OF-FILE.
93094
93095       000-TERMINATE.
93096           TERMINATE CUSTOMER-REPORT.
93097
93098           CLOSE TRANSACTION-DATA,
93099                 REPORT-FILE.
93100
93101           STOP RUN.
93102
93103       100-PROCESS-TRANSACTION-DATA.
93104           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
93105           COMPUTE WS-DISCOUNT-AMT ROUNDED =
93106               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
93107           COMPUTE WS-CHARGE-AMT =
93108               TR-ITEM-COST - WS-DISCOUNT-AMT.
93109           GENERATE CHARGE-DETAIL.
93110           READ TRANSACTION-DATA
93111               AT END
93112                   MOVE 'Y' TO END-OF-FILE-SWITCH
93113           END-READ.
93114
93115       199-EXIT.
93116           EXIT.
93117
93118_ATEOF
93119
93120
93121{ set +x
93122$as_echo "$at_srcdir/run_reportwriter.at:984: \$COMPILE prog.cob"
93123at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:984"
93124( $at_check_trace; $COMPILE prog.cob
93125) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93126at_status=$? at_failed=false
93127$at_check_filter
93128at_fn_diff_devnull "$at_stderr" || at_failed=:
93129at_fn_diff_devnull "$at_stdout" || at_failed=:
93130at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:984"
93131$at_failed && at_fn_log_failure
93132$at_traceon; }
93133
93134
93135{ set +x
93136$as_echo "$at_srcdir/run_reportwriter.at:986: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
93137at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:986"
93138( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
93139) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93140at_status=$? at_failed=false
93141$at_check_filter
93142at_fn_diff_devnull "$at_stderr" || at_failed=:
93143at_fn_diff_devnull "$at_stdout" || at_failed=:
93144at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:986"
93145$at_failed && at_fn_log_failure
93146$at_traceon; }
93147
93148
93149
93150
93151
93152cat >reference <<'_ATEOF'
93153                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1
93154
93155CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE
93156
93157   152   J. LANGDON            8       87653       $24.75         09%          $2.23         $22.52
93158   152   J. LANGDON            6       64025        $9.45         22%          $2.08          $7.37
93159   152   J. LANGDON            4       41915       $13.70         15%          $2.06         $11.64
93160   152   J. LANGDON            1       17410        $2.51         05%           $.13          $2.38
93161                                                                                             $43.91 *
93162
93163
93164  2468   L. MORRISEY           1       18520        $3.75         05%           $.19          $3.56
93165  2468   L. MORRISEY           2       20012        $4.20         07%           $.29          $3.91
93166  2468   L. MORRISEY           3       31572       $10.15         10%          $1.02          $9.13
93167  2468   L. MORRISEY           4       48792       $37.50         15%          $5.63         $31.87
93168  2468   L. MORRISEY           5       50407       $15.15         06%           $.91         $14.24
93169  2468   L. MORRISEY           6       61575       $20.10         22%          $4.42         $15.68
93170  2468   L. MORRISEY           7       79204       $51.70         12%          $6.20         $45.50
93171  2468   L. MORRISEY           8       85075       $37.84         09%          $3.41         $34.43
93172  2468   L. MORRISEY           9       98476       $87.94         20%         $17.59         $70.35
93173                                                                                            $228.67 *
93174
93175
93176  3451   M. JACKSON            3       37847       $27.90         10%          $2.79         $25.11
93177  3451   M. JACKSON            5       58492       $68.50         06%          $4.11         $64.39
93178  3451   M. JACKSON            6       60010       $20.40         22%          $4.49         $15.91
93179  3451   M. JACKSON            8       85260       $78.52         09%          $7.07         $71.45
93180  3451   M. JACKSON            9       90520       $27.52         20%          $5.50         $22.02
93181                                                                                            $198.88 *
93182
93183
93184  4512   S. LEVITT             2       24680       $30.50         07%          $2.14         $28.36
93185  4512   S. LEVITT             5       56784       $52.53         06%          $3.15         $49.38
93186  4512   S. LEVITT             6       60410       $12.15         22%          $2.67          $9.48
93187  4512   S. LEVITT             7       78952       $89.25         12%         $10.71         $78.54
93188  4512   S. LEVITT             8       85278       $49.75         09%          $4.48         $45.27
93189  4512   S. LEVITT             8       87492       $64.25         09%          $5.78         $58.47
93190  4512   S. LEVITT             9       97204       $84.75         20%         $16.95         $67.80
93191                                                                                            $337.30 *
93192
93193
93194  5417   K. CONKLIN            1       13579       $35.72         05%          $1.79         $33.93
93195  5417   K. CONKLIN            2       24615       $18.75         07%          $1.31         $17.44
93196  5417   K. CONKLIN            3       34928       $37.45         10%          $3.75         $33.70
93197  5417   K. CONKLIN            4       48527       $87.50         15%         $13.13         $74.37
93198  5417   K. CONKLIN            5       50150       $18.95         06%          $1.14         $17.81
93199  5417   K. CONKLIN            5       54652       $38.92         06%          $2.34         $36.58
93200  5417   K. CONKLIN            5       59765       $98.95         06%          $5.94         $93.01
93201  5417   K. CONKLIN            7       71572       $18.95         12%          $2.27         $16.68
93202  5417   K. CONKLIN            8       85175       $80.10         09%          $7.21         $72.89
93203  5417   K. CONKLIN            9       90275        $4.60         20%           $.92          $3.68
93204  5417   K. CONKLIN            9       91572       $18.57         20%          $3.71         $14.86
93205  5417   K. CONKLIN            9       97576       $84.95         20%         $16.99         $67.96
93206                                                                                            $482.91 *
93207
93208
93209  6213   Z. HAMPTON            1       15792       $64.25         05%          $3.21         $61.04
93210  6213   Z. HAMPTON            1       19975       $98.75         05%          $4.94         $93.81
93211
93212
93213
93214
93215
93216
93217
93218                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     2
93219
93220CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE
93221
93222  6213   Z. HAMPTON            3       34576       $51.15         10%          $5.12         $46.03
93223  6213   Z. HAMPTON            4       49512       $85.20         15%         $12.78         $72.42
93224                                                                                            $273.30 *
93225
93226
93227  7545   M. LARSON             1       14676       $38.45         05%          $1.92         $36.53
93228  7545   M. LARSON             1       18592       $82.51         05%          $4.13         $78.38
93229  7545   M. LARSON             1       19994       $98.98         05%          $4.95         $94.03
93230  7545   M. LARSON             2       21214       $15.15         07%          $1.06         $14.09
93231  7545   M. LARSON             3       37515       $82.12         10%          $8.21         $73.91
93232  7545   M. LARSON             3       38592       $96.15         10%          $9.62         $86.53
93233  7545   M. LARSON             4       48485       $87.14         15%         $13.07         $74.07
93234  7545   M. LARSON             5       52762       $37.92         06%          $2.28         $35.64
93235  7545   M. LARSON             5       57684       $80.15         06%          $4.81         $75.34
93236  7545   M. LARSON             7       79015       $96.25         12%         $11.55         $84.70
93237  7545   M. LARSON             8       80123        $5.60         09%           $.50          $5.10
93238  7545   M. LARSON             8       82462       $20.15         09%          $1.81         $18.34
93239  7545   M. LARSON             9       91520       $18.15         20%          $3.63         $14.52
93240  7545   M. LARSON             9       93715       $40.15         20%          $8.03         $32.12
93241                                                                                            $723.30 *
93242
93243
93244
93245
93246
93247
93248
93249
93250
93251
93252
93253
93254
93255
93256
93257
93258
93259
93260
93261
93262
93263
93264
93265
93266
93267
93268
93269
93270
93271
93272
93273
93274
93275
93276
93277
93278
93279
93280
93281
93282
93283
93284_ATEOF
93285
93286
93287{ set +x
93288$as_echo "$at_srcdir/run_reportwriter.at:1124: diff reference report.txt"
93289at_fn_check_prepare_trace "run_reportwriter.at:1124"
93290( $at_check_trace; diff reference report.txt
93291) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93292at_status=$? at_failed=false
93293$at_check_filter
93294at_fn_diff_devnull "$at_stderr" || at_failed=:
93295at_fn_diff_devnull "$at_stdout" || at_failed=:
93296at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1124"
93297$at_failed && at_fn_log_failure  \
93298"./report.txt"
93299$at_traceon; }
93300
93301
93302  set +x
93303  $at_times_p && times >"$at_times_file"
93304) 5>&1 2>&1 7>&- | eval $at_tee_pipe
93305read at_status <"$at_status_file"
93306#AT_STOP_814
93307#AT_START_815
93308at_fn_group_banner 815 'run_reportwriter.at:1129' \
93309  "Sample Charge Report 2" "                         " 4
93310at_xfail=no
93311(
93312  $as_echo "815. $at_setup_line: testing $at_desc ..."
93313  $at_traceon
93314
93315
93316
93317cat >inp_data <<'_ATEOF'
933180152 J. LANGDON       87653 02475
933190152 J. LANGDON       64025 00945
933200152 J. LANGDON       41915 01370
933210152 J. LANGDON       17410 00251
933222468 L. MORRISEY      18520 00375
933232468 L. MORRISEY      20012 00420
933242468 L. MORRISEY      31572 01015
933252468 L. MORRISEY      48792 03750
933262468 L. MORRISEY      50407 01515
933272468 L. MORRISEY      61575 02010
933282468 L. MORRISEY      79204 05170
933292468 L. MORRISEY      85075 03784
933302468 L. MORRISEY      98476 08794
933313451 M. JACKSON       37847 02790
933323451 M. JACKSON       58492 06850
933333451 M. JACKSON       60010 02040
933343451 M. JACKSON       85260 07852
933353451 M. JACKSON       90520 02752
933364512 S. LEVITT        24680 03050
933374512 S. LEVITT        56784 05253
933384512 S. LEVITT        60410 01215
933394512 S. LEVITT        78952 08925
933404512 S. LEVITT        85278 04975
933414512 S. LEVITT        87492 06425
933424512 S. LEVITT        97204 08475
933435417 K. CONKLIN       13579 03572
933445417 K. CONKLIN       24615 01875
933455417 K. CONKLIN       34928 03745
933465417 K. CONKLIN       48527 08750
933475417 K. CONKLIN       50150 01895
933485417 K. CONKLIN       54652 03892
933495417 K. CONKLIN       59765 09895
933505417 K. CONKLIN       71572 01895
933515417 K. CONKLIN       85175 08010
933525417 K. CONKLIN       90275 00460
933535417 K. CONKLIN       91572 01857
933545417 K. CONKLIN       97576 08495
933556213 Z. HAMPTON       15792 06425
933566213 Z. HAMPTON       19975 09875
933576213 Z. HAMPTON       34576 05115
933586213 Z. HAMPTON       49512 08520
933597545 M. LARSON        14676 03845
933607545 M. LARSON        18592 08251
933617545 M. LARSON        19994 09898
933627545 M. LARSON        21214 01515
933637545 M. LARSON        37515 08212
933647545 M. LARSON        38592 09615
933657545 M. LARSON        48485 08714
933667545 M. LARSON        52762 03792
933677545 M. LARSON        57684 08015
933687545 M. LARSON        79015 09625
933697545 M. LARSON        80123 00560
933707545 M. LARSON        82462 02015
933717545 M. LARSON        91520 01815
933727545 M. LARSON        93715 04015
93373_ATEOF
93374
93375
93376cat >prog.cob <<'_ATEOF'
93377
93378       IDENTIFICATION DIVISION.
93379       PROGRAM-ID. prog.
93380      * ************************************************************* *
93381      * REPORT WRITER EXAMPLE #3.                                     *
93382      * ************************************************************* *
93383
93384       ENVIRONMENT DIVISION.
93385       CONFIGURATION SECTION.
93386
93387       INPUT-OUTPUT SECTION.
93388       FILE-CONTROL.
93389
93390           SELECT TRANSACTION-DATA
93391               ASSIGN TO EXTERNAL DATAIN
93392                         ORGANIZATION IS LINE SEQUENTIAL.
93393
93394           SELECT REPORT-FILE
93395               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
93396
93397       DATA DIVISION.
93398       FILE SECTION.
93399
93400       FD  TRANSACTION-DATA.
93401
93402       01  TRANSACTION-RECORD.
93403           03  TR-CUSTOMER-NUMBER      PIC 9(04).
93404           03  FILLER                  PIC X(01).
93405           03  TR-CUSTOMER-NAME        PIC X(16).
93406           03  FILLER                  PIC X(01).
93407           03  TR-ITEM-NUMBER          PIC 9(05).
93408           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
93409               05  TR-ITEM-DEPARTMENT  PIC 9(01).
93410               05  FILLER              PIC 9(04).
93411           03  FILLER                  PIC X(01).
93412           03  TR-ITEM-COST            PIC 9(03)V99.
93413           03  FILLER                  PIC X(47).
93414
93415       FD  REPORT-FILE
93416           REPORT IS CUSTOMER-REPORT.
93417
93418       WORKING-STORAGE SECTION.
93419       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
93420           88  END-OF-FILE                         VALUE 'Y'.
93421
93422       01  DISCOUNT-TABLE.
93423           02  FILLER                  PIC 99      VALUE 05.
93424           02  FILLER                  PIC 99      VALUE 07.
93425           02  FILLER                  PIC 99      VALUE 10.
93426           02  FILLER                  PIC 99      VALUE 15.
93427           02  FILLER                  PIC 99      VALUE 06.
93428           02  FILLER                  PIC 99      VALUE 22.
93429           02  FILLER                  PIC 99      VALUE 12.
93430           02  FILLER                  PIC 99      VALUE 09.
93431           02  FILLER                  PIC 99      VALUE 20.
93432       01  FILLER                      REDEFINES DISCOUNT-TABLE.
93433           02  DISCOUNT                OCCURS 9 TIMES
93434                                       INDEXED BY DISCOUNT-IX
93435                                       PIC V99.
93436
93437       01  CALCULATED-FIELDS.
93438           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
93439           03  WS-CHARGE-AMT           PIC 9(3)V99.
93440
93441       REPORT SECTION.
93442       RD  CUSTOMER-REPORT
93443           CONTROLS ARE FINAL, TR-CUSTOMER-NUMBER
93444           PAGE LIMIT IS 66 LINES
93445           HEADING 1
93446           FIRST DETAIL 5
93447           LAST DETAIL 58.
93448
93449       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
93450           02  LINE 1.
93451               03  COLUMN 27   PIC X(41) VALUE
93452                   'C U S T O M E R  C H A R G E  R E P O R T'.
93453               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
93454               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
93455           02  LINE PLUS 2.
93456               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
93457               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
93458               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
93459               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
93460               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
93461               03  COLUMN 64   PIC X(08) VALUE 'DISCT. %'.
93462               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
93463               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.
93464
93465       01  CHARGE-DETAIL TYPE DETAIL.
93466           02  LINE PLUS 1.
93467               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER
93468                                                GROUP INDICATE.
93469               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME
93470                                                GROUP INDICATE.
93471               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
93472               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
93473               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
93474               03  COLUMN 67   PIC V99 SOURCE DISCOUNT (DISCOUNT-IX).
93475               03  COLUMN 69   PIC X(01) VALUE '%'.
93476               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
93477               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.
93478
93479       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER-NUMBER
93480           NEXT GROUP IS PLUS 2.
93481           02  LINE PLUS 1.
93482               03  COLUMN 50   PIC $$$$$.99 SUM TR-ITEM-COST.
93483               03  COLUMN 59   PIC X VALUE '*'.
93484               03  COLUMN 77   PIC $$$$$.99 SUM WS-DISCOUNT-AMT.
93485               03  COLUMN 86   PIC X VALUE '*'.
93486               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
93487               03  COLUMN 101  PIC X VALUE '*'.
93488
93489       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
93490           02  LINE PLUS 1.
93491               03  COLUMN 10   PIC X(12) VALUE 'GRAND TOTALS'.
93492               03  COLUMN 48   PIC $$$,$$$.99 SUM TR-ITEM-COST.
93493               03  COLUMN 59   PIC XX VALUE '**'.
93494               03  COLUMN 75   PIC $$$,$$$.99 SUM WS-DISCOUNT-AMT.
93495               03  COLUMN 86   PIC XX VALUE '**'.
93496               03  COLUMN 90   PIC $$$,$$$.99 SUM WS-CHARGE-AMT.
93497               03  COLUMN 101  PIC XX VALUE '**'.
93498
93499       PROCEDURE DIVISION.
93500
93501       000-INITIATE.
93502
93503           OPEN INPUT TRANSACTION-DATA,
93504                OUTPUT REPORT-FILE.
93505
93506           INITIATE CUSTOMER-REPORT.
93507
93508           READ TRANSACTION-DATA
93509               AT END
93510                   MOVE 'Y' TO END-OF-FILE-SWITCH.
93511      *    END-READ.
93512
93513           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
93514               UNTIL END-OF-FILE.
93515
93516       000-TERMINATE.
93517           TERMINATE CUSTOMER-REPORT.
93518
93519           CLOSE TRANSACTION-DATA,
93520               REPORT-FILE.
93521
93522           STOP RUN.
93523
93524       100-PROCESS-TRANSACTION-DATA.
93525           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
93526           COMPUTE WS-DISCOUNT-AMT ROUNDED =
93527               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
93528           COMPUTE WS-CHARGE-AMT =
93529               TR-ITEM-COST - WS-DISCOUNT-AMT.
93530           GENERATE CHARGE-DETAIL.
93531           READ TRANSACTION-DATA
93532               AT END
93533                   MOVE 'Y' TO END-OF-FILE-SWITCH.
93534      *    END-READ.
93535
93536       199-EXIT.
93537           EXIT.
93538
93539
93540_ATEOF
93541
93542
93543{ set +x
93544$as_echo "$at_srcdir/run_reportwriter.at:1354: \$COMPILE prog.cob"
93545at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:1354"
93546( $at_check_trace; $COMPILE prog.cob
93547) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93548at_status=$? at_failed=false
93549$at_check_filter
93550at_fn_diff_devnull "$at_stderr" || at_failed=:
93551at_fn_diff_devnull "$at_stdout" || at_failed=:
93552at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1354"
93553$at_failed && at_fn_log_failure
93554$at_traceon; }
93555
93556
93557{ set +x
93558$as_echo "$at_srcdir/run_reportwriter.at:1356: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
93559at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:1356"
93560( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
93561) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93562at_status=$? at_failed=false
93563$at_check_filter
93564at_fn_diff_devnull "$at_stderr" || at_failed=:
93565at_fn_diff_devnull "$at_stdout" || at_failed=:
93566at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1356"
93567$at_failed && at_fn_log_failure
93568$at_traceon; }
93569
93570
93571
93572
93573
93574cat >reference <<'_ATEOF'
93575                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1
93576
93577CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE
93578
93579   152   J. LANGDON            8       87653       $24.75         09%          $2.23         $22.52
93580                               6       64025        $9.45         22%          $2.08          $7.37
93581                               4       41915       $13.70         15%          $2.06         $11.64
93582                               1       17410        $2.51         05%           $.13          $2.38
93583                                                   $50.41 *                    $6.50 *       $43.91 *
93584
93585
93586  2468   L. MORRISEY           1       18520        $3.75         05%           $.19          $3.56
93587                               2       20012        $4.20         07%           $.29          $3.91
93588                               3       31572       $10.15         10%          $1.02          $9.13
93589                               4       48792       $37.50         15%          $5.63         $31.87
93590                               5       50407       $15.15         06%           $.91         $14.24
93591                               6       61575       $20.10         22%          $4.42         $15.68
93592                               7       79204       $51.70         12%          $6.20         $45.50
93593                               8       85075       $37.84         09%          $3.41         $34.43
93594                               9       98476       $87.94         20%         $17.59         $70.35
93595                                                  $268.33 *                   $39.66 *      $228.67 *
93596
93597
93598  3451   M. JACKSON            3       37847       $27.90         10%          $2.79         $25.11
93599                               5       58492       $68.50         06%          $4.11         $64.39
93600                               6       60010       $20.40         22%          $4.49         $15.91
93601                               8       85260       $78.52         09%          $7.07         $71.45
93602                               9       90520       $27.52         20%          $5.50         $22.02
93603                                                  $222.84 *                   $23.96 *      $198.88 *
93604
93605
93606  4512   S. LEVITT             2       24680       $30.50         07%          $2.14         $28.36
93607                               5       56784       $52.53         06%          $3.15         $49.38
93608                               6       60410       $12.15         22%          $2.67          $9.48
93609                               7       78952       $89.25         12%         $10.71         $78.54
93610                               8       85278       $49.75         09%          $4.48         $45.27
93611                               8       87492       $64.25         09%          $5.78         $58.47
93612                               9       97204       $84.75         20%         $16.95         $67.80
93613                                                  $383.18 *                   $45.88 *      $337.30 *
93614
93615
93616  5417   K. CONKLIN            1       13579       $35.72         05%          $1.79         $33.93
93617                               2       24615       $18.75         07%          $1.31         $17.44
93618                               3       34928       $37.45         10%          $3.75         $33.70
93619                               4       48527       $87.50         15%         $13.13         $74.37
93620                               5       50150       $18.95         06%          $1.14         $17.81
93621                               5       54652       $38.92         06%          $2.34         $36.58
93622                               5       59765       $98.95         06%          $5.94         $93.01
93623                               7       71572       $18.95         12%          $2.27         $16.68
93624                               8       85175       $80.10         09%          $7.21         $72.89
93625                               9       90275        $4.60         20%           $.92          $3.68
93626                               9       91572       $18.57         20%          $3.71         $14.86
93627                               9       97576       $84.95         20%         $16.99         $67.96
93628                                                  $543.41 *                   $60.50 *      $482.91 *
93629
93630
93631  6213   Z. HAMPTON            1       15792       $64.25         05%          $3.21         $61.04
93632                               1       19975       $98.75         05%          $4.94         $93.81
93633
93634
93635
93636
93637
93638
93639
93640                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     2
93641
93642CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE
93643
93644  6213   Z. HAMPTON            3       34576       $51.15         10%          $5.12         $46.03
93645                               4       49512       $85.20         15%         $12.78         $72.42
93646                                                  $299.35 *                   $26.05 *      $273.30 *
93647
93648
93649  7545   M. LARSON             1       14676       $38.45         05%          $1.92         $36.53
93650                               1       18592       $82.51         05%          $4.13         $78.38
93651                               1       19994       $98.98         05%          $4.95         $94.03
93652                               2       21214       $15.15         07%          $1.06         $14.09
93653                               3       37515       $82.12         10%          $8.21         $73.91
93654                               3       38592       $96.15         10%          $9.62         $86.53
93655                               4       48485       $87.14         15%         $13.07         $74.07
93656                               5       52762       $37.92         06%          $2.28         $35.64
93657                               5       57684       $80.15         06%          $4.81         $75.34
93658                               7       79015       $96.25         12%         $11.55         $84.70
93659                               8       80123        $5.60         09%           $.50          $5.10
93660                               8       82462       $20.15         09%          $1.81         $18.34
93661                               9       91520       $18.15         20%          $3.63         $14.52
93662                               9       93715       $40.15         20%          $8.03         $32.12
93663                                                  $798.87 *                   $75.57 *      $723.30 *
93664         GRAND TOTALS                           $2,566.39 **                 $278.12 **   $2,288.27 **
93665
93666
93667
93668
93669
93670
93671
93672
93673
93674
93675
93676
93677
93678
93679
93680
93681
93682
93683
93684
93685
93686
93687
93688
93689
93690
93691
93692
93693
93694
93695
93696
93697
93698
93699
93700
93701
93702
93703
93704
93705
93706_ATEOF
93707
93708
93709{ set +x
93710$as_echo "$at_srcdir/run_reportwriter.at:1494: diff reference report.txt"
93711at_fn_check_prepare_trace "run_reportwriter.at:1494"
93712( $at_check_trace; diff reference report.txt
93713) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93714at_status=$? at_failed=false
93715$at_check_filter
93716at_fn_diff_devnull "$at_stderr" || at_failed=:
93717at_fn_diff_devnull "$at_stdout" || at_failed=:
93718at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1494"
93719$at_failed && at_fn_log_failure  \
93720"./report.txt"
93721$at_traceon; }
93722
93723
93724  set +x
93725  $at_times_p && times >"$at_times_file"
93726) 5>&1 2>&1 7>&- | eval $at_tee_pipe
93727read at_status <"$at_status_file"
93728#AT_STOP_815
93729#AT_START_816
93730at_fn_group_banner 816 'run_reportwriter.at:1499' \
93731  "Sample Charge Report 3" "                         " 4
93732at_xfail=no
93733(
93734  $as_echo "816. $at_setup_line: testing $at_desc ..."
93735  $at_traceon
93736
93737
93738
93739cat >inp_data <<'_ATEOF'
937400152 J. LANGDON       87653 02475
937410152 J. LANGDON       64025 00945
937420152 J. LANGDON       41915 01370
937430152 J. LANGDON       17410 00251
937442468 L. MORRISEY      18520 00375
937452468 L. MORRISEY      20012 00420
937462468 L. MORRISEY      31572 01015
937472468 L. MORRISEY      48792 03750
937482468 L. MORRISEY      50407 01515
937492468 L. MORRISEY      61575 02010
937502468 L. MORRISEY      79204 05170
937512468 L. MORRISEY      85075 03784
937522468 L. MORRISEY      98476 08794
937533451 M. JACKSON       37847 02790
937543451 M. JACKSON       58492 06850
937553451 M. JACKSON       60010 02040
937563451 M. JACKSON       85260 07852
937573451 M. JACKSON       90520 02752
937584512 S. LEVITT        24680 03050
937594512 S. LEVITT        56784 05253
937604512 S. LEVITT        60410 01215
937614512 S. LEVITT        78952 08925
937624512 S. LEVITT        85278 04975
937634512 S. LEVITT        87492 06425
937644512 S. LEVITT        97204 08475
937655417 K. CONKLIN       13579 03572
937665417 K. CONKLIN       24615 01875
937675417 K. CONKLIN       34928 03745
937685417 K. CONKLIN       48527 08750
937695417 K. CONKLIN       50150 01895
937705417 K. CONKLIN       54652 03892
937715417 K. CONKLIN       59765 09895
937725417 K. CONKLIN       71572 01895
937735417 K. CONKLIN       85175 08010
937745417 K. CONKLIN       90275 00460
937755417 K. CONKLIN       91572 01857
937765417 K. CONKLIN       97576 08495
937776213 Z. HAMPTON       15792 06425
937786213 Z. HAMPTON       19975 09875
937796213 Z. HAMPTON       34576 05115
937806213 Z. HAMPTON       49512 08520
937817545 M. LARSON        14676 03845
937827545 M. LARSON        18592 08251
937837545 M. LARSON        19994 09898
937847545 M. LARSON        21214 01515
937857545 M. LARSON        37515 08212
937867545 M. LARSON        38592 09615
937877545 M. LARSON        48485 08714
937887545 M. LARSON        52762 03792
937897545 M. LARSON        57684 08015
937907545 M. LARSON        79015 09625
937917545 M. LARSON        80123 00560
937927545 M. LARSON        82462 02015
937937545 M. LARSON        91520 01815
937947545 M. LARSON        93715 04015
93795_ATEOF
93796
93797
93798cat >prog.cob <<'_ATEOF'
93799
93800       IDENTIFICATION DIVISION.
93801       PROGRAM-ID. prog.
93802      * ************************************************************* *
93803      * * MODIFICATIONS:                                              *
93804      * * ADDED GROUP ITEM TO INPUT RECORD DEFINITION AND CHANGED     * 20110227
93805      * * REPORT SECTION REFERENCES TO ELEMENTS UNDER GROUP TO FIX    * 20110227
93806      * * MISMATCHED CUSTOMER NAME/NUMBER ON REPORT.                  * 20110227
93807      * ************************************************************* *
93808
93809      * ************************************************************* *
93810      * REPORT WRITER EXAMPLE #4.                                     *
93811      * ************************************************************* *
93812
93813       ENVIRONMENT DIVISION.
93814       CONFIGURATION SECTION.
93815
93816       INPUT-OUTPUT SECTION.
93817       FILE-CONTROL.
93818
93819           SELECT TRANSACTION-DATA
93820               ASSIGN TO EXTERNAL DATAIN
93821                         ORGANIZATION IS LINE SEQUENTIAL.
93822
93823           SELECT REPORT-FILE
93824               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
93825
93826       DATA DIVISION.
93827       FILE SECTION.
93828
93829       FD  TRANSACTION-DATA.
93830
93831       01  TRANSACTION-RECORD.
93832           03  TR-CUSTOMER.                                             20110227
93833               05  TR-CUSTOMER-NUMBER  PIC 9(04).                       20110227
93834               05  FILLER              PIC X(01).                       20110227
93835               05  TR-CUSTOMER-NAME    PIC X(16).                       20110227
93836           03  FILLER                  PIC X(01).
93837           03  TR-ITEM-NUMBER          PIC 9(05).
93838           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
93839               05  TR-ITEM-DEPARTMENT  PIC 9(01).
93840               05  FILLER              PIC 9(04).
93841           03  FILLER                  PIC X(01).
93842           03  TR-ITEM-COST            PIC 9(03)V99.
93843           03  FILLER                  PIC X(47).
93844
93845       FD  REPORT-FILE
93846           REPORT IS CUSTOMER-REPORT.
93847
93848       WORKING-STORAGE SECTION.
93849       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
93850           88  END-OF-FILE                         VALUE 'Y'.
93851
93852       01  DISCOUNT-TABLE.
93853           02  FILLER                  PIC 99      VALUE 05.
93854           02  FILLER                  PIC 99      VALUE 07.
93855           02  FILLER                  PIC 99      VALUE 10.
93856           02  FILLER                  PIC 99      VALUE 15.
93857           02  FILLER                  PIC 99      VALUE 06.
93858           02  FILLER                  PIC 99      VALUE 22.
93859           02  FILLER                  PIC 99      VALUE 12.
93860           02  FILLER                  PIC 99      VALUE 09.
93861           02  FILLER                  PIC 99      VALUE 20.
93862       01  FILLER                      REDEFINES DISCOUNT-TABLE.
93863           02  DISCOUNT                OCCURS 9 TIMES
93864                                       INDEXED BY DISCOUNT-IX
93865                                       PIC V99.
93866
93867       01  CALCULATED-FIELDS.
93868           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
93869           03  WS-CHARGE-AMT           PIC 9(3)V99.
93870
93871       REPORT SECTION.
93872       RD  CUSTOMER-REPORT
93873           CONTROLS ARE FINAL, TR-CUSTOMER
93874           PAGE LIMIT IS 66 LINES
93875           HEADING 1
93876           FIRST DETAIL 5
93877           LAST DETAIL 58.
93878
93879       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
93880           02  LINE 1.
93881               03  COLUMN 27   PIC X(41) VALUE
93882                   'C U S T O M E R  C H A R G E  R E P O R T'.
93883               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
93884               03  COLUMN + 2  PIC ZZZZ9 SOURCE PAGE-COUNTER.
93885           02  LINE PLUS 2.
93886               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
93887               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
93888               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
93889               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
93890               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.
93891
93892       01  CHARGE-DETAIL TYPE DETAIL.
93893           02  LINE PLUS 1.
93894               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
93895               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
93896               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.
93897
93898       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER              20110227
93899           NEXT GROUP IS PLUS 2.
93900           02  LINE PLUS 1.
93901               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
93902               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
93903               03  COLUMN 50   PIC $$$$$.99 SUM TR-ITEM-COST.
93904               03  COLUMN 77   PIC $$$$$.99 SUM WS-DISCOUNT-AMT.
93905               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
93906
93907       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
93908           02  LINE PLUS 1.
93909               03  COLUMN 10   PIC X(12) VALUE 'GRAND TOTALS'.
93910               03  COLUMN 48   PIC $$$,$$$.99 SUM TR-ITEM-COST.
93911               03  COLUMN 59   PIC X VALUE '*'.
93912               03  COLUMN 75   PIC $$$,$$$.99 SUM WS-DISCOUNT-AMT.
93913               03  COLUMN 86   PIC X VALUE '*'.
93914               03  COLUMN 90   PIC $$$,$$$.99 SUM WS-CHARGE-AMT.
93915               03  COLUMN 101  PIC X VALUE '*'.
93916
93917       PROCEDURE DIVISION.
93918
93919       000-INITIATE.
93920
93921           OPEN INPUT TRANSACTION-DATA,
93922                OUTPUT REPORT-FILE.
93923
93924           INITIATE CUSTOMER-REPORT.
93925
93926           READ TRANSACTION-DATA
93927               AT END
93928                   MOVE 'Y' TO END-OF-FILE-SWITCH
93929           END-READ.
93930
93931           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
93932               UNTIL END-OF-FILE.
93933
93934       000-TERMINATE.
93935           TERMINATE CUSTOMER-REPORT.
93936
93937           CLOSE TRANSACTION-DATA,
93938                 REPORT-FILE.
93939
93940           STOP RUN.
93941
93942       100-PROCESS-TRANSACTION-DATA.
93943           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
93944           COMPUTE WS-DISCOUNT-AMT ROUNDED =
93945               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
93946           COMPUTE WS-CHARGE-AMT =
93947               TR-ITEM-COST - WS-DISCOUNT-AMT.
93948           GENERATE CUSTOMER-REPORT.
93949           READ TRANSACTION-DATA
93950             AT END
93951                   MOVE 'Y' TO END-OF-FILE-SWITCH.
93952      *    END-READ.
93953
93954       199-EXIT.
93955           EXIT.
93956
93957_ATEOF
93958
93959
93960{ set +x
93961$as_echo "$at_srcdir/run_reportwriter.at:1719: \$COMPILE prog.cob"
93962at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:1719"
93963( $at_check_trace; $COMPILE prog.cob
93964) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93965at_status=$? at_failed=false
93966$at_check_filter
93967at_fn_diff_devnull "$at_stderr" || at_failed=:
93968at_fn_diff_devnull "$at_stdout" || at_failed=:
93969at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1719"
93970$at_failed && at_fn_log_failure
93971$at_traceon; }
93972
93973
93974{ set +x
93975$as_echo "$at_srcdir/run_reportwriter.at:1721: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
93976at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:1721"
93977( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
93978) >>"$at_stdout" 2>>"$at_stderr" 5>&-
93979at_status=$? at_failed=false
93980$at_check_filter
93981at_fn_diff_devnull "$at_stderr" || at_failed=:
93982at_fn_diff_devnull "$at_stdout" || at_failed=:
93983at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1721"
93984$at_failed && at_fn_log_failure
93985$at_traceon; }
93986
93987
93988
93989
93990
93991cat >reference <<'_ATEOF'
93992                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1
93993
93994CUST. NO.     CUST. NAME                          ITEM COST                DISCT. AMT.    CHARGE
93995
93996   152   J. LANGDON                                $50.41                      $6.50         $43.91
93997
93998
93999  2468   L. MORRISEY                              $268.33                     $39.66        $228.67
94000
94001
94002  3451   M. JACKSON                               $222.84                     $23.96        $198.88
94003
94004
94005  4512   S. LEVITT                                $383.18                     $45.88        $337.30
94006
94007
94008  5417   K. CONKLIN                               $543.41                     $60.50        $482.91
94009
94010
94011  6213   Z. HAMPTON                               $299.35                     $26.05        $273.30
94012
94013
94014  7545   M. LARSON                                $798.87                     $75.57        $723.30
94015         GRAND TOTALS                           $2,566.39 *                  $278.12 *    $2,288.27 *
94016
94017
94018
94019
94020
94021
94022
94023
94024
94025
94026
94027
94028
94029
94030
94031
94032
94033
94034
94035
94036
94037
94038
94039
94040
94041
94042
94043
94044
94045
94046
94047
94048
94049
94050
94051
94052
94053
94054
94055
94056
94057
94058_ATEOF
94059
94060
94061{ set +x
94062$as_echo "$at_srcdir/run_reportwriter.at:1794: diff reference report.txt"
94063at_fn_check_prepare_trace "run_reportwriter.at:1794"
94064( $at_check_trace; diff reference report.txt
94065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
94066at_status=$? at_failed=false
94067$at_check_filter
94068at_fn_diff_devnull "$at_stderr" || at_failed=:
94069at_fn_diff_devnull "$at_stdout" || at_failed=:
94070at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1794"
94071$at_failed && at_fn_log_failure  \
94072"./report.txt"
94073$at_traceon; }
94074
94075
94076  set +x
94077  $at_times_p && times >"$at_times_file"
94078) 5>&1 2>&1 7>&- | eval $at_tee_pipe
94079read at_status <"$at_status_file"
94080#AT_STOP_816
94081#AT_START_817
94082at_fn_group_banner 817 'run_reportwriter.at:1799' \
94083  "Sample Charge Report 4" "                         " 4
94084at_xfail=no
94085(
94086  $as_echo "817. $at_setup_line: testing $at_desc ..."
94087  $at_traceon
94088
94089
94090
94091cat >inp_data <<'_ATEOF'
9409205 A 007328
9409305 A 090620
9409405 A 034602
9409505 A 017837
9409613 A 005035
9409713 A 049851
9409813 A 012139
9409922 A 077572
9410029 A 013491
9410133 A 050628
9410233 A 044987
9410333 A 050162
9410439 A 068745
9410539 A 058384
9410639 A 053005
9410744 A 085669
9410844 A 057891
9410949 A 065134
9411003 B 032035
9411103 B 054694
9411203 B 069591
9411303 B 046023
9411403 B 025725
9411519 B 045550
9411619 B 099371
9411719 B 049703
9411825 B 047000
9411925 B 087106
9412031 B 049157
9412134 B 005994
9412209 C 007980
9412314 C 092224
9412414 C 062942
9412523 C 002974
9412628 C 042394
9412728 C 014745
9412834 C 053467
9412934 C 054332
9413042 C 089295
9413142 C 073826
9413204 D 029685
9413304 D 060676
9413406 D 013230
9413506 D 042290
9413615 D 013076
9413715 D 024104
9413815 D 013078
9413938 D 078771
9414038 D 085871
9414111 E 099350
9414217 E 066301
9414327 E 038144
9414427 E 097807
9414527 E 008055
9414608 F 073201
9414709 F 008278
9414809 F 040898
9414909 F 039688
9415016 F 019308
9415116 F 015173
9415216 F 022865
9415316 F 003568
9415436 F 029276
9415540 F 078631
9415640 F 010249
9415740 F 059583
9415848 F 043877
9415948 F 006755
9416001 G 018347
9416120 G 098123
9416221 G 077346
9416322 G 025953
9416426 G 009587
9416541 G 083126
9416641 G 073046
9416732 H 038823
9416832 H 009989
9416932 H 065838
9417032 H 024994
9417132 H 016065
9417232 H 097042
9417343 H 077895
9417445 H 038692
9417546 H 088151
9417646 H 069538
9417709 J 039764
9417818 J 088890
9417918 J 039421
9418037 J 044560
9418145 J 018770
9418245 J 032993
9418345 J 089631
9418445 J 072659
9418502 K 075925
9418602 K 072909
9418702 K 040544
9418812 K 002138
9418912 K 029239
9419035 K 065936
9419135 K 093046
94192_ATEOF
94193
94194
94195cat >prog.cob <<'_ATEOF'
94196
94197       IDENTIFICATION DIVISION.
94198       PROGRAM-ID. prog.
94199
94200      * ************************************************************* *
94201      * REPORT WRITER EXAMPLE #5.                                     *
94202      * ************************************************************* *
94203
94204       ENVIRONMENT DIVISION.
94205       CONFIGURATION SECTION.
94206
94207       INPUT-OUTPUT SECTION.
94208       FILE-CONTROL.
94209
94210           SELECT SALES-DATA
94211               ASSIGN TO EXTERNAL DATAIN
94212                         ORGANIZATION IS LINE SEQUENTIAL.
94213
94214           SELECT REPORT-FILE
94215               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
94216
94217       DATA DIVISION.
94218       FILE SECTION.
94219
94220       FD  SALES-DATA.
94221
94222       01  SALES-RECORD.
94223           03  SR-SALESMAN-NUMBER      PIC 9(02).
94224           03  FILLER                  PIC X(01).
94225           03  SR-DISTRICT-CODE        PIC X(01).
94226           03  FILLER                  PIC X(01).
94227           03  SR-SALE-AMOUNT          PIC 9(04)V99.
94228           03  FILLER                  PIC X(69).
94229
94230       FD  REPORT-FILE
94231           REPORT IS DISTRICT-SALES-REPORT.
94232
94233       WORKING-STORAGE SECTION.
94234       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
94235           88  END-OF-FILE                         VALUE 'Y'.
94236
94237       01  COMMISSION-TABLE.
94238           02  FILLER                  PIC X(03)   VALUE 'A20'.
94239           02  FILLER                  PIC X(03)   VALUE 'B18'.
94240           02  FILLER                  PIC X(03)   VALUE 'C15'.
94241           02  FILLER                  PIC X(03)   VALUE 'D12'.
94242           02  FILLER                  PIC X(03)   VALUE 'E10'.
94243           02  FILLER                  PIC X(03)   VALUE 'F12'.
94244           02  FILLER                  PIC X(03)   VALUE 'G10'.
94245           02  FILLER                  PIC X(03)   VALUE 'H08'.
94246           02  FILLER                  PIC X(03)   VALUE 'J05'.
94247           02  FILLER                  PIC X(03)   VALUE 'K07'.
94248       01  FILLER                      REDEFINES COMMISSION-TABLE.
94249           02  COMMISSION-ENTRY        OCCURS 10 TIMES
94250                                       INDEXED BY COMMISSION-IX.
94251               03  CE-DISTRICT         PIC X(01).
94252               03  CE-RATE             PIC V99.
94253
94254       01  CALCULATED-FIELDS.
94255           03  WS-COMMISSION           PIC 9(5)V99.
94256
94257       REPORT SECTION.
94258       RD  DISTRICT-SALES-REPORT
94259           CONTROLS ARE FINAL, SR-DISTRICT-CODE, SR-SALESMAN-NUMBER
94260           PAGE LIMIT IS 66 LINES
94261           HEADING 1
94262           FIRST DETAIL 5
94263           LAST DETAIL 58.
94264
94265       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
94266           02  LINE 1.
94267               03  COLUMN 27   PIC X(41) VALUE
94268                   'D I S T R I C T   S A L E S   R E P O R T'.
94269               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
94270               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
94271           02  LINE 3.
94272               03  COLUMN 20   PIC X(26) VALUE
94273                   '-------- SALESMAN --------'.
94274               03  COLUMN 54   PIC X(15) VALUE
94275                   '-- DISTRICT --'.
94276           02  LINE 4.
94277               03  COLUMN 20   PIC X(03) VALUE 'NO.'.
94278               03  COLUMN 28   PIC X(05) VALUE 'SALES'.
94279               03  COLUMN 37   PIC X(10) VALUE 'COMMISSION'.
94280               03  COLUMN 54   PIC X(03) VALUE 'NO.'.
94281               03  COLUMN 61   PIC X(05) VALUE 'SALES'.
94282
94283       01  SALE-DETAIL TYPE DETAIL.
94284           02  LINE PLUS 1.
94285               03  COLUMN 01   PIC 99      SOURCE SR-SALESMAN-NUMBER.
94286               03  COLUMN 04   PIC X       SOURCE SR-DISTRICT-CODE.
94287               03  COLUMN 06   PIC 9999.99 SOURCE SR-SALE-AMOUNT.
94288
94289       01  SALESMAN-TOTAL TYPE CONTROL FOOTING SR-SALESMAN-NUMBER.
94290           02  LINE PLUS 1.
94291               03  COLUMN 20   PIC 99    SOURCE SR-SALESMAN-NUMBER.
94292               03  ST-SALES-AMT COLUMN 24 PIC $$$,$$9.99 SUM
94293                       SR-SALE-AMOUNT.
94294               03  COLUMN 37 PIC $$$,$$9.99 SOURCE WS-COMMISSION.
94295
94296       01  DISTRICT-TOTAL TYPE CONTROL FOOTING SR-DISTRICT-CODE
94297           NEXT GROUP PLUS 2.
94298           02  LINE PLUS 1.
94299               03  COLUMN 54   PIC X     SOURCE SR-DISTRICT-CODE.
94300               03  COLUMN 58   PIC $$$,$$9.99 SUM ST-SALES-AMT.
94301
94302       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
94303           02  LINE PLUS 2.
94304               03  COLUMN 15   PIC X(19) VALUE
94305                   'MONTHLY TOTAL SALES'.
94306               03  COLUMN 57   PIC $$$$,$$9.99 SUM ST-SALES-AMT.
94307               03  COLUMN 69   PIC XX VALUE '**'.
94308
94309       PROCEDURE DIVISION.
94310
94311       DECLARATIVES.
94312       USE-SALESMAN-TOTAL SECTION. USE BEFORE REPORTING SALESMAN-TOTAL.
94313       USE-SALESMAN-TOTAL-PROC.
94314           SET COMMISSION-IX TO 1.
94315           SEARCH COMMISSION-ENTRY
94316               AT END
94317                   MOVE 0.00 TO WS-COMMISSION
94318               WHEN CE-DISTRICT (COMMISSION-IX) = SR-DISTRICT-CODE
94319                   COMPUTE WS-COMMISSION ROUNDED =
94320                       CE-RATE (COMMISSION-IX) * ST-SALES-AMT.
94321
94322       USE-SALESMAN-TOTAL-EXIT.
94323           EXIT.
94324
94325       END DECLARATIVES.
94326
94327       000-INITIATE.
94328
94329           OPEN INPUT SALES-DATA,
94330                OUTPUT REPORT-FILE.
94331
94332           INITIATE DISTRICT-SALES-REPORT.
94333
94334           READ SALES-DATA
94335               AT END
94336                   MOVE 'Y' TO END-OF-FILE-SWITCH
94337           END-READ.
94338
94339           PERFORM 100-PROCESS-SALES-DATA THRU 199-EXIT
94340               UNTIL END-OF-FILE.
94341
94342       000-TERMINATE.
94343           TERMINATE DISTRICT-SALES-REPORT.
94344
94345           CLOSE SALES-DATA,
94346                 REPORT-FILE.
94347
94348           STOP RUN.
94349
94350       100-PROCESS-SALES-DATA.
94351           GENERATE DISTRICT-SALES-REPORT.
94352           READ SALES-DATA
94353               AT END
94354                   MOVE 'Y' TO END-OF-FILE-SWITCH
94355           END-READ.
94356
94357       199-EXIT.
94358           EXIT.
94359
94360_ATEOF
94361
94362
94363{ set +x
94364$as_echo "$at_srcdir/run_reportwriter.at:2070: \$COMPILE prog.cob"
94365at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:2070"
94366( $at_check_trace; $COMPILE prog.cob
94367) >>"$at_stdout" 2>>"$at_stderr" 5>&-
94368at_status=$? at_failed=false
94369$at_check_filter
94370at_fn_diff_devnull "$at_stderr" || at_failed=:
94371at_fn_diff_devnull "$at_stdout" || at_failed=:
94372at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2070"
94373$at_failed && at_fn_log_failure
94374$at_traceon; }
94375
94376
94377{ set +x
94378$as_echo "$at_srcdir/run_reportwriter.at:2072: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
94379at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:2072"
94380( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
94381) >>"$at_stdout" 2>>"$at_stderr" 5>&-
94382at_status=$? at_failed=false
94383$at_check_filter
94384at_fn_diff_devnull "$at_stderr" || at_failed=:
94385at_fn_diff_devnull "$at_stdout" || at_failed=:
94386at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2072"
94387$at_failed && at_fn_log_failure
94388$at_traceon; }
94389
94390
94391
94392
94393
94394cat >reference <<'_ATEOF'
94395                          D I S T R I C T   S A L E S   R E P O R T                      PAGE     1
94396
94397                   -------- SALESMAN --------        -- DISTRICT --
94398                   NO.     SALES    COMMISSION       NO.    SALES
94399                   05   $1,503.87      $300.77
94400                   13     $670.25      $134.05
94401                   22     $775.72      $155.14
94402                   29     $134.91       $26.98
94403                   33   $1,457.77      $291.55
94404                   39   $1,801.34      $360.27
94405                   44   $1,435.60      $287.12
94406                   49     $651.34      $130.27
94407                                                     A    $8,430.80
94408
94409
94410                   03   $2,280.68      $410.52
94411                   19   $1,946.24      $350.32
94412                   25   $1,341.06      $241.39
94413                   31     $491.57       $88.48
94414                   34      $59.94       $10.79
94415                                                     B    $6,119.49
94416
94417
94418                   09      $79.80       $11.97
94419                   14   $1,551.66      $232.75
94420                   23      $29.74        $4.46
94421                   28     $571.39       $85.71
94422                   34   $1,077.99      $161.70
94423                   42   $1,631.21      $244.68
94424                                                     C    $4,941.79
94425
94426
94427                   04     $903.61      $108.43
94428                   06     $555.20       $66.62
94429                   15     $502.58       $60.31
94430                   38   $1,646.42      $197.57
94431                                                     D    $3,607.81
94432
94433
94434                   11     $993.50       $99.35
94435                   17     $663.01       $66.30
94436                   27   $1,440.06      $144.01
94437                                                     E    $3,096.57
94438
94439
94440                   08     $732.01       $87.84
94441                   09     $888.64      $106.64
94442                   16     $609.14       $73.10
94443                   36     $292.76       $35.13
94444                   40   $1,484.63      $178.16
94445                   48     $506.32       $60.76
94446                                                     F    $4,513.50
94447
94448
94449                   01     $183.47       $18.35
94450                   20     $981.23       $98.12
94451                   21     $773.46       $77.35
94452                   22     $259.53       $25.95
94453
94454
94455
94456
94457
94458
94459
94460                          D I S T R I C T   S A L E S   R E P O R T                      PAGE     2
94461
94462                   -------- SALESMAN --------        -- DISTRICT --
94463                   NO.     SALES    COMMISSION       NO.    SALES
94464                   26      $95.87        $9.59
94465                   41   $1,561.72      $156.17
94466                                                     G    $3,855.28
94467
94468
94469                   32   $2,527.51      $202.20
94470                   43     $778.95       $62.32
94471                   45     $386.92       $30.95
94472                   46   $1,576.89      $126.15
94473                                                     H    $5,270.27
94474
94475
94476                   09     $397.64       $19.88
94477                   18   $1,283.11       $64.16
94478                   37     $445.60       $22.28
94479                   45   $2,140.53      $107.03
94480                                                     J    $4,266.88
94481
94482
94483                   02   $1,893.78      $132.56
94484                   12     $313.77       $21.96
94485                   35   $1,589.82      $111.29
94486                                                     K    $3,797.37
94487
94488              MONTHLY TOTAL SALES                        $47,899.76 **
94489
94490
94491
94492
94493
94494
94495
94496
94497
94498
94499
94500
94501
94502
94503
94504
94505
94506
94507
94508
94509
94510
94511
94512
94513
94514
94515
94516
94517
94518
94519
94520
94521
94522
94523
94524
94525
94526_ATEOF
94527
94528
94529{ set +x
94530$as_echo "$at_srcdir/run_reportwriter.at:2210: diff reference report.txt"
94531at_fn_check_prepare_trace "run_reportwriter.at:2210"
94532( $at_check_trace; diff reference report.txt
94533) >>"$at_stdout" 2>>"$at_stderr" 5>&-
94534at_status=$? at_failed=false
94535$at_check_filter
94536at_fn_diff_devnull "$at_stderr" || at_failed=:
94537at_fn_diff_devnull "$at_stdout" || at_failed=:
94538at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2210"
94539$at_failed && at_fn_log_failure  \
94540"./report.txt"
94541$at_traceon; }
94542
94543
94544  set +x
94545  $at_times_p && times >"$at_times_file"
94546) 5>&1 2>&1 7>&- | eval $at_tee_pipe
94547read at_status <"$at_status_file"
94548#AT_STOP_817
94549#AT_START_818
94550at_fn_group_banner 818 'run_reportwriter.at:2215' \
94551  "Sample Payroll Report" "                          " 4
94552at_xfail=no
94553(
94554  $as_echo "818. $at_setup_line: testing $at_desc ..."
94555  $at_traceon
94556
94557
94558
94559cat >inp_data <<'_ATEOF'
9456001 6622 M GAVIN SHAFER         19740201 026000 01521 03362 00075 021042
9456101 6622 M GAVIN SHAFER         19740215 026000 01521 03362 00175 020942
9456201 6622 M GAVIN SHAFER         19740301 026000 01521 03362 00175 020942
9456301 6622 M GAVIN SHAFER         19740315 026000 01521 03362 00050 021067
9456401 7078 F VERA ALSTON          19740101 030000 01755 02304 00050 025891
9456501 7078 F VERA ALSTON          19740115 030000 01755 02304 00100 025841
9456601 7078 F VERA ALSTON          19740201 030000 01755 02304 00050 025891
9456701 7078 F VERA ALSTON          19740215 030000 01755 02304 00000 025941
9456801 7078 F VERA ALSTON          19740301 030000 01755 02304 00075 025866
9456901 7078 F VERA ALSTON          19740315 030000 01755 02304 00100 025841
9457001 8093 M GRADY KAISER         19740101 045000 02633 05819 00175 036374
9457101 8093 M GRADY KAISER         19740115 045000 02633 05819 00100 036449
9457201 8093 M GRADY KAISER         19740201 045000 02633 05819 00100 036449
9457301 8093 M GRADY KAISER         19740215 047500 02779 03648 00100 040973
9457401 8093 M GRADY KAISER         19740301 047500 02779 03648 00175 040898
9457505 1720 F PAULINE WINSTON      19740101 013000 00761 20110 00050 010080
9457605 1720 F PAULINE WINSTON      19740115 013000 00761 02110 00000 010130
9457705 1720 F PAULINE WINSTON      19740201 014000 00819 02272 00075 010834
9457805 1720 F PAULINE WINSTON      19740215 014000 00819 02272 00175 010734
9457905 1720 F PAULINE WINSTON      19740301 014000 00819 02272 00050 010859
9458005 2116 M HERMAN COX           19740101 010000 00585 01293 00175 007947
9458105 2116 M HERMAN COX           19740115 010000 00585 01293 00175 007947
9458205 2116 M HERMAN COX           19740201 010000 00585 01293 00100 008022
9458305 2116 M HERMAN COX           19740215 010000 00585 01293 00100 008022
9458405 2116 M HERMAN COX           19740301 010000 00585 01293 00075 008047
9458505 2116 M HERMAN COX           19740315 011000 00644 01187 00100 009070
9458605 6925 M ADOLF TRUJILLO       19740115 012500 00731 02379 00050 009340
9458705 6925 M ADOLF TRUJILLO       19740201 012500 00731 02379 00100 009290
9458805 6925 M ADOLF TRUJILLO       19740215 012500 00731 02379 00175 009215
9458905 6925 M ADOLF TRUJILLO       19740301 012500 00731 02379 00075 009315
9459005 6925 M ADOLF TRUJILLO       19740315 012500 00731 02379 00000 009390
9459110 1504 F TIFFANY KEIR         19740101 029000 01697 03129 00050 024124
9459210 1504 F TIFFANY KEIR         19740115 029000 01697 03129 00000 024174
9459310 1504 F TIFFANY KEIR         19740201 029000 01697 03129 00075 024099
9459410 1504 F TIFFANY KEIR         19740215 029000 01697 03129 00000 024174
9459510 1504 F TIFFANY KEIR         19740301 029000 01697 03129 00000 024174
9459610 1504 F TIFFANY KEIR         19740315 029000 01697 03129 00050 024124
9459710 6640 M ALEXANDER CATHEY     19740101 032500 01901 06185 00000 024414
9459810 6640 M ALEXANDER CATHEY     19740115 032500 01901 06185 00175 024239
9459910 6640 M ALEXANDER CATHEY     19740201 032500 01901 06185 00175 024239
9460010 6640 M ALEXANDER CATHEY     19740215 032500 01901 06185 00175 024239
9460110 6640 M ALEXANDER CATHEY     19740301 032500 01901 06185 00100 024314
9460210 6640 M ALEXANDER CATHEY     19740315 032500 01901 06185 00100 024314
9460310 9465 M STEVE HUGHES         19740101 029500 01726 04788 00175 022811
9460410 9465 M STEVE HUGHES         19740115 029500 01726 04788 00000 022986
9460510 9465 M STEVE HUGHES         19740201 029500 01726 04788 00000 022986
9460610 9465 M STEVE HUGHES         19740215 029500 01726 04788 00050 022936
9460710 9465 M STEVE HUGHES         19740301 029500 01726 04788 00075 022911
9460815 2903 F KAYLA VERBECK        19740101 014000 00819 02272 00050 010859
9460915 2903 F KAYLA VERBECK        19740115 014000 00819 02272 00175 010734
9461015 2903 F KAYLA VERBECK        19740201 014000 00819 02272 00050 010859
9461115 2903 F KAYLA VERBECK        19740215 014000 00819 02272 00175 010734
9461215 2903 F KAYLA VERBECK        19740301 014000 00819 02272 00000 010909
9461315 2903 F KAYLA VERBECK        19740315 014000 00819 02272 00075 010834
9461415 5196 F CLAIRE KELLAR        19740101 014500 00848 01114 00075 012463
9461515 5196 F CLAIRE KELLAR        19740115 014500 00848 01114 00100 012438
9461615 5196 F CLAIRE KELLAR        19740201 014500 00848 01114 00175 012363
9461715 5196 F CLAIRE KELLAR        19740215 014500 00848 01114 00050 012488
9461815 5196 F CLAIRE KELLAR        19740301 015300 00895 02912 00175 011318
9461915 5196 F CLAIRE KELLAR        19740315 015300 00895 02912 00100 011393
9462020 5190 F MARYANN GLAZENER     19740101 009000 00527 01164 00050 007260
9462120 5190 F MARYANN GLAZENER     19740115 009000 00527 01164 00075 007235
9462220 5190 F MARYANN GLAZENER     19740201 009000 00527 01164 00000 007310
9462320 5190 F MARYANN GLAZENER     19740215 009000 00527 01164 00075 007235
9462420 5190 F MARYANN GLAZENER     19740301 009000 00527 01164 00050 007260
9462520 5190 F MARYANN GLAZENER     19740315 009000 00527 01164 00100 007210
9462620 6580 F CAROLINE TROMBETTA   19740101 008000 00468 00863 00000 006669
9462720 6580 F CAROLINE TROMBETTA   19740115 008000 00468 00863 00075 006594
9462820 6580 F CAROLINE TROMBETTA   19740201 008000 00468 00863 00000 006569
9462920 6580 F CAROLINE TROMBETTA   19740215 008000 00468 00863 00075 006594
9463020 6580 F CAROLINE TROMBETTA   19740301 008000 00468 00863 00050 006619
9463120 6580 F CAROLINE TROMBETTA   19740315 008000 00468 00863 00075 006594
9463220 9507 F ADRIANA CHANGAZI     19740101 008300 00486 01347 00075 006392
9463320 9507 F ADRIANA CHANGAZI     19740115 008300 00486 01347 00175 006292
9463420 9507 F ADRIANA CHANGAZI     19740201 008300 00486 01347 00075 006392
9463520 9507 F ADRIANA CHANGAZI     19740215 008300 00486 01347 00175 006292
9463620 9507 F ADRIANA CHANGAZI     19740301 008300 00486 01347 00000 006467
9463720 9507 F ADRIANA CHANGAZI     19740315 008300 00486 01347 00175 006292
9463825 0428 M MELVIN BEHRENS       19740101 007800 00456 00842 00000 006502
9463925 0428 M MELVIN BEHRENS       19740115 007800 00456 00842 00175 006327
9464025 0428 M MELVIN BEHRENS       19740201 007800 00456 00842 00175 006327
9464125 0428 M MELVIN BEHRENS       19740215 007800 00456 00842 00075 006427
9464225 0428 M MELVIN BEHRENS       19740301 007800 00456 00842 00000 006502
9464325 0428 M MELVIN BEHRENS       19740315 007800 00456 00842 00075 006427
9464425 2003 M BALDWIN SIMONSEN     19740101 011000 00644 02093 00050 008213
9464525 2003 M BALDWIN SIMONSEN     19740115 011000 00644 02093 00075 008188
9464625 2003 M BALDWIN SIMONSEN     19740201 011000 00644 02093 00000 008263
9464725 2003 M BALDWIN SIMONSEN     19740215 011000 00644 02093 00100 008163
9464825 2003 M BALDWIN SIMONSEN     19740301 011500 00673 01487 00075 009265
9464925 2003 M BALDWIN SIMONSEN     19740315 011500 00673 01487 00175 009165
9465025 6491 M LEO TILLEY           19740101 010100 00591 00776 00050 008683
9465125 6491 M LEO TILLEY           19740115 010100 00591 00776 00075 008658
9465225 6491 M LEO TILLEY           19740201 010100 00591 00776 00050 008683
9465325 6491 M LEO TILLEY           19740215 010100 00591 00776 00075 008658
9465425 6491 M LEO TILLEY           19740301 010100 00591 00776 00100 008633
9465525 6491 M LEO TILLEY           19740315 010100 00591 00776 00000 008733
94656_ATEOF
94657
94658
94659cat >prog.cob <<'_ATEOF'
94660
94661       IDENTIFICATION DIVISION.
94662       PROGRAM-ID. prog.
94663      * ************************************************************* *
94664      * * MODIFICATIONS:                                              *
94665      * * CORRECT PARAGRAPH NAME AND GO TO CODING ERRORS.             *
94666      * ************************************************************* *
94667
94668      * ************************************************************* *
94669      * REPORT WRITER EXAMPLE #6.                                     *
94670      * ************************************************************* *
94671
94672       ENVIRONMENT DIVISION.
94673       CONFIGURATION SECTION.
94674
94675       INPUT-OUTPUT SECTION.
94676       FILE-CONTROL.
94677
94678           SELECT PAYROLL-REGISTER-DATA
94679               ASSIGN TO EXTERNAL DATAIN
94680                         ORGANIZATION IS LINE SEQUENTIAL.
94681
94682           SELECT REPORT-FILE
94683               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
94684
94685       DATA DIVISION.
94686       FILE SECTION.
94687
94688       FD  PAYROLL-REGISTER-DATA.
94689
94690       01  PAYROLL-REGISTER-RECORD.
94691           03  PRR-DEPARTMENT-NUMBER   PIC 9(02).
94692           03  FILLER                  PIC X(01).
94693           03  PRR-EMPLOYEE-KEY.
94694               05  PRR-EMPLOYEE-NO     PIC 9(04).
94695               05  FILLER              PIC X(01).
94696               05  PRR-GENDER          PIC X(01).
94697               05  FILLER              PIC X(01).
94698               05  PRR-EMPLOYEE-NAME   PIC X(20).
94699           03  FILLER                  PIC X(01).
94700           03  PRR-PAY-DATE            PIC 9(08).
94701           03  FILLER                  REDEFINES PRR-PAY-DATE.
94702               05  PRR-PAY-DATE-YEAR   PIC 9(04).
94703               05  PRR-PAY-DATE-MONTH  PIC 9(02).
94704               05  PRR-PAY-DATE-DAY    PIC 9(02).
94705           03  FILLER                  PIC X(01).
94706           03  PRR-GROSS-PAY           PIC 9(04)V99.
94707           03  FILLER                  PIC X(01).
94708           03  PRR-FICA-WH             PIC 9(03)V99.
94709           03  FILLER                  PIC X(01).
94710           03  PRR-FED-WH              PIC 9(03)V99.
94711           03  FILLER                  PIC X(01).
94712           03  PRR-MISC-DED            PIC 9(03)V99.
94713           03  FILLER                  PIC X(01).
94714           03  PRR-NET-PAY             PIC 9(04)V99.
94715           03  FILLER                  PIC X(09).
94716
94717       FD  REPORT-FILE
94718           REPORT IS QUARTERLY-PAY-REGISTER.
94719
94720       WORKING-STORAGE SECTION.
94721       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
94722           88  END-OF-FILE                         VALUE 'Y'.
94723       77  PR-SW                       PIC X(1)    VALUE 'N'.
94724       77  SUM-FED-WH                  PIC 9(04)V99 VALUE 0.
94725       77  HI-GROSS                    PIC 9(05) VALUE 2000.
94726
94727       01  WS-EMPLOYEE-KEY.
94728           03  WS-EMPLOYEE-NUMBER      PIC 9(04).
94729           03  FILLER                  PIC X(03).
94730           03  WS-EMPLOYEE-NAME        PIC X(20).
94731
94732       01  WS-PERCENTS-COMPUTED.
94733           03  WPC-DEPT                OCCURS 6 TIMES
94734                                       INDEXED BY WPCD-IX.
94735               05  WPC-PERCENT         OCCURS 5 TIMES
94736                                       INDEXED BY WPCC-IX
94737                                       PIC 9(3)V99.
94738
94739       01  DEPARTMENT-TABLE.
94740           03  FILLER PIC X(17) VALUE '01MANAGEMENT     '.
94741           03  FILLER PIC X(50) VALUE ZEROS.
94742           03  FILLER PIC X(17) VALUE '05ADMINISTRATIVE '.
94743           03  FILLER PIC X(50) VALUE ZEROS.
94744           03  FILLER PIC X(17) VALUE '10SKILLED NURSING'.
94745           03  FILLER PIC X(50) VALUE ZEROS.
94746           03  FILLER PIC X(17) VALUE '15PATIENT SUPPORT'.
94747           03  FILLER PIC X(50) VALUE ZEROS.
94748           03  FILLER PIC X(17) VALUE '20HOUSEKEEPING   '.
94749           03  FILLER PIC X(50) VALUE ZEROS.
94750           03  FILLER PIC X(17) VALUE '25MAINTENANCE    '.
94751           03  FILLER PIC X(50) VALUE ZEROS.
94752       01  FILLER REDEFINES DEPARTMENT-TABLE.
94753           03  DEPARTMENT-ENTRY      OCCURS 6 TIMES
94754                                     INDEXED BY DE-IX.
94755               05  DE-NUMBER         PIC 9(02).
94756               05  DE-NAME           PIC X(15).
94757               05  DE-GROSS          PIC 9(08)V99.
94758               05  DE-FICA           PIC 9(08)V99.
94759               05  DE-FWT            PIC 9(08)V99.
94760               05  DE-MISC           PIC 9(08)V99.
94761               05  DE-NET            PIC 9(08)V99.
94762
94763       REPORT SECTION.
94764       RD  QUARTERLY-PAY-REGISTER
94765           CONTROLS ARE FINAL, PRR-DEPARTMENT-NUMBER,
94766               PRR-EMPLOYEE-KEY
94767           PAGE LIMIT IS 66 LINES
94768           HEADING 1
94769           FIRST DETAIL 7
94770           LAST DETAIL 60.
94771
94772       01  TYPE PAGE HEADING.
94773           02  LINE 1.
94774               03  COLUMN 39   PIC X(13) VALUE 'C E N T U R Y'.
94775               03  COLUMN 55   PIC X(13) VALUE 'M E D I C A L'.
94776               03  COLUMN 71   PIC X(11) VALUE 'C E N T E R'.
94777           02  LINE 2.
94778               03  COLUMN 35   PIC X(17) VALUE 'Q U A R T E R L Y'.
94779               03  COLUMN 55   PIC X(13) VALUE 'P A Y R O L L'.
94780               03  COLUMN 71   PIC X(15) VALUE 'R E G I S T E R'.
94781               03  COLUMN 111  PIC X(04) VALUE 'PAGE'.
94782               03  COLUMN 116  PIC ZZZZ9 SOURCE PAGE-COUNTER.
94783           02  LINE 4.
94784               03  COLUMN 06   PIC X(9) VALUE ALL '-'.
94785               03  COLUMN 15   PIC X(28) VALUE
94786                   ' EMPLOYEE ---------'.
94787               03  COLUMN 40   PIC X(05) VALUE 'GROSS'.
94788               03  COLUMN 54   PIC X(04) VALUE 'FICA'.
94789               03  COLUMN 66   PIC X(07) VALUE 'FED W/H'.
94790               03  COLUMN 80   PIC X(05) VALUE 'MISC.'.
94791               03  COLUMN 95   PIC X(03) VALUE 'NET'.
94792           02  LINE 5.
94793               03  COLUMN 07   PIC X(02) VALUE 'NO'.
94794               03  COLUMN 22   PIC X(04) VALUE 'NAME'.
94795               03  COLUMN 41   PIC X(03) VALUE 'PAY'.
94796               03  COLUMN 55   PIC X(03) VALUE 'TAX'.
94797               03  COLUMN 68   PIC X(03) VALUE 'TAX'.
94798               03  COLUMN 79   PIC X(07) VALUE 'DEDUCT.'.
94799               03  COLUMN 95   PIC X(03) VALUE 'PAY'.
94800
94801       01  DEPT-HEAD TYPE CONTROL HEADING PRR-DEPARTMENT-NUMBER
94802           NEXT GROUP + 1.
94803           02  LINE PLUS 1.
94804               03  COLUMN 01   PIC X(18) VALUE
94805                     'DEPARTMENT NUMBER:'.
94806               03  COLUMN 21   PIC 9(02) SOURCE PRR-DEPARTMENT-NUMBER.
94807               03  COLUMN 24   PIC X(15) SOURCE DE-NAME (DE-IX).
94808
94809       01  EMPLOYEE-DETAIL TYPE DETAIL.
94810           02  LINE + 1.
94811               03  COLUMN 01   PIC X(27) SOURCE PRR-EMPLOYEE-KEY.
94812               03  COLUMN 30   PIC X(5) VALUE "Hello"
94813                               PRESENT AFTER NEW PRR-EMPLOYEE-KEY
94814                                              OR PAGE.
94815               03  COLUMN 30   PIC X(5) VALUE " ''  "
94816                               ABSENT AFTER NEW PRR-EMPLOYEE-KEY
94817                                              OR PAGE.
94818               03  COLUMN 50   PIC 9(04).99 SOURCE PRR-GROSS-PAY.
94819               03  COLUMN 60   PIC 9(03).99 SOURCE PRR-FICA-WH.
94820               03  COLUMN 70   PIC 9(03).99 SOURCE PRR-FED-WH.
94821               03  COLUMN 80   PIC 9(03).99 SOURCE PRR-MISC-DED.
94822               03  COLUMN 90   PIC 9(04).99 SOURCE PRR-NET-PAY.
94823
94824       01  EMPL-FOOT TYPE CONTROL FOOTING PRR-EMPLOYEE-KEY.
94825           02  LINE PLUS 1
94826                      PRESENT WHEN SUM-FED-WH > 80.00
94827                  .
94828               03  COLUMN 06   PIC ZZZ9  SOURCE WS-EMPLOYEE-NUMBER.
94829               03  COLUMN 14   PIC X(20) SOURCE WS-EMPLOYEE-NAME.
94830               03  COLUMN 38   PIC $$,$$9.99 SUM PRR-GROSS-PAY.
94831               03  COLUMN 53   PIC $$$9.99 SUM PRR-FICA-WH.
94832               03  COLUMN 66   PIC $$$9.99 SUM PRR-FED-WH.
94833               03  COLUMN 79   PIC $$$9.99 SUM PRR-MISC-DED.
94834               03  COLUMN 92   PIC $$,$$9.99 SUM PRR-NET-PAY.
94835
94836       01  DEPT-FOOT TYPE CONTROL FOOTING PRR-DEPARTMENT-NUMBER
94837           NEXT GROUP PLUS 2.
94838           02  LINE PLUS 2.
94839               03  COLUMN 14   PIC X(20) VALUE
94840                   'DEPARTMENT TOTALS'.
94841               03  DEPT-FOOT-GROSS       COLUMN 38   PIC $$,$$9.99
94842                                         SUM PRR-GROSS-PAY.
94843               03  COLUMN 48   PIC X         VALUE '*'.
94844               03  DEPT-FOOT-FICA        COLUMN 53   PIC $$$9.99
94845                                         SUM PRR-FICA-WH.
94846               03  COLUMN 61   PIC X         VALUE '*'.
94847               03  DEPT-FOOT-FWT         COLUMN 66   PIC $$$9.99
94848                                         SUM PRR-FED-WH.
94849               03  COLUMN 74   PIC X         VALUE '*'.
94850               03  DEPT-FOOT-MISC        COLUMN 79   PIC $$$9.99
94851                                         SUM PRR-MISC-DED.
94852               03  COLUMN 87   PIC X         VALUE '*'.
94853               03  DEPT-FOOT-NET         COLUMN 92   PIC $$,$$9.99
94854                                         SUM PRR-NET-PAY.
94855               03  COLUMN 102  PIC X         VALUE '*'.
94856
94857       01  COMP-FOOT TYPE CONTROL FOOTING FINAL.
94858           02  LINE PLUS 2.
94859               03  COLUMN 14   PIC X(20) VALUE
94860                   'COMPANY TOTALS'.
94861               03  CO-GROSS    COLUMN 37   PIC $$$,$$9.99
94862                               SUM PRR-GROSS-PAY.
94863               03  COLUMN 48   PIC XX        VALUE '**'.
94864               03  CO-FICA     COLUMN 51   PIC $$,$$9.99
94865                               SUM PRR-FICA-WH.
94866               03  COLUMN 61   PIC XX        VALUE '**'.
94867               03  CO-FWT      COLUMN 64   PIC $$,$$9.99
94868                               SUM PRR-FED-WH.
94869               03  COLUMN 74   PIC XX        VALUE '**'.
94870               03  CO-MISC     COLUMN 77   PIC $$,$$9.99
94871                               SUM PRR-MISC-DED.
94872               03  COLUMN 87   PIC XX        VALUE '**'.
94873               03  CO-NET      COLUMN 91   PIC $$$,$$9.99
94874                               SUM PRR-NET-PAY.
94875               03  COLUMN 102  PIC XX        VALUE '**'.
94876
94877       01  REPORT-FOOT TYPE REPORT FOOTING.
94878           02  LINE 1.
94879               03  COLUMN 39   PIC X(13) VALUE 'C e n t u r y'.
94880               03  COLUMN 55   PIC X(13) VALUE 'M e d i c a l'.
94881               03  COLUMN 71   PIC X(11) VALUE 'C e n t e r'.
94882           02  LINE 2.
94883               03  COLUMN 35   PIC X(17) VALUE 'Q u a r t e r l y'.
94884               03  COLUMN 55   PIC X(13) VALUE 'P a y r o l l'.
94885               03  COLUMN 71   PIC X(15) VALUE 'R e g i s t e r'.
94886               03  COLUMN 111  PIC X(04) VALUE 'PAGE'.
94887               03  COLUMN 116  PIC ZZZZ9 SOURCE PAGE-COUNTER.
94888           02  LINE 4.
94889               03  COLUMN 40   PIC X(05) VALUE 'GROSS'.
94890               03  COLUMN 58   PIC X(04) VALUE 'FICA'.
94891               03  COLUMN 74   PIC X(07) VALUE 'FED W/H'.
94892               03  COLUMN 92   PIC X(05) VALUE 'MISC.'.
94893               03  COLUMN 111  PIC X(03) VALUE 'NET'.
94894           02  LINE 5.
94895               03  COLUMN 41   PIC X(03) VALUE 'PAY'.
94896               03  COLUMN 59   PIC X(03) VALUE 'TAX'.
94897               03  COLUMN 76   PIC X(03) VALUE 'TAX'.
94898               03  COLUMN 91   PIC X(07) VALUE 'DEDUCT.'.
94899               03  COLUMN 111  PIC X(03) VALUE 'PAY'.
94900
94901           02  LINE PLUS 2.
94902               03  COLUMN 05   PIC X(29) VALUE
94903                   '* * * DEPARTMENT TOTALS * * *'.
94904           02  LINE PLUS 2.
94905               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (1).
94906               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (1).
94907               03  FILLER      PRESENT WHEN DE-GROSS (1) > HI-GROSS.
94908                 05  COLUMN 30 PIC X(4) VALUE "High".
94909               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (1).
94910               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (1 1).
94911               03  COLUMN 51   PIC X VALUE '%'.
94912               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (1).
94913               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (1 2).
94914               03  COLUMN 68   PIC X VALUE '%'.
94915               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (1).
94916               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (1 3).
94917               03  COLUMN 85   PIC X VALUE '%'.
94918               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (1).
94919               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (1 4).
94920               03  COLUMN 102  PIC X VALUE '%'.
94921               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (1).
94922               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (1 5).
94923               03  COLUMN 121  PIC X VALUE '%'.
94924               03  FILLER      PRESENT WHEN WPC-PERCENT (1 5) < 15 .
94925                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
94926           02  LINE PLUS 2.
94927               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (2).
94928               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (2).
94929               03  FILLER      PRESENT WHEN DE-GROSS (2) > HI-GROSS.
94930                 05  COLUMN 30 PIC X(4) VALUE "High".
94931               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (2).
94932               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (2 1).
94933               03  COLUMN 51   PIC X VALUE '%'.
94934               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (2).
94935               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (2 2).
94936               03  COLUMN 68   PIC X VALUE '%'.
94937               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (2).
94938               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (2 3).
94939               03  COLUMN 85   PIC X VALUE '%'.
94940               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (2).
94941               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (2 4).
94942               03  COLUMN 102  PIC X VALUE '%'.
94943               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (2).
94944               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (2 5).
94945               03  COLUMN 121  PIC X VALUE '%'.
94946               03  FILLER      PRESENT WHEN WPC-PERCENT (2 5) < 15 .
94947                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
94948           02  LINE PLUS 2.
94949               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (3).
94950               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (3).
94951               03  FILLER      PRESENT WHEN DE-GROSS (3) > HI-GROSS.
94952                 05  COLUMN 30 PIC X(4) VALUE "High".
94953               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (3).
94954               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (3 1).
94955               03  COLUMN 51   PIC X VALUE '%'.
94956               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (3).
94957               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (3 2).
94958               03  COLUMN 68   PIC X VALUE '%'.
94959               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (3).
94960               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (3 3).
94961               03  COLUMN 85   PIC X VALUE '%'.
94962               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (3).
94963               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (3 4).
94964               03  COLUMN 102  PIC X VALUE '%'.
94965               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (3).
94966               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (3 5).
94967               03  COLUMN 121  PIC X VALUE '%'.
94968               03  FILLER      PRESENT WHEN WPC-PERCENT (3 5) < 15 .
94969                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
94970           02  LINE PLUS 2.
94971               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (4).
94972               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (4).
94973               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (4).
94974               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (4 1).
94975               03  COLUMN 51   PIC X VALUE '%'.
94976               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (4).
94977               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (4 2).
94978               03  COLUMN 68   PIC X VALUE '%'.
94979               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (4).
94980               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (4 3).
94981               03  COLUMN 85   PIC X VALUE '%'.
94982               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (4).
94983               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (4 4).
94984               03  COLUMN 102  PIC X VALUE '%'.
94985               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (4).
94986               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (4 5).
94987               03  COLUMN 121  PIC X VALUE '%'.
94988           02  LINE PLUS 2.
94989               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (5).
94990               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (5).
94991               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (5).
94992               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (5 1).
94993               03  COLUMN 51   PIC X VALUE '%'.
94994               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (5).
94995               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (5 2).
94996               03  COLUMN 68   PIC X VALUE '%'.
94997               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (5).
94998               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (5 3).
94999               03  COLUMN 85   PIC X VALUE '%'.
95000               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (5).
95001               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (5 4).
95002               03  COLUMN 102  PIC X VALUE '%'.
95003               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (5).
95004               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (5 5).
95005               03  COLUMN 121  PIC X VALUE '%'.
95006           02  LINE PLUS 2.
95007               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (6).
95008               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (6).
95009               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (6).
95010               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (6 1).
95011               03  COLUMN 51   PIC X VALUE '%'.
95012               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (6).
95013               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (6 2).
95014               03  COLUMN 68   PIC X VALUE '%'.
95015               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (6).
95016               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (6 3).
95017               03  COLUMN 85   PIC X VALUE '%'.
95018               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (6).
95019               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (6 4).
95020               03  COLUMN 102  PIC X VALUE '%'.
95021               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (6).
95022               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (6 5).
95023               03  COLUMN 121  PIC X VALUE '%'.
95024           02  LINE PLUS 2.
95025               03  COLUMN 37   PIC $$$,$$9.99 SOURCE CO-GROSS.
95026               03  COLUMN 48   PIC X(5) VALUE '100%'.
95027               03  COLUMN 55   PIC $$,$$9.99  SOURCE CO-FICA.
95028               03  COLUMN 65   PIC X(5) VALUE '100%'.
95029               03  COLUMN 72   PIC $$,$$9.99  SOURCE CO-FWT.
95030               03  COLUMN 82   PIC X(5) VALUE '100%'.
95031               03  COLUMN 89   PIC $$,$$9.99  SOURCE CO-MISC.
95032               03  COLUMN 99   PIC X(5) VALUE '100%'.
95033               03  COLUMN 107  PIC $$$,$$9.99 SOURCE CO-NET.
95034               03  COLUMN 118  PIC X(5) VALUE '100%'.
95035
95036       PROCEDURE DIVISION.
95037
95038       DECLARATIVES.
95039
95040       DEPT-HEAD-USE SECTION. USE BEFORE REPORTING DEPT-HEAD.
95041       DEPT-HEAD-PROC.
95042           SET DE-IX TO +1.
95043           SEARCH DEPARTMENT-ENTRY
95044               WHEN DE-NUMBER (DE-IX) = PRR-DEPARTMENT-NUMBER
95045                   MOVE ZEROS TO DE-GROSS (DE-IX), DE-FICA (DE-IX),
95046                                 DE-FWT (DE-IX), DE-MISC (DE-IX),
95047                                 DE-NET (DE-IX).
95048
95049       DEPT-HEAD-EXIT.
95050           EXIT.
95051
95052       EMPL-FOOT-USE SECTION. USE BEFORE REPORTING EMPL-FOOT.
95053       EMPL-FOOT-PROC.
95054           MOVE PRR-EMPLOYEE-KEY TO WS-EMPLOYEE-KEY.
95055           MOVE 'Y' TO PR-SW.
95056
95057       EMPL-FOOT-EXIT.
95058           EXIT.
95059
95060       DEPT-FOOT-USE SECTION. USE BEFORE REPORTING DEPT-FOOT.
95061       DEPT-FOOT-PROC.
95062           MOVE DEPT-FOOT-GROSS TO DE-GROSS (DE-IX).
95063           MOVE DEPT-FOOT-FICA TO DE-FICA (DE-IX).
95064           MOVE DEPT-FOOT-FWT TO DE-FWT (DE-IX).
95065           MOVE DEPT-FOOT-MISC TO DE-MISC (DE-IX).
95066           MOVE DEPT-FOOT-NET TO DE-NET (DE-IX).
95067      *     SUPPRESS PRINTING.
95068
95069       DEPT-FOOT-EXIT.
95070           EXIT.
95071
95072       COMP-FOOT-USE SECTION. USE BEFORE REPORTING COMP-FOOT.
95073       COMP-FOOT-PROC.
95074           PERFORM COMP-FOOT-CALC
95075               VARYING WPCD-IX FROM +1 BY +1
95076               UNTIL WPCD-IX > +6.
95077           GO TO COMP-FOOT-EXIT.
95078
95079       COMP-FOOT-CALC.
95080           SET DE-IX TO WPCD-IX.
95081           SET WPCC-IX TO +1.
95082           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
95083               ((DE-GROSS (DE-IX) / CO-GROSS) * 100) + .5.
95084           SET WPCC-IX TO +2.
95085           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
95086               ((DE-FICA (DE-IX) / CO-FICA) * 100) + .5.
95087           SET WPCC-IX TO +3.
95088           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
95089               ((DE-FWT (DE-IX) / CO-FWT) * 100) + .5.
95090           SET WPCC-IX TO +4.
95091           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
95092               ((DE-MISC (DE-IX) / CO-MISC) * 100) + .5.
95093           SET WPCC-IX TO +5.
95094           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
95095               ((DE-NET (DE-IX) / CO-NET) * 100) + .5.
95096
95097       COMP-FOOT-EXIT.
95098           EXIT.
95099
95100       END DECLARATIVES.
95101
95102       000-INITIATE.
95103
95104           OPEN INPUT PAYROLL-REGISTER-DATA,
95105                OUTPUT REPORT-FILE.
95106
95107           INITIATE QUARTERLY-PAY-REGISTER.
95108
95109           READ PAYROLL-REGISTER-DATA
95110               AT END
95111                   MOVE 'Y' TO END-OF-FILE-SWITCH.
95112
95113           PERFORM 100-PROCESS-PAYROLL-DATA THRU 199-EXIT
95114               UNTIL END-OF-FILE.
95115
95116       000-TERMINATE.
95117           TERMINATE QUARTERLY-PAY-REGISTER.
95118
95119           CLOSE PAYROLL-REGISTER-DATA,
95120                 REPORT-FILE.
95121
95122           STOP RUN.
95123
95124       100-PROCESS-PAYROLL-DATA.
95125           ADD PRR-FED-WH TO SUM-FED-WH.
95126           GENERATE QUARTERLY-PAY-REGISTER.
95127           IF PR-SW = 'Y'
95128               MOVE 'N' TO PR-SW
95129               MOVE ZERO TO SUM-FED-WH.
95130           READ PAYROLL-REGISTER-DATA
95131               AT END
95132                   MOVE 'Y' TO END-OF-FILE-SWITCH.
95133
95134       199-EXIT.
95135           EXIT.
95136
95137_ATEOF
95138
95139
95140{ set +x
95141$as_echo "$at_srcdir/run_reportwriter.at:2795: \$COMPILE prog.cob"
95142at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:2795"
95143( $at_check_trace; $COMPILE prog.cob
95144) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95145at_status=$? at_failed=false
95146$at_check_filter
95147echo >>"$at_stderr"; $as_echo "prog.cob:266: warning: PLUS is ignored on first field of line
95148prog.cob:288: warning: PLUS is ignored on first field of line
95149prog.cob:310: warning: PLUS is ignored on first field of line
95150" | \
95151  $at_diff - "$at_stderr" || at_failed=:
95152at_fn_diff_devnull "$at_stdout" || at_failed=:
95153at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2795"
95154$at_failed && at_fn_log_failure
95155$at_traceon; }
95156
95157
95158{ set +x
95159$as_echo "$at_srcdir/run_reportwriter.at:2801: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
95160at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:2801"
95161( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./prog
95162) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95163at_status=$? at_failed=false
95164$at_check_filter
95165at_fn_diff_devnull "$at_stderr" || at_failed=:
95166at_fn_diff_devnull "$at_stdout" || at_failed=:
95167at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2801"
95168$at_failed && at_fn_log_failure
95169$at_traceon; }
95170
95171
95172
95173
95174
95175cat >reference <<'_ATEOF'
95176                                      C E N T U R Y   M E D I C A L   C E N T E R
95177                                  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
95178
95179     --------- EMPLOYEE ---------      GROSS         FICA        FED W/H       MISC.          NET
95180      NO             NAME               PAY           TAX          TAX        DEDUCT.         PAY
95181
95182DEPARTMENT NUMBER:  01 MANAGEMENT
95183
95184     6622    GAVIN SHAFER            $1,040.00       $60.84      $134.48        $4.75        $839.93
95185     7078    VERA ALSTON             $1,800.00      $105.30      $138.24        $3.75      $1,552.71
95186     8093    GRADY KAISER            $2,300.00      $134.57      $247.53        $6.50      $1,911.43
95187
95188             DEPARTMENT TOTALS       $5,140.00 *    $300.71 *    $520.25 *     $15.00 *    $4,304.07 *
95189
95190
95191DEPARTMENT NUMBER:  05 ADMINISTRATIVE
95192
95193     1720    PAULINE WINSTON           $680.00       $39.79      $290.36        $3.50        $526.37
95194     2116    HERMAN COX                $610.00       $35.69       $76.52        $7.25        $490.55
95195     6925    ADOLF TRUJILLO            $625.00       $36.55      $118.95        $4.00        $465.50
95196
95197             DEPARTMENT TOTALS       $1,915.00 *    $112.03 *    $485.83 *     $14.75 *    $1,482.42 *
95198
95199
95200DEPARTMENT NUMBER:  10 SKILLED NURSING
95201
95202     1504    TIFFANY KEIR            $1,740.00      $101.82      $187.74        $1.75      $1,448.69
95203     6640    ALEXANDER CATHEY        $1,950.00      $114.06      $371.10        $7.25      $1,457.59
95204     9465    STEVE HUGHES            $1,475.00       $86.30      $239.40        $3.00      $1,146.30
95205
95206             DEPARTMENT TOTALS       $5,165.00 *    $302.18 *    $798.24 *     $12.00 *    $4,052.58 *
95207
95208
95209DEPARTMENT NUMBER:  15 PATIENT SUPPORT
95210
95211     2903    KAYLA VERBECK             $840.00       $49.14      $136.32        $5.25        $649.29
95212     5196    CLAIRE KELLAR             $886.00       $51.82      $102.80        $6.75        $724.63
95213
95214             DEPARTMENT TOTALS       $1,726.00 *    $100.96 *    $239.12 *     $12.00 *    $1,373.92 *
95215
95216
95217DEPARTMENT NUMBER:  20 HOUSEKEEPING
95218
95219
95220             DEPARTMENT TOTALS       $1,518.00 *     $88.86 *    $202.44 *     $13.00 *    $1,212.76 *
95221
95222
95223DEPARTMENT NUMBER:  25 MAINTENANCE
95224
95225     2003    BALDWIN SIMONSEN          $670.00       $39.22      $113.46        $4.75        $512.57
95226
95227             DEPARTMENT TOTALS       $1,744.00 *    $102.04 *    $210.54 *     $13.25 *    $1,418.17 *
95228
95229             COMPANY TOTALS         $17,208.00 ** $1,006.78 ** $2,456.42 **    $80.00 **  $13,843.92 **
95230
95231
95232
95233
95234
95235
95236
95237
95238
95239
95240
95241
95242                                      C e n t u r y   M e d i c a l   C e n t e r
95243                                  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
95244
95245                                       GROSS             FICA            FED W/H           MISC.              NET
95246                                        PAY               TAX              TAX            DEDUCT.             PAY
95247
95248    * * * DEPARTMENT TOTALS * * *
95249
95250    01 MANAGEMENT            High    $5,140.00  30%     $300.71  30%     $520.25  21%      $15.00  19%     $4,304.07  31%
95251
95252Lo  05 ADMINISTRATIVE                $1,915.00  11%     $112.03  11%     $485.83  20%      $14.75  18%     $1,482.42  11%
95253
95254    10 SKILLED NURSING       High    $5,165.00  30%     $302.18  30%     $798.24  33%      $12.00  15%     $4,052.58  29%
95255
95256    15 PATIENT SUPPORT               $1,726.00  10%     $100.96  10%     $239.12  10%      $12.00  15%     $1,373.92  10%
95257
95258    20 HOUSEKEEPING                  $1,518.00   9%      $88.86   9%     $202.44   8%      $13.00  16%     $1,212.76   9%
95259
95260    25 MAINTENANCE                   $1,744.00  10%     $102.04  10%     $210.54   9%      $13.25  17%     $1,418.17  10%
95261
95262                                    $17,208.00 100%   $1,006.78 100%   $2,456.42 100%      $80.00 100%    $13,843.92 100%
95263_ATEOF
95264
95265
95266{ set +x
95267$as_echo "$at_srcdir/run_reportwriter.at:2895: diff reference report.txt"
95268at_fn_check_prepare_trace "run_reportwriter.at:2895"
95269( $at_check_trace; diff reference report.txt
95270) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95271at_status=$? at_failed=false
95272$at_check_filter
95273at_fn_diff_devnull "$at_stderr" || at_failed=:
95274at_fn_diff_devnull "$at_stdout" || at_failed=:
95275at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2895"
95276$at_failed && at_fn_log_failure  \
95277"./report.txt"
95278$at_traceon; }
95279
95280
95281  set +x
95282  $at_times_p && times >"$at_times_file"
95283) 5>&1 2>&1 7>&- | eval $at_tee_pipe
95284read at_status <"$at_status_file"
95285#AT_STOP_818
95286#AT_START_819
95287at_fn_group_banner 819 'run_reportwriter.at:2900' \
95288  "Sample REPORT with RIGHT/CENTER" "                " 4
95289at_xfail=no
95290(
95291  $as_echo "819. $at_setup_line: testing $at_desc ..."
95292  $at_traceon
95293
95294
95295
95296cat >inp_data <<'_ATEOF'
9529700099Dorken, Keith       CS 000008
9529800007Allinson, Sandy     MA 000118
9529900125Allinson, Nina      MA 012308
9530000126Allinson, Natalia   MA 000008
9530100127Allinson, Kristina  MBA000008
9530200131Norman, Nancy       SC 000006
9530300132Norman, Becky       SC 000116
9530400133Norman, Michelle    SC 112306
9530500134Norman, James       AM 000006
9530612345Norman, Ron         CS 000008
95307_ATEOF
95308
95309
95310cat >prog.cob <<'_ATEOF'
95311
95312       IDENTIFICATION DIVISION.
95313       PROGRAM-ID. prog.
95314       ENVIRONMENT DIVISION.
95315       CONFIGURATION SECTION.
95316       INPUT-OUTPUT SECTION.
95317
95318       FILE-CONTROL.
95319               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
95320                              ORGANIZATION IS LINE SEQUENTIAL.
95321               SELECT PRINT-FILE ASSIGN TO EXTERNAL
95322                              LINE ADVANCING REPORT1.
95323
95324       DATA DIVISION.
95325       FILE SECTION.
95326       FD   INPUT-FILE.
95327       01   INPUT-REC.
95328               05  STUDENT-ID               PIC  9(5).
95329               05  STUDENT-NAME             PIC  X(20).
95330               05  MAJOR                    PIC  XXX.
95331               05  NUM-COURSES              PIC  9(6).
95332
95333       FD   PRINT-FILE
95334             BLOCK CONTAINS 0 RECORDS
95335             RECORDING MODE IS F
95336             RECORD CONTAINS 132 CHARACTERS
95337            REPORT IS STUDENT-REPORT.
95338       01   RW-REC  PIC X(90).
95339
95340       WORKING-STORAGE SECTION.
95341       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".
95342
95343       REPORT SECTION.
95344       RD   STUDENT-REPORT
95345           PAGE LIMIT 30
95346           HEADING 1
95347           FIRST DETAIL  5
95348           LAST  DETAIL 25
95349           FOOTING 28
95350           LINE LIMIT 90
95351           .
95352       01 HEADING-LINE.
95353          02 TYPE PAGE HEADING LINE PLUS 1.
95354            05  COLUMN 1      PIC X(50) VALUE
95355                "         1         2         3         4         5".
95356            05  COLUMN 51     PIC X(20) VALUE "         6         7".
95357          02 TYPE PAGE HEADING LINE PLUS 1.
95358            05  COLUMN 1      PIC X(50) VALUE
95359                "12345678901234567890123456789012345678901234567890".
95360            05  COLUMN 51     PIC X(20) VALUE "12345678901234567890".
95361          02 TYPE PAGE HEADING LINE PLUS 1.
95362            05  COLUMN 1      PIC X(2)  VALUE "Ln".
95363            05  COLUMN 5      PIC X(6)  VALUE "--ID--".
95364            05  COLUMN 16     PIC X(20) VALUE "--------Name--------".
95365            05  COLUMN 39     PIC X(5)  VALUE "Major".
95366            05  COLUMN 45     PIC XXX   VALUE "*-*".
95367            05  COLUMN 54     PIC X(5)  VALUE "+Odd+".
95368            05  COLUMN 61     PIC X(6)  VALUE "+Even+".
95369
95370       01 REPORT-LINE
95371          TYPE DETAIL LINE PLUS  1.
95372            05  COLUMN PLUS 1 PIC Z9
95373                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
95374            05  COLUMN LEFT PLUS 3   PIC Z(5)9 SOURCE STUDENT-ID.
95375            05  COLUMN CENTER 25     PIC X(20) SOURCE STUDENT-NAME.
95376            05  COLUMN RIGHT  43     PIC X(5)  SOURCE MAJOR.
95377            05  COLUMN        45     PIC XXX   VALUE ":-:".
95378            05  COLUMN CENTER 56     PIC Z(4)9 SOURCE NUM-COURSES.
95379            05  COLUMN CENTER 63     PIC Z(5)9 SOURCE NUM-COURSES.
95380            05  COLUMN        68     PIC X   VALUE ":".
95381
95382       PROCEDURE DIVISION.
95383       A000-MAINLINE.
95384           OPEN  INPUT  INPUT-FILE
95385                 OUTPUT PRINT-FILE
95386           PERFORM DO-INIT.
95387           READ INPUT-FILE
95388               AT END
95389                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
95390           PERFORM A001-LOOP
95391               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
95392           PERFORM DO-TERM.
95393           CLOSE INPUT-FILE
95394                 PRINT-FILE.
95395           STOP RUN.
95396
95397       A001-LOOP.
95398           GENERATE REPORT-LINE.
95399           READ INPUT-FILE
95400               AT END
95401                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
95402       DO-INIT.
95403           INITIATE STUDENT-REPORT.
95404
95405       DO-TERM.
95406           TERMINATE STUDENT-REPORT.
95407_ATEOF
95408
95409
95410{ set +x
95411$as_echo "$at_srcdir/run_reportwriter.at:3014: \$COMPILE prog.cob"
95412at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3014"
95413( $at_check_trace; $COMPILE prog.cob
95414) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95415at_status=$? at_failed=false
95416$at_check_filter
95417echo >>"$at_stderr"; $as_echo "prog.cob:62: warning: PLUS is ignored on first field of line
95418prog.cob:64: error: PLUS is not allowed with LEFT, RIGHT or CENTER
95419" | \
95420  $at_diff - "$at_stderr" || at_failed=:
95421at_fn_diff_devnull "$at_stdout" || at_failed=:
95422at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:3014"
95423$at_failed && at_fn_log_failure
95424$at_traceon; }
95425
95426
95427{ set +x
95428$as_echo "$at_srcdir/run_reportwriter.at:3019: \$COMPILE -std=mf prog.cob"
95429at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_reportwriter.at:3019"
95430( $at_check_trace; $COMPILE -std=mf prog.cob
95431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95432at_status=$? at_failed=false
95433$at_check_filter
95434echo >>"$at_stderr"; $as_echo "prog.cob:62: warning: PLUS is ignored on first field of line
95435prog.cob:64: warning: PLUS is not recommended with LEFT, RIGHT or CENTER
95436" | \
95437  $at_diff - "$at_stderr" || at_failed=:
95438at_fn_diff_devnull "$at_stdout" || at_failed=:
95439at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3019"
95440$at_failed && at_fn_log_failure
95441$at_traceon; }
95442
95443
95444{ set +x
95445$as_echo "$at_srcdir/run_reportwriter.at:3024: DD_STUDENT=./inp_data DD_REPORT1=./report.txt \\
95446\$COBCRUN_DIRECT ./prog"
95447at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:3024"
95448( $at_check_trace; DD_STUDENT=./inp_data DD_REPORT1=./report.txt \
95449$COBCRUN_DIRECT ./prog
95450) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95451at_status=$? at_failed=false
95452$at_check_filter
95453at_fn_diff_devnull "$at_stderr" || at_failed=:
95454at_fn_diff_devnull "$at_stdout" || at_failed=:
95455at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3024"
95456$at_failed && at_fn_log_failure
95457$at_traceon; }
95458
95459
95460
95461
95462
95463cat >reference <<'_ATEOF'
95464         1         2         3         4         5         6         7
954651234567890123456789012345678901234567890123456789012345678901234567890
95466Ln  --ID--     --------Name--------   Major *-*      +Odd+  +Even+
95467
95468 5  99            Dorken, Keith          CS :-:        8      8    :
95469 6  7            Allinson, Sandy         MA :-:       118    118   :
95470 7  125          Allinson, Nina          MA :-:      12308  12308  :
95471 8  126         Allinson, Natalia        MA :-:        8      8    :
95472 9  127        Allinson, Kristina       MBA :-:        8      8    :
9547310  131           Norman, Nancy          SC :-:        6      6    :
9547411  132           Norman, Becky          SC :-:       116    116   :
9547512  133         Norman, Michelle         SC :-:      12306  112306 :
9547613  134           Norman, James          AM :-:        6      6    :
9547714  12345          Norman, Ron           CS :-:        8      8    :
95478
95479
95480
95481
95482
95483
95484
95485
95486
95487
95488
95489
95490
95491
95492
95493
95494_ATEOF
95495
95496
95497{ set +x
95498$as_echo "$at_srcdir/run_reportwriter.at:3063: diff reference report.txt"
95499at_fn_check_prepare_trace "run_reportwriter.at:3063"
95500( $at_check_trace; diff reference report.txt
95501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95502at_status=$? at_failed=false
95503$at_check_filter
95504at_fn_diff_devnull "$at_stderr" || at_failed=:
95505at_fn_diff_devnull "$at_stdout" || at_failed=:
95506at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3063"
95507$at_failed && at_fn_log_failure  \
95508"./report.txt"
95509$at_traceon; }
95510
95511
95512  set +x
95513  $at_times_p && times >"$at_times_file"
95514) 5>&1 2>&1 7>&- | eval $at_tee_pipe
95515read at_status <"$at_status_file"
95516#AT_STOP_819
95517#AT_START_820
95518at_fn_group_banner 820 'run_reportwriter.at:3068' \
95519  "STUDENT REPORT with INITIAL" "                    " 4
95520at_xfail=no
95521(
95522  $as_echo "820. $at_setup_line: testing $at_desc ..."
95523  $at_traceon
95524
95525
95526
95527cat >inp_data <<'_ATEOF'
9552800123Dorken, Keith       CS 08
9552900124Allinson, Sandy     MA 08
9553000125Allinson, Nina      MA 08
9553100126Allinson, Natalia   MA 08
9553200127Allinson, Kristina  MBA08
9553300131Norman, Nancy       SC 06
9553400132Norman, Becky       SC 06
9553500133Norman, Michelle    SC 06
9553600134Norman, James       AM 06
9553712345Norman, Ron         CS 08
95538_ATEOF
95539
95540
95541cat >prog.cob <<'_ATEOF'
95542
95543       IDENTIFICATION DIVISION.
95544       PROGRAM-ID. prog INITIAL.
95545       ENVIRONMENT DIVISION.
95546       CONFIGURATION SECTION.
95547       INPUT-OUTPUT SECTION.
95548       FILE-CONTROL.
95549               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
95550                              ORGANIZATION IS LINE SEQUENTIAL.
95551               SELECT PRINT-FILE ASSIGN TO EXTERNAL
95552                              LINE ADVANCING REPORT1.
95553
95554       DATA DIVISION.
95555       FILE SECTION.
95556       FD   INPUT-FILE.
95557       01   INPUT-REC.
95558               05  STUDENT-ID               PIC  9(5).
95559               05  STUDENT-NAME             PIC  X(20).
95560               05  MAJOR                    PIC  XXX.
95561               05  NUM-COURSES              PIC  99.
95562
95563       FD   PRINT-FILE
95564             REPORT IS STUDENT-REPORT STUDENT-REPORT2.
95565
95566       WORKING-STORAGE SECTION.
95567       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".
95568
95569       REPORT SECTION.
95570       RD   STUDENT-REPORT
95571           PAGE LIMIT 30 LINES
95572           HEADING 2
95573           FIRST DETAIL 3
95574           LAST DETAIL 25
95575           FOOTING 28.
95576       01   REPORT-LINE
95577            TYPE DETAIL
95578             LINE PLUS  1.
95579            05  COLUMN 1 PIC 9(2)
95580                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
95581            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
95582            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
95583            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.
95584            05  COLUMN 45     PIC XXX      VALUE "-*-".
95585            05  COLUMN 52     PIC 99       SOURCE    NUM-COURSES.
95586
95587       RD  STUDENT-REPORT2
95588           PAGE LIMIT 60 LINES
95589           HEADING 2
95590           FIRST DETAIL 5
95591           LAST DETAIL 55
95592           FOOTING 58.
95593       01   REPORT-LINE2
95594            TYPE DETAIL
95595             LINE PLUS  1.
95596            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
95597            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
95598            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.
95599            05  COLUMN 45     PIC 99       SOURCE    NUM-COURSES.
95600       01   REPORT-LINE3
95601            TYPE DETAIL
95602             LINE PLUS  2.
95603            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
95604            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
95605            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.
95606
95607       PROCEDURE DIVISION.
95608       A000-MAINLINE.
95609           OPEN  INPUT  INPUT-FILE
95610                 OUTPUT PRINT-FILE
95611           PERFORM DO-INIT.
95612           READ INPUT-FILE
95613               AT END
95614                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
95615           PERFORM A001-LOOP
95616               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
95617           PERFORM DO-TERM.
95618           CLOSE INPUT-FILE
95619                 PRINT-FILE.
95620           STOP RUN.
95621
95622       A001-LOOP.
95623           GENERATE REPORT-LINE.
95624           READ INPUT-FILE
95625               AT END
95626                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
95627       DO-INIT.
95628           INITIATE STUDENT-REPORT.
95629
95630       DO-TERM.
95631           TERMINATE STUDENT-REPORT.
95632_ATEOF
95633
95634
95635{ set +x
95636$as_echo "$at_srcdir/run_reportwriter.at:3176: \$COMPILE prog.cob"
95637at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3176"
95638( $at_check_trace; $COMPILE prog.cob
95639) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95640at_status=$? at_failed=false
95641$at_check_filter
95642at_fn_diff_devnull "$at_stderr" || at_failed=:
95643at_fn_diff_devnull "$at_stdout" || at_failed=:
95644at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3176"
95645$at_failed && at_fn_log_failure
95646$at_traceon; }
95647
95648
95649{ set +x
95650$as_echo "$at_srcdir/run_reportwriter.at:3178: DD_STUDENT=\"./inp_data\" DD_REPORT1=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
95651at_fn_check_prepare_dynamic "DD_STUDENT=\"./inp_data\" DD_REPORT1=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3178"
95652( $at_check_trace; DD_STUDENT="./inp_data" DD_REPORT1="./report.txt" $COBCRUN_DIRECT ./prog
95653) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95654at_status=$? at_failed=false
95655$at_check_filter
95656at_fn_diff_devnull "$at_stderr" || at_failed=:
95657at_fn_diff_devnull "$at_stdout" || at_failed=:
95658at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3178"
95659$at_failed && at_fn_log_failure
95660$at_traceon; }
95661
95662
95663
95664
95665
95666cat >reference <<'_ATEOF'
95667
95668
9566903 000123     Dorken, Keith            CS   -*-    08
9567004 000124     Allinson, Sandy          MA   -*-    08
9567105 000125     Allinson, Nina           MA   -*-    08
9567206 000126     Allinson, Natalia        MA   -*-    08
9567307 000127     Allinson, Kristina       MBA  -*-    08
9567408 000131     Norman, Nancy            SC   -*-    06
9567509 000132     Norman, Becky            SC   -*-    06
9567610 000133     Norman, Michelle         SC   -*-    06
9567711 000134     Norman, James            AM   -*-    06
9567812 012345     Norman, Ron              CS   -*-    08
95679
95680
95681
95682
95683
95684
95685
95686
95687
95688
95689
95690
95691
95692
95693
95694
95695
95696
95697_ATEOF
95698
95699
95700{ set +x
95701$as_echo "$at_srcdir/run_reportwriter.at:3215: diff reference report.txt"
95702at_fn_check_prepare_trace "run_reportwriter.at:3215"
95703( $at_check_trace; diff reference report.txt
95704) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95705at_status=$? at_failed=false
95706$at_check_filter
95707at_fn_diff_devnull "$at_stderr" || at_failed=:
95708at_fn_diff_devnull "$at_stdout" || at_failed=:
95709at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3215"
95710$at_failed && at_fn_log_failure  \
95711"./report.txt"
95712$at_traceon; }
95713
95714
95715  set +x
95716  $at_times_p && times >"$at_times_file"
95717) 5>&1 2>&1 7>&- | eval $at_tee_pipe
95718read at_status <"$at_status_file"
95719#AT_STOP_820
95720#AT_START_821
95721at_fn_group_banner 821 'run_reportwriter.at:3220' \
95722  "ORDER REPORT; Test substring" "                   " 4
95723at_xfail=no
95724(
95725  $as_echo "821. $at_setup_line: testing $at_desc ..."
95726  $at_traceon
95727
95728
95729
95730cat >inp_data <<'_ATEOF'
9573110001090001012010590416      $
9573210001090002013016950416      $
9573310002090002023016950416      $
9573410002090001022010590416      $
9573510003090007023016950417      $
9573610003090008032010590417      $
9573710003090009023016950417      $
9573810003090010032010590417      $
9573910004090007023016950417      $
9574010004090008032010590417      $
9574110004090009023016950417      $
9574210004090010032010590417      $
9574310004090011032010590417      $
9574410004090012032010590417      $
9574510004090013032010590417      $
9574610004090014032010590417      $
9574710004090015032010590417      $
9574810005090007023016950417      $
9574910005090008032010590417      $
9575010005090009023016950417      $
9575110005090010032010590417      $
9575210005090011032010590417      $
9575310005090012032010590417      $
9575410005090013032010590417      $
9575510005090014032010590417      $
9575610005090015032010590417      $
9575710005090016032010590417      $
9575810005090017032010590417      $
9575910005090018032010590417      $
9576010006090007023016950417      $
9576110006090008032010590417      $
9576210006090009023016950417      $
9576310006090010032010590417      $
9576410006090011032010590417      $
9576510006090012032010590417      $
9576610006090013032010590417      $
9576710006090014032010590417      $
9576810006090015032010590417      $
9576910006090016032010590417      $
9577010006090017032010590417      $
9577110006090018032010590417      $
9577210006090019032010590417      $
9577310006090020032010590417      $
9577410007090007023016950417      $
9577510007090008032010590417      $
9577610007090009023016950417      $
9577710007090010032010590417      $
9577810007090011032010590417      $
9577910007090012032010590417      $
9578010007090013032010590417      $
9578110007090014032010590417      $
9578210007090015032010590417      $
9578310007090016032010590417      $
9578410007090017032010590417      $
9578510007090018032010590417      $
9578610007090019032010590417      $
9578710007090020032010590417      $
9578810007090021032010590417      $
9578910007090022032010590417      $
9579010008090007023016950417      $
9579110008090008032010590417      $
9579210008090009023016950417      $
9579310008090010032010590417      $
9579410008090011032010590417      $
9579510008090012032010590417      $
9579610008090013032010590417      $
9579710008090014032010590417      $
9579810008090015032010590417      $
9579910008090016032010590417      $
9580010008090017032010590417      $
9580110008090018032010590417      $
9580210008090019032010590417      $
9580310008090020032010590417      $
9580410008090021032010590417      $
9580510008090022032010590417      $
9580610009090007023016950417      $
9580710009090008032010590417      $
9580810009090009023016950417      $
9580910009090010032010590417      $
9581010009090011032010590417      $
9581110009090012032010590417      $
9581210009090013032010590417      $
9581310009090014032010590417      $
9581410009090015032010590417      $
9581510009090016032010590417      $
9581610009090017032010590417      $
9581710009090018032010590417      $
9581810009090019032010590417      $
9581910009090020032010590417      $
9582010009090021032010590417      $
9582110009090022032010590417      $
95822_ATEOF
95823
95824
95825cat >prog.cob <<'_ATEOF'
95826
95827       IDENTIFICATION DIVISION.
95828       PROGRAM-ID. prog.
95829       ENVIRONMENT DIVISION.
95830       CONFIGURATION SECTION.
95831       INPUT-OUTPUT SECTION.
95832       FILE-CONTROL.
95833           SELECT CUST-ORDER-FILE ASSIGN TO EXTERNAL CUSTORD
95834                          ORGANIZATION IS LINE SEQUENTIAL.
95835           SELECT CUST-PRINT-FILE ASSIGN TO EXTERNAL
95836                          LINE ADVANCING REPORT2.
95837
95838       DATA DIVISION.
95839       FILE SECTION.
95840       FD  CUST-ORDER-FILE.
95841       01  CUST-ORDER-REC.
95842           05  CUST-NUM      PIC 9(5).
95843           05  ITEM-NUM      PIC 9(6).
95844           05  NUM-ORD       PIC 999.
95845           05  PRICE         PIC 999V99.
95846           05  SHIPPING      PIC 99V99.
95847           05  FILLER        PIC X(7).
95848
95849       FD  CUST-PRINT-FILE
95850            REPORT IS ORDER-REPORT.
95851
95852       WORKING-STORAGE SECTION.
95853       01    INDICATORS.
95854           05  ARE-THERE-MORE-RECORDS     PIC XXX   VALUE 'YES'.
95855               88  THERE-ARE-NO-MORE-RECORDS        VALUE 'NO '.
95856       01    CONSTANTS.
95857           05  SALES-TAX     PIC 9V99       VALUE 0.05.
95858       01      WORK-AREAS.
95859           05  AMT-TAX       PIC 9999V99    VALUE 0.
95860           05  AMT-ORDER     PIC 9(5)V99    VALUE 0.
95861           05  TOT-ORDER     PIC 9(6)V99    VALUE 0.
95862           05  CURRENT-TIME  PIC 9(8)       VALUE 14301275.
95863
95864       REPORT SECTION.
95865       RD    ORDER-REPORT
95866           CONTROLS ARE FINAL
95867           PAGE 55 LINES
95868           FIRST DETAIL 6.
95869       01    TYPE REPORT HEADING
95870                  LINE 1.
95871           10    COLUMN 44    PIC X(21)
95872                                  VALUE 'CUSTOMER ORDER REPORT'.
95873       01  TYPE PAGE HEADING.
95874           05  LINE 2.
95875               10  COLUMN  10   PIC X(8) VALUE " Time:".
95876               10  COLUMN  20   PIC 99  SOURCE CURRENT-TIME (1:2).
95877               10  COLUMN  22   PIC X VALUE ':'.
95878               10  COLUMN  23   PIC 99  SOURCE CURRENT-TIME (3:2).
95879               10  COLUMN  25   PIC X VALUE ':'.
95880               10  COLUMN  26   PIC 99  SOURCE CURRENT-TIME (5:2).
95881               10  COLUMN  94   PIC X(5) VALUE 'Page'.
95882               10  COLUMN 106    PIC ZZ9
95883                      SOURCE PAGE-COUNTER.
95884           05  LINE 4.
95885               10  COLUMN 11    PIC X(8) VALUE 'CUST NUM'.
95886               10  COLUMN 26    PIC XXXX VALUE 'PART'.
95887               10  COLUMN 39    PIC X(7) VALUE '# ITEMS'.
95888               10  COLUMN 50    PIC X(5) VALUE 'PRICE'.
95889               10  COLUMN 66    PIC X(8) VALUE 'QUANTITY'.
95890               10  COLUMN 82    PIC XXX  VALUE 'TAX'.
95891               10  COLUMN 91    PIC X(8) VALUE 'SHIPPING'.
95892               10  COLUMN 108   PIC X(5) VALUE 'TOTAL'.
95893
95894       01    DETAIL-LINE TYPE IS DETAIL
95895             LINE PLUS 1.
95896           05  COLUMN 12        PIC 9(5)
95897                      SOURCE CUST-NUM.
95898           05  COLUMN 25        PIC 9(6)
95899                      SOURCE ITEM-NUM.
95900           05  COLUMN 41        PIC 999
95901                      SOURCE NUM-ORD.
95902           05  COLUMN 49        PIC ZZZ.99
95903                      SOURCE PRICE.
95904           05  COLUMN 64        PIC ZZ,ZZZ.99
95905                      SOURCE AMT-ORDER.
95906           05  COLUMN 80        PIC Z,ZZZ.99
95907                      SOURCE AMT-TAX.
95908           05  COLUMN 93        PIC ZZ.99
95909                      SOURCE SHIPPING.
95910           05  COLUMN 104        PIC ZZZ,ZZZ.99
95911                      SOURCE TOT-ORDER.
95912
95913
95914       01     TYPE CONTROL FOOTING FINAL
95915           LINE PLUS 2.
95916           05  COLUMN 42        PIC X(12)
95917                      VALUE 'FINAL TOTALS'.
95918           05  COLUMN 63        PIC ZZZ,ZZZ.99
95919                      SOURCE AMT-ORDER.
95920           05  COLUMN 79        PIC ZZ,ZZZ.99
95921                      SUM AMT-TAX.
95922           05  COLUMN 92        PIC ZZZ.99
95923                      SUM SHIPPING.
95924           05  COLUMN 102        PIC Z,ZZZ,ZZZ.99
95925                      SUM TOT-ORDER.
95926
95927       PROCEDURE DIVISION.
95928       A000-MAINLINE.
95929      * Use hard coded time value so test is repeatable
95930      *    ACCEPT CURRENT-TIME FROM TIME.
95931           OPEN INPUT  CUST-ORDER-FILE
95932                OUTPUT CUST-PRINT-FILE.
95933           INITIATE ORDER-REPORT.
95934           READ CUST-ORDER-FILE
95935                AT END
95936                    MOVE 'NO' TO ARE-THERE-MORE-RECORDS.
95937           PERFORM A001-LOOP
95938                UNTIL THERE-ARE-NO-MORE-RECORDS.
95939           TERMINATE ORDER-REPORT.
95940           CLOSE CUST-ORDER-FILE
95941                  CUST-PRINT-FILE.
95942           STOP RUN.
95943       A001-LOOP.
95944           MULTIPLY NUM-ORD BY PRICE GIVING AMT-ORDER.
95945           MULTIPLY AMT-ORDER BY SALES-TAX GIVING AMT-TAX.
95946           ADD AMT-ORDER SHIPPING AMT-TAX GIVING TOT-ORDER.
95947           GENERATE DETAIL-LINE.
95948           READ CUST-ORDER-FILE
95949                AT END
95950                    MOVE 'NO' TO ARE-THERE-MORE-RECORDS.
95951_ATEOF
95952
95953
95954{ set +x
95955$as_echo "$at_srcdir/run_reportwriter.at:3444: \$COMPILE prog.cob"
95956at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3444"
95957( $at_check_trace; $COMPILE prog.cob
95958) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95959at_status=$? at_failed=false
95960$at_check_filter
95961at_fn_diff_devnull "$at_stderr" || at_failed=:
95962at_fn_diff_devnull "$at_stdout" || at_failed=:
95963at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3444"
95964$at_failed && at_fn_log_failure
95965$at_traceon; }
95966
95967
95968{ set +x
95969$as_echo "$at_srcdir/run_reportwriter.at:3446: DD_CUSTORD=\"./inp_data\" DD_REPORT2=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
95970at_fn_check_prepare_dynamic "DD_CUSTORD=\"./inp_data\" DD_REPORT2=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3446"
95971( $at_check_trace; DD_CUSTORD="./inp_data" DD_REPORT2="./report.txt" $COBCRUN_DIRECT ./prog
95972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
95973at_status=$? at_failed=false
95974$at_check_filter
95975at_fn_diff_devnull "$at_stderr" || at_failed=:
95976at_fn_diff_devnull "$at_stdout" || at_failed=:
95977at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3446"
95978$at_failed && at_fn_log_failure
95979$at_traceon; }
95980
95981
95982
95983
95984
95985cat >reference <<'_ATEOF'
95986                                           CUSTOMER ORDER REPORT
95987          Time:    14:30:12                                                                  Page          1
95988
95989          CUST NUM       PART         # ITEMS    PRICE           QUANTITY        TAX      SHIPPING         TOTAL
95990
95991           10001        090001          012      10.59            127.08           6.35      4.16          137.59
95992           10001        090002          013      16.95            220.35          11.01      4.16          235.52
95993           10002        090002          023      16.95            389.85          19.49      4.16          413.50
95994           10002        090001          022      10.59            232.98          11.64      4.16          248.78
95995           10003        090007          023      16.95            389.85          19.49      4.17          413.51
95996           10003        090008          032      10.59            338.88          16.94      4.17          359.99
95997           10003        090009          023      16.95            389.85          19.49      4.17          413.51
95998           10003        090010          032      10.59            338.88          16.94      4.17          359.99
95999           10004        090007          023      16.95            389.85          19.49      4.17          413.51
96000           10004        090008          032      10.59            338.88          16.94      4.17          359.99
96001           10004        090009          023      16.95            389.85          19.49      4.17          413.51
96002           10004        090010          032      10.59            338.88          16.94      4.17          359.99
96003           10004        090011          032      10.59            338.88          16.94      4.17          359.99
96004           10004        090012          032      10.59            338.88          16.94      4.17          359.99
96005           10004        090013          032      10.59            338.88          16.94      4.17          359.99
96006           10004        090014          032      10.59            338.88          16.94      4.17          359.99
96007           10004        090015          032      10.59            338.88          16.94      4.17          359.99
96008           10005        090007          023      16.95            389.85          19.49      4.17          413.51
96009           10005        090008          032      10.59            338.88          16.94      4.17          359.99
96010           10005        090009          023      16.95            389.85          19.49      4.17          413.51
96011           10005        090010          032      10.59            338.88          16.94      4.17          359.99
96012           10005        090011          032      10.59            338.88          16.94      4.17          359.99
96013           10005        090012          032      10.59            338.88          16.94      4.17          359.99
96014           10005        090013          032      10.59            338.88          16.94      4.17          359.99
96015           10005        090014          032      10.59            338.88          16.94      4.17          359.99
96016           10005        090015          032      10.59            338.88          16.94      4.17          359.99
96017           10005        090016          032      10.59            338.88          16.94      4.17          359.99
96018           10005        090017          032      10.59            338.88          16.94      4.17          359.99
96019           10005        090018          032      10.59            338.88          16.94      4.17          359.99
96020           10006        090007          023      16.95            389.85          19.49      4.17          413.51
96021           10006        090008          032      10.59            338.88          16.94      4.17          359.99
96022           10006        090009          023      16.95            389.85          19.49      4.17          413.51
96023           10006        090010          032      10.59            338.88          16.94      4.17          359.99
96024           10006        090011          032      10.59            338.88          16.94      4.17          359.99
96025           10006        090012          032      10.59            338.88          16.94      4.17          359.99
96026           10006        090013          032      10.59            338.88          16.94      4.17          359.99
96027           10006        090014          032      10.59            338.88          16.94      4.17          359.99
96028           10006        090015          032      10.59            338.88          16.94      4.17          359.99
96029           10006        090016          032      10.59            338.88          16.94      4.17          359.99
96030           10006        090017          032      10.59            338.88          16.94      4.17          359.99
96031           10006        090018          032      10.59            338.88          16.94      4.17          359.99
96032           10006        090019          032      10.59            338.88          16.94      4.17          359.99
96033           10006        090020          032      10.59            338.88          16.94      4.17          359.99
96034           10007        090007          023      16.95            389.85          19.49      4.17          413.51
96035           10007        090008          032      10.59            338.88          16.94      4.17          359.99
96036           10007        090009          023      16.95            389.85          19.49      4.17          413.51
96037           10007        090010          032      10.59            338.88          16.94      4.17          359.99
96038           10007        090011          032      10.59            338.88          16.94      4.17          359.99
96039           10007        090012          032      10.59            338.88          16.94      4.17          359.99
96040           10007        090013          032      10.59            338.88          16.94      4.17          359.99
96041
96042          Time:    14:30:12                                                                  Page          2
96043
96044          CUST NUM       PART         # ITEMS    PRICE           QUANTITY        TAX      SHIPPING         TOTAL
96045
96046           10007        090014          032      10.59            338.88          16.94      4.17          359.99
96047           10007        090015          032      10.59            338.88          16.94      4.17          359.99
96048           10007        090016          032      10.59            338.88          16.94      4.17          359.99
96049           10007        090017          032      10.59            338.88          16.94      4.17          359.99
96050           10007        090018          032      10.59            338.88          16.94      4.17          359.99
96051           10007        090019          032      10.59            338.88          16.94      4.17          359.99
96052           10007        090020          032      10.59            338.88          16.94      4.17          359.99
96053           10007        090021          032      10.59            338.88          16.94      4.17          359.99
96054           10007        090022          032      10.59            338.88          16.94      4.17          359.99
96055           10008        090007          023      16.95            389.85          19.49      4.17          413.51
96056           10008        090008          032      10.59            338.88          16.94      4.17          359.99
96057           10008        090009          023      16.95            389.85          19.49      4.17          413.51
96058           10008        090010          032      10.59            338.88          16.94      4.17          359.99
96059           10008        090011          032      10.59            338.88          16.94      4.17          359.99
96060           10008        090012          032      10.59            338.88          16.94      4.17          359.99
96061           10008        090013          032      10.59            338.88          16.94      4.17          359.99
96062           10008        090014          032      10.59            338.88          16.94      4.17          359.99
96063           10008        090015          032      10.59            338.88          16.94      4.17          359.99
96064           10008        090016          032      10.59            338.88          16.94      4.17          359.99
96065           10008        090017          032      10.59            338.88          16.94      4.17          359.99
96066           10008        090018          032      10.59            338.88          16.94      4.17          359.99
96067           10008        090019          032      10.59            338.88          16.94      4.17          359.99
96068           10008        090020          032      10.59            338.88          16.94      4.17          359.99
96069           10008        090021          032      10.59            338.88          16.94      4.17          359.99
96070           10008        090022          032      10.59            338.88          16.94      4.17          359.99
96071           10009        090007          023      16.95            389.85          19.49      4.17          413.51
96072           10009        090008          032      10.59            338.88          16.94      4.17          359.99
96073           10009        090009          023      16.95            389.85          19.49      4.17          413.51
96074           10009        090010          032      10.59            338.88          16.94      4.17          359.99
96075           10009        090011          032      10.59            338.88          16.94      4.17          359.99
96076           10009        090012          032      10.59            338.88          16.94      4.17          359.99
96077           10009        090013          032      10.59            338.88          16.94      4.17          359.99
96078           10009        090014          032      10.59            338.88          16.94      4.17          359.99
96079           10009        090015          032      10.59            338.88          16.94      4.17          359.99
96080           10009        090016          032      10.59            338.88          16.94      4.17          359.99
96081           10009        090017          032      10.59            338.88          16.94      4.17          359.99
96082           10009        090018          032      10.59            338.88          16.94      4.17          359.99
96083           10009        090019          032      10.59            338.88          16.94      4.17          359.99
96084           10009        090020          032      10.59            338.88          16.94      4.17          359.99
96085           10009        090021          032      10.59            338.88          16.94      4.17          359.99
96086           10009        090022          032      10.59            338.88          16.94      4.17          359.99
96087
96088                                         FINAL TOTALS             338.88       1,557.97    379.43       33,103.80
96089
96090
96091
96092
96093
96094
96095
96096_ATEOF
96097
96098
96099{ set +x
96100$as_echo "$at_srcdir/run_reportwriter.at:3563: diff reference report.txt"
96101at_fn_check_prepare_trace "run_reportwriter.at:3563"
96102( $at_check_trace; diff reference report.txt
96103) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96104at_status=$? at_failed=false
96105$at_check_filter
96106at_fn_diff_devnull "$at_stderr" || at_failed=:
96107at_fn_diff_devnull "$at_stdout" || at_failed=:
96108at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3563"
96109$at_failed && at_fn_log_failure  \
96110"./report.txt"
96111$at_traceon; }
96112
96113
96114  set +x
96115  $at_times_p && times >"$at_times_file"
96116) 5>&1 2>&1 7>&- | eval $at_tee_pipe
96117read at_status <"$at_status_file"
96118#AT_STOP_821
96119#AT_START_822
96120at_fn_group_banner 822 'run_reportwriter.at:3568' \
96121  "Sample Control Break" "                           " 4
96122at_xfail=no
96123(
96124  $as_echo "822. $at_setup_line: testing $at_desc ..."
96125  $at_traceon
96126
96127
96128
96129cat >inp_data <<'_ATEOF'
96130Norman, Ronald J    25CS Malcolm, Mike        Waterloo
96131Dorken, Keith A     35CS Malcolm, Mike        Waterloo
96132Norman, James J     25CS Manning, Eric        Waterloo
96133Dorken, Kevin       35CS Manning, Eric        Waterloo
96134Allinson, A R       25EC Manning, Eric        Whistler
96135Norman, Michelle    27EC Manning, Donna       Toronto
96136Dorken, Melissa     37EC Manning, Donna       Toronto
96137Norseman, Ben01     27EC DiMetri, Gary        Toronto
96138Norseman, Ben02     27EC DiMetri, Gary        Toronto
96139Norseman, Ben03     27EC DiMetri, Gary        Toronto
96140Norseman, Ben04     27EC DiMetri, Gary        Toronto
96141Norseman, Ben05     27EC DiMetri, Gary        Toronto
96142Norseman, Ben06     27EC DiMetri, Gary        Toronto
96143Norseman, Ben07     27EC DiMetri, Gary        Toronto
96144Norseman, Ben08     27EC DiMetri, Gary        Toronto
96145Norseman, Ben09     27EC DiMetri, Gary        Toronto
96146Norseman, Ben10     27EC DiMetri, Gary        Toronto
96147_ATEOF
96148
96149
96150cat >prog.cob <<'_ATEOF'
96151
96152       IDENTIFICATION DIVISION.
96153       PROGRAM-ID. prog.
96154       ENVIRONMENT DIVISION.
96155       CONFIGURATION SECTION.
96156       INPUT-OUTPUT SECTION.
96157       FILE-CONTROL.
96158           SELECT STUDENT-FILE ASSIGN TO EXTERNAL STUDREC
96159                          ORGANIZATION IS LINE SEQUENTIAL.
96160           SELECT PRINT-FILE ASSIGN TO EXTERNAL
96161                          LINE ADVANCING REPORT3.
96162
96163       DATA DIVISION.
96164       FILE SECTION.
96165       FD    STUDENT-FILE.
96166       01    STUDENT-REC        PIC X(60).
96167
96168       FD    PRINT-FILE
96169           REPORT IS CONTROL-BREAK.
96170
96171       WORKING-STORAGE SECTION.
96172       01    INDICATORS.
96173           05  ARE-THERE-MORE-RECORDS PIC XXX VALUE 'YES'.
96174             88 THERE-ARE-NO-MORE-RECORDS VALUE 'NO'.
96175
96176       01     CONSTANTS.
96177           05  NUM        PIC 99 VALUE 1.
96178
96179       01    STUDENT-AREA.
96180           05  STUDENT-NAME   PIC X(20).
96181           05  COURSE-PTS     PIC 99.
96182           05  MAJOR          PIC XXX.
96183           05  ADVISOR        PIC X(20).
96184           05  CAMPUS         PIC X(15).
96185
96186       REPORT SECTION.
96187       RD    CONTROL-BREAK
96188           CONTROLS ARE MAJOR ADVISOR
96189           PAGE LIMIT 25 LINES
96190           HEADING 1
96191           FIRST DETAIL 5
96192           FOOTING 23.
96193       01  TYPE IS PAGE HEADING.
96194           05  LINE 1.
96195                10  COLUMN 61    PIC X(4) VALUE 'PAGE'.
96196                10  COLUMN 66    PIC ZZZ9 SOURCE PAGE-COUNTER.
96197           05  LINE PLUS 2.
96198                10  COLUMN 26     PIC X(23)
96199                       VALUE 'STUDENT ADVISEMENT LIST'.
96200
96201       01  TYPE IS CONTROL HEADING MAJOR.
96202           05     LINE 5 ON NEXT PAGE .
96203                10  COLUMN 37    PIC X(5)  VALUE 'MAJOR'.
96204                10  COLUMN 44    PIC X(20) SOURCE MAJOR.
96205
96206           05     LINE 7.
96207                10  COLUMN  4    PIC X(12) VALUE 'STUDENT NAME'.
96208                10  COLUMN 25    PIC XXX   VALUE 'PTS'.
96209                10  COLUMN 34    PIC X(6)  VALUE 'CAMPUS'.
96210                10  COLUMN 60    PIC X(8)  VALUE 'ADVISOR'.
96211           05     LINE PLUS 1.
96212                10  COLUMN  4    PIC X(68) VALUE ALL '-'.
96213
96214       01    TRANS-LINE TYPE IS DETAIL.
96215           05     LINE NUMBER PLUS 1.
96216                10  COLUMN  3    PIC X(20) SOURCE STUDENT-NAME.
96217                10  COLUMN 26    PIC 99    SOURCE COURSE-PTS.
96218                10  COLUMN 34    PIC X(15) SOURCE CAMPUS.
96219                10  COLUMN 51    PIC X(5) VALUE "Hello"
96220                              PRESENT AFTER PAGE OR ADVISOR.
96221                10  COLUMN 51    PIC X(5) VALUE '  "  '
96222                              ABSENT AFTER PAGE OR ADVISOR.
96223                10  COLUMN 60    PIC X(20) SOURCE ADVISOR
96224                                       GROUP INDICATE.
96225
96226       01    TYPE IS CONTROL FOOTING ADVISOR.
96227           05     LINE PLUS 2.
96228                10  COLUMN 5     PIC X(8)  VALUE 'ADVISOR'.
96229                10  COLUMN 13    PIC X(20) SOURCE ADVISOR.
96230                10  COLUMN 34    PIC X(6)  VALUE 'TOTAL'.
96231                10  ADV-TOTAL
96232                    COLUMN 40    PIC ZZ9   SUM NUM.
96233           05     LINE PLUS 1.
96234                10  COLUMN 1     PIC X(8)  VALUE ' '.
96235
96236       01    TYPE IS CONTROL FOOTING MAJOR.
96237           05     LINE PLUS 2.
96238                10  COLUMN 5    PIC X(11)  VALUE 'MAJOR TOTAL'.
96239                10  MAJ-TOTAL
96240                    COLUMN 22    PIC ZZ9   SUM ADV-TOTAL.
96241
96242       01    TYPE IS CONTROL FOOTING FINAL.
96243           05  LINE PLUS 3.
96244                10  COLUMN 10    PIC X(11) VALUE 'FINAL TOTAL'.
96245                10  STU-TOTAL
96246                    COLUMN 21    PIC ZZZ9 SUM MAJ-TOTAL.
96247
96248       PROCEDURE DIVISION.
96249       A000-CREATE-REPORTS.
96250           OPEN INPUT STUDENT-FILE
96251                OUTPUT PRINT-FILE.
96252           INITIATE CONTROL-BREAK.
96253           READ STUDENT-FILE INTO STUDENT-AREA
96254                AT END
96255                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
96256           PERFORM A001-LOOP
96257                UNTIL THERE-ARE-NO-MORE-RECORDS.
96258           TERMINATE CONTROL-BREAK.
96259           CLOSE STUDENT-FILE
96260                   PRINT-FILE.
96261           STOP RUN.
96262
96263       A001-LOOP.
96264           GENERATE TRANS-LINE.
96265           READ STUDENT-FILE INTO STUDENT-AREA
96266                AT END
96267                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
96268_ATEOF
96269
96270
96271{ set +x
96272$as_echo "$at_srcdir/run_reportwriter.at:3709: \$COMPILE prog.cob"
96273at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3709"
96274( $at_check_trace; $COMPILE prog.cob
96275) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96276at_status=$? at_failed=false
96277$at_check_filter
96278at_fn_diff_devnull "$at_stderr" || at_failed=:
96279at_fn_diff_devnull "$at_stdout" || at_failed=:
96280at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3709"
96281$at_failed && at_fn_log_failure
96282$at_traceon; }
96283
96284
96285{ set +x
96286$as_echo "$at_srcdir/run_reportwriter.at:3711: DD_STUDREC=\"./inp_data\" DD_REPORT3=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
96287at_fn_check_prepare_dynamic "DD_STUDREC=\"./inp_data\" DD_REPORT3=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3711"
96288( $at_check_trace; DD_STUDREC="./inp_data" DD_REPORT3="./report.txt" $COBCRUN_DIRECT ./prog
96289) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96290at_status=$? at_failed=false
96291$at_check_filter
96292at_fn_diff_devnull "$at_stderr" || at_failed=:
96293at_fn_diff_devnull "$at_stdout" || at_failed=:
96294at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3711"
96295$at_failed && at_fn_log_failure
96296$at_traceon; }
96297
96298
96299
96300
96301
96302cat >reference <<'_ATEOF'
96303                                                            PAGE    1
96304
96305                         STUDENT ADVISEMENT LIST
96306
96307                                    MAJOR  CS
96308
96309   STUDENT NAME         PTS      CAMPUS                    ADVISOR
96310   --------------------------------------------------------------------
96311  Norman, Ronald J       25       Waterloo        Hello    Malcolm, Mike
96312  Dorken, Keith A        35       Waterloo          "
96313
96314    ADVISOR Malcolm, Mike        TOTAL   2
96315
96316  Norman, James J        25       Waterloo        Hello    Manning, Eric
96317  Dorken, Kevin          35       Waterloo          "
96318
96319    ADVISOR Manning, Eric        TOTAL   2
96320
96321
96322    MAJOR TOTAL        4
96323
96324
96325
96326
96327
96328                                                            PAGE    2
96329
96330                         STUDENT ADVISEMENT LIST
96331
96332                                    MAJOR  EC
96333
96334   STUDENT NAME         PTS      CAMPUS                    ADVISOR
96335   --------------------------------------------------------------------
96336  Allinson, A R          25       Whistler        Hello    Manning, Eric
96337
96338    ADVISOR Manning, Eric        TOTAL   1
96339
96340  Norman, Michelle       27       Toronto         Hello    Manning, Donna
96341  Dorken, Melissa        37       Toronto           "
96342
96343    ADVISOR Manning, Donna       TOTAL   2
96344
96345  Norseman, Ben01        27       Toronto         Hello    DiMetri, Gary
96346  Norseman, Ben02        27       Toronto           "
96347  Norseman, Ben03        27       Toronto           "
96348  Norseman, Ben04        27       Toronto           "
96349  Norseman, Ben05        27       Toronto           "
96350  Norseman, Ben06        27       Toronto           "
96351
96352                                                            PAGE    3
96353
96354                         STUDENT ADVISEMENT LIST
96355
96356  Norseman, Ben07        27       Toronto         Hello    DiMetri, Gary
96357  Norseman, Ben08        27       Toronto           "
96358  Norseman, Ben09        27       Toronto           "
96359  Norseman, Ben10        27       Toronto           "
96360
96361    ADVISOR DiMetri, Gary        TOTAL  10
96362
96363
96364    MAJOR TOTAL       13
96365
96366
96367         FINAL TOTAL  17
96368
96369
96370
96371
96372
96373
96374
96375
96376
96377_ATEOF
96378
96379#" <- fix code highlighting
96380{ set +x
96381$as_echo "$at_srcdir/run_reportwriter.at:3792: diff reference report.txt"
96382at_fn_check_prepare_trace "run_reportwriter.at:3792"
96383( $at_check_trace; diff reference report.txt
96384) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96385at_status=$? at_failed=false
96386$at_check_filter
96387at_fn_diff_devnull "$at_stderr" || at_failed=:
96388at_fn_diff_devnull "$at_stdout" || at_failed=:
96389at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3792"
96390$at_failed && at_fn_log_failure  \
96391"./report.txt"
96392$at_traceon; }
96393
96394
96395  set +x
96396  $at_times_p && times >"$at_times_file"
96397) 5>&1 2>&1 7>&- | eval $at_tee_pipe
96398read at_status <"$at_status_file"
96399#AT_STOP_822
96400#AT_START_823
96401at_fn_group_banner 823 'run_reportwriter.at:3797' \
96402  "Sample Inventory Report" "                        " 4
96403at_xfail=no
96404(
96405  $as_echo "823. $at_setup_line: testing $at_desc ..."
96406  $at_traceon
96407
96408
96409
96410cat >inp_data <<'_ATEOF'
9641101Data Processing   02000500012388
9641202Cow Milking       02000600054398
9641303Grass Cutting     03000600054397
9641403Lawn mowing       03000600054397
96415_ATEOF
96416
96417
96418cat >prog.cob <<'_ATEOF'
96419
96420       IDENTIFICATION DIVISION.
96421       PROGRAM-ID. prog.
96422       ENVIRONMENT DIVISION.
96423       CONFIGURATION SECTION.
96424       INPUT-OUTPUT SECTION.
96425       FILE-CONTROL.
96426           SELECT INV-FILE ASSIGN TO EXTERNAL INVFILE
96427                          ORGANIZATION IS LINE SEQUENTIAL.
96428           SELECT REPORT-FILE ASSIGN TO EXTERNAL
96429                              LINE ADVANCING REPORT4.
96430
96431       DATA DIVISION.
96432       FILE SECTION.
96433       FD    INV-FILE.
96434       01    INV-REC.
96435           05     DEPT-IN        PIC 99.
96436           05     DEPT-NAM-IN    PIC X(18).
96437           05     MONTH-IN       PIC 99.
96438           05     ITEM-NO-IN     PIC 9(5).
96439           05     INV-TOT-IN     PIC 9(6)V99.
96440
96441       FD    REPORT-FILE
96442           REPORT IS INV-REPORT.
96443
96444       WORKING-STORAGE SECTION.
96445       01  INDICATORS.
96446           05  ARE-THERE-MORE-RECORDS    PIC XXX VALUE 'YES'.
96447
96448       REPORT SECTION.
96449       RD  INV-REPORT
96450           CONTROLS ARE FINAL DEPT-IN MONTH-IN
96451           PAGE LIMIT 25 LINES
96452           HEADING 2
96453           FIRST DETAIL 5
96454           LAST DETAIL 18
96455           FOOTING 20.
96456       01  TYPE IS REPORT HEADING.
96457           05 LINE 2  COLUMN  50  PIC X(16) VALUE 'INVENTORY REPORT'.
96458           05 LINE 2  COLUMN  80  PIC X     VALUE ' '.
96459
96460       01  TYPE IS CONTROL HEADING DEPT-IN
96461           LINE NUMBER IS PLUS 2
96462           NEXT GROUP IS PLUS 2.
96463           05 COLUMN 2        PIC X(13) VALUE 'DEPARTMENT #:'.
96464           05 COLUMN 27       PIC 99    SOURCE DEPT-IN.
96465           05 COLUMN 31       PIC X(16) VALUE 'DEPARTMENT NAME:'.
96466           05 COLUMN 50       PIC X(18) SOURCE DEPT-NAM-IN.
96467
96468       01  INV-DETAIL TYPE IS DETAIL
96469           LINE PLUS 2.
96470           05 COLUMN 10       PIC 99  SOURCE MONTH-IN GROUP INDICATE.
96471           05 COLUMN 25       PIC 9(5) SOURCE ITEM-NO-IN.
96472           05 COLUMN 40       PIC ZZZ,ZZZ.99 SOURCE IS INV-TOT-IN.
96473
96474       01  TYPE IS CONTROL FOOTING MONTH-IN
96475           LINE PLUS 2.
96476           05 MONTH-TOTAL COLUMN 55 PIC Z,ZZZ,ZZZ.99 SUM INV-TOT-IN.
96477
96478       01  TYPE IS CONTROL FOOTING DEPT-IN
96479           LINE PLUS 2.
96480           05 DEPT-TOTAL COLUMN 75 PIC ZZ,ZZZ,ZZZ.99 SUM MONTH-TOTAL.
96481
96482       01  TYPE IS CONTROL FOOTING FINAL
96483           LINE PLUS 2.
96484           05 FINAL-TOTAL COLUMN 95 PIC ZZZ,ZZZ,ZZZ.99 SUM DEPT-TOTAL.
96485
96486       01  TYPE IS PAGE FOOTING LINE 24.
96487           05  COLUMN 30      PIC X(30) VALUE "-+* End of Page *+-".
96488           05  COLUMN 55      PIC X(12) VALUE "************".
96489           05  COLUMN 75      PIC X(13) VALUE "*************".
96490           05  COLUMN 95      PIC X(14) VALUE "**************".
96491
96492       PROCEDURE DIVISION.
96493       A000-MAINLINE.
96494           OPEN INPUT INV-FILE
96495                OUTPUT REPORT-FILE.
96496           INITIATE INV-REPORT.
96497           READ INV-FILE
96498                AT END
96499                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
96500           PERFORM A001-LOOP
96501                UNTIL ARE-THERE-MORE-RECORDS = 'NO '.
96502           TERMINATE INV-REPORT.
96503           CLOSE INV-FILE
96504                REPORT-FILE.
96505           STOP RUN.
96506       A001-LOOP.
96507           GENERATE INV-DETAIL.
96508           READ INV-FILE
96509                AT END
96510                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
96511
96512_ATEOF
96513
96514
96515{ set +x
96516$as_echo "$at_srcdir/run_reportwriter.at:3901: \$COMPILE prog.cob"
96517at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3901"
96518( $at_check_trace; $COMPILE prog.cob
96519) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96520at_status=$? at_failed=false
96521$at_check_filter
96522echo >>"$at_stderr"; $as_echo "prog.cob:40: warning: duplicate LINE 2 ignored
96523" | \
96524  $at_diff - "$at_stderr" || at_failed=:
96525at_fn_diff_devnull "$at_stdout" || at_failed=:
96526at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3901"
96527$at_failed && at_fn_log_failure
96528$at_traceon; }
96529
96530
96531{ set +x
96532$as_echo "$at_srcdir/run_reportwriter.at:3905: DD_INVFILE=\"./inp_data\" DD_REPORT4=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
96533at_fn_check_prepare_dynamic "DD_INVFILE=\"./inp_data\" DD_REPORT4=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3905"
96534( $at_check_trace; DD_INVFILE="./inp_data" DD_REPORT4="./report.txt" $COBCRUN_DIRECT ./prog
96535) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96536at_status=$? at_failed=false
96537$at_check_filter
96538at_fn_diff_devnull "$at_stderr" || at_failed=:
96539at_fn_diff_devnull "$at_stdout" || at_failed=:
96540at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3905"
96541$at_failed && at_fn_log_failure
96542$at_traceon; }
96543
96544
96545
96546
96547
96548cat >reference <<'_ATEOF'
96549
96550                                                 INVENTORY REPORT
96551
96552
96553 DEPARTMENT #:            01  DEPARTMENT NAME:   Data Processing
96554
96555
96556
96557         02             00050            1,238.80
96558
96559                                                          1,238.80
96560
96561                                                                               1,238.80
96562
96563 DEPARTMENT #:            02  DEPARTMENT NAME:   Cow Milking
96564
96565
96566
96567
96568
96569
96570
96571
96572                             -+* End of Page *+-      ************        *************       **************
96573
96574
96575
96576
96577         02             00060            5,439.80
96578
96579                                                          5,439.80
96580
96581                                                                               5,439.80
96582
96583 DEPARTMENT #:            03  DEPARTMENT NAME:   Grass Cutting
96584
96585
96586
96587         03             00060            5,439.70
96588
96589                        00060            5,439.70
96590
96591                                                         10,879.40
96592
96593
96594
96595
96596
96597                             -+* End of Page *+-      ************        *************       **************
96598
96599
96600
96601
96602                                                                              10,879.40
96603
96604                                                                                                   17,558.00
96605
96606
96607
96608
96609
96610
96611
96612
96613
96614
96615
96616
96617
96618
96619
96620
96621                             -+* End of Page *+-      ************        *************       **************
96622_ATEOF
96623
96624
96625{ set +x
96626$as_echo "$at_srcdir/run_reportwriter.at:3985: diff reference report.txt"
96627at_fn_check_prepare_trace "run_reportwriter.at:3985"
96628( $at_check_trace; diff reference report.txt
96629) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96630at_status=$? at_failed=false
96631$at_check_filter
96632at_fn_diff_devnull "$at_stderr" || at_failed=:
96633at_fn_diff_devnull "$at_stdout" || at_failed=:
96634at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3985"
96635$at_failed && at_fn_log_failure  \
96636"./report.txt"
96637$at_traceon; }
96638
96639
96640  set +x
96641  $at_times_p && times >"$at_times_file"
96642) 5>&1 2>&1 7>&- | eval $at_tee_pipe
96643read at_status <"$at_status_file"
96644#AT_STOP_823
96645#AT_START_824
96646at_fn_group_banner 824 'run_reportwriter.at:3990' \
96647  "Duplicate Detail Line" "                          " 4
96648at_xfail=no
96649(
96650  $as_echo "824. $at_setup_line: testing $at_desc ..."
96651  $at_traceon
96652
96653
96654
96655cat >prog.cob <<'_ATEOF'
96656
96657       IDENTIFICATION DIVISION.
96658       PROGRAM-ID. prog.
96659       ENVIRONMENT DIVISION.
96660       CONFIGURATION SECTION.
96661       INPUT-OUTPUT SECTION.
96662       FILE-CONTROL.
96663           SELECT REPORT-FILE
96664           LINE SEQUENTIAL
96665           ASSIGN TO EXTERNAL DUPDTL.
96666       DATA DIVISION.
96667       FILE SECTION.
96668       FD REPORT-FILE
96669           REPORT IS MYREPORT.
96670       WORKING-STORAGE SECTION.
96671       01 SAVE-ITEM PIC  X.
96672
96673       REPORT SECTION.
96674       RD MYREPORT
96675           CONTROLS ARE SAVE-ITEM
96676           PAGE LIMIT IS 15 LINES
96677           FIRST DETAIL 1
96678           LAST DETAIL 12.
96679
96680       01 TYPE IS CONTROL HEADING SAVE-ITEM.
96681          05 LINE NUMBER IS 1.
96682            10 COLUMN 1 PIC X(20) VALUE "HEADING SAVE-ITEM".
96683
96684       01 DETAIL-LINE TYPE IS DETAIL.
96685          05 LINE NUMBER PLUS 1.
96686            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
96687            10 COLUMN 10 PIC X(15) VALUE "1st Detail".
96688
96689       01 SND-DETAIL-LINE TYPE IS DETAIL.
96690          05 LINE NUMBER PLUS 1.
96691            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
96692            10 COLUMN 10 PIC X(15) VALUE "2nd Detail".
96693
96694       01 TRD-DETAIL-LINE TYPE IS DETAIL.
96695          05 LINE NUMBER PLUS 1.
96696            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
96697            10 COLUMN 10 PIC X(15) VALUE "3rd Detail 1".
96698          05 LINE NUMBER PLUS 1.
96699            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
96700            10 COLUMN 10 PIC X(15) VALUE "3rd Detail 2".
96701
96702       01 TYPE IS CONTROL FOOTING SAVE-ITEM.
96703          03  LINE NUMBER IS PLUS 1.
96704           05 COLUMN 07    PIC X(27)  VALUE "FOOTING SAVE-ITEM".
96705
96706       PROCEDURE DIVISION.
96707           OPEN OUTPUT REPORT-FILE.
96708           INITIATE MYREPORT.
96709           MOVE "A" TO SAVE-ITEM.
96710           GENERATE DETAIL-LINE.
96711           MOVE "B" TO SAVE-ITEM.
96712           GENERATE DETAIL-LINE.
96713           GENERATE SND-DETAIL-LINE.
96714           GENERATE TRD-DETAIL-LINE.
96715           MOVE "C" TO SAVE-ITEM.
96716           GENERATE TRD-DETAIL-LINE.
96717           TERMINATE MYREPORT.
96718           CLOSE REPORT-FILE.
96719           STOP RUN.
96720_ATEOF
96721
96722
96723{ set +x
96724$as_echo "$at_srcdir/run_reportwriter.at:4059: \$COMPILE prog.cob"
96725at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4059"
96726( $at_check_trace; $COMPILE prog.cob
96727) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96728at_status=$? at_failed=false
96729$at_check_filter
96730at_fn_diff_devnull "$at_stderr" || at_failed=:
96731at_fn_diff_devnull "$at_stdout" || at_failed=:
96732at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4059"
96733$at_failed && at_fn_log_failure
96734$at_traceon; }
96735
96736
96737{ set +x
96738$as_echo "$at_srcdir/run_reportwriter.at:4061: DD_DUPDTL=./report.txt \$COBCRUN_DIRECT ./prog"
96739at_fn_check_prepare_dynamic "DD_DUPDTL=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4061"
96740( $at_check_trace; DD_DUPDTL=./report.txt $COBCRUN_DIRECT ./prog
96741) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96742at_status=$? at_failed=false
96743$at_check_filter
96744at_fn_diff_devnull "$at_stderr" || at_failed=:
96745at_fn_diff_devnull "$at_stdout" || at_failed=:
96746at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4061"
96747$at_failed && at_fn_log_failure
96748$at_traceon; }
96749
96750
96751
96752
96753
96754cat >reference <<'_ATEOF'
96755HEADING SAVE-ITEM
96756A        1st Detail
96757      FOOTING SAVE-ITEM
96758
96759
96760
96761
96762
96763
96764
96765
96766
96767
96768
96769
96770HEADING SAVE-ITEM
96771B        1st Detail
96772B        2nd Detail
96773B        3rd Detail 1
96774B        3rd Detail 2
96775      FOOTING SAVE-ITEM
96776
96777
96778
96779
96780
96781
96782
96783
96784
96785HEADING SAVE-ITEM
96786C        3rd Detail 1
96787C        3rd Detail 2
96788      FOOTING SAVE-ITEM
96789
96790
96791
96792
96793
96794
96795
96796
96797
96798
96799
96800_ATEOF
96801
96802
96803{ set +x
96804$as_echo "$at_srcdir/run_reportwriter.at:4113: diff reference report.txt"
96805at_fn_check_prepare_trace "run_reportwriter.at:4113"
96806( $at_check_trace; diff reference report.txt
96807) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96808at_status=$? at_failed=false
96809$at_check_filter
96810at_fn_diff_devnull "$at_stderr" || at_failed=:
96811at_fn_diff_devnull "$at_stdout" || at_failed=:
96812at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4113"
96813$at_failed && at_fn_log_failure  \
96814"./report.txt"
96815$at_traceon; }
96816
96817
96818  set +x
96819  $at_times_p && times >"$at_times_file"
96820) 5>&1 2>&1 7>&- | eval $at_tee_pipe
96821read at_status <"$at_status_file"
96822#AT_STOP_824
96823#AT_START_825
96824at_fn_group_banner 825 'run_reportwriter.at:4118' \
96825  "Report with OCCURS" "                             " 4
96826at_xfail=no
96827(
96828  $as_echo "825. $at_setup_line: testing $at_desc ..."
96829  $at_traceon
96830
96831
96832
96833cat >prog.cob <<'_ATEOF'
96834
96835       IDENTIFICATION DIVISION.
96836       PROGRAM-ID. prog.
96837
96838       ENVIRONMENT DIVISION.
96839       INPUT-OUTPUT SECTION.
96840       FILE-CONTROL.
96841            SELECT rp-file ASSIGN EXTERNAL PRINTOUT
96842            ORGANIZATION LINE SEQUENTIAL.
96843
96844       DATA DIVISION.
96845       FILE SECTION.
96846       FD  rp-file REPORT rp.
96847
96848       REPORT SECTION.
96849       RD  RP
96850           PAGE LIMIT 10 LINES
96851           HEADING 1
96852           FIRST DETAIL 4.
96853       01 HEADING-LINE.
96854          02 TYPE PAGE HEADING LINE PLUS 1.
96855            05  COLUMN 1      PIC X(50) VALUE
96856                "         1         2         3         4         5".
96857          02 TYPE PAGE HEADING LINE PLUS 1.
96858            05  COLUMN 1      PIC X(50) VALUE
96859                "12345678901234567890123456789012345678901234567890".
96860
96861       01  RP-DTL1 TYPE DETAIL,  LINE + 1.
96862            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
96863            03  MARK  COLUMN + 3 PIC X(4).
96864
96865       01  rp-dtl2 TYPE DETAIL, LINE + 1.
96866            03  grps  COLUMN 1 OCCURS 3 TIMES.
96867               05  tag1      PIC X(5).
96868               05  FILLER    PIC X.
96869               05  tag2      PIC X(5).
96870               05  FILLER    PIC XX.
96871
96872       01  RP-DTL3 TYPE DETAIL, LINE + 1.
96873            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
96874            03  TAGP  COLUMN PLUS 4 PIC X(4).
96875
96876       01  RP-DTL4 TYPE DETAIL, LINE + 1.
96877            03  NUM4A                PIC 999.
96878            03  NUM4B COLUMN PLUS 8  PIC 999 OCCURS 3 STEP 10.
96879            03  MRK4  COLUMN + 3     PIC X(4).
96880
96881       PROCEDURE DIVISION.
96882           OPEN OUTPUT rp-file
96883           INITIATE rp
96884
96885           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
96886           MOVE "<1>" TO MARK.
96887           GENERATE rp-dtl1
96888
96889           MOVE ALL '*' TO grps(1), grps(2), grps(3)
96890           MOVE "Tag1" to tag1 (1), tag1 (2), tag1 (3)
96891           MOVE "Tag2" to tag2 (1), tag2 (2), tag2 (3)
96892           GENERATE rp-dtl2
96893
96894           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
96895           MOVE "<3>" TO TAGP.
96896           GENERATE RP-DTL3.
96897
96898           MOVE 400 TO NUM4A
96899           MOVE 401 TO NUM4B (1)
96900           MOVE 402 TO NUM4B (2)
96901           MOVE 403 TO NUM4B (3)
96902           MOVE "<4>" TO MRK4.
96903           GENERATE RP-DTL4
96904
96905           TERMINATE rp
96906           CLOSE rp-file
96907
96908           STOP RUN.
96909           END PROGRAM prog.
96910_ATEOF
96911
96912
96913{ set +x
96914$as_echo "$at_srcdir/run_reportwriter.at:4199: \$COMPILE prog.cob"
96915at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4199"
96916( $at_check_trace; $COMPILE prog.cob
96917) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96918at_status=$? at_failed=false
96919$at_check_filter
96920at_fn_diff_devnull "$at_stderr" || at_failed=:
96921at_fn_diff_devnull "$at_stdout" || at_failed=:
96922at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4199"
96923$at_failed && at_fn_log_failure
96924$at_traceon; }
96925
96926
96927{ set +x
96928$as_echo "$at_srcdir/run_reportwriter.at:4201: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
96929at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4201"
96930( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
96931) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96932at_status=$? at_failed=false
96933$at_check_filter
96934at_fn_diff_devnull "$at_stderr" || at_failed=:
96935at_fn_diff_devnull "$at_stdout" || at_failed=:
96936at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4201"
96937$at_failed && at_fn_log_failure
96938$at_traceon; }
96939
96940
96941
96942
96943
96944cat >reference <<'_ATEOF'
96945         1         2         3         4         5
9694612345678901234567890123456789012345678901234567890
96947
96948100       100       100         <1>
96949Tag1 *Tag2 **Tag1 *Tag2 **Tag1 *Tag2 **
96950200       200       200   200   <3>
96951400       401       402       403         <4>
96952
96953
96954
96955_ATEOF
96956
96957
96958{ set +x
96959$as_echo "$at_srcdir/run_reportwriter.at:4218: diff reference report.txt"
96960at_fn_check_prepare_trace "run_reportwriter.at:4218"
96961( $at_check_trace; diff reference report.txt
96962) >>"$at_stdout" 2>>"$at_stderr" 5>&-
96963at_status=$? at_failed=false
96964$at_check_filter
96965at_fn_diff_devnull "$at_stderr" || at_failed=:
96966at_fn_diff_devnull "$at_stdout" || at_failed=:
96967at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4218"
96968$at_failed && at_fn_log_failure  \
96969"./report.txt"
96970$at_traceon; }
96971
96972
96973  set +x
96974  $at_times_p && times >"$at_times_file"
96975) 5>&1 2>&1 7>&- | eval $at_tee_pipe
96976read at_status <"$at_status_file"
96977#AT_STOP_825
96978#AT_START_826
96979at_fn_group_banner 826 'run_reportwriter.at:4223' \
96980  "Report CODE and LIMIT COLUMNS" "                  " 4
96981at_xfail=no
96982(
96983  $as_echo "826. $at_setup_line: testing $at_desc ..."
96984  $at_traceon
96985
96986
96987
96988cat >progv.cob <<'_ATEOF'
96989
96990       IDENTIFICATION DIVISION.
96991       PROGRAM-ID. progv.
96992
96993       ENVIRONMENT DIVISION.
96994       INPUT-OUTPUT SECTION.
96995       FILE-CONTROL.
96996            SELECT RP-FILE ASSIGN EXTERNAL PRINTOUT
96997            ORGANIZATION LINE SEQUENTIAL.
96998
96999       DATA DIVISION.
97000       FILE SECTION.
97001       FD  RP-FILE REPORT RP.
97002
97003       WORKING-STORAGE SECTION.
97004       01  IDX1      PIC 99 VALUE 1.
97005       01  MAXCOL    PIC 99 VALUE 50.
97006       01  MYCODE    PIC X(6) VALUE "Hi-Q:".
97007       01  DIGX      PIC X(50) VALUE
97008                "123456789b123456789c123456789d123456789e123456789f".
97009       01  FILLER REDEFINES DIGX.
97010           05  DIGS  PIC X(10) OCCURS 5 TIMES.
97011
97012       REPORT SECTION.
97013       RD  RP
97014           CODE IS MYCODE *> variable
97015           PAGE LIMIT 10 LINES
97016                      MAXCOL COLUMNS *> variable
97017           HEADING 1
97018           FIRST DETAIL 4.
97019       01 HEADING-LINE.
97020          02 TYPE PAGE HEADING LINE PLUS 1.
97021            05  COLUMN 1      PIC X(50) VALUE
97022                "         1         2         3         4         5".
97023          02 TYPE PAGE HEADING LINE PLUS 1.
97024      *     05  COLUMN 1      PIC X(50) VALUE
97025      *         "12345678901234567890123456789012345678901234567890".
97026            05  COLUMN 1      OCCURS 5 TIMES
97027                  VARYING IDX1 FROM 1 BY 1.
97028                10  FILLER    PIC X(10) SOURCE DIGS (IDX1).
97029
97030       01  RP-DTL1 TYPE DETAIL,  LINE + 1.
97031            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
97032            03  MARK  COLUMN + 3 PIC X(4).
97033
97034       01  RP-DTL2 TYPE DETAIL, LINE + 1.
97035            03  GRPS  COLUMN 1 OCCURS 3 TIMES.
97036               05  TAG1      PIC X(5).
97037               05  FILLER    PIC X.
97038               05  TAG2      PIC X(5).
97039               05  FILLER    PIC XX.
97040
97041       01  RP-DTL3 TYPE DETAIL, LINE + 1.
97042            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
97043            03  TAGP  COLUMN PLUS 4 PIC X(4).
97044
97045       01  RP-DTL4 TYPE DETAIL, LINE + 1.
97046            03  NUM4A               PIC 999.
97047            03  NUM4B COLUMN 11     PIC 999 OCCURS 3 STEP 10.
97048            03  MRK4  COLUMN + 3    PIC X(4).
97049
97050       PROCEDURE DIVISION.
97051           OPEN OUTPUT RP-FILE
97052           INITIATE RP
97053
97054           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
97055           MOVE "<1>" TO MARK.
97056           GENERATE rp-dtl1
97057
97058           MOVE ALL '*' TO GRPS(1), GRPS(2), GRPS(3)
97059           MOVE "Tag1" TO TAG1 (1), TAG1 (2), TAG1 (3)
97060           MOVE "Tag2" TO TAG2 (1), TAG2 (2), TAG2 (3)
97061           GENERATE RP-DTL2
97062
97063           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
97064           MOVE "<3>" TO TAGP.
97065           GENERATE RP-DTL3.
97066
97067           MOVE 400 TO NUM4A
97068           MOVE 401 TO NUM4B (1)
97069           MOVE 402 TO NUM4B (2)
97070           MOVE 403 TO NUM4B (3)
97071           MOVE "<4>" TO MRK4.
97072           GENERATE RP-DTL4
97073
97074           TERMINATE rp
97075           CLOSE RP-FILE
97076
97077           STOP RUN.
97078_ATEOF
97079
97080
97081{ set +x
97082$as_echo "$at_srcdir/run_reportwriter.at:4317: \$COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob"
97083at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob" "run_reportwriter.at:4317"
97084( $at_check_trace; $COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob
97085) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97086at_status=$? at_failed=false
97087$at_check_filter
97088echo >>"$at_stderr"; $as_echo "progv.cob:39: warning: RW VARYING clause is not implemented
97089" | \
97090  $at_diff - "$at_stderr" || at_failed=:
97091at_fn_diff_devnull "$at_stdout" || at_failed=:
97092at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4317"
97093$at_failed && at_fn_log_failure
97094$at_traceon; }
97095
97096
97097{ set +x
97098$as_echo "$at_srcdir/run_reportwriter.at:4321: DD_PRINTOUT=./report_var.txt \\
97099\$COBCRUN_DIRECT ./progv"
97100at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:4321"
97101( $at_check_trace; DD_PRINTOUT=./report_var.txt \
97102$COBCRUN_DIRECT ./progv
97103) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97104at_status=$? at_failed=false
97105$at_check_filter
97106at_fn_diff_devnull "$at_stderr" || at_failed=:
97107at_fn_diff_devnull "$at_stdout" || at_failed=:
97108at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4321"
97109$at_failed && at_fn_log_failure
97110$at_traceon; }
97111
97112
97113cat >progl.cob <<'_ATEOF'
97114
97115       IDENTIFICATION DIVISION.
97116       PROGRAM-ID. progl.
97117
97118       ENVIRONMENT DIVISION.
97119       INPUT-OUTPUT SECTION.
97120       FILE-CONTROL.
97121            SELECT RP-FILE ASSIGN EXTERNAL PRINTOUT
97122            ORGANIZATION LINE SEQUENTIAL.
97123
97124       DATA DIVISION.
97125       FILE SECTION.
97126       FD  RP-FILE REPORT RP.
97127
97128       WORKING-STORAGE SECTION.
97129       01  IDX1      PIC 99 VALUE 1.
97130       01  DIGX      PIC X(50) VALUE
97131                "123456789b123456789c123456789d123456789e123456789f".
97132       01  FILLER REDEFINES DIGX.
97133           05  DIGS  PIC X(10) OCCURS 5 TIMES.
97134
97135       REPORT SECTION.
97136       RD  RP
97137           CODE IS "Hi-Q: " *> literal
97138           PAGE LIMIT 10 LINES
97139                      50 COLUMNS *> literal
97140           HEADING 1
97141           FIRST DETAIL 4.
97142       01 HEADING-LINE.
97143          02 TYPE PAGE HEADING LINE PLUS 1.
97144            05  COLUMN 1      PIC X(50) VALUE
97145                "         1         2         3         4         5".
97146          02 TYPE PAGE HEADING LINE PLUS 1.
97147      *     05  COLUMN 1      PIC X(50) VALUE
97148      *         "12345678901234567890123456789012345678901234567890".
97149            05  COLUMN 1      OCCURS 5 TIMES
97150                  VARYING IDX1 FROM 1 BY 1.
97151                10  FILLER    PIC X(10) SOURCE DIGS (IDX1).
97152
97153       01  RP-DTL1 TYPE DETAIL, LINE + 1.
97154            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
97155            03  MARK  COLUMN + 3 PIC X(4).
97156
97157       01  RP-DTL2 TYPE DETAIL, LINE + 1.
97158            03  GRPS  COLUMN 1 OCCURS 3 TIMES.
97159               05  TAG1      PIC X(5).
97160               05  FILLER    PIC X.
97161               05  TAG2      PIC X(5).
97162               05  FILLER    PIC XX.
97163
97164       01  RP-DTL3 TYPE DETAIL, LINE + 1.
97165            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
97166            03  TAGP  COLUMN PLUS 4 PIC X(4).
97167
97168       01  RP-DTL4 TYPE DETAIL, LINE + 1.
97169            03  NUM4A               PIC 999.
97170            03  NUM4B COLUMN 11     PIC 999 OCCURS 3 STEP 10.
97171            03  MRK4  COLUMN + 3    PIC X(4).
97172
97173       PROCEDURE DIVISION.
97174           OPEN OUTPUT RP-FILE
97175           INITIATE RP
97176
97177           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
97178           MOVE "<1>" TO MARK.
97179           GENERATE rp-dtl1
97180
97181           MOVE ALL '*' TO GRPS(1), GRPS(2), GRPS(3)
97182           MOVE "Tag1" TO TAG1 (1), TAG1 (2), TAG1 (3)
97183           MOVE "Tag2" TO TAG2 (1), TAG2 (2), TAG2 (3)
97184           GENERATE RP-DTL2
97185
97186           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
97187           MOVE "<3>" TO TAGP.
97188           GENERATE RP-DTL3.
97189
97190           MOVE 400 TO NUM4A
97191           MOVE 401 TO NUM4B (1)
97192           MOVE 402 TO NUM4B (2)
97193           MOVE 403 TO NUM4B (3)
97194           MOVE "<4>" TO MRK4.
97195           GENERATE RP-DTL4
97196
97197           TERMINATE rp
97198           CLOSE RP-FILE
97199
97200           STOP RUN.
97201_ATEOF
97202
97203
97204{ set +x
97205$as_echo "$at_srcdir/run_reportwriter.at:4413: \$COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob"
97206at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob" "run_reportwriter.at:4413"
97207( $at_check_trace; $COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob
97208) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97209at_status=$? at_failed=false
97210$at_check_filter
97211echo >>"$at_stderr"; $as_echo "progl.cob:37: warning: RW VARYING clause is not implemented
97212" | \
97213  $at_diff - "$at_stderr" || at_failed=:
97214at_fn_diff_devnull "$at_stdout" || at_failed=:
97215at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4413"
97216$at_failed && at_fn_log_failure
97217$at_traceon; }
97218
97219
97220{ set +x
97221$as_echo "$at_srcdir/run_reportwriter.at:4417: DD_PRINTOUT=./report_lit.txt \\
97222\$COBCRUN_DIRECT ./progl"
97223at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:4417"
97224( $at_check_trace; DD_PRINTOUT=./report_lit.txt \
97225$COBCRUN_DIRECT ./progl
97226) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97227at_status=$? at_failed=false
97228$at_check_filter
97229at_fn_diff_devnull "$at_stderr" || at_failed=:
97230at_fn_diff_devnull "$at_stdout" || at_failed=:
97231at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4417"
97232$at_failed && at_fn_log_failure
97233$at_traceon; }
97234
97235
97236
97237
97238
97239
97240cat >reference.at <<'_ATEOF'
97241Hi-Q:          1         2         3         4         5
97242Hi-Q:          1         2         3         4         5
97243Hi-Q: _
97244Hi-Q: 100       100       100         <1>
97245Hi-Q: Tag1 *Tag2 **Tag1 *Tag2 **Tag1 *Tag2 **
97246Hi-Q: 200       200       200   200   <3>
97247Hi-Q: 400       401       402       403         <4>
97248Hi-Q: _
97249Hi-Q: _
97250Hi-Q: _
97251_ATEOF
97252
97253
97254{ set +x
97255$as_echo "$at_srcdir/run_reportwriter.at:4437: cat reference.at | tr -d _ > reference"
97256at_fn_check_prepare_notrace 'a shell pipeline' "run_reportwriter.at:4437"
97257( $at_check_trace; cat reference.at | tr -d _ > reference
97258) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97259at_status=$? at_failed=false
97260$at_check_filter
97261at_fn_diff_devnull "$at_stderr" || at_failed=:
97262at_fn_diff_devnull "$at_stdout" || at_failed=:
97263at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4437"
97264$at_failed && at_fn_log_failure  \
97265"./report_var.txt" \
97266"./report_lit.txt"
97267$at_traceon; }
97268
97269{ set +x
97270$as_echo "$at_srcdir/run_reportwriter.at:4438: diff reference report_var.txt"
97271at_fn_check_prepare_trace "run_reportwriter.at:4438"
97272( $at_check_trace; diff reference report_var.txt
97273) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97274at_status=$? at_failed=false
97275$at_check_filter
97276at_fn_diff_devnull "$at_stderr" || at_failed=:
97277at_fn_diff_devnull "$at_stdout" || at_failed=:
97278at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4438"
97279$at_failed && at_fn_log_failure  \
97280"./report_var.txt" \
97281"./report_lit.txt"
97282$at_traceon; }
97283
97284{ set +x
97285$as_echo "$at_srcdir/run_reportwriter.at:4439: diff reference report_lit.txt"
97286at_fn_check_prepare_trace "run_reportwriter.at:4439"
97287( $at_check_trace; diff reference report_lit.txt
97288) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97289at_status=$? at_failed=false
97290$at_check_filter
97291at_fn_diff_devnull "$at_stderr" || at_failed=:
97292at_fn_diff_devnull "$at_stdout" || at_failed=:
97293at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4439"
97294$at_failed && at_fn_log_failure  \
97295"./report_var.txt" \
97296"./report_lit.txt"
97297$at_traceon; }
97298
97299
97300  set +x
97301  $at_times_p && times >"$at_times_file"
97302) 5>&1 2>&1 7>&- | eval $at_tee_pipe
97303read at_status <"$at_status_file"
97304#AT_STOP_826
97305#AT_START_827
97306at_fn_group_banner 827 'run_reportwriter.at:4444' \
97307  "Duplicate INITIATE" "                             " 4
97308at_xfail=no
97309(
97310  $as_echo "827. $at_setup_line: testing $at_desc ..."
97311  $at_traceon
97312
97313
97314
97315cat >prog.cob <<'_ATEOF'
97316
97317       IDENTIFICATION DIVISION.
97318       PROGRAM-ID. prog.
97319
97320       ENVIRONMENT DIVISION.
97321       INPUT-OUTPUT SECTION.
97322       FILE-CONTROL.
97323       SELECT report-file ASSIGN EXTERNAL PRINTOUT
97324            ORGANIZATION LINE SEQUENTIAL.
97325
97326       DATA DIVISION.
97327       FILE SECTION.
97328       FD  report-file REPORT rp.
97329
97330       WORKING-STORAGE SECTION.
97331       01  foo  PIC X(20).
97332       01  hedpos PIC 99 VALUE 10.
97333
97334       REPORT SECTION.
97335       RD  rp PAGE LIMIT 3.
97336
97337       01  rp-detail TYPE DE.
97338         02  LINE + 1.
97339         03     COL 1; SOURCE foo, PIC X(30).
97340         03     COL + 1            PIC X(6) VALUE "<--->".
97341
97342       PROCEDURE DIVISION.
97343           OPEN OUTPUT report-file.
97344           INITIATE rp.
97345
97346           MOVE "hello" TO foo.
97347            GENERATE rp-detail.
97348
97349           INITIATE rp.
97350
97351           MOVE "goodbye" TO foo.
97352            GENERATE rp-detail.
97353
97354           TERMINATE rp.
97355             CLOSE report-file.
97356           STOP RUN.
97357           END PROGRAM prog.
97358_ATEOF
97359
97360
97361{ set +x
97362$as_echo "$at_srcdir/run_reportwriter.at:4491: \$COMPILE prog.cob"
97363at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4491"
97364( $at_check_trace; $COMPILE prog.cob
97365) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97366at_status=$? at_failed=false
97367$at_check_filter
97368at_fn_diff_devnull "$at_stderr" || at_failed=:
97369at_fn_diff_devnull "$at_stdout" || at_failed=:
97370at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4491"
97371$at_failed && at_fn_log_failure
97372$at_traceon; }
97373
97374
97375{ set +x
97376$as_echo "$at_srcdir/run_reportwriter.at:4493: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
97377at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4493"
97378( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
97379) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97380at_status=$? at_failed=false
97381$at_check_filter
97382echo >>"$at_stderr"; $as_echo "libcob: prog.cob:34: error: INITIATE rp was already done
97383" | \
97384  $at_diff - "$at_stderr" || at_failed=:
97385at_fn_diff_devnull "$at_stdout" || at_failed=:
97386at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4493"
97387$at_failed && at_fn_log_failure
97388$at_traceon; }
97389
97390
97391
97392
97393
97394cat >reference <<'_ATEOF'
97395hello                         <--->
97396goodbye                       <--->
97397
97398_ATEOF
97399
97400
97401{ set +x
97402$as_echo "$at_srcdir/run_reportwriter.at:4506: diff reference report.txt"
97403at_fn_check_prepare_trace "run_reportwriter.at:4506"
97404( $at_check_trace; diff reference report.txt
97405) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97406at_status=$? at_failed=false
97407$at_check_filter
97408at_fn_diff_devnull "$at_stderr" || at_failed=:
97409at_fn_diff_devnull "$at_stdout" || at_failed=:
97410at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4506"
97411$at_failed && at_fn_log_failure  \
97412"./report.txt"
97413$at_traceon; }
97414
97415
97416  set +x
97417  $at_times_p && times >"$at_times_file"
97418) 5>&1 2>&1 7>&- | eval $at_tee_pipe
97419read at_status <"$at_status_file"
97420#AT_STOP_827
97421#AT_START_828
97422at_fn_group_banner 828 'run_reportwriter.at:4511' \
97423  "Missing INITIATE and GENERATE" "                  " 4
97424at_xfail=no
97425(
97426  $as_echo "828. $at_setup_line: testing $at_desc ..."
97427  $at_traceon
97428
97429
97430
97431cat >prog.cob <<'_ATEOF'
97432
97433       IDENTIFICATION DIVISION.
97434       PROGRAM-ID. prog.
97435
97436       ENVIRONMENT DIVISION.
97437       INPUT-OUTPUT SECTION.
97438       FILE-CONTROL.
97439       SELECT report-file ASSIGN EXTERNAL PRINTOUT
97440            ORGANIZATION LINE SEQUENTIAL.
97441
97442       DATA DIVISION.
97443       FILE SECTION.
97444       FD  report-file REPORT rp.
97445
97446       WORKING-STORAGE SECTION.
97447       01  foo  PIC X(20).
97448       01  hedpos PIC 99 VALUE 10.
97449
97450       REPORT SECTION.
97451       RD  rp PAGE LIMIT 3.
97452
97453       01  rp-detail TYPE DE.
97454         02  LINE + 1.
97455         03     COL 1; SOURCE foo, PIC X(30).
97456         03     COL + 1            PIC X(6) VALUE "<--->".
97457
97458       PROCEDURE DIVISION.
97459           OPEN OUTPUT report-file.
97460
97461           MOVE "hello" TO foo.
97462           GENERATE rp-detail.
97463
97464           MOVE "goodbye" TO foo.
97465           GENERATE rp-detail.
97466
97467           TERMINATE rp.
97468           CLOSE report-file.
97469           STOP RUN.
97470_ATEOF
97471
97472
97473{ set +x
97474$as_echo "$at_srcdir/run_reportwriter.at:4554: \$COMPILE prog.cob"
97475at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4554"
97476( $at_check_trace; $COMPILE prog.cob
97477) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97478at_status=$? at_failed=false
97479$at_check_filter
97480at_fn_diff_devnull "$at_stderr" || at_failed=:
97481at_fn_diff_devnull "$at_stdout" || at_failed=:
97482at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4554"
97483$at_failed && at_fn_log_failure
97484$at_traceon; }
97485
97486
97487{ set +x
97488$as_echo "$at_srcdir/run_reportwriter.at:4556: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
97489at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4556"
97490( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
97491) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97492at_status=$? at_failed=false
97493$at_check_filter
97494echo >>"$at_stderr"; $as_echo "libcob: prog.cob:31: error: GENERATE rp but no INITIATE was done
97495libcob: prog.cob:31: warning: implicit CLOSE of report-file ('PRINTOUT')
97496" | \
97497  $at_diff - "$at_stderr" || at_failed=:
97498at_fn_diff_devnull "$at_stdout" || at_failed=:
97499at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:4556"
97500$at_failed && at_fn_log_failure
97501$at_traceon; }
97502
97503
97504
97505
97506
97507: >reference
97508
97509{ set +x
97510$as_echo "$at_srcdir/run_reportwriter.at:4566: diff reference report.txt"
97511at_fn_check_prepare_trace "run_reportwriter.at:4566"
97512( $at_check_trace; diff reference report.txt
97513) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97514at_status=$? at_failed=false
97515$at_check_filter
97516at_fn_diff_devnull "$at_stderr" || at_failed=:
97517at_fn_diff_devnull "$at_stdout" || at_failed=:
97518at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4566"
97519$at_failed && at_fn_log_failure  \
97520"./report.txt"
97521$at_traceon; }
97522
97523
97524  set +x
97525  $at_times_p && times >"$at_times_file"
97526) 5>&1 2>&1 7>&- | eval $at_tee_pipe
97527read at_status <"$at_status_file"
97528#AT_STOP_828
97529#AT_START_829
97530at_fn_group_banner 829 'run_reportwriter.at:4571' \
97531  "Missing INITIATE and TERMINATE" "                 " 4
97532at_xfail=no
97533(
97534  $as_echo "829. $at_setup_line: testing $at_desc ..."
97535  $at_traceon
97536
97537
97538
97539cat >prog.cob <<'_ATEOF'
97540
97541       IDENTIFICATION DIVISION.
97542       PROGRAM-ID. prog.
97543
97544       ENVIRONMENT DIVISION.
97545       INPUT-OUTPUT SECTION.
97546       FILE-CONTROL.
97547       SELECT report-file ASSIGN EXTERNAL PRINTOUT
97548            ORGANIZATION LINE SEQUENTIAL.
97549
97550       DATA DIVISION.
97551       FILE SECTION.
97552       FD  report-file REPORT rp.
97553
97554       WORKING-STORAGE SECTION.
97555       01  foo  PIC X(20).
97556       01  hedpos PIC 99 VALUE 10.
97557
97558       REPORT SECTION.
97559       RD  rp PAGE LIMIT 3.
97560
97561       01  rp-detail TYPE DE.
97562         02  LINE + 1.
97563         03     COL 1; SOURCE foo, PIC X(30).
97564         03     COL + 2            PIC X(6) VALUE "<--->".
97565
97566       PROCEDURE DIVISION.
97567           OPEN OUTPUT report-file.
97568
97569           TERMINATE rp.
97570           CLOSE report-file.
97571           STOP RUN.
97572_ATEOF
97573
97574
97575{ set +x
97576$as_echo "$at_srcdir/run_reportwriter.at:4608: \$COMPILE prog.cob"
97577at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4608"
97578( $at_check_trace; $COMPILE prog.cob
97579) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97580at_status=$? at_failed=false
97581$at_check_filter
97582at_fn_diff_devnull "$at_stderr" || at_failed=:
97583at_fn_diff_devnull "$at_stdout" || at_failed=:
97584at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4608"
97585$at_failed && at_fn_log_failure
97586$at_traceon; }
97587
97588
97589{ set +x
97590$as_echo "$at_srcdir/run_reportwriter.at:4610: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
97591at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4610"
97592( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
97593) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97594at_status=$? at_failed=false
97595$at_check_filter
97596echo >>"$at_stderr"; $as_echo "libcob: prog.cob:30: error: TERMINATE rp but no INITIATE was done
97597libcob: prog.cob:30: warning: implicit CLOSE of report-file ('PRINTOUT')
97598" | \
97599  $at_diff - "$at_stderr" || at_failed=:
97600at_fn_diff_devnull "$at_stdout" || at_failed=:
97601at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:4610"
97602$at_failed && at_fn_log_failure
97603$at_traceon; }
97604
97605
97606
97607
97608
97609: >reference
97610
97611{ set +x
97612$as_echo "$at_srcdir/run_reportwriter.at:4620: diff reference report.txt"
97613at_fn_check_prepare_trace "run_reportwriter.at:4620"
97614( $at_check_trace; diff reference report.txt
97615) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97616at_status=$? at_failed=false
97617$at_check_filter
97618at_fn_diff_devnull "$at_stderr" || at_failed=:
97619at_fn_diff_devnull "$at_stdout" || at_failed=:
97620at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4620"
97621$at_failed && at_fn_log_failure  \
97622"./report.txt"
97623$at_traceon; }
97624
97625
97626  set +x
97627  $at_times_p && times >"$at_times_file"
97628) 5>&1 2>&1 7>&- | eval $at_tee_pipe
97629read at_status <"$at_status_file"
97630#AT_STOP_829
97631#AT_START_830
97632at_fn_group_banner 830 'run_reportwriter.at:4625' \
97633  "Next Group Next Page" "                           " 4
97634at_xfail=no
97635(
97636  $as_echo "830. $at_setup_line: testing $at_desc ..."
97637  $at_traceon
97638
97639
97640
97641cat >inp_data <<'_ATEOF'
97642MW1000051IN15021220150212OR150212043ITEM_NUMBER_22      0000002800002999
97643MW1000051IN15022220150222OR150226020ITEM_NUMBER_06      0000004300000999
97644MW1000071IN15021420150214OR150212057ITEM_NUMBER_51      0000007000005999
97645MW1000071IN15022820150228OR150225098ITEM_NUMBER_92      0000001400009999
97646MW1000201IN15020920150209OR150216083ITEM_NUMBER_77      0000007700007999
97647MW1000201IN15022720150227OR150223079ITEM_NUMBER_20      0000009600002999
97648MW1000291IN15021720150217OR150218088ITEM_NUMBER_86      0000001900008999
97649MW1000411IN15022320150223OR150210063ITEM_NUMBER_66      0000008800006999
97650MW1000451IN15021720150217OR150202053ITEM_NUMBER_60      0000005100006999
97651MW1000471IN15022420150224OR150201036ITEM_NUMBER_45      0000003800004999
97652MW1000831IN15021020150210OR150227042ITEM_NUMBER_70      0000007200007999
97653MW1000831IN15021420150214OR150228090ITEM_NUMBER_07      0000002300000999
97654MW1000831IN15022020150220OR150226048ITEM_NUMBER_61      0000005900006999
97655MW1000891IN15022120150221OR150219018ITEM_NUMBER_72      0000007300007999
97656MW1000891IN15022320150223OR150227069ITEM_NUMBER_73      0000007400007999
97657NE1000001IN15021020150210OR150217060ITEM_NUMBER_38      0000009800003999
97658NE1000201IN15021920150219OR150209035ITEM_NUMBER_94      0000009600009999
97659NE1000431IN15021520150215OR150227047ITEM_NUMBER_64      0000008700006999
97660NE1000431IN15022220150222OR150213062ITEM_NUMBER_97      0000007300009999
97661NE1000451IN15020320150203OR150213087ITEM_NUMBER_85      0000005300008999
97662NE1000471IN15022120150221OR150222034ITEM_NUMBER_74      0000008400007999
97663NE1000471IN15022120150221OR150225077ITEM_NUMBER_78      0000002400007999
97664NE1000491IN15021720150217OR150210037ITEM_NUMBER_17      0000000700001999
97665NE1000601IN15021520150215OR150211070ITEM_NUMBER_06      0000004400000999
97666NE1000631IN15022720150227OR150209051ITEM_NUMBER_09      0000005400000999
97667NE1000671IN15020620150206OR150220045ITEM_NUMBER_56      0000006600005999
97668NE1000811IN15022020150220OR150212086ITEM_NUMBER_27      0000001700002999
97669NE1000811IN15022820150228OR150222075ITEM_NUMBER_66      0000008600006999
97670NE1000831IN15021620150216OR150224004ITEM_NUMBER_52      0000004200005999
97671NW1000001IN15022420150224OR150215029ITEM_NUMBER_79      0000003500007999
97672NW1000011IN15022820150228OR150209023ITEM_NUMBER_62      0000009800006999
97673NW1000051IN15021020150210OR150225076ITEM_NUMBER_50      0000003900005999
97674NW1000051IN15021820150218OR150229093ITEM_NUMBER_94      0000003700009999
97675NW1000051IN15022020150220OR150221050ITEM_NUMBER_89      0000003800008999
97676NW1000071IN15020220150202OR150223014ITEM_NUMBER_54      0000004800005999
97677NW1000091IN15020820150208OR150229094ITEM_NUMBER_17      0000007200001999
97678NW1000091IN15021220150212OR150222096ITEM_NUMBER_89      0000004900008999
97679NW1000091IN15022420150224OR150211074ITEM_NUMBER_90      0000004300009999
97680NW1000091IN15022720150227OR150219030ITEM_NUMBER_12      0000001900001999
97681NW1000201IN15020820150208OR150210061ITEM_NUMBER_34      0000001200003999
97682NW1000231IN15021420150214OR150210044ITEM_NUMBER_89      0000005400008999
97683NW1000251IN15021220150212OR150204059ITEM_NUMBER_39      0000006000003999
97684NW1000401IN15021520150215OR150222049ITEM_NUMBER_40      0000008100004999
97685NW1000401IN15021720150217OR150203085ITEM_NUMBER_77      0000003700007999
97686NW1000411IN15020720150207OR150224056ITEM_NUMBER_99      0000005400009999
97687NW1000411IN15022820150228OR150221008ITEM_NUMBER_68      0000009000006999
97688NW1000491IN15022820150228OR150201002ITEM_NUMBER_47      0000008600004999
97689NW1000611IN15022720150227OR150224097ITEM_NUMBER_11      0000008000001999
97690NW1000631IN15020720150207OR150206031ITEM_NUMBER_49      0000001500004999
97691NW1000631IN15021420150214OR150210054ITEM_NUMBER_40      0000004200004999
97692NW1000631IN15022420150224OR150218024ITEM_NUMBER_84      0000003300008999
97693NW1000651IN15020620150206OR150225099ITEM_NUMBER_57      0000004300005999
97694NW1000671IN15021320150213OR150224041ITEM_NUMBER_22      0000000200002999
97695NW1000691IN15020420150204OR150211092ITEM_NUMBER_13      0000009400001999
97696NW1000811IN15022720150227OR150217081ITEM_NUMBER_45      0000001600004999
97697NW1000851IN15020820150208OR150203091ITEM_NUMBER_63      0000006600006999
97698NW1000871IN15021820150218OR150209082ITEM_NUMBER_30      0000005500003999
97699NW1000871IN15022820150228OR150222015ITEM_NUMBER_73      0000005100007999
97700NW1000891IN15022520150225OR150201026ITEM_NUMBER_80      0000004700008999
97701SE1000001IN15022320150223OR150203064ITEM_NUMBER_03      0000007100000999
97702SE1000011IN15020120150201OR150213017ITEM_NUMBER_09      0000000600000999
97703SE1000011IN15021220150212OR150209066ITEM_NUMBER_06      0000004000000999
97704SE1000091IN15020420150204OR150201001ITEM_NUMBER_68      0000001900006999
97705SE1000091IN15021020150210OR150223084ITEM_NUMBER_11      0000009300001999
97706SE1000091IN15022620150226OR150219038ITEM_NUMBER_97      0000003700009999
97707SE1000211IN15020620150206OR150221089ITEM_NUMBER_05      0000004500000999
97708SE1000411IN15021220150212OR150208012ITEM_NUMBER_46      0000002300004999
97709SE1000431IN15020720150207OR150214072ITEM_NUMBER_25      0000004600002999
97710SE1000431IN15022520150225OR150220040ITEM_NUMBER_01      0000006100000999
97711SE1000451IN15021420150214OR150204022ITEM_NUMBER_34      0000004700003999
97712SE1000471IN15020320150203OR150217010ITEM_NUMBER_25      0000003400002999
97713SE1000471IN15021120150211OR150213025ITEM_NUMBER_54      0000009200005999
97714SE1000491IN15020220150202OR150202013ITEM_NUMBER_19      0000007800001999
97715SE1000601IN15022420150224OR150210039ITEM_NUMBER_19      0000005600001999
97716SE1000631IN15020120150201OR150216003ITEM_NUMBER_65      0000001100006999
97717SE1000671IN15020320150203OR150205071ITEM_NUMBER_64      0000009400006999
97718SE1000671IN15022020150220OR150214032ITEM_NUMBER_53      0000005900005999
97719SE1000891IN15022620150226OR150229068ITEM_NUMBER_75      0000008400007999
97720SW1000011IN15020220150202OR150206000ITEM_NUMBER_30      0000005900003999
97721SW1000031IN15020320150203OR150214033ITEM_NUMBER_09      0000006000000999
97722SW1000031IN15020620150206OR150206021ITEM_NUMBER_91      0000005400009999
97723SW1000091IN15022320150223OR150221028ITEM_NUMBER_67      0000003900006999
97724SW1000201IN15020920150209OR150205065ITEM_NUMBER_21      0000007000002999
97725SW1000201IN15022520150225OR150203052ITEM_NUMBER_55      0000007500005999
97726SW1000201IN15022520150225OR150210067ITEM_NUMBER_83      0000001500008999
97727SW1000211IN15020220150202OR150221055ITEM_NUMBER_16      0000001300001999
97728SW1000211IN15020820150208OR150215007ITEM_NUMBER_97      0000008900009999
97729SW1000271IN15021120150211OR150228080ITEM_NUMBER_45      0000005200004999
97730SW1000271IN15021320150213OR150207095ITEM_NUMBER_09      0000005400000999
97731SW1000401IN15022820150228OR150202027ITEM_NUMBER_83      0000000100008999
97732SW1000411IN15021020150210OR150220073ITEM_NUMBER_63      0000001400006999
97733SW1000431IN15020820150208OR150227078ITEM_NUMBER_23      0000005200002999
97734SW1000431IN15022020150220OR150227006ITEM_NUMBER_50      0000008500005999
97735SW1000601IN15020620150206OR150201011ITEM_NUMBER_73      0000008400007999
97736SW1000611IN15020620150206OR150218019ITEM_NUMBER_67      0000006100006999
97737SW1000651IN15020920150209OR150224009ITEM_NUMBER_23      0000001800002999
97738SW1000831IN15020120150201OR150221046ITEM_NUMBER_44      0000006900004999
97739SW1000831IN15022020150220OR150213005ITEM_NUMBER_44      0000003700004999
97740SW1000831IN15022220150222OR150213058ITEM_NUMBER_86      0000008300008999
97741SW1000871IN15020220150202OR150216016ITEM_NUMBER_62      0000008300006999
97742_ATEOF
97743
97744
97745cat >prog.cob <<'_ATEOF'
97746
97747       IDENTIFICATION DIVISION.
97748       PROGRAM-ID. prog.
97749      *AUTHOR.          Gerard Robinson.
97750      *DATE-WRITTEN.    February 25, 2015.
97751
97752       ENVIRONMENT DIVISION.
97753
97754       INPUT-OUTPUT SECTION.
97755
97756       FILE-CONTROL.
97757
97758       SELECT REPORT-FILE
97759              ASSIGN TO EXTERNAL REPORTFILE
97760              ORGANIZATION IS LINE SEQUENTIAL.
97761
97762       SELECT TEMP-FILE
97763              ASSIGN TO EXTERNAL TEMPFILE
97764              ORGANIZATION IS LINE SEQUENTIAL.
97765
97766       DATA DIVISION.
97767
97768       FILE SECTION.
97769
97770       FD  REPORT-FILE
97771           REPORT IS RPTA.
97772
97773       FD  TEMP-FILE.
97774
97775       01  TEMP-REC.
97776         03  TEMP-REGION        PIC X(2).
97777         03  TEMP-BRANCH        PIC X(7).
97778         03  TEMP-INVOICE       PIC X(8).
97779         03  TEMP-DATE          PIC X(8).
97780         03  TEMP-ORDER         PIC X(8).
97781         03  TEMP-LINE-NO       PIC X(3).
97782         03  TEMP-ITEM          PIC X(20).
97783         03  TEMP-TX-QTY        PIC S9(8).
97784         03  TEMP-COST          PIC 999999V99.
97785
97786       WORKING-STORAGE SECTION.
97787
97788       01 WS-CURRENT-DATE PIC X(23).
97789
97790       01 WS-SYSTEM-DATE-R REDEFINES WS-CURRENT-DATE.
97791          05 WS-DATE-YYYY          PIC X(4).
97792          05 WS-DATE-MM            PIC X(2).
97793          05 WS-DATE-DD            PIC X(2).
97794          05 WS-TIME               PIC X(6).
97795          05 WS-REST               PIC X(9).
97796
97797       01 TEMP-FILE-EOF        PIC 9 VALUE 0.
97798
97799       REPORT SECTION.
97800
97801       RD  RPTA
97802           CONTROLS ARE
97803             FINAL,
97804             TEMP-REGION,
97805             TEMP-BRANCH,
97806             TEMP-INVOICE
97807
97808           PAGE LIMIT IS 60 LINES
97809           HEADING 1
97810           FIRST DETAIL 8
97811           LAST DETAIL  48.
97812
97813       01 RPTA-PAGE-HEADING TYPE PAGE HEADING.
97814          03 LINE NUMBER IS 1.
97815             05 COLUMN 1    PIC X(4)    VALUE "Run:".
97816             05 COLUMN 5    PIC X(2)    SOURCE WS-DATE-MM.
97817             05 COLUMN 7    PIC X       VALUE "/".
97818             05 COLUMN 8    PIC X(2)    SOURCE WS-DATE-DD.
97819             05 COLUMN 10   PIC X       VALUE "/".
97820             05 COLUMN 11   PIC X(4)    SOURCE WS-DATE-YYYY.
97821             05 COLUMN 16   PIC X(6)    SOURCE WS-TIME.
97822             05 COLUMN 40   PIC X(16)   VALUE "NEXT PAGE ISSUE".
97823             05 COLUMN 61   PIC X(4)    VALUE 'Page'.
97824             05 COLUMN 66   PIC ZZZ9    SOURCE PAGE-COUNTER.
97825
97826          03 LINE NUMBER IS 2.
97827             05 COLUMN 1     PIC X(08)     VALUE "Region: ".
97828             05 COLUMN 12    PIC XX        SOURCE TEMP-REGION.
97829
97830          03 LINE NUMBER IS 3.
97831             05 COLUMN 1   PIC X(21)         VALUE "Location: ".
97832             05 COLUMN 22  PIC X(7)          SOURCE TEMP-BRANCH.
97833
97834          03 LINE NUMBER IS 4.
97835             05 COLUMN 1       PIC X(8)     VALUE "Invoice#".
97836             05 COLUMN 12      PIC X(4)     VALUE "Date".
97837             05 COLUMN 46      PIC X(6)     VALUE "Order#".
97838             05 COLUMN 62      PIC X(5)     VALUE "Line#".
97839             05 COLUMN 69      PIC X(5)     VALUE "Item#".
97840             05 COLUMN 102     PIC X(6)     VALUE "TX Qty".
97841             05 COLUMN 114     PIC X(4)     VALUE "Cost".
97842
97843          03 LINE NUMBER IS 5.
97844             05 COLUMN 1       PIC X(128)   VALUE ALL "-".
97845
97846       01 RPTA-DETAIL-LINE TYPE DETAIL.
97847             05 LINE PLUS 1.
97848                07 COLUMN  1   PIC X(8)       GROUP INDICATE
97849                                              SOURCE TEMP-INVOICE.
97850                07 COLUMN 12   PIC X(8)       GROUP INDICATE
97851                                              SOURCE TEMP-DATE.
97852                07 COLUMN 46   PIC X(8)       GROUP INDICATE
97853                                              SOURCE TEMP-ORDER.
97854                07 COLUMN 64   PIC X(3)       SOURCE TEMP-LINE-NO.
97855                07 COLUMN 69   PIC X(20)      SOURCE TEMP-ITEM.
97856                07 COLUMN 102  PIC S9(8)      SOURCE TEMP-TX-QTY.
97857                07 COLUMN 114  PIC ZZZZZZ9.99 SOURCE TEMP-COST.
97858
97859       01 RPTA-INVOICE-FOOTING TYPE CONTROL FOOTING TEMP-INVOICE
97860                                 NEXT GROUP PLUS 1.
97861          03  LINE NUMBER IS PLUS 1.
97862             05 COLUMN  69        PIC X(15)    VALUE "Invoice Total: ".
97863             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
97864             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.
97865
97866       01 RPTA-BRANCH-FOOTING TYPE CONTROL FOOTING TEMP-BRANCH
97867                                 NEXT GROUP NEXT PAGE.
97868          03  LINE NUMBER IS PLUS 2.
97869             05 COLUMN  69        PIC X(15)    VALUE "Branch Total: ".
97870             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
97871             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.
97872
97873       01 RPTA-REGION-FOOTING TYPE CONTROL FOOTING TEMP-REGION
97874                                 NEXT GROUP NEXT PAGE.
97875          03  LINE NUMBER IS PLUS 2.
97876             05 COLUMN  69        PIC X(15)    VALUE "Region Total: ".
97877             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
97878             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.
97879
97880       01 RPTA-FINAL-FOOTING TYPE CONTROL FOOTING FINAL.
97881          03  LINE NUMBER IS PLUS 2.
97882             05 COLUMN  69        PIC X(15)    VALUE "Grand Total: ".
97883             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
97884             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.
97885
97886       PROCEDURE DIVISION.
97887
97888           OPEN INPUT TEMP-FILE.
97889           OPEN OUTPUT REPORT-FILE.
97890
97891           MOVE "20150225153000000000000" TO WS-CURRENT-DATE.
97892
97893           INITIATE RPTA.
97894
97895           PERFORM PROCESS-DETAIL-LEVEL-REPORT THRU PDLR-EXIT.
97896
97897           TERMINATE RPTA.
97898
97899           CLOSE TEMP-FILE.
97900           CLOSE REPORT-FILE.
97901
97902           STOP RUN.
97903
97904
97905       PROCESS-DETAIL-LEVEL-REPORT.
97906           PERFORM READ-NEXT-TEMP-REC THRU RNTR-EXIT.
97907
97908           IF TEMP-FILE-EOF EQUALS 1
97909              GO TO PDLR-EXIT
97910           END-IF.
97911
97912           GENERATE RPTA-DETAIL-LINE.
97913
97914           GO TO PROCESS-DETAIL-LEVEL-REPORT.
97915
97916       PDLR-EXIT.
97917           EXIT.
97918
97919
97920       READ-NEXT-TEMP-REC.
97921           READ TEMP-FILE NEXT RECORD
97922             AT END
97923                MOVE 1 TO TEMP-FILE-EOF
97924           END-READ.
97925
97926       RNTR-EXIT.
97927           EXIT.
97928_ATEOF
97929
97930
97931{ set +x
97932$as_echo "$at_srcdir/run_reportwriter.at:4914: \$COMPILE prog.cob"
97933at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4914"
97934( $at_check_trace; $COMPILE prog.cob
97935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97936at_status=$? at_failed=false
97937$at_check_filter
97938at_fn_diff_devnull "$at_stderr" || at_failed=:
97939at_fn_diff_devnull "$at_stdout" || at_failed=:
97940at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4914"
97941$at_failed && at_fn_log_failure
97942$at_traceon; }
97943
97944
97945{ set +x
97946$as_echo "$at_srcdir/run_reportwriter.at:4916: DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt \$COBCRUN_DIRECT ./prog"
97947at_fn_check_prepare_dynamic "DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4916"
97948( $at_check_trace; DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt $COBCRUN_DIRECT ./prog
97949) >>"$at_stdout" 2>>"$at_stderr" 5>&-
97950at_status=$? at_failed=false
97951$at_check_filter
97952at_fn_diff_devnull "$at_stderr" || at_failed=:
97953at_fn_diff_devnull "$at_stdout" || at_failed=:
97954at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4916"
97955$at_failed && at_fn_log_failure
97956$at_traceon; }
97957
97958
97959
97960
97961
97962cat >reference <<'_ATEOF'
97963Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    1
97964Region:    MW
97965Location:            1000051
97966Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
97967--------------------------------------------------------------------------------------------------------------------------------
97968
97969
97970IN150212   20150212                          OR150212          043  ITEM_NUMBER_22                   00000028         29.99
97971                                                                    Invoice Total:                  000000028         29.99
97972
97973IN150222   20150222                          OR150226          020  ITEM_NUMBER_06                   00000043          9.99
97974                                                                    Invoice Total:                  000000043          9.99
97975
97976
97977                                                                    Branch Total:                   000000071         39.98
97978
97979
97980
97981
97982
97983
97984
97985
97986
97987
97988
97989
97990
97991
97992
97993
97994
97995
97996
97997
97998
97999
98000
98001
98002
98003
98004
98005
98006
98007
98008
98009
98010
98011
98012
98013
98014
98015
98016
98017
98018
98019
98020
98021
98022
98023Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    2
98024Region:    MW
98025Location:            1000071
98026Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98027--------------------------------------------------------------------------------------------------------------------------------
98028
98029
98030IN150214   20150214                          OR150212          057  ITEM_NUMBER_51                   00000070         59.99
98031                                                                    Invoice Total:                  000000070         59.99
98032
98033IN150228   20150228                          OR150225          098  ITEM_NUMBER_92                   00000014         99.99
98034                                                                    Invoice Total:                  000000014         99.99
98035
98036
98037                                                                    Branch Total:                   000000084        159.98
98038
98039
98040
98041
98042
98043
98044
98045
98046
98047
98048
98049
98050
98051
98052
98053
98054
98055
98056
98057
98058
98059
98060
98061
98062
98063
98064
98065
98066
98067
98068
98069
98070
98071
98072
98073
98074
98075
98076
98077
98078
98079
98080
98081
98082
98083Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    3
98084Region:    MW
98085Location:            1000201
98086Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98087--------------------------------------------------------------------------------------------------------------------------------
98088
98089
98090IN150209   20150209                          OR150216          083  ITEM_NUMBER_77                   00000077         79.99
98091                                                                    Invoice Total:                  000000077         79.99
98092
98093IN150227   20150227                          OR150223          079  ITEM_NUMBER_20                   00000096         29.99
98094                                                                    Invoice Total:                  000000096         29.99
98095
98096
98097                                                                    Branch Total:                   000000173        109.98
98098
98099
98100
98101
98102
98103
98104
98105
98106
98107
98108
98109
98110
98111
98112
98113
98114
98115
98116
98117
98118
98119
98120
98121
98122
98123
98124
98125
98126
98127
98128
98129
98130
98131
98132
98133
98134
98135
98136
98137
98138
98139
98140
98141
98142
98143Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    4
98144Region:    MW
98145Location:            1000291
98146Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98147--------------------------------------------------------------------------------------------------------------------------------
98148
98149
98150IN150217   20150217                          OR150218          088  ITEM_NUMBER_86                   00000019         89.99
98151                                                                    Invoice Total:                  000000019         89.99
98152
98153
98154                                                                    Branch Total:                   000000019         89.99
98155
98156
98157
98158
98159
98160
98161
98162
98163
98164
98165
98166
98167
98168
98169
98170
98171
98172
98173
98174
98175
98176
98177
98178
98179
98180
98181
98182
98183
98184
98185
98186
98187
98188
98189
98190
98191
98192
98193
98194
98195
98196
98197
98198
98199
98200
98201
98202
98203Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    5
98204Region:    MW
98205Location:            1000411
98206Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98207--------------------------------------------------------------------------------------------------------------------------------
98208
98209
98210IN150223   20150223                          OR150210          063  ITEM_NUMBER_66                   00000088         69.99
98211                                                                    Invoice Total:                  000000088         69.99
98212
98213
98214                                                                    Branch Total:                   000000088         69.99
98215
98216
98217
98218
98219
98220
98221
98222
98223
98224
98225
98226
98227
98228
98229
98230
98231
98232
98233
98234
98235
98236
98237
98238
98239
98240
98241
98242
98243
98244
98245
98246
98247
98248
98249
98250
98251
98252
98253
98254
98255
98256
98257
98258
98259
98260
98261
98262
98263Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    6
98264Region:    MW
98265Location:            1000451
98266Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98267--------------------------------------------------------------------------------------------------------------------------------
98268
98269
98270IN150217   20150217                          OR150202          053  ITEM_NUMBER_60                   00000051         69.99
98271                                                                    Invoice Total:                  000000051         69.99
98272
98273
98274                                                                    Branch Total:                   000000051         69.99
98275
98276
98277
98278
98279
98280
98281
98282
98283
98284
98285
98286
98287
98288
98289
98290
98291
98292
98293
98294
98295
98296
98297
98298
98299
98300
98301
98302
98303
98304
98305
98306
98307
98308
98309
98310
98311
98312
98313
98314
98315
98316
98317
98318
98319
98320
98321
98322
98323Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    7
98324Region:    MW
98325Location:            1000471
98326Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98327--------------------------------------------------------------------------------------------------------------------------------
98328
98329
98330IN150224   20150224                          OR150201          036  ITEM_NUMBER_45                   00000038         49.99
98331                                                                    Invoice Total:                  000000038         49.99
98332
98333
98334                                                                    Branch Total:                   000000038         49.99
98335
98336
98337
98338
98339
98340
98341
98342
98343
98344
98345
98346
98347
98348
98349
98350
98351
98352
98353
98354
98355
98356
98357
98358
98359
98360
98361
98362
98363
98364
98365
98366
98367
98368
98369
98370
98371
98372
98373
98374
98375
98376
98377
98378
98379
98380
98381
98382
98383Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    8
98384Region:    MW
98385Location:            1000831
98386Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98387--------------------------------------------------------------------------------------------------------------------------------
98388
98389
98390IN150210   20150210                          OR150227          042  ITEM_NUMBER_70                   00000072         79.99
98391                                                                    Invoice Total:                  000000072         79.99
98392
98393IN150214   20150214                          OR150228          090  ITEM_NUMBER_07                   00000023          9.99
98394                                                                    Invoice Total:                  000000023          9.99
98395
98396IN150220   20150220                          OR150226          048  ITEM_NUMBER_61                   00000059         69.99
98397                                                                    Invoice Total:                  000000059         69.99
98398
98399
98400                                                                    Branch Total:                   000000154        159.97
98401
98402
98403
98404
98405
98406
98407
98408
98409
98410
98411
98412
98413
98414
98415
98416
98417
98418
98419
98420
98421
98422
98423
98424
98425
98426
98427
98428
98429
98430
98431
98432
98433
98434
98435
98436
98437
98438
98439
98440
98441
98442
98443Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    9
98444Region:    MW
98445Location:            1000891
98446Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98447--------------------------------------------------------------------------------------------------------------------------------
98448
98449
98450IN150221   20150221                          OR150219          018  ITEM_NUMBER_72                   00000073         79.99
98451                                                                    Invoice Total:                  000000073         79.99
98452
98453IN150223   20150223                          OR150227          069  ITEM_NUMBER_73                   00000074         79.99
98454                                                                    Invoice Total:                  000000074         79.99
98455
98456
98457                                                                    Branch Total:                   000000147        159.98
98458
98459                                                                    Region Total:                   000000825        909.85
98460
98461
98462
98463
98464
98465
98466
98467
98468
98469
98470
98471
98472
98473
98474
98475
98476
98477
98478
98479
98480
98481
98482
98483
98484
98485
98486
98487
98488
98489
98490
98491
98492
98493
98494
98495
98496
98497
98498
98499
98500
98501
98502
98503Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   10
98504Region:    NE
98505Location:            1000001
98506Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98507--------------------------------------------------------------------------------------------------------------------------------
98508
98509
98510IN150210   20150210                          OR150217          060  ITEM_NUMBER_38                   00000098         39.99
98511                                                                    Invoice Total:                  000000098         39.99
98512
98513
98514                                                                    Branch Total:                   000000098         39.99
98515
98516
98517
98518
98519
98520
98521
98522
98523
98524
98525
98526
98527
98528
98529
98530
98531
98532
98533
98534
98535
98536
98537
98538
98539
98540
98541
98542
98543
98544
98545
98546
98547
98548
98549
98550
98551
98552
98553
98554
98555
98556
98557
98558
98559
98560
98561
98562
98563Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   11
98564Region:    NE
98565Location:            1000201
98566Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98567--------------------------------------------------------------------------------------------------------------------------------
98568
98569
98570IN150219   20150219                          OR150209          035  ITEM_NUMBER_94                   00000096         99.99
98571                                                                    Invoice Total:                  000000096         99.99
98572
98573
98574                                                                    Branch Total:                   000000096         99.99
98575
98576
98577
98578
98579
98580
98581
98582
98583
98584
98585
98586
98587
98588
98589
98590
98591
98592
98593
98594
98595
98596
98597
98598
98599
98600
98601
98602
98603
98604
98605
98606
98607
98608
98609
98610
98611
98612
98613
98614
98615
98616
98617
98618
98619
98620
98621
98622
98623Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   12
98624Region:    NE
98625Location:            1000431
98626Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98627--------------------------------------------------------------------------------------------------------------------------------
98628
98629
98630IN150215   20150215                          OR150227          047  ITEM_NUMBER_64                   00000087         69.99
98631                                                                    Invoice Total:                  000000087         69.99
98632
98633IN150222   20150222                          OR150213          062  ITEM_NUMBER_97                   00000073         99.99
98634                                                                    Invoice Total:                  000000073         99.99
98635
98636
98637                                                                    Branch Total:                   000000160        169.98
98638
98639
98640
98641
98642
98643
98644
98645
98646
98647
98648
98649
98650
98651
98652
98653
98654
98655
98656
98657
98658
98659
98660
98661
98662
98663
98664
98665
98666
98667
98668
98669
98670
98671
98672
98673
98674
98675
98676
98677
98678
98679
98680
98681
98682
98683Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   13
98684Region:    NE
98685Location:            1000451
98686Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98687--------------------------------------------------------------------------------------------------------------------------------
98688
98689
98690IN150203   20150203                          OR150213          087  ITEM_NUMBER_85                   00000053         89.99
98691                                                                    Invoice Total:                  000000053         89.99
98692
98693
98694                                                                    Branch Total:                   000000053         89.99
98695
98696
98697
98698
98699
98700
98701
98702
98703
98704
98705
98706
98707
98708
98709
98710
98711
98712
98713
98714
98715
98716
98717
98718
98719
98720
98721
98722
98723
98724
98725
98726
98727
98728
98729
98730
98731
98732
98733
98734
98735
98736
98737
98738
98739
98740
98741
98742
98743Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   14
98744Region:    NE
98745Location:            1000471
98746Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98747--------------------------------------------------------------------------------------------------------------------------------
98748
98749
98750IN150221   20150221                          OR150222          034  ITEM_NUMBER_74                   00000084         79.99
98751                                                               077  ITEM_NUMBER_78                   00000024         79.99
98752                                                                    Invoice Total:                  000000108        159.98
98753
98754
98755                                                                    Branch Total:                   000000108        159.98
98756
98757
98758
98759
98760
98761
98762
98763
98764
98765
98766
98767
98768
98769
98770
98771
98772
98773
98774
98775
98776
98777
98778
98779
98780
98781
98782
98783
98784
98785
98786
98787
98788
98789
98790
98791
98792
98793
98794
98795
98796
98797
98798
98799
98800
98801
98802
98803Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   15
98804Region:    NE
98805Location:            1000491
98806Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98807--------------------------------------------------------------------------------------------------------------------------------
98808
98809
98810IN150217   20150217                          OR150210          037  ITEM_NUMBER_17                   00000007         19.99
98811                                                                    Invoice Total:                  000000007         19.99
98812
98813
98814                                                                    Branch Total:                   000000007         19.99
98815
98816
98817
98818
98819
98820
98821
98822
98823
98824
98825
98826
98827
98828
98829
98830
98831
98832
98833
98834
98835
98836
98837
98838
98839
98840
98841
98842
98843
98844
98845
98846
98847
98848
98849
98850
98851
98852
98853
98854
98855
98856
98857
98858
98859
98860
98861
98862
98863Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   16
98864Region:    NE
98865Location:            1000601
98866Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98867--------------------------------------------------------------------------------------------------------------------------------
98868
98869
98870IN150215   20150215                          OR150211          070  ITEM_NUMBER_06                   00000044          9.99
98871                                                                    Invoice Total:                  000000044          9.99
98872
98873
98874                                                                    Branch Total:                   000000044          9.99
98875
98876
98877
98878
98879
98880
98881
98882
98883
98884
98885
98886
98887
98888
98889
98890
98891
98892
98893
98894
98895
98896
98897
98898
98899
98900
98901
98902
98903
98904
98905
98906
98907
98908
98909
98910
98911
98912
98913
98914
98915
98916
98917
98918
98919
98920
98921
98922
98923Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   17
98924Region:    NE
98925Location:            1000631
98926Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98927--------------------------------------------------------------------------------------------------------------------------------
98928
98929
98930IN150227   20150227                          OR150209          051  ITEM_NUMBER_09                   00000054          9.99
98931                                                                    Invoice Total:                  000000054          9.99
98932
98933
98934                                                                    Branch Total:                   000000054          9.99
98935
98936
98937
98938
98939
98940
98941
98942
98943
98944
98945
98946
98947
98948
98949
98950
98951
98952
98953
98954
98955
98956
98957
98958
98959
98960
98961
98962
98963
98964
98965
98966
98967
98968
98969
98970
98971
98972
98973
98974
98975
98976
98977
98978
98979
98980
98981
98982
98983Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   18
98984Region:    NE
98985Location:            1000671
98986Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
98987--------------------------------------------------------------------------------------------------------------------------------
98988
98989
98990IN150206   20150206                          OR150220          045  ITEM_NUMBER_56                   00000066         59.99
98991                                                                    Invoice Total:                  000000066         59.99
98992
98993
98994                                                                    Branch Total:                   000000066         59.99
98995
98996
98997
98998
98999
99000
99001
99002
99003
99004
99005
99006
99007
99008
99009
99010
99011
99012
99013
99014
99015
99016
99017
99018
99019
99020
99021
99022
99023
99024
99025
99026
99027
99028
99029
99030
99031
99032
99033
99034
99035
99036
99037
99038
99039
99040
99041
99042
99043Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   19
99044Region:    NE
99045Location:            1000811
99046Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99047--------------------------------------------------------------------------------------------------------------------------------
99048
99049
99050IN150220   20150220                          OR150212          086  ITEM_NUMBER_27                   00000017         29.99
99051                                                                    Invoice Total:                  000000017         29.99
99052
99053IN150228   20150228                          OR150222          075  ITEM_NUMBER_66                   00000086         69.99
99054                                                                    Invoice Total:                  000000086         69.99
99055
99056
99057                                                                    Branch Total:                   000000103         99.98
99058
99059
99060
99061
99062
99063
99064
99065
99066
99067
99068
99069
99070
99071
99072
99073
99074
99075
99076
99077
99078
99079
99080
99081
99082
99083
99084
99085
99086
99087
99088
99089
99090
99091
99092
99093
99094
99095
99096
99097
99098
99099
99100
99101
99102
99103Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   20
99104Region:    NE
99105Location:            1000831
99106Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99107--------------------------------------------------------------------------------------------------------------------------------
99108
99109
99110IN150216   20150216                          OR150224          004  ITEM_NUMBER_52                   00000042         59.99
99111                                                                    Invoice Total:                  000000042         59.99
99112
99113
99114                                                                    Branch Total:                   000000042         59.99
99115
99116                                                                    Region Total:                   000000831        819.86
99117
99118
99119
99120
99121
99122
99123
99124
99125
99126
99127
99128
99129
99130
99131
99132
99133
99134
99135
99136
99137
99138
99139
99140
99141
99142
99143
99144
99145
99146
99147
99148
99149
99150
99151
99152
99153
99154
99155
99156
99157
99158
99159
99160
99161
99162
99163Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   21
99164Region:    NW
99165Location:            1000001
99166Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99167--------------------------------------------------------------------------------------------------------------------------------
99168
99169
99170IN150224   20150224                          OR150215          029  ITEM_NUMBER_79                   00000035         79.99
99171                                                                    Invoice Total:                  000000035         79.99
99172
99173
99174                                                                    Branch Total:                   000000035         79.99
99175
99176
99177
99178
99179
99180
99181
99182
99183
99184
99185
99186
99187
99188
99189
99190
99191
99192
99193
99194
99195
99196
99197
99198
99199
99200
99201
99202
99203
99204
99205
99206
99207
99208
99209
99210
99211
99212
99213
99214
99215
99216
99217
99218
99219
99220
99221
99222
99223Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   22
99224Region:    NW
99225Location:            1000011
99226Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99227--------------------------------------------------------------------------------------------------------------------------------
99228
99229
99230IN150228   20150228                          OR150209          023  ITEM_NUMBER_62                   00000098         69.99
99231                                                                    Invoice Total:                  000000098         69.99
99232
99233
99234                                                                    Branch Total:                   000000098         69.99
99235
99236
99237
99238
99239
99240
99241
99242
99243
99244
99245
99246
99247
99248
99249
99250
99251
99252
99253
99254
99255
99256
99257
99258
99259
99260
99261
99262
99263
99264
99265
99266
99267
99268
99269
99270
99271
99272
99273
99274
99275
99276
99277
99278
99279
99280
99281
99282
99283Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   23
99284Region:    NW
99285Location:            1000051
99286Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99287--------------------------------------------------------------------------------------------------------------------------------
99288
99289
99290IN150210   20150210                          OR150225          076  ITEM_NUMBER_50                   00000039         59.99
99291                                                                    Invoice Total:                  000000039         59.99
99292
99293IN150218   20150218                          OR150229          093  ITEM_NUMBER_94                   00000037         99.99
99294                                                                    Invoice Total:                  000000037         99.99
99295
99296IN150220   20150220                          OR150221          050  ITEM_NUMBER_89                   00000038         89.99
99297                                                                    Invoice Total:                  000000038         89.99
99298
99299
99300                                                                    Branch Total:                   000000114        249.97
99301
99302
99303
99304
99305
99306
99307
99308
99309
99310
99311
99312
99313
99314
99315
99316
99317
99318
99319
99320
99321
99322
99323
99324
99325
99326
99327
99328
99329
99330
99331
99332
99333
99334
99335
99336
99337
99338
99339
99340
99341
99342
99343Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   24
99344Region:    NW
99345Location:            1000071
99346Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99347--------------------------------------------------------------------------------------------------------------------------------
99348
99349
99350IN150202   20150202                          OR150223          014  ITEM_NUMBER_54                   00000048         59.99
99351                                                                    Invoice Total:                  000000048         59.99
99352
99353
99354                                                                    Branch Total:                   000000048         59.99
99355
99356
99357
99358
99359
99360
99361
99362
99363
99364
99365
99366
99367
99368
99369
99370
99371
99372
99373
99374
99375
99376
99377
99378
99379
99380
99381
99382
99383
99384
99385
99386
99387
99388
99389
99390
99391
99392
99393
99394
99395
99396
99397
99398
99399
99400
99401
99402
99403Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   25
99404Region:    NW
99405Location:            1000091
99406Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99407--------------------------------------------------------------------------------------------------------------------------------
99408
99409
99410IN150208   20150208                          OR150229          094  ITEM_NUMBER_17                   00000072         19.99
99411                                                                    Invoice Total:                  000000072         19.99
99412
99413IN150212   20150212                          OR150222          096  ITEM_NUMBER_89                   00000049         89.99
99414                                                                    Invoice Total:                  000000049         89.99
99415
99416IN150224   20150224                          OR150211          074  ITEM_NUMBER_90                   00000043         99.99
99417                                                                    Invoice Total:                  000000043         99.99
99418
99419IN150227   20150227                          OR150219          030  ITEM_NUMBER_12                   00000019         19.99
99420                                                                    Invoice Total:                  000000019         19.99
99421
99422
99423                                                                    Branch Total:                   000000183        229.96
99424
99425
99426
99427
99428
99429
99430
99431
99432
99433
99434
99435
99436
99437
99438
99439
99440
99441
99442
99443
99444
99445
99446
99447
99448
99449
99450
99451
99452
99453
99454
99455
99456
99457
99458
99459
99460
99461
99462
99463Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   26
99464Region:    NW
99465Location:            1000201
99466Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99467--------------------------------------------------------------------------------------------------------------------------------
99468
99469
99470IN150208   20150208                          OR150210          061  ITEM_NUMBER_34                   00000012         39.99
99471                                                                    Invoice Total:                  000000012         39.99
99472
99473
99474                                                                    Branch Total:                   000000012         39.99
99475
99476
99477
99478
99479
99480
99481
99482
99483
99484
99485
99486
99487
99488
99489
99490
99491
99492
99493
99494
99495
99496
99497
99498
99499
99500
99501
99502
99503
99504
99505
99506
99507
99508
99509
99510
99511
99512
99513
99514
99515
99516
99517
99518
99519
99520
99521
99522
99523Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   27
99524Region:    NW
99525Location:            1000231
99526Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99527--------------------------------------------------------------------------------------------------------------------------------
99528
99529
99530IN150214   20150214                          OR150210          044  ITEM_NUMBER_89                   00000054         89.99
99531                                                                    Invoice Total:                  000000054         89.99
99532
99533
99534                                                                    Branch Total:                   000000054         89.99
99535
99536
99537
99538
99539
99540
99541
99542
99543
99544
99545
99546
99547
99548
99549
99550
99551
99552
99553
99554
99555
99556
99557
99558
99559
99560
99561
99562
99563
99564
99565
99566
99567
99568
99569
99570
99571
99572
99573
99574
99575
99576
99577
99578
99579
99580
99581
99582
99583Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   28
99584Region:    NW
99585Location:            1000251
99586Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99587--------------------------------------------------------------------------------------------------------------------------------
99588
99589
99590IN150212   20150212                          OR150204          059  ITEM_NUMBER_39                   00000060         39.99
99591                                                                    Invoice Total:                  000000060         39.99
99592
99593
99594                                                                    Branch Total:                   000000060         39.99
99595
99596
99597
99598
99599
99600
99601
99602
99603
99604
99605
99606
99607
99608
99609
99610
99611
99612
99613
99614
99615
99616
99617
99618
99619
99620
99621
99622
99623
99624
99625
99626
99627
99628
99629
99630
99631
99632
99633
99634
99635
99636
99637
99638
99639
99640
99641
99642
99643Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   29
99644Region:    NW
99645Location:            1000401
99646Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99647--------------------------------------------------------------------------------------------------------------------------------
99648
99649
99650IN150215   20150215                          OR150222          049  ITEM_NUMBER_40                   00000081         49.99
99651                                                                    Invoice Total:                  000000081         49.99
99652
99653IN150217   20150217                          OR150203          085  ITEM_NUMBER_77                   00000037         79.99
99654                                                                    Invoice Total:                  000000037         79.99
99655
99656
99657                                                                    Branch Total:                   000000118        129.98
99658
99659
99660
99661
99662
99663
99664
99665
99666
99667
99668
99669
99670
99671
99672
99673
99674
99675
99676
99677
99678
99679
99680
99681
99682
99683
99684
99685
99686
99687
99688
99689
99690
99691
99692
99693
99694
99695
99696
99697
99698
99699
99700
99701
99702
99703Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   30
99704Region:    NW
99705Location:            1000411
99706Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99707--------------------------------------------------------------------------------------------------------------------------------
99708
99709
99710IN150207   20150207                          OR150224          056  ITEM_NUMBER_99                   00000054         99.99
99711                                                                    Invoice Total:                  000000054         99.99
99712
99713IN150228   20150228                          OR150221          008  ITEM_NUMBER_68                   00000090         69.99
99714                                                                    Invoice Total:                  000000090         69.99
99715
99716
99717                                                                    Branch Total:                   000000144        169.98
99718
99719
99720
99721
99722
99723
99724
99725
99726
99727
99728
99729
99730
99731
99732
99733
99734
99735
99736
99737
99738
99739
99740
99741
99742
99743
99744
99745
99746
99747
99748
99749
99750
99751
99752
99753
99754
99755
99756
99757
99758
99759
99760
99761
99762
99763Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   31
99764Region:    NW
99765Location:            1000491
99766Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99767--------------------------------------------------------------------------------------------------------------------------------
99768
99769
99770IN150228   20150228                          OR150201          002  ITEM_NUMBER_47                   00000086         49.99
99771                                                                    Invoice Total:                  000000086         49.99
99772
99773
99774                                                                    Branch Total:                   000000086         49.99
99775
99776
99777
99778
99779
99780
99781
99782
99783
99784
99785
99786
99787
99788
99789
99790
99791
99792
99793
99794
99795
99796
99797
99798
99799
99800
99801
99802
99803
99804
99805
99806
99807
99808
99809
99810
99811
99812
99813
99814
99815
99816
99817
99818
99819
99820
99821
99822
99823Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   32
99824Region:    NW
99825Location:            1000611
99826Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99827--------------------------------------------------------------------------------------------------------------------------------
99828
99829
99830IN150227   20150227                          OR150224          097  ITEM_NUMBER_11                   00000080         19.99
99831                                                                    Invoice Total:                  000000080         19.99
99832
99833
99834                                                                    Branch Total:                   000000080         19.99
99835
99836
99837
99838
99839
99840
99841
99842
99843
99844
99845
99846
99847
99848
99849
99850
99851
99852
99853
99854
99855
99856
99857
99858
99859
99860
99861
99862
99863
99864
99865
99866
99867
99868
99869
99870
99871
99872
99873
99874
99875
99876
99877
99878
99879
99880
99881
99882
99883Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   33
99884Region:    NW
99885Location:            1000631
99886Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99887--------------------------------------------------------------------------------------------------------------------------------
99888
99889
99890IN150207   20150207                          OR150206          031  ITEM_NUMBER_49                   00000015         49.99
99891                                                                    Invoice Total:                  000000015         49.99
99892
99893IN150214   20150214                          OR150210          054  ITEM_NUMBER_40                   00000042         49.99
99894                                                                    Invoice Total:                  000000042         49.99
99895
99896IN150224   20150224                          OR150218          024  ITEM_NUMBER_84                   00000033         89.99
99897                                                                    Invoice Total:                  000000033         89.99
99898
99899
99900                                                                    Branch Total:                   000000090        189.97
99901
99902
99903
99904
99905
99906
99907
99908
99909
99910
99911
99912
99913
99914
99915
99916
99917
99918
99919
99920
99921
99922
99923
99924
99925
99926
99927
99928
99929
99930
99931
99932
99933
99934
99935
99936
99937
99938
99939
99940
99941
99942
99943Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   34
99944Region:    NW
99945Location:            1000651
99946Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
99947--------------------------------------------------------------------------------------------------------------------------------
99948
99949
99950IN150206   20150206                          OR150225          099  ITEM_NUMBER_57                   00000043         59.99
99951                                                                    Invoice Total:                  000000043         59.99
99952
99953
99954                                                                    Branch Total:                   000000043         59.99
99955
99956
99957
99958
99959
99960
99961
99962
99963
99964
99965
99966
99967
99968
99969
99970
99971
99972
99973
99974
99975
99976
99977
99978
99979
99980
99981
99982
99983
99984
99985
99986
99987
99988
99989
99990
99991
99992
99993
99994
99995
99996
99997
99998
99999
100000
100001
100002
100003Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   35
100004Region:    NW
100005Location:            1000671
100006Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100007--------------------------------------------------------------------------------------------------------------------------------
100008
100009
100010IN150213   20150213                          OR150224          041  ITEM_NUMBER_22                   00000002         29.99
100011                                                                    Invoice Total:                  000000002         29.99
100012
100013
100014                                                                    Branch Total:                   000000002         29.99
100015
100016
100017
100018
100019
100020
100021
100022
100023
100024
100025
100026
100027
100028
100029
100030
100031
100032
100033
100034
100035
100036
100037
100038
100039
100040
100041
100042
100043
100044
100045
100046
100047
100048
100049
100050
100051
100052
100053
100054
100055
100056
100057
100058
100059
100060
100061
100062
100063Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   36
100064Region:    NW
100065Location:            1000691
100066Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100067--------------------------------------------------------------------------------------------------------------------------------
100068
100069
100070IN150204   20150204                          OR150211          092  ITEM_NUMBER_13                   00000094         19.99
100071                                                                    Invoice Total:                  000000094         19.99
100072
100073
100074                                                                    Branch Total:                   000000094         19.99
100075
100076
100077
100078
100079
100080
100081
100082
100083
100084
100085
100086
100087
100088
100089
100090
100091
100092
100093
100094
100095
100096
100097
100098
100099
100100
100101
100102
100103
100104
100105
100106
100107
100108
100109
100110
100111
100112
100113
100114
100115
100116
100117
100118
100119
100120
100121
100122
100123Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   37
100124Region:    NW
100125Location:            1000811
100126Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100127--------------------------------------------------------------------------------------------------------------------------------
100128
100129
100130IN150227   20150227                          OR150217          081  ITEM_NUMBER_45                   00000016         49.99
100131                                                                    Invoice Total:                  000000016         49.99
100132
100133
100134                                                                    Branch Total:                   000000016         49.99
100135
100136
100137
100138
100139
100140
100141
100142
100143
100144
100145
100146
100147
100148
100149
100150
100151
100152
100153
100154
100155
100156
100157
100158
100159
100160
100161
100162
100163
100164
100165
100166
100167
100168
100169
100170
100171
100172
100173
100174
100175
100176
100177
100178
100179
100180
100181
100182
100183Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   38
100184Region:    NW
100185Location:            1000851
100186Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100187--------------------------------------------------------------------------------------------------------------------------------
100188
100189
100190IN150208   20150208                          OR150203          091  ITEM_NUMBER_63                   00000066         69.99
100191                                                                    Invoice Total:                  000000066         69.99
100192
100193
100194                                                                    Branch Total:                   000000066         69.99
100195
100196
100197
100198
100199
100200
100201
100202
100203
100204
100205
100206
100207
100208
100209
100210
100211
100212
100213
100214
100215
100216
100217
100218
100219
100220
100221
100222
100223
100224
100225
100226
100227
100228
100229
100230
100231
100232
100233
100234
100235
100236
100237
100238
100239
100240
100241
100242
100243Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   39
100244Region:    NW
100245Location:            1000871
100246Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100247--------------------------------------------------------------------------------------------------------------------------------
100248
100249
100250IN150218   20150218                          OR150209          082  ITEM_NUMBER_30                   00000055         39.99
100251                                                                    Invoice Total:                  000000055         39.99
100252
100253IN150228   20150228                          OR150222          015  ITEM_NUMBER_73                   00000051         79.99
100254                                                                    Invoice Total:                  000000051         79.99
100255
100256
100257                                                                    Branch Total:                   000000106        119.98
100258
100259
100260
100261
100262
100263
100264
100265
100266
100267
100268
100269
100270
100271
100272
100273
100274
100275
100276
100277
100278
100279
100280
100281
100282
100283
100284
100285
100286
100287
100288
100289
100290
100291
100292
100293
100294
100295
100296
100297
100298
100299
100300
100301
100302
100303Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   40
100304Region:    NW
100305Location:            1000891
100306Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100307--------------------------------------------------------------------------------------------------------------------------------
100308
100309
100310IN150225   20150225                          OR150201          026  ITEM_NUMBER_80                   00000047         89.99
100311                                                                    Invoice Total:                  000000047         89.99
100312
100313
100314                                                                    Branch Total:                   000000047         89.99
100315
100316                                                                    Region Total:                   000001496       1859.70
100317
100318
100319
100320
100321
100322
100323
100324
100325
100326
100327
100328
100329
100330
100331
100332
100333
100334
100335
100336
100337
100338
100339
100340
100341
100342
100343
100344
100345
100346
100347
100348
100349
100350
100351
100352
100353
100354
100355
100356
100357
100358
100359
100360
100361
100362
100363Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   41
100364Region:    SE
100365Location:            1000001
100366Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100367--------------------------------------------------------------------------------------------------------------------------------
100368
100369
100370IN150223   20150223                          OR150203          064  ITEM_NUMBER_03                   00000071          9.99
100371                                                                    Invoice Total:                  000000071          9.99
100372
100373
100374                                                                    Branch Total:                   000000071          9.99
100375
100376
100377
100378
100379
100380
100381
100382
100383
100384
100385
100386
100387
100388
100389
100390
100391
100392
100393
100394
100395
100396
100397
100398
100399
100400
100401
100402
100403
100404
100405
100406
100407
100408
100409
100410
100411
100412
100413
100414
100415
100416
100417
100418
100419
100420
100421
100422
100423Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   42
100424Region:    SE
100425Location:            1000011
100426Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100427--------------------------------------------------------------------------------------------------------------------------------
100428
100429
100430IN150201   20150201                          OR150213          017  ITEM_NUMBER_09                   00000006          9.99
100431                                                                    Invoice Total:                  000000006          9.99
100432
100433IN150212   20150212                          OR150209          066  ITEM_NUMBER_06                   00000040          9.99
100434                                                                    Invoice Total:                  000000040          9.99
100435
100436
100437                                                                    Branch Total:                   000000046         19.98
100438
100439
100440
100441
100442
100443
100444
100445
100446
100447
100448
100449
100450
100451
100452
100453
100454
100455
100456
100457
100458
100459
100460
100461
100462
100463
100464
100465
100466
100467
100468
100469
100470
100471
100472
100473
100474
100475
100476
100477
100478
100479
100480
100481
100482
100483Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   43
100484Region:    SE
100485Location:            1000091
100486Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100487--------------------------------------------------------------------------------------------------------------------------------
100488
100489
100490IN150204   20150204                          OR150201          001  ITEM_NUMBER_68                   00000019         69.99
100491                                                                    Invoice Total:                  000000019         69.99
100492
100493IN150210   20150210                          OR150223          084  ITEM_NUMBER_11                   00000093         19.99
100494                                                                    Invoice Total:                  000000093         19.99
100495
100496IN150226   20150226                          OR150219          038  ITEM_NUMBER_97                   00000037         99.99
100497                                                                    Invoice Total:                  000000037         99.99
100498
100499
100500                                                                    Branch Total:                   000000149        189.97
100501
100502
100503
100504
100505
100506
100507
100508
100509
100510
100511
100512
100513
100514
100515
100516
100517
100518
100519
100520
100521
100522
100523
100524
100525
100526
100527
100528
100529
100530
100531
100532
100533
100534
100535
100536
100537
100538
100539
100540
100541
100542
100543Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   44
100544Region:    SE
100545Location:            1000211
100546Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100547--------------------------------------------------------------------------------------------------------------------------------
100548
100549
100550IN150206   20150206                          OR150221          089  ITEM_NUMBER_05                   00000045          9.99
100551                                                                    Invoice Total:                  000000045          9.99
100552
100553
100554                                                                    Branch Total:                   000000045          9.99
100555
100556
100557
100558
100559
100560
100561
100562
100563
100564
100565
100566
100567
100568
100569
100570
100571
100572
100573
100574
100575
100576
100577
100578
100579
100580
100581
100582
100583
100584
100585
100586
100587
100588
100589
100590
100591
100592
100593
100594
100595
100596
100597
100598
100599
100600
100601
100602
100603Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   45
100604Region:    SE
100605Location:            1000411
100606Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100607--------------------------------------------------------------------------------------------------------------------------------
100608
100609
100610IN150212   20150212                          OR150208          012  ITEM_NUMBER_46                   00000023         49.99
100611                                                                    Invoice Total:                  000000023         49.99
100612
100613
100614                                                                    Branch Total:                   000000023         49.99
100615
100616
100617
100618
100619
100620
100621
100622
100623
100624
100625
100626
100627
100628
100629
100630
100631
100632
100633
100634
100635
100636
100637
100638
100639
100640
100641
100642
100643
100644
100645
100646
100647
100648
100649
100650
100651
100652
100653
100654
100655
100656
100657
100658
100659
100660
100661
100662
100663Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   46
100664Region:    SE
100665Location:            1000431
100666Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100667--------------------------------------------------------------------------------------------------------------------------------
100668
100669
100670IN150207   20150207                          OR150214          072  ITEM_NUMBER_25                   00000046         29.99
100671                                                                    Invoice Total:                  000000046         29.99
100672
100673IN150225   20150225                          OR150220          040  ITEM_NUMBER_01                   00000061          9.99
100674                                                                    Invoice Total:                  000000061          9.99
100675
100676
100677                                                                    Branch Total:                   000000107         39.98
100678
100679
100680
100681
100682
100683
100684
100685
100686
100687
100688
100689
100690
100691
100692
100693
100694
100695
100696
100697
100698
100699
100700
100701
100702
100703
100704
100705
100706
100707
100708
100709
100710
100711
100712
100713
100714
100715
100716
100717
100718
100719
100720
100721
100722
100723Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   47
100724Region:    SE
100725Location:            1000451
100726Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100727--------------------------------------------------------------------------------------------------------------------------------
100728
100729
100730IN150214   20150214                          OR150204          022  ITEM_NUMBER_34                   00000047         39.99
100731                                                                    Invoice Total:                  000000047         39.99
100732
100733
100734                                                                    Branch Total:                   000000047         39.99
100735
100736
100737
100738
100739
100740
100741
100742
100743
100744
100745
100746
100747
100748
100749
100750
100751
100752
100753
100754
100755
100756
100757
100758
100759
100760
100761
100762
100763
100764
100765
100766
100767
100768
100769
100770
100771
100772
100773
100774
100775
100776
100777
100778
100779
100780
100781
100782
100783Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   48
100784Region:    SE
100785Location:            1000471
100786Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100787--------------------------------------------------------------------------------------------------------------------------------
100788
100789
100790IN150203   20150203                          OR150217          010  ITEM_NUMBER_25                   00000034         29.99
100791                                                                    Invoice Total:                  000000034         29.99
100792
100793IN150211   20150211                          OR150213          025  ITEM_NUMBER_54                   00000092         59.99
100794                                                                    Invoice Total:                  000000092         59.99
100795
100796
100797                                                                    Branch Total:                   000000126         89.98
100798
100799
100800
100801
100802
100803
100804
100805
100806
100807
100808
100809
100810
100811
100812
100813
100814
100815
100816
100817
100818
100819
100820
100821
100822
100823
100824
100825
100826
100827
100828
100829
100830
100831
100832
100833
100834
100835
100836
100837
100838
100839
100840
100841
100842
100843Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   49
100844Region:    SE
100845Location:            1000491
100846Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100847--------------------------------------------------------------------------------------------------------------------------------
100848
100849
100850IN150202   20150202                          OR150202          013  ITEM_NUMBER_19                   00000078         19.99
100851                                                                    Invoice Total:                  000000078         19.99
100852
100853
100854                                                                    Branch Total:                   000000078         19.99
100855
100856
100857
100858
100859
100860
100861
100862
100863
100864
100865
100866
100867
100868
100869
100870
100871
100872
100873
100874
100875
100876
100877
100878
100879
100880
100881
100882
100883
100884
100885
100886
100887
100888
100889
100890
100891
100892
100893
100894
100895
100896
100897
100898
100899
100900
100901
100902
100903Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   50
100904Region:    SE
100905Location:            1000601
100906Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100907--------------------------------------------------------------------------------------------------------------------------------
100908
100909
100910IN150224   20150224                          OR150210          039  ITEM_NUMBER_19                   00000056         19.99
100911                                                                    Invoice Total:                  000000056         19.99
100912
100913
100914                                                                    Branch Total:                   000000056         19.99
100915
100916
100917
100918
100919
100920
100921
100922
100923
100924
100925
100926
100927
100928
100929
100930
100931
100932
100933
100934
100935
100936
100937
100938
100939
100940
100941
100942
100943
100944
100945
100946
100947
100948
100949
100950
100951
100952
100953
100954
100955
100956
100957
100958
100959
100960
100961
100962
100963Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   51
100964Region:    SE
100965Location:            1000631
100966Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
100967--------------------------------------------------------------------------------------------------------------------------------
100968
100969
100970IN150201   20150201                          OR150216          003  ITEM_NUMBER_65                   00000011         69.99
100971                                                                    Invoice Total:                  000000011         69.99
100972
100973
100974                                                                    Branch Total:                   000000011         69.99
100975
100976
100977
100978
100979
100980
100981
100982
100983
100984
100985
100986
100987
100988
100989
100990
100991
100992
100993
100994
100995
100996
100997
100998
100999
101000
101001
101002
101003
101004
101005
101006
101007
101008
101009
101010
101011
101012
101013
101014
101015
101016
101017
101018
101019
101020
101021
101022
101023Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   52
101024Region:    SE
101025Location:            1000671
101026Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101027--------------------------------------------------------------------------------------------------------------------------------
101028
101029
101030IN150203   20150203                          OR150205          071  ITEM_NUMBER_64                   00000094         69.99
101031                                                                    Invoice Total:                  000000094         69.99
101032
101033IN150220   20150220                          OR150214          032  ITEM_NUMBER_53                   00000059         59.99
101034                                                                    Invoice Total:                  000000059         59.99
101035
101036
101037                                                                    Branch Total:                   000000153        129.98
101038
101039
101040
101041
101042
101043
101044
101045
101046
101047
101048
101049
101050
101051
101052
101053
101054
101055
101056
101057
101058
101059
101060
101061
101062
101063
101064
101065
101066
101067
101068
101069
101070
101071
101072
101073
101074
101075
101076
101077
101078
101079
101080
101081
101082
101083Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   53
101084Region:    SE
101085Location:            1000891
101086Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101087--------------------------------------------------------------------------------------------------------------------------------
101088
101089
101090IN150226   20150226                          OR150229          068  ITEM_NUMBER_75                   00000084         79.99
101091                                                                    Invoice Total:                  000000084         79.99
101092
101093
101094                                                                    Branch Total:                   000000084         79.99
101095
101096                                                                    Region Total:                   000000996        769.81
101097
101098
101099
101100
101101
101102
101103
101104
101105
101106
101107
101108
101109
101110
101111
101112
101113
101114
101115
101116
101117
101118
101119
101120
101121
101122
101123
101124
101125
101126
101127
101128
101129
101130
101131
101132
101133
101134
101135
101136
101137
101138
101139
101140
101141
101142
101143Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   54
101144Region:    SW
101145Location:            1000011
101146Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101147--------------------------------------------------------------------------------------------------------------------------------
101148
101149
101150IN150202   20150202                          OR150206          000  ITEM_NUMBER_30                   00000059         39.99
101151                                                                    Invoice Total:                  000000059         39.99
101152
101153
101154                                                                    Branch Total:                   000000059         39.99
101155
101156
101157
101158
101159
101160
101161
101162
101163
101164
101165
101166
101167
101168
101169
101170
101171
101172
101173
101174
101175
101176
101177
101178
101179
101180
101181
101182
101183
101184
101185
101186
101187
101188
101189
101190
101191
101192
101193
101194
101195
101196
101197
101198
101199
101200
101201
101202
101203Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   55
101204Region:    SW
101205Location:            1000031
101206Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101207--------------------------------------------------------------------------------------------------------------------------------
101208
101209
101210IN150203   20150203                          OR150214          033  ITEM_NUMBER_09                   00000060          9.99
101211                                                                    Invoice Total:                  000000060          9.99
101212
101213IN150206   20150206                          OR150206          021  ITEM_NUMBER_91                   00000054         99.99
101214                                                                    Invoice Total:                  000000054         99.99
101215
101216
101217                                                                    Branch Total:                   000000114        109.98
101218
101219
101220
101221
101222
101223
101224
101225
101226
101227
101228
101229
101230
101231
101232
101233
101234
101235
101236
101237
101238
101239
101240
101241
101242
101243
101244
101245
101246
101247
101248
101249
101250
101251
101252
101253
101254
101255
101256
101257
101258
101259
101260
101261
101262
101263Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   56
101264Region:    SW
101265Location:            1000091
101266Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101267--------------------------------------------------------------------------------------------------------------------------------
101268
101269
101270IN150223   20150223                          OR150221          028  ITEM_NUMBER_67                   00000039         69.99
101271                                                                    Invoice Total:                  000000039         69.99
101272
101273
101274                                                                    Branch Total:                   000000039         69.99
101275
101276
101277
101278
101279
101280
101281
101282
101283
101284
101285
101286
101287
101288
101289
101290
101291
101292
101293
101294
101295
101296
101297
101298
101299
101300
101301
101302
101303
101304
101305
101306
101307
101308
101309
101310
101311
101312
101313
101314
101315
101316
101317
101318
101319
101320
101321
101322
101323Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   57
101324Region:    SW
101325Location:            1000201
101326Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101327--------------------------------------------------------------------------------------------------------------------------------
101328
101329
101330IN150209   20150209                          OR150205          065  ITEM_NUMBER_21                   00000070         29.99
101331                                                                    Invoice Total:                  000000070         29.99
101332
101333IN150225   20150225                          OR150203          052  ITEM_NUMBER_55                   00000075         59.99
101334                                                               067  ITEM_NUMBER_83                   00000015         89.99
101335                                                                    Invoice Total:                  000000090        149.98
101336
101337
101338                                                                    Branch Total:                   000000160        179.97
101339
101340
101341
101342
101343
101344
101345
101346
101347
101348
101349
101350
101351
101352
101353
101354
101355
101356
101357
101358
101359
101360
101361
101362
101363
101364
101365
101366
101367
101368
101369
101370
101371
101372
101373
101374
101375
101376
101377
101378
101379
101380
101381
101382
101383Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   58
101384Region:    SW
101385Location:            1000211
101386Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101387--------------------------------------------------------------------------------------------------------------------------------
101388
101389
101390IN150202   20150202                          OR150221          055  ITEM_NUMBER_16                   00000013         19.99
101391                                                                    Invoice Total:                  000000013         19.99
101392
101393IN150208   20150208                          OR150215          007  ITEM_NUMBER_97                   00000089         99.99
101394                                                                    Invoice Total:                  000000089         99.99
101395
101396
101397                                                                    Branch Total:                   000000102        119.98
101398
101399
101400
101401
101402
101403
101404
101405
101406
101407
101408
101409
101410
101411
101412
101413
101414
101415
101416
101417
101418
101419
101420
101421
101422
101423
101424
101425
101426
101427
101428
101429
101430
101431
101432
101433
101434
101435
101436
101437
101438
101439
101440
101441
101442
101443Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   59
101444Region:    SW
101445Location:            1000271
101446Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101447--------------------------------------------------------------------------------------------------------------------------------
101448
101449
101450IN150211   20150211                          OR150228          080  ITEM_NUMBER_45                   00000052         49.99
101451                                                                    Invoice Total:                  000000052         49.99
101452
101453IN150213   20150213                          OR150207          095  ITEM_NUMBER_09                   00000054          9.99
101454                                                                    Invoice Total:                  000000054          9.99
101455
101456
101457                                                                    Branch Total:                   000000106         59.98
101458
101459
101460
101461
101462
101463
101464
101465
101466
101467
101468
101469
101470
101471
101472
101473
101474
101475
101476
101477
101478
101479
101480
101481
101482
101483
101484
101485
101486
101487
101488
101489
101490
101491
101492
101493
101494
101495
101496
101497
101498
101499
101500
101501
101502
101503Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   60
101504Region:    SW
101505Location:            1000401
101506Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101507--------------------------------------------------------------------------------------------------------------------------------
101508
101509
101510IN150228   20150228                          OR150202          027  ITEM_NUMBER_83                   00000001         89.99
101511                                                                    Invoice Total:                  000000001         89.99
101512
101513
101514                                                                    Branch Total:                   000000001         89.99
101515
101516
101517
101518
101519
101520
101521
101522
101523
101524
101525
101526
101527
101528
101529
101530
101531
101532
101533
101534
101535
101536
101537
101538
101539
101540
101541
101542
101543
101544
101545
101546
101547
101548
101549
101550
101551
101552
101553
101554
101555
101556
101557
101558
101559
101560
101561
101562
101563Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   61
101564Region:    SW
101565Location:            1000411
101566Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101567--------------------------------------------------------------------------------------------------------------------------------
101568
101569
101570IN150210   20150210                          OR150220          073  ITEM_NUMBER_63                   00000014         69.99
101571                                                                    Invoice Total:                  000000014         69.99
101572
101573
101574                                                                    Branch Total:                   000000014         69.99
101575
101576
101577
101578
101579
101580
101581
101582
101583
101584
101585
101586
101587
101588
101589
101590
101591
101592
101593
101594
101595
101596
101597
101598
101599
101600
101601
101602
101603
101604
101605
101606
101607
101608
101609
101610
101611
101612
101613
101614
101615
101616
101617
101618
101619
101620
101621
101622
101623Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   62
101624Region:    SW
101625Location:            1000431
101626Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101627--------------------------------------------------------------------------------------------------------------------------------
101628
101629
101630IN150208   20150208                          OR150227          078  ITEM_NUMBER_23                   00000052         29.99
101631                                                                    Invoice Total:                  000000052         29.99
101632
101633IN150220   20150220                          OR150227          006  ITEM_NUMBER_50                   00000085         59.99
101634                                                                    Invoice Total:                  000000085         59.99
101635
101636
101637                                                                    Branch Total:                   000000137         89.98
101638
101639
101640
101641
101642
101643
101644
101645
101646
101647
101648
101649
101650
101651
101652
101653
101654
101655
101656
101657
101658
101659
101660
101661
101662
101663
101664
101665
101666
101667
101668
101669
101670
101671
101672
101673
101674
101675
101676
101677
101678
101679
101680
101681
101682
101683Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   63
101684Region:    SW
101685Location:            1000601
101686Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101687--------------------------------------------------------------------------------------------------------------------------------
101688
101689
101690IN150206   20150206                          OR150201          011  ITEM_NUMBER_73                   00000084         79.99
101691                                                                    Invoice Total:                  000000084         79.99
101692
101693
101694                                                                    Branch Total:                   000000084         79.99
101695
101696
101697
101698
101699
101700
101701
101702
101703
101704
101705
101706
101707
101708
101709
101710
101711
101712
101713
101714
101715
101716
101717
101718
101719
101720
101721
101722
101723
101724
101725
101726
101727
101728
101729
101730
101731
101732
101733
101734
101735
101736
101737
101738
101739
101740
101741
101742
101743Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   64
101744Region:    SW
101745Location:            1000611
101746Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101747--------------------------------------------------------------------------------------------------------------------------------
101748
101749
101750IN150206   20150206                          OR150218          019  ITEM_NUMBER_67                   00000061         69.99
101751                                                                    Invoice Total:                  000000061         69.99
101752
101753
101754                                                                    Branch Total:                   000000061         69.99
101755
101756
101757
101758
101759
101760
101761
101762
101763
101764
101765
101766
101767
101768
101769
101770
101771
101772
101773
101774
101775
101776
101777
101778
101779
101780
101781
101782
101783
101784
101785
101786
101787
101788
101789
101790
101791
101792
101793
101794
101795
101796
101797
101798
101799
101800
101801
101802
101803Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   65
101804Region:    SW
101805Location:            1000651
101806Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101807--------------------------------------------------------------------------------------------------------------------------------
101808
101809
101810IN150209   20150209                          OR150224          009  ITEM_NUMBER_23                   00000018         29.99
101811                                                                    Invoice Total:                  000000018         29.99
101812
101813
101814                                                                    Branch Total:                   000000018         29.99
101815
101816
101817
101818
101819
101820
101821
101822
101823
101824
101825
101826
101827
101828
101829
101830
101831
101832
101833
101834
101835
101836
101837
101838
101839
101840
101841
101842
101843
101844
101845
101846
101847
101848
101849
101850
101851
101852
101853
101854
101855
101856
101857
101858
101859
101860
101861
101862
101863Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   66
101864Region:    SW
101865Location:            1000831
101866Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101867--------------------------------------------------------------------------------------------------------------------------------
101868
101869
101870IN150201   20150201                          OR150221          046  ITEM_NUMBER_44                   00000069         49.99
101871                                                                    Invoice Total:                  000000069         49.99
101872
101873IN150220   20150220                          OR150213          005  ITEM_NUMBER_44                   00000037         49.99
101874                                                                    Invoice Total:                  000000037         49.99
101875
101876IN150222   20150222                          OR150213          058  ITEM_NUMBER_86                   00000083         89.99
101877                                                                    Invoice Total:                  000000083         89.99
101878
101879
101880                                                                    Branch Total:                   000000189        189.97
101881
101882
101883
101884
101885
101886
101887
101888
101889
101890
101891
101892
101893
101894
101895
101896
101897
101898
101899
101900
101901
101902
101903
101904
101905
101906
101907
101908
101909
101910
101911
101912
101913
101914
101915
101916
101917
101918
101919
101920
101921
101922
101923Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   67
101924Region:    SW
101925Location:            1000871
101926Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
101927--------------------------------------------------------------------------------------------------------------------------------
101928
101929
101930IN150202   20150202                          OR150216          016  ITEM_NUMBER_62                   00000083         69.99
101931                                                                    Invoice Total:                  000000083         69.99
101932
101933                                                                    Branch Total:                   000000083         69.99
101934
101935                                                                    Region Total:                   000001167       1269.78
101936
101937                                                                    Grand Total:                    000005315       5629.00
101938
101939
101940
101941
101942
101943
101944
101945
101946
101947
101948
101949
101950
101951
101952
101953
101954
101955
101956
101957
101958
101959
101960
101961
101962
101963
101964
101965
101966
101967
101968
101969
101970
101971
101972
101973
101974
101975
101976
101977
101978
101979
101980
101981
101982
101983_ATEOF
101984
101985
101986{ set +x
101987$as_echo "$at_srcdir/run_reportwriter.at:8943: diff reference report.txt"
101988at_fn_check_prepare_trace "run_reportwriter.at:8943"
101989( $at_check_trace; diff reference report.txt
101990) >>"$at_stdout" 2>>"$at_stderr" 5>&-
101991at_status=$? at_failed=false
101992$at_check_filter
101993at_fn_diff_devnull "$at_stderr" || at_failed=:
101994at_fn_diff_devnull "$at_stdout" || at_failed=:
101995at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:8943"
101996$at_failed && at_fn_log_failure  \
101997"./report.txt"
101998$at_traceon; }
101999
102000
102001  set +x
102002  $at_times_p && times >"$at_times_file"
102003) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102004read at_status <"$at_status_file"
102005#AT_STOP_830
102006#AT_START_831
102007at_fn_group_banner 831 'run_reportwriter.at:8948' \
102008  "Report PRESENT AFTER" "                           " 4
102009at_xfail=no
102010(
102011  $as_echo "831. $at_setup_line: testing $at_desc ..."
102012  $at_traceon
102013
102014
102015
102016cat >inp_data <<'_ATEOF'
102017SAINATH KOTGIRE          30/03/201611029473  20 00100000                          00000100
102018UDAY PRATIVADI           30/03/201604547552  20 00100000                          00000200
102019MILIND PARDESHI          30/03/201611256856  20 00100000                          00000300
102020AJIT PATIL               30/03/201610503086  20 00000500                          00000400
102021VINOD KAMBLE             30/03/201615487558  20 00100000                          00000500
102022SACHIN TENDUNLKAR        30/03/201614645425  20 00500000                          00000600
102023_ATEOF
102024
102025
102026cat >prog.cob <<'_ATEOF'
102027
102028       IDENTIFICATION DIVISION.
102029       PROGRAM-ID. prog.
102030       ENVIRONMENT DIVISION.
102031       INPUT-OUTPUT SECTION.
102032       FILE-CONTROL.
102033
102034           SELECT IN-FILE   ASSIGN TO EXTERNAL INFILE
102035                  LINE SEQUENTIAL
102036                  FILE STATUS IS WS-INPUT-STATUS.
102037
102038           SELECT OUT-FILE  ASSIGN TO EXTERNAL OREPORT
102039                  LINE SEQUENTIAL
102040                  FILE STATUS IS WS-OUTPUT-STATUS.
102041
102042       DATA DIVISION.
102043
102044       FILE SECTION.
102045
102046       FD  IN-FILE
102047           RECORDING MODE IS F
102048           BLOCK 0.
102049
102050       01  IN-REC.
102051           05 IN-EMP-NAME                  PIC X(25).
102052           05 IN-REPORT-PERIOD             PIC X(10).
102053           05 IN-EMP-USERID                PIC X(10).
102054           05 IN-BILL-DAYS                 PIC X(3).
102055           05 IN-SALARY                    PIC 9(8).
102056           05 FILLER                       PIC X(34).
102057
102058       FD  OUT-FILE
102059           RECORDING MODE IS F
102060           REPORT IS REPORT1.
102061
102062       01  REP-REC                         PIC X(100).
102063
102064       WORKING-STORAGE SECTION.
102065       01  WS-FILE-FLAGS.
102066           05 WS-INPUT-STATUS              PIC XX.
102067              88  WS-INPUT-OK                        VALUE '00'.
102068              88  WS-INPUT-EOF                       VALUE '10'.
102069           05 WS-OUTPUT-STATUS             PIC XX.
102070              88  WS-OUTPUT-OK                       VALUE '00'.
102071      *-----------------------------------------------------------*
102072      * MISCELLANOUS FIELDS                                       *
102073      *-----------------------------------------------------------*
102074       01  WS-MISC.
102075           05 WS-EMP-NAME                  PIC X(25).
102076           05 WS-REPORT-PERIOD             PIC X(10).
102077           05 WS-EMP-USERID                PIC X(10).
102078           05 WS-BILL-DAYS                 PIC X(3).
102079           05 WS-SALARY                    PIC 9(8).
102080
102081       01  WS-MISC-DATE.
102082           05 WS-DATE                      PIC 9(8) VALUE 20160422.
102083           05 WS-TIME                      PIC 9(8) VALUE 10550000.
102084           05 FILLER REDEFINES WS-TIME.
102085              10 WS-HH                     PIC 99.
102086              10 WS-MI                     PIC 99.
102087              10 WS-SS                     PIC 99.
102088              10 WS-HU                     PIC 99.
102089
102090       REPORT SECTION.
102091
102092       RD REPORT1
102093          PAGE LIMIT IS 65 LINES
102094          LINE LIMIT 132
102095          HEADING 1
102096          CONTROL ARE WS-SALARY.
102097
102098       01  MAIN-HEADER TYPE IS PAGE HEADING.
102099           05 LINE 1.
102100              10 COLUMN CENTER 45  PIC X(35)  VALUE
102101                 'STARK TECHNOLOGIES MONTHLY REPORT'.
102102
102103           05 LINE 2.
102104              10 COLUMN CENTER 45  PIC X(50)  VALUE ALL '-'.
102105
102106           05 LINE 3.
102107              10 COLUMN 02  PIC X(14)  VALUE 'REPORT PERIOD:'.
102108              10 COLUMN 20  PIC 9999/99/99 SOURCE WS-DATE.
102109              10 COLUMN 32  PIC 99    SOURCE WS-HH.
102110              10 COLUMN 34  PIC X     VALUE ':'.
102111              10 COLUMN 35  PIC 99    SOURCE WS-MI.
102112
102113       01  TYPE IS CONTROL HEADING
102114                FOR WS-SALARY OR PAGE.
102115           05 LINE PLUS 2 PRESENT AFTER NEW WS-SALARY.
102116              10 COLUMN 6   PIC X(9)   VALUE 'EMP NAME:'.
102117              10 COLUMN 30  PIC X(13)  VALUE 'EMP USERID:'.
102118              10 COLUMN 60  PIC X(13)  VALUE 'BILLING DAYS'.
102119              10 COLUMN 80  PIC X(15)  VALUE 'SALARY CREDITED'.
102120           05 LINE PLUS 1 PRESENT AFTER NEW WS-SALARY.
102121              10 COLUMN 2   PIC X(100)  VALUE ALL '+'.
102122
102123       01  DETAIL-1 TYPE DETAIL.
102124           05 LINE PLUS 1.
102125              10 COLUMN 6   PIC X(25)  SOURCE WS-EMP-NAME.
102126              10 COLUMN 30  PIC X(08)  SOURCE WS-EMP-USERID.
102127              10 COLUMN 60  PIC X(3)   SOURCE WS-BILL-DAYS.
102128              10 COLUMN 80  PIC Z(7)9  SOURCE WS-SALARY.
102129
102130       01  REP-FOOTER TYPE DETAIL.
102131           05 LINE PLUS 2.
102132              10 COLUMN 2   PIC X(100) VALUE ALL '*'.
102133           05 LINE PLUS 1.
102134              10 COLUMN 30  PIC X(23)  VALUE 'END OF SALARY REPORT'.
102135           05 LINE PLUS 1.
102136              10 COLUMN 2   PIC X(100) VALUE ALL '*'.
102137
102138       PROCEDURE DIVISION.
102139
102140      *    ACCEPT WS-DATE FROM DATE YYYYMMDD.
102141      *    ACCEPT WS-TIME FROM TIME.
102142
102143           INITIATE REPORT1
102144
102145      *    GENERATE MAIN-HEADER
102146
102147           PERFORM 100-OPEN-FILES
102148           PERFORM 200-MAIN-PROCESS
102149
102150           TERMINATE REPORT1
102151
102152           CLOSE IN-FILE
102153           CLOSE OUT-FILE
102154           STOP RUN.
102155
102156       100-OPEN-FILES.
102157
102158           OPEN INPUT IN-FILE
102159
102160           IF WS-INPUT-OK
102161              CONTINUE
102162           ELSE
102163              DISPLAY 'ERROR OPENING INFILE FILE.STATUS = '
102164                     WS-INPUT-STATUS
102165              STOP RUN
102166           END-IF
102167
102168           OPEN OUTPUT OUT-FILE
102169
102170           IF WS-OUTPUT-OK
102171              INITIALIZE REP-REC
102172           ELSE
102173              DISPLAY 'ERROR OPENING OREPORT FILE.STATUS = '
102174                     WS-OUTPUT-STATUS
102175              STOP RUN
102176           END-IF.
102177
102178       200-MAIN-PROCESS.
102179      *    GENERATE HEADER-1
102180
102181           PERFORM UNTIL WS-INPUT-EOF
102182               READ IN-FILE
102183               MOVE IN-REC  TO WS-MISC
102184               EVALUATE WS-INPUT-STATUS
102185                 WHEN '00'
102186                   GENERATE DETAIL-1
102187                 WHEN '10'
102188                   GENERATE REP-FOOTER
102189                 WHEN OTHER
102190                   DISPLAY ':ERROR READING INFILE FILE.STATUS = '
102191                           WS-INPUT-STATUS
102192                   STOP RUN
102193               END-EVALUATE
102194           END-PERFORM.
102195_ATEOF
102196
102197
102198{ set +x
102199$as_echo "$at_srcdir/run_reportwriter.at:9130: \$COMPILE prog.cob"
102200at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:9130"
102201( $at_check_trace; $COMPILE prog.cob
102202) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102203at_status=$? at_failed=false
102204$at_check_filter
102205at_fn_diff_devnull "$at_stderr" || at_failed=:
102206at_fn_diff_devnull "$at_stdout" || at_failed=:
102207at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:9130"
102208$at_failed && at_fn_log_failure
102209$at_traceon; }
102210
102211
102212{ set +x
102213$as_echo "$at_srcdir/run_reportwriter.at:9132: DD_INFILE=./inp_data DD_OREPORT=./report.txt \\
102214\$COBCRUN_DIRECT ./prog"
102215at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:9132"
102216( $at_check_trace; DD_INFILE=./inp_data DD_OREPORT=./report.txt \
102217$COBCRUN_DIRECT ./prog
102218) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102219at_status=$? at_failed=false
102220$at_check_filter
102221at_fn_diff_devnull "$at_stderr" || at_failed=:
102222at_fn_diff_devnull "$at_stdout" || at_failed=:
102223at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:9132"
102224$at_failed && at_fn_log_failure
102225$at_traceon; }
102226
102227
102228
102229
102230
102231cat >reference <<'_ATEOF'
102232                           STARK TECHNOLOGIES MONTHLY REPORT
102233                    --------------------------------------------------
102234 REPORT PERIOD:    2016/04/22  10:55
102235
102236     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
102237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
102238     SAINATH KOTGIRE         11029473                      20                    100000
102239     UDAY PRATIVADI          04547552                      20                    100000
102240     MILIND PARDESHI         11256856                      20                    100000
102241
102242     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
102243 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
102244     AJIT PATIL              10503086                      20                       500
102245
102246     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
102247 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
102248     VINOD KAMBLE            15487558                      20                    100000
102249
102250     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
102251 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
102252     SACHIN TENDUNLKAR       14645425                      20                    500000
102253
102254 ****************************************************************************************************
102255                             END OF SALARY REPORT
102256 ****************************************************************************************************
102257
102258
102259
102260
102261
102262
102263
102264
102265
102266
102267
102268
102269
102270
102271
102272
102273
102274
102275
102276
102277
102278
102279
102280
102281
102282
102283
102284
102285
102286
102287
102288
102289
102290
102291
102292
102293
102294
102295
102296
102297_ATEOF
102298
102299
102300{ set +x
102301$as_echo "$at_srcdir/run_reportwriter.at:9205: diff reference report.txt"
102302at_fn_check_prepare_trace "run_reportwriter.at:9205"
102303( $at_check_trace; diff reference report.txt
102304) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102305at_status=$? at_failed=false
102306$at_check_filter
102307at_fn_diff_devnull "$at_stderr" || at_failed=:
102308at_fn_diff_devnull "$at_stdout" || at_failed=:
102309at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:9205"
102310$at_failed && at_fn_log_failure  \
102311"./report.txt"
102312$at_traceon; }
102313
102314
102315  set +x
102316  $at_times_p && times >"$at_times_file"
102317) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102318read at_status <"$at_status_file"
102319#AT_STOP_831
102320#AT_START_832
102321at_fn_group_banner 832 'run_returncode.at:23' \
102322  "RETURN-CODE moving" "                             " 4
102323at_xfail=no
102324(
102325  $as_echo "832. $at_setup_line: testing $at_desc ..."
102326  $at_traceon
102327
102328
102329
102330cat >prog.cob <<'_ATEOF'
102331
102332       IDENTIFICATION   DIVISION.
102333       PROGRAM-ID.      prog.
102334       DATA             DIVISION.
102335       WORKING-STORAGE  SECTION.
102336       01 I             PIC 99 COMP.
102337       PROCEDURE        DIVISION.
102338           INITIALIZE RETURN-CODE.
102339           MOVE ZERO TO RETURN-CODE.
102340           MOVE 1 TO RETURN-CODE.
102341           MOVE RETURN-CODE TO I.
102342           IF I NOT = 1
102343              DISPLAY I NO ADVANCING
102344              END-DISPLAY
102345           END-IF.
102346           STOP RUN.
102347_ATEOF
102348
102349
102350{ set +x
102351$as_echo "$at_srcdir/run_returncode.at:44: \$COMPILE prog.cob"
102352at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:44"
102353( $at_check_trace; $COMPILE prog.cob
102354) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102355at_status=$? at_failed=false
102356$at_check_filter
102357at_fn_diff_devnull "$at_stderr" || at_failed=:
102358at_fn_diff_devnull "$at_stdout" || at_failed=:
102359at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:44"
102360$at_failed && at_fn_log_failure
102361$at_traceon; }
102362
102363{ set +x
102364$as_echo "$at_srcdir/run_returncode.at:45: \$COBCRUN_DIRECT ./prog"
102365at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:45"
102366( $at_check_trace; $COBCRUN_DIRECT ./prog
102367) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102368at_status=$? at_failed=false
102369$at_check_filter
102370at_fn_diff_devnull "$at_stderr" || at_failed=:
102371at_fn_diff_devnull "$at_stdout" || at_failed=:
102372at_fn_check_status 1 $at_status "$at_srcdir/run_returncode.at:45"
102373$at_failed && at_fn_log_failure
102374$at_traceon; }
102375
102376
102377  set +x
102378  $at_times_p && times >"$at_times_file"
102379) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102380read at_status <"$at_status_file"
102381#AT_STOP_832
102382#AT_START_833
102383at_fn_group_banner 833 'run_returncode.at:49' \
102384  "RETURN-CODE passing" "                            " 4
102385at_xfail=no
102386(
102387  $as_echo "833. $at_setup_line: testing $at_desc ..."
102388  $at_traceon
102389
102390
102391
102392cat >mod1.cob <<'_ATEOF'
102393
102394       IDENTIFICATION   DIVISION.
102395       PROGRAM-ID.      mod1.
102396       PROCEDURE        DIVISION.
102397           IF RETURN-CODE NOT = 0
102398              DISPLAY RETURN-CODE NO ADVANCING
102399              END-DISPLAY
102400           END-IF.
102401           MOVE 1 TO RETURN-CODE.
102402           IF RETURN-CODE NOT = 1
102403              DISPLAY RETURN-CODE NO ADVANCING
102404              END-DISPLAY
102405           END-IF.
102406           EXIT PROGRAM.
102407_ATEOF
102408
102409
102410cat >mod2.cob <<'_ATEOF'
102411
102412       IDENTIFICATION   DIVISION.
102413       PROGRAM-ID.      mod2.
102414       PROCEDURE        DIVISION.
102415           EXIT PROGRAM.
102416_ATEOF
102417
102418
102419cat >prog.cob <<'_ATEOF'
102420
102421       IDENTIFICATION   DIVISION.
102422       PROGRAM-ID.      prog.
102423       PROCEDURE        DIVISION.
102424           CALL "mod1"
102425           END-CALL.
102426           IF RETURN-CODE NOT = 1
102427              DISPLAY RETURN-CODE NO ADVANCING
102428              END-DISPLAY
102429           END-IF.
102430           CALL "mod2"
102431           END-CALL.
102432           IF RETURN-CODE NOT = 0
102433              DISPLAY RETURN-CODE NO ADVANCING
102434              END-DISPLAY
102435           END-IF.
102436           STOP RUN.
102437_ATEOF
102438
102439
102440{ set +x
102441$as_echo "$at_srcdir/run_returncode.at:94: \$COMPILE_MODULE mod1.cob"
102442at_fn_check_prepare_dynamic "$COMPILE_MODULE mod1.cob" "run_returncode.at:94"
102443( $at_check_trace; $COMPILE_MODULE mod1.cob
102444) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102445at_status=$? at_failed=false
102446$at_check_filter
102447at_fn_diff_devnull "$at_stderr" || at_failed=:
102448at_fn_diff_devnull "$at_stdout" || at_failed=:
102449at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:94"
102450$at_failed && at_fn_log_failure
102451$at_traceon; }
102452
102453{ set +x
102454$as_echo "$at_srcdir/run_returncode.at:95: \$COMPILE_MODULE mod2.cob"
102455at_fn_check_prepare_dynamic "$COMPILE_MODULE mod2.cob" "run_returncode.at:95"
102456( $at_check_trace; $COMPILE_MODULE mod2.cob
102457) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102458at_status=$? at_failed=false
102459$at_check_filter
102460at_fn_diff_devnull "$at_stderr" || at_failed=:
102461at_fn_diff_devnull "$at_stdout" || at_failed=:
102462at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:95"
102463$at_failed && at_fn_log_failure
102464$at_traceon; }
102465
102466{ set +x
102467$as_echo "$at_srcdir/run_returncode.at:96: \$COMPILE prog.cob"
102468at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:96"
102469( $at_check_trace; $COMPILE prog.cob
102470) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102471at_status=$? at_failed=false
102472$at_check_filter
102473at_fn_diff_devnull "$at_stderr" || at_failed=:
102474at_fn_diff_devnull "$at_stdout" || at_failed=:
102475at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:96"
102476$at_failed && at_fn_log_failure
102477$at_traceon; }
102478
102479{ set +x
102480$as_echo "$at_srcdir/run_returncode.at:97: \$COBCRUN_DIRECT ./prog"
102481at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:97"
102482( $at_check_trace; $COBCRUN_DIRECT ./prog
102483) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102484at_status=$? at_failed=false
102485$at_check_filter
102486at_fn_diff_devnull "$at_stderr" || at_failed=:
102487at_fn_diff_devnull "$at_stdout" || at_failed=:
102488at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:97"
102489$at_failed && at_fn_log_failure
102490$at_traceon; }
102491
102492
102493  set +x
102494  $at_times_p && times >"$at_times_file"
102495) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102496read at_status <"$at_status_file"
102497#AT_STOP_833
102498#AT_START_834
102499at_fn_group_banner 834 'run_returncode.at:101' \
102500  "RETURN-CODE nested" "                             " 4
102501at_xfail=no
102502(
102503  $as_echo "834. $at_setup_line: testing $at_desc ..."
102504  $at_traceon
102505
102506
102507
102508cat >prog.cob <<'_ATEOF'
102509
102510       IDENTIFICATION   DIVISION.
102511       PROGRAM-ID.      prog.
102512       PROCEDURE        DIVISION.
102513           MOVE 1 TO RETURN-CODE.
102514           IF RETURN-CODE NOT = 1
102515              DISPLAY RETURN-CODE NO ADVANCING
102516              END-DISPLAY
102517           END-IF.
102518           CALL "mod1"
102519           END-CALL.
102520           IF RETURN-CODE NOT = 2
102521              DISPLAY RETURN-CODE NO ADVANCING
102522              END-DISPLAY
102523           END-IF.
102524           MOVE ZERO TO RETURN-CODE.
102525           STOP RUN.
102526       PROGRAM-ID.      mod1.
102527       PROCEDURE        DIVISION.
102528           IF RETURN-CODE NOT = 1
102529              DISPLAY RETURN-CODE NO ADVANCING
102530              END-DISPLAY
102531           END-IF.
102532           MOVE 2 TO RETURN-CODE.
102533           EXIT PROGRAM.
102534       END PROGRAM mod1.
102535       END PROGRAM prog.
102536_ATEOF
102537
102538
102539{ set +x
102540$as_echo "$at_srcdir/run_returncode.at:133: \$COMPILE prog.cob"
102541at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:133"
102542( $at_check_trace; $COMPILE prog.cob
102543) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102544at_status=$? at_failed=false
102545$at_check_filter
102546at_fn_diff_devnull "$at_stderr" || at_failed=:
102547at_fn_diff_devnull "$at_stdout" || at_failed=:
102548at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:133"
102549$at_failed && at_fn_log_failure
102550$at_traceon; }
102551
102552{ set +x
102553$as_echo "$at_srcdir/run_returncode.at:134: \$COBCRUN_DIRECT ./prog"
102554at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:134"
102555( $at_check_trace; $COBCRUN_DIRECT ./prog
102556) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102557at_status=$? at_failed=false
102558$at_check_filter
102559at_fn_diff_devnull "$at_stderr" || at_failed=:
102560at_fn_diff_devnull "$at_stdout" || at_failed=:
102561at_fn_check_status 0 $at_status "$at_srcdir/run_returncode.at:134"
102562$at_failed && at_fn_log_failure
102563$at_traceon; }
102564
102565
102566  set +x
102567  $at_times_p && times >"$at_times_file"
102568) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102569read at_status <"$at_status_file"
102570#AT_STOP_834
102571#AT_START_835
102572at_fn_group_banner 835 'run_functions.at:24' \
102573  "FUNCTION ABS" "                                   " 4
102574at_xfail=no
102575(
102576  $as_echo "835. $at_setup_line: testing $at_desc ..."
102577  $at_traceon
102578
102579
102580
102581cat >prog.cob <<'_ATEOF'
102582
102583       IDENTIFICATION   DIVISION.
102584       PROGRAM-ID.      prog.
102585       DATA             DIVISION.
102586       WORKING-STORAGE  SECTION.
102587       01  X   PIC   S9(4)V9(4) VALUE -1.2345.
102588       PROCEDURE        DIVISION.
102589           DISPLAY FUNCTION ABS ( X ) NO ADVANCING
102590           END-DISPLAY.
102591           STOP RUN.
102592_ATEOF
102593
102594
102595{ set +x
102596$as_echo "$at_srcdir/run_functions.at:39: \$COMPILE prog.cob"
102597at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:39"
102598( $at_check_trace; $COMPILE prog.cob
102599) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102600at_status=$? at_failed=false
102601$at_check_filter
102602at_fn_diff_devnull "$at_stderr" || at_failed=:
102603at_fn_diff_devnull "$at_stdout" || at_failed=:
102604at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:39"
102605$at_failed && at_fn_log_failure
102606$at_traceon; }
102607
102608{ set +x
102609$as_echo "$at_srcdir/run_functions.at:40: \$COBCRUN_DIRECT ./prog"
102610at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:40"
102611( $at_check_trace; $COBCRUN_DIRECT ./prog
102612) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102613at_status=$? at_failed=false
102614$at_check_filter
102615at_fn_diff_devnull "$at_stderr" || at_failed=:
102616echo >>"$at_stdout"; $as_echo "+0001.2345" | \
102617  $at_diff - "$at_stdout" || at_failed=:
102618at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:40"
102619$at_failed && at_fn_log_failure
102620$at_traceon; }
102621
102622
102623  set +x
102624  $at_times_p && times >"$at_times_file"
102625) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102626read at_status <"$at_status_file"
102627#AT_STOP_835
102628#AT_START_836
102629at_fn_group_banner 836 'run_functions.at:46' \
102630  "FUNCTION ACOS" "                                  " 4
102631at_xfail=no
102632(
102633  $as_echo "836. $at_setup_line: testing $at_desc ..."
102634  $at_traceon
102635
102636
102637
102638cat >prog.cob <<'_ATEOF'
102639
102640       IDENTIFICATION   DIVISION.
102641       PROGRAM-ID.      prog.
102642       DATA             DIVISION.
102643       WORKING-STORAGE  SECTION.
102644       01  Z   PIC   S9V9(35).
102645       PROCEDURE        DIVISION.
102646           MOVE FUNCTION ACOS ( -0.2345 ) TO Z.
102647           IF Z NOT = 1.80750052110824343510150043852321026
102648              DISPLAY Z
102649              END-DISPLAY
102650           END-IF.
102651           STOP RUN.
102652_ATEOF
102653
102654
102655{ set +x
102656$as_echo "$at_srcdir/run_functions.at:64: \$COMPILE prog.cob"
102657at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:64"
102658( $at_check_trace; $COMPILE prog.cob
102659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102660at_status=$? at_failed=false
102661$at_check_filter
102662at_fn_diff_devnull "$at_stderr" || at_failed=:
102663at_fn_diff_devnull "$at_stdout" || at_failed=:
102664at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:64"
102665$at_failed && at_fn_log_failure
102666$at_traceon; }
102667
102668{ set +x
102669$as_echo "$at_srcdir/run_functions.at:65: \$COBCRUN_DIRECT ./prog"
102670at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:65"
102671( $at_check_trace; $COBCRUN_DIRECT ./prog
102672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102673at_status=$? at_failed=false
102674$at_check_filter
102675at_fn_diff_devnull "$at_stderr" || at_failed=:
102676at_fn_diff_devnull "$at_stdout" || at_failed=:
102677at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:65"
102678$at_failed && at_fn_log_failure
102679$at_traceon; }
102680
102681
102682  set +x
102683  $at_times_p && times >"$at_times_file"
102684) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102685read at_status <"$at_status_file"
102686#AT_STOP_836
102687#AT_START_837
102688at_fn_group_banner 837 'run_functions.at:70' \
102689  "FUNCTION ANNUITY" "                               " 4
102690at_xfail=no
102691(
102692  $as_echo "837. $at_setup_line: testing $at_desc ..."
102693  $at_traceon
102694
102695
102696
102697cat >prog.cob <<'_ATEOF'
102698
102699       IDENTIFICATION   DIVISION.
102700       PROGRAM-ID.      prog.
102701       DATA             DIVISION.
102702       WORKING-STORAGE  SECTION.
102703       01  Z   PIC   S9V9(35).
102704       PROCEDURE        DIVISION.
102705           MOVE FUNCTION ANNUITY ( 3, 5 ) TO Z.
102706           IF Z NOT = 3.00293255131964809384164222873900293
102707              DISPLAY Z
102708              END-DISPLAY
102709           END-IF.
102710           STOP RUN.
102711_ATEOF
102712
102713
102714{ set +x
102715$as_echo "$at_srcdir/run_functions.at:88: \$COMPILE prog.cob"
102716at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:88"
102717( $at_check_trace; $COMPILE prog.cob
102718) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102719at_status=$? at_failed=false
102720$at_check_filter
102721at_fn_diff_devnull "$at_stderr" || at_failed=:
102722at_fn_diff_devnull "$at_stdout" || at_failed=:
102723at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:88"
102724$at_failed && at_fn_log_failure
102725$at_traceon; }
102726
102727{ set +x
102728$as_echo "$at_srcdir/run_functions.at:89: \$COBCRUN_DIRECT ./prog"
102729at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:89"
102730( $at_check_trace; $COBCRUN_DIRECT ./prog
102731) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102732at_status=$? at_failed=false
102733$at_check_filter
102734at_fn_diff_devnull "$at_stderr" || at_failed=:
102735at_fn_diff_devnull "$at_stdout" || at_failed=:
102736at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:89"
102737$at_failed && at_fn_log_failure
102738$at_traceon; }
102739
102740
102741  set +x
102742  $at_times_p && times >"$at_times_file"
102743) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102744read at_status <"$at_status_file"
102745#AT_STOP_837
102746#AT_START_838
102747at_fn_group_banner 838 'run_functions.at:94' \
102748  "FUNCTION ASIN" "                                  " 4
102749at_xfail=no
102750(
102751  $as_echo "838. $at_setup_line: testing $at_desc ..."
102752  $at_traceon
102753
102754
102755
102756cat >prog.cob <<'_ATEOF'
102757
102758       IDENTIFICATION   DIVISION.
102759       PROGRAM-ID.      prog.
102760       DATA             DIVISION.
102761       WORKING-STORAGE  SECTION.
102762       01  Y   PIC   S9V9(35).
102763       PROCEDURE        DIVISION.
102764           MOVE FUNCTION ASIN ( -0.2345 ) TO Y.
102765           IF Y NOT = -0.23670419431334681587017874688345882
102766              DISPLAY Y
102767              END-DISPLAY
102768           END-IF.
102769           STOP RUN.
102770_ATEOF
102771
102772
102773{ set +x
102774$as_echo "$at_srcdir/run_functions.at:112: \$COMPILE prog.cob"
102775at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:112"
102776( $at_check_trace; $COMPILE prog.cob
102777) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102778at_status=$? at_failed=false
102779$at_check_filter
102780at_fn_diff_devnull "$at_stderr" || at_failed=:
102781at_fn_diff_devnull "$at_stdout" || at_failed=:
102782at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:112"
102783$at_failed && at_fn_log_failure
102784$at_traceon; }
102785
102786{ set +x
102787$as_echo "$at_srcdir/run_functions.at:113: \$COBCRUN_DIRECT ./prog"
102788at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:113"
102789( $at_check_trace; $COBCRUN_DIRECT ./prog
102790) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102791at_status=$? at_failed=false
102792$at_check_filter
102793at_fn_diff_devnull "$at_stderr" || at_failed=:
102794at_fn_diff_devnull "$at_stdout" || at_failed=:
102795at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:113"
102796$at_failed && at_fn_log_failure
102797$at_traceon; }
102798
102799
102800  set +x
102801  $at_times_p && times >"$at_times_file"
102802) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102803read at_status <"$at_status_file"
102804#AT_STOP_838
102805#AT_START_839
102806at_fn_group_banner 839 'run_functions.at:118' \
102807  "FUNCTION ATAN" "                                  " 4
102808at_xfail=no
102809(
102810  $as_echo "839. $at_setup_line: testing $at_desc ..."
102811  $at_traceon
102812
102813
102814
102815cat >prog.cob <<'_ATEOF'
102816
102817       IDENTIFICATION   DIVISION.
102818       PROGRAM-ID.      prog.
102819       DATA             DIVISION.
102820       WORKING-STORAGE  SECTION.
102821       01  Y   PIC   S9V9(35).
102822       PROCEDURE        DIVISION.
102823           MOVE FUNCTION ATAN ( 1 ) TO Y.
102824           IF Y NOT = 0.78539816339744830961566084581987572
102825              DISPLAY Y
102826              END-DISPLAY
102827           END-IF.
102828           STOP RUN.
102829_ATEOF
102830
102831
102832{ set +x
102833$as_echo "$at_srcdir/run_functions.at:136: \$COMPILE prog.cob"
102834at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:136"
102835( $at_check_trace; $COMPILE prog.cob
102836) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102837at_status=$? at_failed=false
102838$at_check_filter
102839at_fn_diff_devnull "$at_stderr" || at_failed=:
102840at_fn_diff_devnull "$at_stdout" || at_failed=:
102841at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:136"
102842$at_failed && at_fn_log_failure
102843$at_traceon; }
102844
102845{ set +x
102846$as_echo "$at_srcdir/run_functions.at:137: \$COBCRUN_DIRECT ./prog"
102847at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:137"
102848( $at_check_trace; $COBCRUN_DIRECT ./prog
102849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102850at_status=$? at_failed=false
102851$at_check_filter
102852at_fn_diff_devnull "$at_stderr" || at_failed=:
102853at_fn_diff_devnull "$at_stdout" || at_failed=:
102854at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:137"
102855$at_failed && at_fn_log_failure
102856$at_traceon; }
102857
102858
102859  set +x
102860  $at_times_p && times >"$at_times_file"
102861) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102862read at_status <"$at_status_file"
102863#AT_STOP_839
102864#AT_START_840
102865at_fn_group_banner 840 'run_functions.at:142' \
102866  "FUNCTION BYTE-LENGTH" "                           " 4
102867at_xfail=no
102868(
102869  $as_echo "840. $at_setup_line: testing $at_desc ..."
102870  $at_traceon
102871
102872
102873
102874cat >prog.cob <<'_ATEOF'
102875
102876       IDENTIFICATION   DIVISION.
102877       PROGRAM-ID.      prog.
102878       DATA             DIVISION.
102879       WORKING-STORAGE  SECTION.
102880       01  X   PIC      X(4).
102881       01  Z   PIC      N(4).
102882       01  TEST-FLD     PIC S9(04)V9(08).
102883       PROCEDURE        DIVISION.
102884           MOVE FUNCTION BYTE-LENGTH ( X )
102885             TO TEST-FLD.
102886           IF TEST-FLD NOT = 4
102887              DISPLAY 'BYTE-LENGTH X(4) wrong: ' TEST-FLD
102888              END-DISPLAY
102889           END-IF
102890           MOVE FUNCTION BYTE-LENGTH ( Z )
102891             TO TEST-FLD
102892           IF TEST-FLD NOT = 8
102893              DISPLAY 'BYTE-LENGTH N(4) wrong: ' TEST-FLD
102894              END-DISPLAY
102895           END-IF
102896
102897           MOVE FUNCTION BYTE-LENGTH ( '00128' )
102898             TO TEST-FLD
102899           IF TEST-FLD NOT = 5
102900              DISPLAY 'BYTE-LENGTH "00128" wrong: ' TEST-FLD
102901              END-DISPLAY
102902           END-IF
102903      *    note: we currently do not support items of category boolean...
102904      *>   MOVE FUNCTION BYTE-LENGTH ( b'100' )
102905      *>     TO TEST-FLD
102906      *>   IF TEST-FLD NOT = 3
102907      *>      DISPLAY 'BYTE-LENGTH b"100" wrong: ' TEST-FLD
102908      *>      END-DISPLAY
102909      *>   END-IF
102910           MOVE FUNCTION BYTE-LENGTH ( x'a0' )
102911             TO TEST-FLD
102912           IF TEST-FLD NOT = 1
102913              DISPLAY 'BYTE-LENGTH x"a0" wrong: ' TEST-FLD
102914              END-DISPLAY
102915           END-IF
102916           MOVE FUNCTION BYTE-LENGTH ( z'a0' )
102917             TO TEST-FLD
102918           IF TEST-FLD NOT = 3
102919              DISPLAY 'BYTE-LENGTH z"a0" wrong: ' TEST-FLD
102920              END-DISPLAY
102921           END-IF
102922      *    we currently generate national constants as
102923      *    alphanumeric constants...
102924      *    MOVE FUNCTION BYTE-LENGTH ( n'a0' )
102925      *      TO TEST-FLD
102926      *    IF TEST-FLD NOT = 4
102927      *       DISPLAY 'BYTE-LENGTH n"a0" wrong: ' TEST-FLD
102928      *       END-DISPLAY
102929      *    END-IF
102930
102931           STOP RUN.
102932_ATEOF
102933
102934
102935{ set +x
102936$as_echo "$at_srcdir/run_functions.at:204: \$COMPILE prog.cob"
102937at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:204"
102938( $at_check_trace; $COMPILE prog.cob
102939) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102940at_status=$? at_failed=false
102941$at_check_filter
102942echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
102943" | \
102944  $at_diff - "$at_stderr" || at_failed=:
102945at_fn_diff_devnull "$at_stdout" || at_failed=:
102946at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:204"
102947$at_failed && at_fn_log_failure
102948$at_traceon; }
102949
102950{ set +x
102951$as_echo "$at_srcdir/run_functions.at:207: \$COBCRUN_DIRECT ./prog"
102952at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:207"
102953( $at_check_trace; $COBCRUN_DIRECT ./prog
102954) >>"$at_stdout" 2>>"$at_stderr" 5>&-
102955at_status=$? at_failed=false
102956$at_check_filter
102957at_fn_diff_devnull "$at_stderr" || at_failed=:
102958at_fn_diff_devnull "$at_stdout" || at_failed=:
102959at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:207"
102960$at_failed && at_fn_log_failure
102961$at_traceon; }
102962
102963
102964  set +x
102965  $at_times_p && times >"$at_times_file"
102966) 5>&1 2>&1 7>&- | eval $at_tee_pipe
102967read at_status <"$at_status_file"
102968#AT_STOP_840
102969#AT_START_841
102970at_fn_group_banner 841 'run_functions.at:212' \
102971  "FUNCTION CHAR" "                                  " 4
102972at_xfail=no
102973(
102974  $as_echo "841. $at_setup_line: testing $at_desc ..."
102975  $at_traceon
102976
102977
102978
102979cat >prog.cob <<'_ATEOF'
102980
102981       IDENTIFICATION   DIVISION.
102982       PROGRAM-ID.      prog.
102983       DATA             DIVISION.
102984       WORKING-STORAGE  SECTION.
102985       01  X            PIC   S9(4)V9(4) VALUE 108.
102986       01  TEST-FLD.
102987           05  TEST-DATA  PIC X(01).
102988               88  VALID-DATA   VALUE 'k'.
102989           05  TEST-UNSET PIC X VALUE '_'.
102990               88  VALID-UNSET  VALUE '_'.
102991       PROCEDURE        DIVISION.
102992           STRING FUNCTION CHAR ( X )
102993                  DELIMITED BY SIZE
102994                  INTO TEST-FLD
102995           END-STRING.
102996           EVALUATE TRUE
102997              WHEN NOT VALID-UNSET
102998                 DISPLAY "FUNCTION result too long"
102999                 END-DISPLAY
103000              WHEN VALID-DATA
103001                 CONTINUE
103002              WHEN OTHER
103003                 DISPLAY TEST-DATA
103004                 END-DISPLAY
103005           END-EVALUATE.
103006           STOP RUN.
103007_ATEOF
103008
103009
103010{ set +x
103011$as_echo "$at_srcdir/run_functions.at:244: \$COMPILE prog.cob"
103012at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:244"
103013( $at_check_trace; $COMPILE prog.cob
103014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103015at_status=$? at_failed=false
103016$at_check_filter
103017at_fn_diff_devnull "$at_stderr" || at_failed=:
103018at_fn_diff_devnull "$at_stdout" || at_failed=:
103019at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:244"
103020$at_failed && at_fn_log_failure
103021$at_traceon; }
103022
103023{ set +x
103024$as_echo "$at_srcdir/run_functions.at:245: \$COBCRUN_DIRECT ./prog"
103025at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:245"
103026( $at_check_trace; $COBCRUN_DIRECT ./prog
103027) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103028at_status=$? at_failed=false
103029$at_check_filter
103030at_fn_diff_devnull "$at_stderr" || at_failed=:
103031at_fn_diff_devnull "$at_stdout" || at_failed=:
103032at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:245"
103033$at_failed && at_fn_log_failure
103034$at_traceon; }
103035
103036
103037  set +x
103038  $at_times_p && times >"$at_times_file"
103039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103040read at_status <"$at_status_file"
103041#AT_STOP_841
103042#AT_START_842
103043at_fn_group_banner 842 'run_functions.at:250' \
103044  "FUNCTION COMBINED-DATETIME" "                     " 4
103045at_xfail=no
103046(
103047  $as_echo "842. $at_setup_line: testing $at_desc ..."
103048  $at_traceon
103049
103050
103051
103052cat >prog.cob <<'_ATEOF'
103053
103054       IDENTIFICATION   DIVISION.
103055       PROGRAM-ID.      prog.
103056       DATA             DIVISION.
103057       WORKING-STORAGE  SECTION.
103058       01  TEST-FLD     PIC S9(04)V9(08).
103059       PROCEDURE        DIVISION.
103060           MOVE FUNCTION COMBINED-DATETIME ( 987, 345.6 )
103061             TO TEST-FLD.
103062           IF TEST-FLD NOT = 987.003456
103063              DISPLAY TEST-FLD
103064              END-DISPLAY
103065           END-IF.
103066           STOP RUN.
103067_ATEOF
103068
103069
103070{ set +x
103071$as_echo "$at_srcdir/run_functions.at:269: \$COMPILE prog.cob"
103072at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:269"
103073( $at_check_trace; $COMPILE prog.cob
103074) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103075at_status=$? at_failed=false
103076$at_check_filter
103077at_fn_diff_devnull "$at_stderr" || at_failed=:
103078at_fn_diff_devnull "$at_stdout" || at_failed=:
103079at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:269"
103080$at_failed && at_fn_log_failure
103081$at_traceon; }
103082
103083{ set +x
103084$as_echo "$at_srcdir/run_functions.at:270: \$COBCRUN_DIRECT ./prog"
103085at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:270"
103086( $at_check_trace; $COBCRUN_DIRECT ./prog
103087) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103088at_status=$? at_failed=false
103089$at_check_filter
103090at_fn_diff_devnull "$at_stderr" || at_failed=:
103091at_fn_diff_devnull "$at_stdout" || at_failed=:
103092at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:270"
103093$at_failed && at_fn_log_failure
103094$at_traceon; }
103095
103096
103097  set +x
103098  $at_times_p && times >"$at_times_file"
103099) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103100read at_status <"$at_status_file"
103101#AT_STOP_842
103102#AT_START_843
103103at_fn_group_banner 843 'run_functions.at:275' \
103104  "FUNCTION CONCAT / CONCATENATE" "                  " 4
103105at_xfail=no
103106(
103107  $as_echo "843. $at_setup_line: testing $at_desc ..."
103108  $at_traceon
103109
103110
103111
103112# note: CONCAT was added in COBOL 202x with GnuCOBOL's CONCATENATE
103113#       as blueprint
103114cat >prog.cob <<'_ATEOF'
103115
103116       IDENTIFICATION   DIVISION.
103117       PROGRAM-ID.      prog.
103118       DATA             DIVISION.
103119       WORKING-STORAGE  SECTION.
103120       01  Y            PIC   X(4).
103121       01  TEST-FLD.
103122           05  TEST-DATA  PIC X(14).
103123               88  VALID-DATA   VALUE 'defxabczz55666'.
103124           05  TEST-UNSET PIC X VALUE '_'.
103125               88  VALID-UNSET  VALUE '_'.
103126       PROCEDURE        DIVISION.
103127           MOVE "defx" TO Y.
103128           STRING FUNCTION CONCATENATE ( Y "abc" "zz" "55" "666" )
103129                  DELIMITED BY SIZE
103130                  INTO TEST-FLD
103131           END-STRING.
103132           EVALUATE TRUE
103133              WHEN NOT VALID-UNSET
103134                 DISPLAY "FUNCTION result too long"
103135                 END-DISPLAY
103136              WHEN TEST-DATA
103137                <> FUNCTION CONCAT ( Y "abc" "zz" "55" "666" )
103138                 DISPLAY "CONCAT issue, '" TEST-DATA
103139                     "' vs. '"
103140                     FUNCTION CONCAT ( Y "abc" "zz" "55" "666" ) "'"
103141                 END-DISPLAY
103142              WHEN VALID-DATA
103143                 CONTINUE
103144              WHEN OTHER
103145                 DISPLAY TEST-DATA
103146                 END-DISPLAY
103147           END-EVALUATE.
103148           STOP RUN.
103149_ATEOF
103150
103151
103152{ set +x
103153$as_echo "$at_srcdir/run_functions.at:316: \$COMPILE prog.cob"
103154at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:316"
103155( $at_check_trace; $COMPILE prog.cob
103156) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103157at_status=$? at_failed=false
103158$at_check_filter
103159at_fn_diff_devnull "$at_stderr" || at_failed=:
103160at_fn_diff_devnull "$at_stdout" || at_failed=:
103161at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:316"
103162$at_failed && at_fn_log_failure
103163$at_traceon; }
103164
103165{ set +x
103166$as_echo "$at_srcdir/run_functions.at:317: \$COBCRUN_DIRECT ./prog"
103167at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:317"
103168( $at_check_trace; $COBCRUN_DIRECT ./prog
103169) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103170at_status=$? at_failed=false
103171$at_check_filter
103172at_fn_diff_devnull "$at_stderr" || at_failed=:
103173at_fn_diff_devnull "$at_stdout" || at_failed=:
103174at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:317"
103175$at_failed && at_fn_log_failure
103176$at_traceon; }
103177
103178
103179  set +x
103180  $at_times_p && times >"$at_times_file"
103181) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103182read at_status <"$at_status_file"
103183#AT_STOP_843
103184#AT_START_844
103185at_fn_group_banner 844 'run_functions.at:322' \
103186  "FUNCTION CONCATENATE with reference modding" "    " 4
103187at_xfail=no
103188(
103189  $as_echo "844. $at_setup_line: testing $at_desc ..."
103190  $at_traceon
103191
103192
103193
103194cat >prog.cob <<'_ATEOF'
103195
103196       IDENTIFICATION   DIVISION.
103197       PROGRAM-ID.      prog.
103198       DATA             DIVISION.
103199       WORKING-STORAGE  SECTION.
103200       01  Y            PIC X(4).
103201       01  TEST-FLD     PIC X(9) VALUE SPACES.
103202       PROCEDURE        DIVISION.
103203           MOVE 'defx' TO Y.
103204           MOVE FUNCTION CONCATENATE
103205                ( Y "abc" "zz" "55" "666" ) (2 : 9)
103206             TO TEST-FLD.
103207           IF TEST-FLD NOT = 'efxabczz5'
103208              DISPLAY TEST-FLD
103209              END-DISPLAY
103210           END-IF.
103211           STOP RUN.
103212_ATEOF
103213
103214
103215{ set +x
103216$as_echo "$at_srcdir/run_functions.at:344: \$COMPILE prog.cob"
103217at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:344"
103218( $at_check_trace; $COMPILE prog.cob
103219) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103220at_status=$? at_failed=false
103221$at_check_filter
103222at_fn_diff_devnull "$at_stderr" || at_failed=:
103223at_fn_diff_devnull "$at_stdout" || at_failed=:
103224at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:344"
103225$at_failed && at_fn_log_failure
103226$at_traceon; }
103227
103228{ set +x
103229$as_echo "$at_srcdir/run_functions.at:345: \$COBCRUN_DIRECT ./prog"
103230at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:345"
103231( $at_check_trace; $COBCRUN_DIRECT ./prog
103232) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103233at_status=$? at_failed=false
103234$at_check_filter
103235at_fn_diff_devnull "$at_stderr" || at_failed=:
103236at_fn_diff_devnull "$at_stdout" || at_failed=:
103237at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:345"
103238$at_failed && at_fn_log_failure
103239$at_traceon; }
103240
103241
103242  set +x
103243  $at_times_p && times >"$at_times_file"
103244) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103245read at_status <"$at_status_file"
103246#AT_STOP_844
103247#AT_START_845
103248at_fn_group_banner 845 'run_functions.at:350' \
103249  "FUNCTION CONTENT-LENGTH" "                        " 4
103250at_xfail=no
103251(
103252  $as_echo "845. $at_setup_line: testing $at_desc ..."
103253  $at_traceon
103254
103255
103256
103257cat >prog.cob <<'_ATEOF'
103258
103259       IDENTIFICATION   DIVISION.
103260       PROGRAM-ID.      prog.
103261       DATA             DIVISION.
103262       WORKING-STORAGE  SECTION.
103263       01  P            USAGE    POINTER.
103264       01  X            PIC      X(4) VALUE Z"ABC".
103265       01  TEST-FLD     USAGE    BINARY-LONG.
103266       PROCEDURE        DIVISION.
103267           MOVE FUNCTION CONTENT-LENGTH ( P )
103268             TO TEST-FLD.
103269           IF TEST-FLD NOT = 0
103270              DISPLAY 'CONTENT-LENGTH NULL wrong: ' TEST-FLD
103271              END-DISPLAY
103272           END-IF
103273           SET P TO ADDRESS OF X
103274           MOVE FUNCTION CONTENT-LENGTH ( P )
103275             TO TEST-FLD
103276           IF TEST-FLD NOT = 3
103277              DISPLAY 'CONTENT-LENGTH z"abc" wrong: ' TEST-FLD
103278              END-DISPLAY
103279           END-IF
103280           STOP RUN.
103281_ATEOF
103282
103283
103284{ set +x
103285$as_echo "$at_srcdir/run_functions.at:378: \$COMPILE prog.cob"
103286at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:378"
103287( $at_check_trace; $COMPILE prog.cob
103288) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103289at_status=$? at_failed=false
103290$at_check_filter
103291at_fn_diff_devnull "$at_stderr" || at_failed=:
103292at_fn_diff_devnull "$at_stdout" || at_failed=:
103293at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:378"
103294$at_failed && at_fn_log_failure
103295$at_traceon; }
103296
103297{ set +x
103298$as_echo "$at_srcdir/run_functions.at:379: \$COBCRUN_DIRECT ./prog"
103299at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:379"
103300( $at_check_trace; $COBCRUN_DIRECT ./prog
103301) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103302at_status=$? at_failed=false
103303$at_check_filter
103304at_fn_diff_devnull "$at_stderr" || at_failed=:
103305at_fn_diff_devnull "$at_stdout" || at_failed=:
103306at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:379"
103307$at_failed && at_fn_log_failure
103308$at_traceon; }
103309
103310
103311  set +x
103312  $at_times_p && times >"$at_times_file"
103313) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103314read at_status <"$at_status_file"
103315#AT_STOP_845
103316#AT_START_846
103317at_fn_group_banner 846 'run_functions.at:384' \
103318  "FUNCTION CONTENT-OF" "                            " 4
103319at_xfail=no
103320(
103321  $as_echo "846. $at_setup_line: testing $at_desc ..."
103322  $at_traceon
103323
103324
103325
103326cat >prog.cob <<'_ATEOF'
103327
103328       IDENTIFICATION   DIVISION.
103329       PROGRAM-ID.      prog.
103330       DATA             DIVISION.
103331       WORKING-STORAGE  SECTION.
103332       01  P   USAGE    POINTER.
103333       01  X   PIC      X(4) VALUE Z"ABC".
103334       01  B   PIC      X(10) BASED.
103335       PROCEDURE        DIVISION.
103336           SET P TO ADDRESS OF X
103337           IF FUNCTION CONTENT-OF ( P ) NOT EQUAL 'ABC' THEN
103338              DISPLAY 'CONTENT-OF(ptr) wrong' END-DISPLAY
103339           END-IF
103340           IF FUNCTION CONTENT-OF ( P, 2 ) NOT EQUAL 'AB' THEN
103341              DISPLAY 'CONTENT-OF(ptr, len) wrong' END-DISPLAY
103342           END-IF
103343           IF FUNCTION EXCEPTION-STATUS NOT = SPACES THEN
103344              DISPLAY 'unexpected exception (1): '
103345                       FUNCTION EXCEPTION-STATUS
103346              END-DISPLAY
103347           END-IF
103348           SET  P      TO NULL
103349           MOVE 'PPPP' TO X
103350           STRING FUNCTION CONTENT-OF ( P )
103351                  DELIMITED BY SIZE
103352                  INTO X
103353           END-STRING
103354      *>   Note: result *should* depend on dialect option zero-length literals
103355           IF X NOT EQUAL 'PPPP' THEN
103356              DISPLAY 'CONTENT-OF empty POINTER wrong: "' X "'"
103357              END-DISPLAY
103358           END-IF
103359           IF FUNCTION EXCEPTION-STATUS NOT = "EC-DATA-PTR-NULL" THEN
103360              DISPLAY 'missing exception (1)'
103361              END-DISPLAY
103362           END-IF
103363           ALLOCATE B INITIALIZED
103364           SET  P      TO ADDRESS OF B
103365           IF FUNCTION CONTENT-OF ( P, 1 ) NOT EQUAL SPACES THEN
103366              DISPLAY 'CONTENT-OF allocated BASED item wrong'
103367              END-DISPLAY
103368           END-IF
103369           IF FUNCTION EXCEPTION-STATUS NOT = SPACES THEN
103370              DISPLAY 'unexpected exception (2): '
103371                       FUNCTION EXCEPTION-STATUS
103372              END-DISPLAY
103373           END-IF
103374           FREE B
103375           SET  P      TO ADDRESS OF B
103376           MOVE 'BBBB' TO X
103377           STRING FUNCTION CONTENT-OF ( P )
103378                  DELIMITED BY SIZE
103379                  INTO X
103380           END-STRING
103381      *>   Note: result *should* depend on dialect option zero-length literals
103382           IF X NOT EQUAL 'BBBB' THEN
103383              DISPLAY 'CONTENT-OF unallocated BASED item wrong: "' X '"'
103384              END-DISPLAY
103385           END-IF
103386           IF FUNCTION EXCEPTION-STATUS NOT = "EC-DATA-PTR-NULL" THEN
103387              DISPLAY 'missing exception (2)'
103388              END-DISPLAY
103389           END-IF
103390           STOP RUN.
103391_ATEOF
103392
103393
103394{ set +x
103395$as_echo "$at_srcdir/run_functions.at:453: \$COMPILE prog.cob"
103396at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:453"
103397( $at_check_trace; $COMPILE prog.cob
103398) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103399at_status=$? at_failed=false
103400$at_check_filter
103401at_fn_diff_devnull "$at_stderr" || at_failed=:
103402at_fn_diff_devnull "$at_stdout" || at_failed=:
103403at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:453"
103404$at_failed && at_fn_log_failure
103405$at_traceon; }
103406
103407{ set +x
103408$as_echo "$at_srcdir/run_functions.at:454: \$COBCRUN_DIRECT ./prog"
103409at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:454"
103410( $at_check_trace; $COBCRUN_DIRECT ./prog
103411) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103412at_status=$? at_failed=false
103413$at_check_filter
103414at_fn_diff_devnull "$at_stderr" || at_failed=:
103415at_fn_diff_devnull "$at_stdout" || at_failed=:
103416at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:454"
103417$at_failed && at_fn_log_failure
103418$at_traceon; }
103419
103420
103421  set +x
103422  $at_times_p && times >"$at_times_file"
103423) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103424read at_status <"$at_status_file"
103425#AT_STOP_846
103426#AT_START_847
103427at_fn_group_banner 847 'run_functions.at:459' \
103428  "FUNCTION as CALL parameter BY CONTENT" "          " 4
103429at_xfail=no
103430(
103431  $as_echo "847. $at_setup_line: testing $at_desc ..."
103432  $at_traceon
103433
103434
103435
103436cat >prog.cob <<'_ATEOF'
103437
103438       IDENTIFICATION DIVISION.
103439       PROGRAM-ID. prog.
103440
103441       PROCEDURE DIVISION.
103442       PROG-MAIN.
103443           CALL "subprog" USING BY CONTENT
103444                                FUNCTION CONCATENATE("Abc" "D")
103445           STOP RUN.
103446           END PROGRAM prog.
103447
103448       *> *****************************
103449       IDENTIFICATION DIVISION.
103450       PROGRAM-ID. subprog.
103451
103452       DATA DIVISION.
103453       LINKAGE SECTION.
103454       01 TESTING PIC X ANY LENGTH.
103455
103456       PROCEDURE DIVISION USING TESTING.
103457       SUBPROG-MAIN.
103458           DISPLAY TESTING
103459           GOBACK.
103460       END PROGRAM subprog.
103461_ATEOF
103462
103463
103464{ set +x
103465$as_echo "$at_srcdir/run_functions.at:488: \$COMPILE prog.cob"
103466at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:488"
103467( $at_check_trace; $COMPILE prog.cob
103468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103469at_status=$? at_failed=false
103470$at_check_filter
103471at_fn_diff_devnull "$at_stderr" || at_failed=:
103472at_fn_diff_devnull "$at_stdout" || at_failed=:
103473at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:488"
103474$at_failed && at_fn_log_failure
103475$at_traceon; }
103476
103477{ set +x
103478$as_echo "$at_srcdir/run_functions.at:489: \$COBCRUN_DIRECT ./prog"
103479at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:489"
103480( $at_check_trace; $COBCRUN_DIRECT ./prog
103481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103482at_status=$? at_failed=false
103483$at_check_filter
103484at_fn_diff_devnull "$at_stderr" || at_failed=:
103485echo >>"$at_stdout"; $as_echo "AbcD
103486" | \
103487  $at_diff - "$at_stdout" || at_failed=:
103488at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:489"
103489$at_failed && at_fn_log_failure
103490$at_traceon; }
103491
103492
103493  set +x
103494  $at_times_p && times >"$at_times_file"
103495) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103496read at_status <"$at_status_file"
103497#AT_STOP_847
103498#AT_START_848
103499at_fn_group_banner 848 'run_functions.at:495' \
103500  "FUNCTION COS" "                                   " 4
103501at_xfail=no
103502(
103503  $as_echo "848. $at_setup_line: testing $at_desc ..."
103504  $at_traceon
103505
103506
103507
103508cat >prog.cob <<'_ATEOF'
103509
103510       IDENTIFICATION   DIVISION.
103511       PROGRAM-ID.      prog.
103512       DATA             DIVISION.
103513       WORKING-STORAGE  SECTION.
103514       01  Y            PIC   S9V9(35).
103515       PROCEDURE        DIVISION.
103516           MOVE FUNCTION COS ( -0.2345 ) TO Y.
103517           IF Y NOT = 0.97263064125625818471341696241456141
103518              DISPLAY Y
103519              END-DISPLAY
103520           END-IF.
103521           STOP RUN.
103522_ATEOF
103523
103524
103525{ set +x
103526$as_echo "$at_srcdir/run_functions.at:513: \$COMPILE prog.cob"
103527at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:513"
103528( $at_check_trace; $COMPILE prog.cob
103529) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103530at_status=$? at_failed=false
103531$at_check_filter
103532at_fn_diff_devnull "$at_stderr" || at_failed=:
103533at_fn_diff_devnull "$at_stdout" || at_failed=:
103534at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:513"
103535$at_failed && at_fn_log_failure
103536$at_traceon; }
103537
103538{ set +x
103539$as_echo "$at_srcdir/run_functions.at:514: \$COBCRUN_DIRECT ./prog"
103540at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:514"
103541( $at_check_trace; $COBCRUN_DIRECT ./prog
103542) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103543at_status=$? at_failed=false
103544$at_check_filter
103545at_fn_diff_devnull "$at_stderr" || at_failed=:
103546at_fn_diff_devnull "$at_stdout" || at_failed=:
103547at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:514"
103548$at_failed && at_fn_log_failure
103549$at_traceon; }
103550
103551
103552  set +x
103553  $at_times_p && times >"$at_times_file"
103554) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103555read at_status <"$at_status_file"
103556#AT_STOP_848
103557#AT_START_849
103558at_fn_group_banner 849 'run_functions.at:519' \
103559  "FUNCTION CURRENCY-SYMBOL" "                       " 4
103560at_xfail=no
103561(
103562  $as_echo "849. $at_setup_line: testing $at_desc ..."
103563  $at_traceon
103564
103565
103566
103567cat >prog.cob <<'_ATEOF'
103568
103569       IDENTIFICATION   DIVISION.
103570       PROGRAM-ID.      prog.
103571       ENVIRONMENT      DIVISION.
103572       DATA             DIVISION.
103573       WORKING-STORAGE SECTION.
103574       01  TEST-FLD     PIC X(8) VALUE SPACES.
103575       PROCEDURE        DIVISION.
103576           MOVE FUNCTION CURRENCY-SYMBOL TO TEST-FLD.
103577           DISPLAY "OK" NO ADVANCING
103578           END-DISPLAY
103579           STOP RUN.
103580_ATEOF
103581
103582
103583{ set +x
103584$as_echo "$at_srcdir/run_functions.at:536: \$COMPILE prog.cob"
103585at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:536"
103586( $at_check_trace; $COMPILE prog.cob
103587) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103588at_status=$? at_failed=false
103589$at_check_filter
103590at_fn_diff_devnull "$at_stderr" || at_failed=:
103591at_fn_diff_devnull "$at_stdout" || at_failed=:
103592at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:536"
103593$at_failed && at_fn_log_failure
103594$at_traceon; }
103595
103596{ set +x
103597$as_echo "$at_srcdir/run_functions.at:537: \$COBCRUN_DIRECT ./prog"
103598at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:537"
103599( $at_check_trace; $COBCRUN_DIRECT ./prog
103600) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103601at_status=$? at_failed=false
103602$at_check_filter
103603at_fn_diff_devnull "$at_stderr" || at_failed=:
103604echo >>"$at_stdout"; $as_echo "OK" | \
103605  $at_diff - "$at_stdout" || at_failed=:
103606at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:537"
103607$at_failed && at_fn_log_failure
103608$at_traceon; }
103609
103610
103611  set +x
103612  $at_times_p && times >"$at_times_file"
103613) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103614read at_status <"$at_status_file"
103615#AT_STOP_849
103616#AT_START_850
103617at_fn_group_banner 850 'run_functions.at:542' \
103618  "FUNCTION CURRENT-DATE" "                          " 4
103619at_xfail=no
103620(
103621  $as_echo "850. $at_setup_line: testing $at_desc ..."
103622  $at_traceon
103623
103624
103625
103626cat >prog.cob <<'_ATEOF'
103627
103628       IDENTIFICATION   DIVISION.
103629       PROGRAM-ID.      prog.
103630       ENVIRONMENT      DIVISION.
103631       DATA             DIVISION.
103632       WORKING-STORAGE SECTION.
103633       01  TEST-FLD.
103634           02  WS-YEAR            PIC 9(04).
103635               88 VALID-YEAR      VALUE 1980 THRU 9999.
103636           02  WS-MONTH           PIC 9(02).
103637               88 VALID-MONTH     VALUE 01 THRU 12.
103638           02  WS-DAY             PIC 9(02).
103639               88 VALID-DAY       VALUE 01 THRU 31.
103640           02  WS-HOUR            PIC 9(02).
103641               88 VALID-HOUR      VALUE 00 THRU 23.
103642           02  WS-MIN             PIC 9(02).
103643               88 VALID-MIN       VALUE 00 THRU 59.
103644           02  WS-SEVALIDD        PIC 9(02).
103645               88 VALID-SEC       VALUE 00 THRU 59.
103646           02  WS-HUNDSEC         PIC 9(02).
103647               88 VALID-HUNDSEC   VALUE 00 THRU 99.
103648           02  WS-GREENW          PIC X.
103649               88 VALID-GREENW    VALUE "-", "+", "0".
103650               88 ZERO-GREENW     VALUE "0".
103651           02  WS-OFFSET          PIC 9(02).
103652               88 VALID-OFFSET    VALUE 00 THRU 13.
103653               88 ZERO-OFFSET     VALUE 00.
103654           02  WS-OFFSET2         PIC 9(02).
103655               88 VALID-OFFSET2   VALUE 00 THRU 59.
103656               88 ZERO-OFFSET2    VALUE 00.
103657           02  WS-UNSET           PIC X VALUE '_'.
103658               88 VALID-UNSET     VALUE '_'.
103659       PROCEDURE        DIVISION.
103660           STRING FUNCTION CURRENT-DATE
103661                  DELIMITED BY SIZE
103662                  INTO TEST-FLD
103663           END-STRING.
103664           EVALUATE TRUE
103665              WHEN NOT VALID-UNSET
103666                 DISPLAY "FUNCTION result too long"
103667                 END-DISPLAY
103668              WHEN VALID-YEAR     AND
103669                 VALID-MONTH    AND
103670                 VALID-DAY      AND
103671                 VALID-HOUR     AND
103672                 VALID-MIN      AND
103673                 VALID-SEC      AND
103674                 VALID-HUNDSEC  AND
103675                 VALID-GREENW   AND
103676                 VALID-OFFSET   AND
103677                 VALID-OFFSET2  AND
103678                 VALID-UNSET    AND
103679                 ((NOT ZERO-GREENW) OR (ZERO-OFFSET AND ZERO-OFFSET2))
103680                 CONTINUE
103681              WHEN OTHER
103682                 DISPLAY "CURRENT-DATE with wrong format: "
103683                         TEST-FLD (01:21)
103684                 END-DISPLAY
103685           END-EVALUATE.
103686           STOP RUN.
103687_ATEOF
103688
103689
103690{ set +x
103691$as_echo "$at_srcdir/run_functions.at:607: \$COMPILE prog.cob"
103692at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:607"
103693( $at_check_trace; $COMPILE prog.cob
103694) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103695at_status=$? at_failed=false
103696$at_check_filter
103697at_fn_diff_devnull "$at_stderr" || at_failed=:
103698at_fn_diff_devnull "$at_stdout" || at_failed=:
103699at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:607"
103700$at_failed && at_fn_log_failure
103701$at_traceon; }
103702
103703{ set +x
103704$as_echo "$at_srcdir/run_functions.at:608: \$COBCRUN_DIRECT ./prog"
103705at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:608"
103706( $at_check_trace; $COBCRUN_DIRECT ./prog
103707) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103708at_status=$? at_failed=false
103709$at_check_filter
103710at_fn_diff_devnull "$at_stderr" || at_failed=:
103711at_fn_diff_devnull "$at_stdout" || at_failed=:
103712at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:608"
103713$at_failed && at_fn_log_failure
103714$at_traceon; }
103715
103716
103717  set +x
103718  $at_times_p && times >"$at_times_file"
103719) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103720read at_status <"$at_status_file"
103721#AT_STOP_850
103722#AT_START_851
103723at_fn_group_banner 851 'run_functions.at:613' \
103724  "FUNCTION DATE-OF-INTEGER" "                       " 4
103725at_xfail=no
103726(
103727  $as_echo "851. $at_setup_line: testing $at_desc ..."
103728  $at_traceon
103729
103730
103731
103732cat >prog.cob <<'_ATEOF'
103733
103734       IDENTIFICATION   DIVISION.
103735       PROGRAM-ID.      prog.
103736       DATA             DIVISION.
103737       WORKING-STORAGE  SECTION.
103738       01  TEST-FLD     PIC S9(09)V9(02).
103739       PROCEDURE        DIVISION.
103740           MOVE FUNCTION DATE-OF-INTEGER ( 146000 )
103741             TO TEST-FLD.
103742           IF TEST-FLD NOT = 20000925
103743              DISPLAY TEST-FLD
103744              END-DISPLAY
103745           END-IF.
103746           STOP RUN.
103747_ATEOF
103748
103749
103750{ set +x
103751$as_echo "$at_srcdir/run_functions.at:632: \$COMPILE prog.cob"
103752at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:632"
103753( $at_check_trace; $COMPILE prog.cob
103754) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103755at_status=$? at_failed=false
103756$at_check_filter
103757at_fn_diff_devnull "$at_stderr" || at_failed=:
103758at_fn_diff_devnull "$at_stdout" || at_failed=:
103759at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:632"
103760$at_failed && at_fn_log_failure
103761$at_traceon; }
103762
103763{ set +x
103764$as_echo "$at_srcdir/run_functions.at:633: \$COBCRUN_DIRECT ./prog"
103765at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:633"
103766( $at_check_trace; $COBCRUN_DIRECT ./prog
103767) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103768at_status=$? at_failed=false
103769$at_check_filter
103770at_fn_diff_devnull "$at_stderr" || at_failed=:
103771at_fn_diff_devnull "$at_stdout" || at_failed=:
103772at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:633"
103773$at_failed && at_fn_log_failure
103774$at_traceon; }
103775
103776
103777  set +x
103778  $at_times_p && times >"$at_times_file"
103779) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103780read at_status <"$at_status_file"
103781#AT_STOP_851
103782#AT_START_852
103783at_fn_group_banner 852 'run_functions.at:638' \
103784  "FUNCTION DATE-TO-YYYYMMDD" "                      " 4
103785at_xfail=no
103786(
103787  $as_echo "852. $at_setup_line: testing $at_desc ..."
103788  $at_traceon
103789
103790
103791
103792cat >prog.cob <<'_ATEOF'
103793
103794       IDENTIFICATION   DIVISION.
103795       PROGRAM-ID.      prog.
103796       DATA             DIVISION.
103797       WORKING-STORAGE  SECTION.
103798       01  TEST-FLD     PIC S9(09)V9(02).
103799       PROCEDURE        DIVISION.
103800           MOVE FUNCTION DATE-TO-YYYYMMDD ( 981002, -10, 1994 )
103801             TO TEST-FLD.
103802           IF TEST-FLD NOT = 018981002
103803              DISPLAY TEST-FLD
103804              END-DISPLAY
103805           END-IF.
103806           STOP RUN.
103807_ATEOF
103808
103809
103810{ set +x
103811$as_echo "$at_srcdir/run_functions.at:657: \$COMPILE prog.cob"
103812at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:657"
103813( $at_check_trace; $COMPILE prog.cob
103814) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103815at_status=$? at_failed=false
103816$at_check_filter
103817at_fn_diff_devnull "$at_stderr" || at_failed=:
103818at_fn_diff_devnull "$at_stdout" || at_failed=:
103819at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:657"
103820$at_failed && at_fn_log_failure
103821$at_traceon; }
103822
103823{ set +x
103824$as_echo "$at_srcdir/run_functions.at:658: \$COBCRUN_DIRECT ./prog"
103825at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:658"
103826( $at_check_trace; $COBCRUN_DIRECT ./prog
103827) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103828at_status=$? at_failed=false
103829$at_check_filter
103830at_fn_diff_devnull "$at_stderr" || at_failed=:
103831at_fn_diff_devnull "$at_stdout" || at_failed=:
103832at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:658"
103833$at_failed && at_fn_log_failure
103834$at_traceon; }
103835
103836
103837  set +x
103838  $at_times_p && times >"$at_times_file"
103839) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103840read at_status <"$at_status_file"
103841#AT_STOP_852
103842#AT_START_853
103843at_fn_group_banner 853 'run_functions.at:663' \
103844  "FUNCTION DAY-OF-INTEGER" "                        " 4
103845at_xfail=no
103846(
103847  $as_echo "853. $at_setup_line: testing $at_desc ..."
103848  $at_traceon
103849
103850
103851
103852cat >prog.cob <<'_ATEOF'
103853
103854       IDENTIFICATION   DIVISION.
103855       PROGRAM-ID.      prog.
103856       DATA             DIVISION.
103857       WORKING-STORAGE  SECTION.
103858       01  TEST-FLD     PIC S9(09)V9(02).
103859       PROCEDURE        DIVISION.
103860           MOVE FUNCTION DAY-OF-INTEGER ( 146000 )
103861             TO TEST-FLD.
103862           IF TEST-FLD NOT = 2000269
103863              DISPLAY TEST-FLD
103864              END-DISPLAY
103865           END-IF.
103866           STOP RUN.
103867_ATEOF
103868
103869
103870{ set +x
103871$as_echo "$at_srcdir/run_functions.at:682: \$COMPILE prog.cob"
103872at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:682"
103873( $at_check_trace; $COMPILE prog.cob
103874) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103875at_status=$? at_failed=false
103876$at_check_filter
103877at_fn_diff_devnull "$at_stderr" || at_failed=:
103878at_fn_diff_devnull "$at_stdout" || at_failed=:
103879at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:682"
103880$at_failed && at_fn_log_failure
103881$at_traceon; }
103882
103883{ set +x
103884$as_echo "$at_srcdir/run_functions.at:683: \$COBCRUN_DIRECT ./prog"
103885at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:683"
103886( $at_check_trace; $COBCRUN_DIRECT ./prog
103887) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103888at_status=$? at_failed=false
103889$at_check_filter
103890at_fn_diff_devnull "$at_stderr" || at_failed=:
103891at_fn_diff_devnull "$at_stdout" || at_failed=:
103892at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:683"
103893$at_failed && at_fn_log_failure
103894$at_traceon; }
103895
103896
103897  set +x
103898  $at_times_p && times >"$at_times_file"
103899) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103900read at_status <"$at_status_file"
103901#AT_STOP_853
103902#AT_START_854
103903at_fn_group_banner 854 'run_functions.at:688' \
103904  "FUNCTION DAY-TO-YYYYDDD" "                        " 4
103905at_xfail=no
103906(
103907  $as_echo "854. $at_setup_line: testing $at_desc ..."
103908  $at_traceon
103909
103910
103911
103912cat >prog.cob <<'_ATEOF'
103913
103914       IDENTIFICATION   DIVISION.
103915       PROGRAM-ID.      prog.
103916       DATA             DIVISION.
103917       WORKING-STORAGE  SECTION.
103918       01  TEST-FLD     PIC S9(09)V9(02).
103919       PROCEDURE        DIVISION.
103920           MOVE FUNCTION DAY-TO-YYYYDDD ( 95005, -10, 2013 )
103921             TO TEST-FLD.
103922           IF TEST-FLD NOT = 001995005
103923              DISPLAY TEST-FLD
103924              END-DISPLAY
103925           END-IF.
103926           STOP RUN.
103927_ATEOF
103928
103929
103930{ set +x
103931$as_echo "$at_srcdir/run_functions.at:707: \$COMPILE prog.cob"
103932at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:707"
103933( $at_check_trace; $COMPILE prog.cob
103934) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103935at_status=$? at_failed=false
103936$at_check_filter
103937at_fn_diff_devnull "$at_stderr" || at_failed=:
103938at_fn_diff_devnull "$at_stdout" || at_failed=:
103939at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:707"
103940$at_failed && at_fn_log_failure
103941$at_traceon; }
103942
103943{ set +x
103944$as_echo "$at_srcdir/run_functions.at:708: \$COBCRUN_DIRECT ./prog"
103945at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:708"
103946( $at_check_trace; $COBCRUN_DIRECT ./prog
103947) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103948at_status=$? at_failed=false
103949$at_check_filter
103950at_fn_diff_devnull "$at_stderr" || at_failed=:
103951at_fn_diff_devnull "$at_stdout" || at_failed=:
103952at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:708"
103953$at_failed && at_fn_log_failure
103954$at_traceon; }
103955
103956
103957  set +x
103958  $at_times_p && times >"$at_times_file"
103959) 5>&1 2>&1 7>&- | eval $at_tee_pipe
103960read at_status <"$at_status_file"
103961#AT_STOP_854
103962#AT_START_855
103963at_fn_group_banner 855 'run_functions.at:713' \
103964  "FUNCTION E" "                                     " 4
103965at_xfail=no
103966(
103967  $as_echo "855. $at_setup_line: testing $at_desc ..."
103968  $at_traceon
103969
103970
103971
103972cat >prog.cob <<'_ATEOF'
103973
103974       IDENTIFICATION   DIVISION.
103975       PROGRAM-ID.      prog.
103976       DATA             DIVISION.
103977       WORKING-STORAGE  SECTION.
103978       01  Y   PIC   9V9(35).
103979       PROCEDURE        DIVISION.
103980           MOVE    FUNCTION E TO Y.
103981           IF Y NOT = 2.71828182845904523536028747135266249
103982              DISPLAY Y
103983              END-DISPLAY
103984           END-IF.
103985           STOP RUN.
103986_ATEOF
103987
103988
103989{ set +x
103990$as_echo "$at_srcdir/run_functions.at:731: \$COMPILE prog.cob"
103991at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:731"
103992( $at_check_trace; $COMPILE prog.cob
103993) >>"$at_stdout" 2>>"$at_stderr" 5>&-
103994at_status=$? at_failed=false
103995$at_check_filter
103996at_fn_diff_devnull "$at_stderr" || at_failed=:
103997at_fn_diff_devnull "$at_stdout" || at_failed=:
103998at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:731"
103999$at_failed && at_fn_log_failure
104000$at_traceon; }
104001
104002{ set +x
104003$as_echo "$at_srcdir/run_functions.at:732: \$COBCRUN_DIRECT ./prog"
104004at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:732"
104005( $at_check_trace; $COBCRUN_DIRECT ./prog
104006) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104007at_status=$? at_failed=false
104008$at_check_filter
104009at_fn_diff_devnull "$at_stderr" || at_failed=:
104010at_fn_diff_devnull "$at_stdout" || at_failed=:
104011at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:732"
104012$at_failed && at_fn_log_failure
104013$at_traceon; }
104014
104015
104016  set +x
104017  $at_times_p && times >"$at_times_file"
104018) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104019read at_status <"$at_status_file"
104020#AT_STOP_855
104021#AT_START_856
104022at_fn_group_banner 856 'run_functions.at:737' \
104023  "FUNCTION EXCEPTION-FILE" "                        " 4
104024at_xfail=no
104025(
104026  $as_echo "856. $at_setup_line: testing $at_desc ..."
104027  $at_traceon
104028
104029
104030
104031cat >prog.cob <<'_ATEOF'
104032
104033       IDENTIFICATION   DIVISION.
104034       PROGRAM-ID.      prog.
104035       ENVIRONMENT      DIVISION.
104036       INPUT-OUTPUT     SECTION.
104037       FILE-CONTROL.
104038           SELECT TEST-FILE ASSIGN "NOTEXIST"
104039           FILE STATUS IS TEST-STATUS.
104040       DATA             DIVISION.
104041       FILE             SECTION.
104042       FD  TEST-FILE.
104043       01  TEST-REC      PIC X(4).
104044       WORKING-STORAGE SECTION.
104045       01  TEST-STATUS  PIC XX.
104046       PROCEDURE        DIVISION.
104047           DISPLAY FUNCTION EXCEPTION-FILE '|'
104048                   NO ADVANCING
104049           END-DISPLAY.
104050           OPEN INPUT TEST-FILE.
104051           DISPLAY FUNCTION EXCEPTION-FILE
104052                   NO ADVANCING
104053           END-DISPLAY.
104054           STOP RUN.
104055_ATEOF
104056
104057
104058{ set +x
104059$as_echo "$at_srcdir/run_functions.at:765: \$COMPILE prog.cob"
104060at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:765"
104061( $at_check_trace; $COMPILE prog.cob
104062) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104063at_status=$? at_failed=false
104064$at_check_filter
104065at_fn_diff_devnull "$at_stderr" || at_failed=:
104066at_fn_diff_devnull "$at_stdout" || at_failed=:
104067at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:765"
104068$at_failed && at_fn_log_failure
104069$at_traceon; }
104070
104071{ set +x
104072$as_echo "$at_srcdir/run_functions.at:766: \$COBCRUN_DIRECT ./prog"
104073at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:766"
104074( $at_check_trace; $COBCRUN_DIRECT ./prog
104075) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104076at_status=$? at_failed=false
104077$at_check_filter
104078at_fn_diff_devnull "$at_stderr" || at_failed=:
104079echo >>"$at_stdout"; $as_echo "00|35TEST-FILE" | \
104080  $at_diff - "$at_stdout" || at_failed=:
104081at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:766"
104082$at_failed && at_fn_log_failure
104083$at_traceon; }
104084
104085
104086  set +x
104087  $at_times_p && times >"$at_times_file"
104088) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104089read at_status <"$at_status_file"
104090#AT_STOP_856
104091#AT_START_857
104092at_fn_group_banner 857 'run_functions.at:772' \
104093  "FUNCTION EXCEPTION-LOCATION" "                    " 4
104094at_xfail=no
104095(
104096  $as_echo "857. $at_setup_line: testing $at_desc ..."
104097  $at_traceon
104098
104099
104100
104101cat >prog.cob <<'_ATEOF'
104102
104103       IDENTIFICATION   DIVISION.
104104       PROGRAM-ID.      prog.
104105       ENVIRONMENT      DIVISION.
104106       INPUT-OUTPUT     SECTION.
104107       FILE-CONTROL.
104108           SELECT TEST-FILE ASSIGN "NOTEXIST"
104109           FILE STATUS IS TEST-STATUS.
104110       DATA             DIVISION.
104111       FILE             SECTION.
104112       FD  TEST-FILE.
104113       01  TEST-REC      PIC X(4).
104114       WORKING-STORAGE SECTION.
104115       01  TEST-STATUS  PIC XX.
104116       PROCEDURE        DIVISION.
104117       A00-MAIN SECTION.
104118       A00.
104119           DISPLAY FUNCTION EXCEPTION-LOCATION '|'
104120                   NO ADVANCING
104121           END-DISPLAY.
104122           OPEN INPUT TEST-FILE.
104123       B00-MAIN SECTION.
104124       B00.
104125           DISPLAY FUNCTION EXCEPTION-LOCATION
104126                   NO ADVANCING
104127           END-DISPLAY.
104128           STOP RUN.
104129_ATEOF
104130
104131
104132{ set +x
104133$as_echo "$at_srcdir/run_functions.at:804: \$COMPILE prog.cob"
104134at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:804"
104135( $at_check_trace; $COMPILE prog.cob
104136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104137at_status=$? at_failed=false
104138$at_check_filter
104139at_fn_diff_devnull "$at_stderr" || at_failed=:
104140at_fn_diff_devnull "$at_stdout" || at_failed=:
104141at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:804"
104142$at_failed && at_fn_log_failure
104143$at_traceon; }
104144
104145{ set +x
104146$as_echo "$at_srcdir/run_functions.at:805: \$COBCRUN_DIRECT ./prog"
104147at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:805"
104148( $at_check_trace; $COBCRUN_DIRECT ./prog
104149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104150at_status=$? at_failed=false
104151$at_check_filter
104152at_fn_diff_devnull "$at_stderr" || at_failed=:
104153echo >>"$at_stdout"; $as_echo " |prog; A00 OF A00-MAIN; 21" | \
104154  $at_diff - "$at_stdout" || at_failed=:
104155at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:805"
104156$at_failed && at_fn_log_failure
104157$at_traceon; }
104158
104159
104160  set +x
104161  $at_times_p && times >"$at_times_file"
104162) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104163read at_status <"$at_status_file"
104164#AT_STOP_857
104165#AT_START_858
104166at_fn_group_banner 858 'run_functions.at:811' \
104167  "FUNCTION EXCEPTION-STATEMENT" "                   " 4
104168at_xfail=no
104169(
104170  $as_echo "858. $at_setup_line: testing $at_desc ..."
104171  $at_traceon
104172
104173
104174
104175cat >prog.cob <<'_ATEOF'
104176
104177       IDENTIFICATION   DIVISION.
104178       PROGRAM-ID.      prog.
104179       ENVIRONMENT      DIVISION.
104180       INPUT-OUTPUT     SECTION.
104181       FILE-CONTROL.
104182           SELECT TEST-FILE ASSIGN "NOTEXIST"
104183           FILE STATUS IS TEST-STATUS.
104184       DATA             DIVISION.
104185       FILE             SECTION.
104186       FD  TEST-FILE.
104187       01  TEST-REC      PIC X(4).
104188       WORKING-STORAGE SECTION.
104189       01  TEST-STATUS  PIC XX.
104190       PROCEDURE        DIVISION.
104191           DISPLAY FUNCTION EXCEPTION-STATEMENT '|'
104192                   NO ADVANCING
104193           END-DISPLAY.
104194           OPEN INPUT TEST-FILE.
104195           DISPLAY FUNCTION EXCEPTION-STATEMENT
104196                   NO ADVANCING
104197           END-DISPLAY.
104198           STOP RUN.
104199_ATEOF
104200
104201
104202{ set +x
104203$as_echo "$at_srcdir/run_functions.at:839: \$COMPILE prog.cob"
104204at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:839"
104205( $at_check_trace; $COMPILE prog.cob
104206) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104207at_status=$? at_failed=false
104208$at_check_filter
104209at_fn_diff_devnull "$at_stderr" || at_failed=:
104210at_fn_diff_devnull "$at_stdout" || at_failed=:
104211at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:839"
104212$at_failed && at_fn_log_failure
104213$at_traceon; }
104214
104215{ set +x
104216$as_echo "$at_srcdir/run_functions.at:840: \$COBCRUN_DIRECT ./prog"
104217at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:840"
104218( $at_check_trace; $COBCRUN_DIRECT ./prog
104219) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104220at_status=$? at_failed=false
104221$at_check_filter
104222at_fn_diff_devnull "$at_stderr" || at_failed=:
104223echo >>"$at_stdout"; $as_echo "                               |OPEN                           " | \
104224  $at_diff - "$at_stdout" || at_failed=:
104225at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:840"
104226$at_failed && at_fn_log_failure
104227$at_traceon; }
104228
104229
104230  set +x
104231  $at_times_p && times >"$at_times_file"
104232) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104233read at_status <"$at_status_file"
104234#AT_STOP_858
104235#AT_START_859
104236at_fn_group_banner 859 'run_functions.at:846' \
104237  "FUNCTION EXCEPTION-STATUS" "                      " 4
104238at_xfail=no
104239(
104240  $as_echo "859. $at_setup_line: testing $at_desc ..."
104241  $at_traceon
104242
104243
104244
104245cat >prog.cob <<'_ATEOF'
104246
104247       IDENTIFICATION   DIVISION.
104248       PROGRAM-ID.      prog.
104249       ENVIRONMENT      DIVISION.
104250       INPUT-OUTPUT     SECTION.
104251       FILE-CONTROL.
104252           SELECT TEST-FILE ASSIGN "NOTEXIST"
104253           FILE STATUS IS TEST-STATUS.
104254       DATA             DIVISION.
104255       FILE             SECTION.
104256       FD  TEST-FILE.
104257       01  TEST-REC      PIC X(4).
104258       WORKING-STORAGE SECTION.
104259       01  TEST-STATUS  PIC XX.
104260       PROCEDURE        DIVISION.
104261           DISPLAY FUNCTION EXCEPTION-STATUS '|'
104262                   NO ADVANCING
104263           END-DISPLAY.
104264           OPEN INPUT TEST-FILE.
104265           DISPLAY FUNCTION EXCEPTION-STATUS
104266                   NO ADVANCING
104267           END-DISPLAY.
104268           STOP RUN.
104269_ATEOF
104270
104271
104272{ set +x
104273$as_echo "$at_srcdir/run_functions.at:874: \$COMPILE prog.cob"
104274at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:874"
104275( $at_check_trace; $COMPILE prog.cob
104276) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104277at_status=$? at_failed=false
104278$at_check_filter
104279at_fn_diff_devnull "$at_stderr" || at_failed=:
104280at_fn_diff_devnull "$at_stdout" || at_failed=:
104281at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:874"
104282$at_failed && at_fn_log_failure
104283$at_traceon; }
104284
104285{ set +x
104286$as_echo "$at_srcdir/run_functions.at:875: \$COBCRUN_DIRECT ./prog"
104287at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:875"
104288( $at_check_trace; $COBCRUN_DIRECT ./prog
104289) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104290at_status=$? at_failed=false
104291$at_check_filter
104292at_fn_diff_devnull "$at_stderr" || at_failed=:
104293echo >>"$at_stdout"; $as_echo "                               |EC-I-O-PERMANENT-ERROR         " | \
104294  $at_diff - "$at_stdout" || at_failed=:
104295at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:875"
104296$at_failed && at_fn_log_failure
104297$at_traceon; }
104298
104299
104300  set +x
104301  $at_times_p && times >"$at_times_file"
104302) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104303read at_status <"$at_status_file"
104304#AT_STOP_859
104305#AT_START_860
104306at_fn_group_banner 860 'run_functions.at:881' \
104307  "FUNCTION EXP" "                                   " 4
104308at_xfail=no
104309(
104310  $as_echo "860. $at_setup_line: testing $at_desc ..."
104311  $at_traceon
104312
104313
104314
104315cat >prog.cob <<'_ATEOF'
104316
104317       IDENTIFICATION   DIVISION.
104318       PROGRAM-ID.      prog.
104319       DATA             DIVISION.
104320       WORKING-STORAGE  SECTION.
104321       01  Y   PIC   S99V9(34).
104322       PROCEDURE        DIVISION.
104323           MOVE FUNCTION EXP ( 3 ) TO Y.
104324           IF Y NOT = 20.0855369231876677409285296545817178
104325              DISPLAY Y
104326              END-DISPLAY
104327           END-IF.
104328           STOP RUN.
104329_ATEOF
104330
104331
104332{ set +x
104333$as_echo "$at_srcdir/run_functions.at:899: \$COMPILE prog.cob"
104334at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:899"
104335( $at_check_trace; $COMPILE prog.cob
104336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104337at_status=$? at_failed=false
104338$at_check_filter
104339at_fn_diff_devnull "$at_stderr" || at_failed=:
104340at_fn_diff_devnull "$at_stdout" || at_failed=:
104341at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:899"
104342$at_failed && at_fn_log_failure
104343$at_traceon; }
104344
104345{ set +x
104346$as_echo "$at_srcdir/run_functions.at:900: \$COBCRUN_DIRECT ./prog"
104347at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:900"
104348( $at_check_trace; $COBCRUN_DIRECT ./prog
104349) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104350at_status=$? at_failed=false
104351$at_check_filter
104352at_fn_diff_devnull "$at_stderr" || at_failed=:
104353at_fn_diff_devnull "$at_stdout" || at_failed=:
104354at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:900"
104355$at_failed && at_fn_log_failure
104356$at_traceon; }
104357
104358
104359  set +x
104360  $at_times_p && times >"$at_times_file"
104361) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104362read at_status <"$at_status_file"
104363#AT_STOP_860
104364#AT_START_861
104365at_fn_group_banner 861 'run_functions.at:905' \
104366  "FUNCTION EXP10" "                                 " 4
104367at_xfail=no
104368(
104369  $as_echo "861. $at_setup_line: testing $at_desc ..."
104370  $at_traceon
104371
104372
104373
104374cat >prog.cob <<'_ATEOF'
104375
104376       IDENTIFICATION   DIVISION.
104377       PROGRAM-ID.      prog.
104378       DATA             DIVISION.
104379       WORKING-STORAGE  SECTION.
104380       01  TEST-FLD     PIC S9(09)V9(02).
104381       PROCEDURE        DIVISION.
104382           MOVE FUNCTION EXP10 ( 4 )
104383             TO TEST-FLD.
104384           IF TEST-FLD NOT = 000010000
104385              DISPLAY TEST-FLD
104386              END-DISPLAY
104387           END-IF.
104388           STOP RUN.
104389_ATEOF
104390
104391
104392{ set +x
104393$as_echo "$at_srcdir/run_functions.at:924: \$COMPILE prog.cob"
104394at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:924"
104395( $at_check_trace; $COMPILE prog.cob
104396) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104397at_status=$? at_failed=false
104398$at_check_filter
104399at_fn_diff_devnull "$at_stderr" || at_failed=:
104400at_fn_diff_devnull "$at_stdout" || at_failed=:
104401at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:924"
104402$at_failed && at_fn_log_failure
104403$at_traceon; }
104404
104405{ set +x
104406$as_echo "$at_srcdir/run_functions.at:925: \$COBCRUN_DIRECT ./prog"
104407at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:925"
104408( $at_check_trace; $COBCRUN_DIRECT ./prog
104409) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104410at_status=$? at_failed=false
104411$at_check_filter
104412at_fn_diff_devnull "$at_stderr" || at_failed=:
104413at_fn_diff_devnull "$at_stdout" || at_failed=:
104414at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:925"
104415$at_failed && at_fn_log_failure
104416$at_traceon; }
104417
104418
104419  set +x
104420  $at_times_p && times >"$at_times_file"
104421) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104422read at_status <"$at_status_file"
104423#AT_STOP_861
104424#AT_START_862
104425at_fn_group_banner 862 'run_functions.at:930' \
104426  "FUNCTION FACTORIAL" "                             " 4
104427at_xfail=no
104428(
104429  $as_echo "862. $at_setup_line: testing $at_desc ..."
104430  $at_traceon
104431
104432
104433
104434cat >prog.cob <<'_ATEOF'
104435
104436       IDENTIFICATION   DIVISION.
104437       PROGRAM-ID.      prog.
104438       DATA             DIVISION.
104439       WORKING-STORAGE  SECTION.
104440       01  TEST-FLD     PIC S9(09)V9(02).
104441       PROCEDURE        DIVISION.
104442           MOVE FUNCTION FACTORIAL ( 6 )
104443             TO TEST-FLD.
104444           IF TEST-FLD NOT = 000000720
104445              DISPLAY TEST-FLD
104446              END-DISPLAY
104447           END-IF.
104448           STOP RUN.
104449_ATEOF
104450
104451
104452{ set +x
104453$as_echo "$at_srcdir/run_functions.at:949: \$COMPILE prog.cob"
104454at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:949"
104455( $at_check_trace; $COMPILE prog.cob
104456) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104457at_status=$? at_failed=false
104458$at_check_filter
104459at_fn_diff_devnull "$at_stderr" || at_failed=:
104460at_fn_diff_devnull "$at_stdout" || at_failed=:
104461at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:949"
104462$at_failed && at_fn_log_failure
104463$at_traceon; }
104464
104465{ set +x
104466$as_echo "$at_srcdir/run_functions.at:950: \$COBCRUN_DIRECT ./prog"
104467at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:950"
104468( $at_check_trace; $COBCRUN_DIRECT ./prog
104469) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104470at_status=$? at_failed=false
104471$at_check_filter
104472at_fn_diff_devnull "$at_stderr" || at_failed=:
104473at_fn_diff_devnull "$at_stdout" || at_failed=:
104474at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:950"
104475$at_failed && at_fn_log_failure
104476$at_traceon; }
104477
104478
104479  set +x
104480  $at_times_p && times >"$at_times_file"
104481) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104482read at_status <"$at_status_file"
104483#AT_STOP_862
104484#AT_START_863
104485at_fn_group_banner 863 'run_functions.at:955' \
104486  "FUNCTION FORMATTED-CURRENT-DATE" "                " 4
104487at_xfail=no
104488(
104489  $as_echo "863. $at_setup_line: testing $at_desc ..."
104490  $at_traceon
104491
104492
104493
104494cat >prog.cob <<'_ATEOF'
104495
104496       IDENTIFICATION   DIVISION.
104497       PROGRAM-ID.      prog.
104498       DATA             DIVISION.
104499       WORKING-STORAGE  SECTION.
104500       01  Datetime-Format CONSTANT "YYYYMMDDThhmmss.ss+hhmm".
104501       01  str             PIC X(25).
104502       PROCEDURE        DIVISION.
104503      *>   Test normal inputs.
104504           MOVE FUNCTION FORMATTED-CURRENT-DATE ( Datetime-Format )
104505             TO str
104506           IF FUNCTION TEST-FORMATTED-DATETIME ( Datetime-Format, str)
104507                   <> 0
104508              DISPLAY "Test 1 failed: " str END-DISPLAY
104509           END-IF.
104510
104511           STOP RUN.
104512_ATEOF
104513
104514
104515{ set +x
104516$as_echo "$at_srcdir/run_functions.at:977: \$COMPILE prog.cob"
104517at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:977"
104518( $at_check_trace; $COMPILE prog.cob
104519) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104520at_status=$? at_failed=false
104521$at_check_filter
104522at_fn_diff_devnull "$at_stderr" || at_failed=:
104523at_fn_diff_devnull "$at_stdout" || at_failed=:
104524at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:977"
104525$at_failed && at_fn_log_failure
104526$at_traceon; }
104527
104528{ set +x
104529$as_echo "$at_srcdir/run_functions.at:978: \$COBCRUN_DIRECT ./prog"
104530at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:978"
104531( $at_check_trace; $COBCRUN_DIRECT ./prog
104532) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104533at_status=$? at_failed=false
104534$at_check_filter
104535at_fn_diff_devnull "$at_stderr" || at_failed=:
104536at_fn_diff_devnull "$at_stdout" || at_failed=:
104537at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:978"
104538$at_failed && at_fn_log_failure
104539$at_traceon; }
104540
104541
104542  set +x
104543  $at_times_p && times >"$at_times_file"
104544) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104545read at_status <"$at_status_file"
104546#AT_STOP_863
104547#AT_START_864
104548at_fn_group_banner 864 'run_functions.at:983' \
104549  "FUNCTION FORMATTED-DATE" "                        " 4
104550at_xfail=no
104551(
104552  $as_echo "864. $at_setup_line: testing $at_desc ..."
104553  $at_traceon
104554
104555
104556
104557cat >prog.cob <<'_ATEOF'
104558
104559       IDENTIFICATION   DIVISION.
104560       PROGRAM-ID.      prog.
104561       DATA             DIVISION.
104562       WORKING-STORAGE  SECTION.
104563       01  str          PIC X(10).
104564       PROCEDURE        DIVISION.
104565      *>   Test normal inputs.
104566           MOVE FUNCTION FORMATTED-DATE ( "YYYYMMDD", 1 ) TO str
104567           IF str <> "16010101"
104568              DISPLAY "Test 1 failed: " str END-DISPLAY
104569           END-IF
104570
104571           MOVE FUNCTION FORMATTED-DATE ( "YYYY-MM-DD", 1 ) TO str
104572           IF str <> "1601-01-01"
104573              DISPLAY "Test 2 failed: " str END-DISPLAY
104574           END-IF
104575
104576           MOVE FUNCTION FORMATTED-DATE ( "YYYYDDD", 1 ) TO str
104577           IF str <> "1601001"
104578              DISPLAY "Test 3 failed: " str END-DISPLAY
104579           END-IF
104580
104581           MOVE FUNCTION FORMATTED-DATE ( "YYYY-DDD", 1 ) TO str
104582           IF str <> "1601-001"
104583              DISPLAY "Test 4 failed: " str END-DISPLAY
104584           END-IF
104585
104586           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 1 ) TO str
104587           IF str <> "1601W011"
104588              DISPLAY "Test 5 failed: " str END-DISPLAY
104589           END-IF
104590
104591           MOVE FUNCTION FORMATTED-DATE ( "YYYY-Www-D", 1 ) TO str
104592           IF str <> "1601-W01-1"
104593              DISPLAY "Test 6 failed: " str END-DISPLAY
104594           END-IF
104595
104596      *>   Test week number edge cases.
104597      *>   For 2012-01-01.
104598           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 150115 ) TO str
104599           IF str <> "2011W527"
104600              DISPLAY "Test 7 failed: " str END-DISPLAY
104601           END-IF
104602
104603      *>   and for 2013-12-30.
104604           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 150844 ) TO str
104605           IF str <> "2014W011"
104606              DISPLAY "Test 8 failed: " str END-DISPLAY
104607           END-IF
104608
104609           STOP RUN.
104610_ATEOF
104611
104612
104613{ set +x
104614$as_echo "$at_srcdir/run_functions.at:1040: \$COMPILE prog.cob"
104615at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1040"
104616( $at_check_trace; $COMPILE prog.cob
104617) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104618at_status=$? at_failed=false
104619$at_check_filter
104620at_fn_diff_devnull "$at_stderr" || at_failed=:
104621at_fn_diff_devnull "$at_stdout" || at_failed=:
104622at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1040"
104623$at_failed && at_fn_log_failure
104624$at_traceon; }
104625
104626{ set +x
104627$as_echo "$at_srcdir/run_functions.at:1041: \$COBCRUN_DIRECT ./prog"
104628at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1041"
104629( $at_check_trace; $COBCRUN_DIRECT ./prog
104630) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104631at_status=$? at_failed=false
104632$at_check_filter
104633at_fn_diff_devnull "$at_stderr" || at_failed=:
104634at_fn_diff_devnull "$at_stdout" || at_failed=:
104635at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1041"
104636$at_failed && at_fn_log_failure
104637$at_traceon; }
104638
104639
104640  set +x
104641  $at_times_p && times >"$at_times_file"
104642) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104643read at_status <"$at_status_file"
104644#AT_STOP_864
104645#AT_START_865
104646at_fn_group_banner 865 'run_functions.at:1046' \
104647  "FUNCTION FORMATTED-DATE with ref modding" "       " 4
104648at_xfail=no
104649(
104650  $as_echo "865. $at_setup_line: testing $at_desc ..."
104651  $at_traceon
104652
104653
104654
104655cat >prog.cob <<'_ATEOF'
104656
104657       IDENTIFICATION   DIVISION.
104658       PROGRAM-ID.      prog.
104659       DATA             DIVISION.
104660       WORKING-STORAGE  SECTION.
104661       01  str          PIC X(04).
104662       PROCEDURE        DIVISION.
104663           MOVE FUNCTION FORMATTED-DATE ("YYYYMMDD", 1) (3:4)
104664             TO STR
104665           IF STR NOT = '0101'
104666              DISPLAY STR
104667              END-DISPLAY
104668           END-IF
104669           STOP RUN.
104670_ATEOF
104671
104672
104673{ set +x
104674$as_echo "$at_srcdir/run_functions.at:1065: \$COMPILE prog.cob"
104675at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1065"
104676( $at_check_trace; $COMPILE prog.cob
104677) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104678at_status=$? at_failed=false
104679$at_check_filter
104680at_fn_diff_devnull "$at_stderr" || at_failed=:
104681at_fn_diff_devnull "$at_stdout" || at_failed=:
104682at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1065"
104683$at_failed && at_fn_log_failure
104684$at_traceon; }
104685
104686{ set +x
104687$as_echo "$at_srcdir/run_functions.at:1066: \$COBCRUN_DIRECT ./prog"
104688at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1066"
104689( $at_check_trace; $COBCRUN_DIRECT ./prog
104690) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104691at_status=$? at_failed=false
104692$at_check_filter
104693at_fn_diff_devnull "$at_stderr" || at_failed=:
104694at_fn_diff_devnull "$at_stdout" || at_failed=:
104695at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1066"
104696$at_failed && at_fn_log_failure
104697$at_traceon; }
104698
104699
104700  set +x
104701  $at_times_p && times >"$at_times_file"
104702) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104703read at_status <"$at_status_file"
104704#AT_STOP_865
104705#AT_START_866
104706at_fn_group_banner 866 'run_functions.at:1071' \
104707  "FUNCTION FORMATTED-DATETIME" "                    " 4
104708at_xfail=no
104709(
104710  $as_echo "866. $at_setup_line: testing $at_desc ..."
104711  $at_traceon
104712
104713
104714
104715cat >prog.cob <<'_ATEOF'
104716
104717       IDENTIFICATION   DIVISION.
104718       PROGRAM-ID.      prog.
104719       DATA             DIVISION.
104720       WORKING-STORAGE  SECTION.
104721       01  str          PIC X(40).
104722       PROCEDURE        DIVISION.
104723      *>   Test normal inputs.
104724           MOVE FUNCTION FORMATTED-DATETIME
104725                   ("YYYYMMDDThhmmss", 1, 45296)
104726               TO str
104727           IF str <> "16010101T123456"
104728               DISPLAY "Test 1 failed: " str END-DISPLAY
104729           END-IF
104730
104731           MOVE FUNCTION FORMATTED-DATETIME
104732                   ("YYYY-MM-DDThh:mm:ss", 1, 45296)
104733               TO str
104734           IF str <> "1601-01-01T12:34:56"
104735               DISPLAY "Test 2 failed: " str END-DISPLAY
104736           END-IF
104737
104738           MOVE FUNCTION FORMATTED-DATETIME
104739                    ("YYYYDDDThhmmss+hhmm", 1, 45296, -754)
104740               TO str
104741           IF str <> "1601001T123456-1234"
104742               DISPLAY "Test 3 failed: " str END-DISPLAY
104743           END-IF
104744
104745           MOVE FUNCTION FORMATTED-DATETIME
104746                    ("YYYYDDDThhmmss+hhmm", 1, 45296)
104747               TO str
104748           IF str <> "1601001T123456+0000"
104749               DISPLAY "Test 4 failed: " str END-DISPLAY
104750           END-IF
104751
104752           *> Test underflow to next day due to offset
104753           MOVE FUNCTION FORMATTED-DATETIME
104754                    ("YYYYDDDThhmmss.sssssssssZ", 150846, 0,
104755                     1)
104756               TO str
104757           IF str <> "2013365T235900.000000000Z"
104758               DISPLAY "Test 5 failed: " str END-DISPLAY
104759           END-IF
104760
104761           STOP RUN.
104762_ATEOF
104763
104764
104765{ set +x
104766$as_echo "$at_srcdir/run_functions.at:1122: \$COMPILE prog.cob"
104767at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1122"
104768( $at_check_trace; $COMPILE prog.cob
104769) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104770at_status=$? at_failed=false
104771$at_check_filter
104772at_fn_diff_devnull "$at_stderr" || at_failed=:
104773at_fn_diff_devnull "$at_stdout" || at_failed=:
104774at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1122"
104775$at_failed && at_fn_log_failure
104776$at_traceon; }
104777
104778{ set +x
104779$as_echo "$at_srcdir/run_functions.at:1123: \$COBCRUN_DIRECT ./prog"
104780at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1123"
104781( $at_check_trace; $COBCRUN_DIRECT ./prog
104782) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104783at_status=$? at_failed=false
104784$at_check_filter
104785at_fn_diff_devnull "$at_stderr" || at_failed=:
104786at_fn_diff_devnull "$at_stdout" || at_failed=:
104787at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1123"
104788$at_failed && at_fn_log_failure
104789$at_traceon; }
104790
104791
104792  set +x
104793  $at_times_p && times >"$at_times_file"
104794) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104795read at_status <"$at_status_file"
104796#AT_STOP_866
104797#AT_START_867
104798at_fn_group_banner 867 'run_functions.at:1128' \
104799  "FUNCTION FORMATTED-DATETIME with ref modding" "   " 4
104800at_xfail=no
104801(
104802  $as_echo "867. $at_setup_line: testing $at_desc ..."
104803  $at_traceon
104804
104805
104806
104807cat >prog.cob <<'_ATEOF'
104808
104809       IDENTIFICATION   DIVISION.
104810       PROGRAM-ID.      prog.
104811       DATA             DIVISION.
104812       WORKING-STORAGE  SECTION.
104813       01  str          PIC X(04).
104814       PROCEDURE        DIVISION.
104815           MOVE FUNCTION FORMATTED-DATETIME
104816               ("YYYYMMDDThhmmss", 1, 1) (3:4)
104817             TO STR
104818           IF STR NOT = '0101'
104819              DISPLAY STR
104820              END-DISPLAY
104821           END-IF
104822           STOP RUN.
104823_ATEOF
104824
104825
104826{ set +x
104827$as_echo "$at_srcdir/run_functions.at:1148: \$COMPILE prog.cob"
104828at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1148"
104829( $at_check_trace; $COMPILE prog.cob
104830) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104831at_status=$? at_failed=false
104832$at_check_filter
104833at_fn_diff_devnull "$at_stderr" || at_failed=:
104834at_fn_diff_devnull "$at_stdout" || at_failed=:
104835at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1148"
104836$at_failed && at_fn_log_failure
104837$at_traceon; }
104838
104839{ set +x
104840$as_echo "$at_srcdir/run_functions.at:1149: \$COBCRUN_DIRECT ./prog"
104841at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1149"
104842( $at_check_trace; $COBCRUN_DIRECT ./prog
104843) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104844at_status=$? at_failed=false
104845$at_check_filter
104846at_fn_diff_devnull "$at_stderr" || at_failed=:
104847at_fn_diff_devnull "$at_stdout" || at_failed=:
104848at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1149"
104849$at_failed && at_fn_log_failure
104850$at_traceon; }
104851
104852
104853  set +x
104854  $at_times_p && times >"$at_times_file"
104855) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104856read at_status <"$at_status_file"
104857#AT_STOP_867
104858#AT_START_868
104859at_fn_group_banner 868 'run_functions.at:1154' \
104860  "FUNCTION FORMATTED-TIME" "                        " 4
104861at_xfail=no
104862(
104863  $as_echo "868. $at_setup_line: testing $at_desc ..."
104864  $at_traceon
104865
104866
104867
104868cat >prog.cob <<'_ATEOF'
104869
104870       IDENTIFICATION   DIVISION.
104871       PROGRAM-ID.      prog.
104872       DATA             DIVISION.
104873       WORKING-STORAGE  SECTION.
104874       01  str          PIC X(20).
104875       PROCEDURE        DIVISION.
104876      *>   Test normal inputs.
104877           MOVE FUNCTION FORMATTED-TIME ( "hhmmss", 45296 ) TO str
104878           IF str <> "123456"
104879               DISPLAY "Test 1 failed: " str END-DISPLAY
104880           END-IF
104881
104882           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss", 45296 ) TO str
104883           IF str <> "12:34:56"
104884               DISPLAY "Test 2 failed: " str END-DISPLAY
104885           END-IF
104886
104887           MOVE FUNCTION FORMATTED-TIME ( "hhmmssZ", 86399, -1 ) TO str
104888           IF str <> "000059Z"
104889               DISPLAY "Test 3 failed: " str END-DISPLAY
104890           END-IF
104891
104892           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ssZ", 45296)
104893               TO str
104894           IF str <> "12:34:56Z"
104895               DISPLAY "Test 4 failed: " str END-DISPLAY
104896           END-IF
104897
104898           MOVE FUNCTION FORMATTED-TIME ( "hhmmss.ss", 45296.78 ) TO str
104899           IF str <> "123456.78"
104900               DISPLAY "Test 5 failed: " str END-DISPLAY
104901           END-IF
104902
104903           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss.ssZ", 0, 120)
104904               TO str
104905           IF str <> "22:00:00.00Z"
104906               DISPLAY "Test 6 failed: " str END-DISPLAY
104907           END-IF
104908
104909           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 45296)
104910               TO str
104911           IF str <> "123456+0000"
104912               DISPLAY "Test 7 failed: " str END-DISPLAY
104913           END-IF
104914
104915           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss+hh:mm", 45296, 0 )
104916               TO str
104917           IF str <> "12:34:56+00:00"
104918               DISPLAY "Test 8 failed: " str END-DISPLAY
104919           END-IF
104920
104921           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 45296, -754)
104922               TO str
104923           IF str <> "123456-1234"
104924               DISPLAY "Test 9 failed: " str END-DISPLAY
104925           END-IF
104926
104927      *>   Test with invalid/missing offset times.
104928           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 1, 3000 )
104929               TO str
104930           IF str <> SPACES
104931                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
104932                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 60"
104933               DISPLAY "Test 10 failed: " str END-DISPLAY
104934           END-IF
104935
104936           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 1, -3000 )
104937               TO str
104938           IF str <> SPACES
104939                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
104940                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 68"
104941               DISPLAY "Test 11 failed: " str END-DISPLAY
104942           END-IF
104943
104944           STOP RUN.
104945_ATEOF
104946
104947
104948{ set +x
104949$as_echo "$at_srcdir/run_functions.at:1235: \$COMPILE prog.cob"
104950at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1235"
104951( $at_check_trace; $COMPILE prog.cob
104952) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104953at_status=$? at_failed=false
104954$at_check_filter
104955at_fn_diff_devnull "$at_stderr" || at_failed=:
104956at_fn_diff_devnull "$at_stdout" || at_failed=:
104957at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1235"
104958$at_failed && at_fn_log_failure
104959$at_traceon; }
104960
104961{ set +x
104962$as_echo "$at_srcdir/run_functions.at:1236: \$COBCRUN_DIRECT ./prog"
104963at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1236"
104964( $at_check_trace; $COBCRUN_DIRECT ./prog
104965) >>"$at_stdout" 2>>"$at_stderr" 5>&-
104966at_status=$? at_failed=false
104967$at_check_filter
104968at_fn_diff_devnull "$at_stderr" || at_failed=:
104969at_fn_diff_devnull "$at_stdout" || at_failed=:
104970at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1236"
104971$at_failed && at_fn_log_failure
104972$at_traceon; }
104973
104974
104975  set +x
104976  $at_times_p && times >"$at_times_file"
104977) 5>&1 2>&1 7>&- | eval $at_tee_pipe
104978read at_status <"$at_status_file"
104979#AT_STOP_868
104980#AT_START_869
104981at_fn_group_banner 869 'run_functions.at:1241' \
104982  "FUNCTION FORMATTED-TIME DP.COMMA" "               " 4
104983at_xfail=no
104984(
104985  $as_echo "869. $at_setup_line: testing $at_desc ..."
104986  $at_traceon
104987
104988
104989
104990cat >prog.cob <<'_ATEOF'
104991
104992       IDENTIFICATION   DIVISION.
104993       PROGRAM-ID.      prog.
104994
104995       ENVIRONMENT      DIVISION.
104996       CONFIGURATION    SECTION.
104997       SPECIAL-NAMES.
104998           DECIMAL-POINT IS COMMA.
104999
105000       DATA             DIVISION.
105001       WORKING-STORAGE  SECTION.
105002       01  str          PIC X(11).
105003
105004       PROCEDURE        DIVISION.
105005           MOVE FUNCTION FORMATTED-TIME ("hh:mm:ss,ss", 45296) TO str
105006           IF str <> "12:34:56,00"
105007               DISPLAY "Test 1 failed: " str END-DISPLAY
105008           END-IF
105009
105010           STOP RUN.
105011_ATEOF
105012
105013
105014{ set +x
105015$as_echo "$at_srcdir/run_functions.at:1266: \$COMPILE prog.cob"
105016at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1266"
105017( $at_check_trace; $COMPILE prog.cob
105018) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105019at_status=$? at_failed=false
105020$at_check_filter
105021at_fn_diff_devnull "$at_stderr" || at_failed=:
105022at_fn_diff_devnull "$at_stdout" || at_failed=:
105023at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1266"
105024$at_failed && at_fn_log_failure
105025$at_traceon; }
105026
105027{ set +x
105028$as_echo "$at_srcdir/run_functions.at:1267: \$COBCRUN_DIRECT ./prog"
105029at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1267"
105030( $at_check_trace; $COBCRUN_DIRECT ./prog
105031) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105032at_status=$? at_failed=false
105033$at_check_filter
105034at_fn_diff_devnull "$at_stderr" || at_failed=:
105035at_fn_diff_devnull "$at_stdout" || at_failed=:
105036at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1267"
105037$at_failed && at_fn_log_failure
105038$at_traceon; }
105039
105040
105041  set +x
105042  $at_times_p && times >"$at_times_file"
105043) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105044read at_status <"$at_status_file"
105045#AT_STOP_869
105046#AT_START_870
105047at_fn_group_banner 870 'run_functions.at:1272' \
105048  "FUNCTION FORMATTED-TIME with ref modding" "       " 4
105049at_xfail=no
105050(
105051  $as_echo "870. $at_setup_line: testing $at_desc ..."
105052  $at_traceon
105053
105054
105055
105056cat >prog.cob <<'_ATEOF'
105057
105058       IDENTIFICATION   DIVISION.
105059       PROGRAM-ID.      prog.
105060       DATA             DIVISION.
105061       WORKING-STORAGE  SECTION.
105062       01  str          PIC X(04).
105063       PROCEDURE        DIVISION.
105064           MOVE FUNCTION FORMATTED-TIME ("hhmmss", 45296) (3:4)
105065             TO STR
105066           IF STR NOT = '3456'
105067              DISPLAY STR
105068              END-DISPLAY
105069           END-IF
105070           STOP RUN.
105071_ATEOF
105072
105073
105074{ set +x
105075$as_echo "$at_srcdir/run_functions.at:1291: \$COMPILE prog.cob"
105076at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1291"
105077( $at_check_trace; $COMPILE prog.cob
105078) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105079at_status=$? at_failed=false
105080$at_check_filter
105081at_fn_diff_devnull "$at_stderr" || at_failed=:
105082at_fn_diff_devnull "$at_stdout" || at_failed=:
105083at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1291"
105084$at_failed && at_fn_log_failure
105085$at_traceon; }
105086
105087{ set +x
105088$as_echo "$at_srcdir/run_functions.at:1292: \$COBCRUN_DIRECT ./prog"
105089at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1292"
105090( $at_check_trace; $COBCRUN_DIRECT ./prog
105091) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105092at_status=$? at_failed=false
105093$at_check_filter
105094at_fn_diff_devnull "$at_stderr" || at_failed=:
105095at_fn_diff_devnull "$at_stdout" || at_failed=:
105096at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1292"
105097$at_failed && at_fn_log_failure
105098$at_traceon; }
105099
105100
105101  set +x
105102  $at_times_p && times >"$at_times_file"
105103) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105104read at_status <"$at_status_file"
105105#AT_STOP_870
105106#AT_START_871
105107at_fn_group_banner 871 'run_functions.at:1297' \
105108  "FUNCTION FRACTION-PART" "                         " 4
105109at_xfail=no
105110(
105111  $as_echo "871. $at_setup_line: testing $at_desc ..."
105112  $at_traceon
105113
105114
105115
105116cat >prog.cob <<'_ATEOF'
105117
105118       IDENTIFICATION   DIVISION.
105119       PROGRAM-ID.      prog.
105120       DATA             DIVISION.
105121       WORKING-STORAGE  SECTION.
105122       01  TEST-FLD     PIC S9(04)V9(08).
105123       PROCEDURE        DIVISION.
105124           MOVE FUNCTION FRACTION-PART ( 3.12345 )
105125             TO TEST-FLD.
105126           IF TEST-FLD NOT = +0000.12345
105127              DISPLAY 'FRACTION-PART ( +3.12345 ) wrong: ' TEST-FLD
105128              END-DISPLAY
105129           END-IF.
105130           MOVE FUNCTION FRACTION-PART ( -3.12345 )
105131             TO TEST-FLD.
105132           IF TEST-FLD NOT = -0000.12345
105133              DISPLAY 'FRACTION-PART ( -3.12345 ) wrong: ' TEST-FLD
105134              END-DISPLAY
105135           END-IF.
105136           STOP RUN.
105137_ATEOF
105138
105139
105140{ set +x
105141$as_echo "$at_srcdir/run_functions.at:1322: \$COMPILE prog.cob"
105142at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1322"
105143( $at_check_trace; $COMPILE prog.cob
105144) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105145at_status=$? at_failed=false
105146$at_check_filter
105147at_fn_diff_devnull "$at_stderr" || at_failed=:
105148at_fn_diff_devnull "$at_stdout" || at_failed=:
105149at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1322"
105150$at_failed && at_fn_log_failure
105151$at_traceon; }
105152
105153{ set +x
105154$as_echo "$at_srcdir/run_functions.at:1323: \$COBCRUN_DIRECT ./prog"
105155at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1323"
105156( $at_check_trace; $COBCRUN_DIRECT ./prog
105157) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105158at_status=$? at_failed=false
105159$at_check_filter
105160at_fn_diff_devnull "$at_stderr" || at_failed=:
105161at_fn_diff_devnull "$at_stdout" || at_failed=:
105162at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1323"
105163$at_failed && at_fn_log_failure
105164$at_traceon; }
105165
105166
105167  set +x
105168  $at_times_p && times >"$at_times_file"
105169) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105170read at_status <"$at_status_file"
105171#AT_STOP_871
105172#AT_START_872
105173at_fn_group_banner 872 'run_functions.at:1328' \
105174  "FUNCTION HIGHEST-ALGEBRAIC" "                     " 4
105175at_xfail=no
105176(
105177  $as_echo "872. $at_setup_line: testing $at_desc ..."
105178  $at_traceon
105179
105180
105181
105182cat >prog.cob <<'_ATEOF'
105183
105184       IDENTIFICATION   DIVISION.
105185       PROGRAM-ID.      prog.
105186       DATA             DIVISION.
105187       WORKING-STORAGE  SECTION.
105188       01  F1           PIC S999.
105189       01  F2           PIC S9(4) BINARY.
105190       01  F3           PIC 99V9(3).
105191       01  F4           PIC $**,**9.99BCR.
105192       01  F5           PIC $**,**9.99.
105193       01  F6           USAGE BINARY-CHAR SIGNED.
105194       01  F7           USAGE BINARY-CHAR UNSIGNED.
105195       01  TEST-FLD     PIC S9(08)V9(04).
105196       PROCEDURE        DIVISION.
105197           MOVE FUNCTION HIGHEST-ALGEBRAIC (F1)
105198             TO TEST-FLD.
105199           IF TEST-FLD NOT = 999
105200              DISPLAY "Test 1 fail: " TEST-FLD
105201              END-DISPLAY
105202           END-IF.
105203           MOVE FUNCTION HIGHEST-ALGEBRAIC (F2)
105204             TO TEST-FLD.
105205           IF TEST-FLD NOT = 9999
105206              DISPLAY "Test 2 fail: " TEST-FLD
105207              END-DISPLAY
105208           END-IF.
105209           MOVE FUNCTION HIGHEST-ALGEBRAIC (F3)
105210             TO TEST-FLD.
105211           IF TEST-FLD NOT = 99.999
105212              DISPLAY "Test 3 fail: " TEST-FLD
105213              END-DISPLAY
105214           END-IF.
105215           MOVE FUNCTION HIGHEST-ALGEBRAIC (F4)
105216             TO TEST-FLD.
105217           IF TEST-FLD NOT = 99999.99
105218              DISPLAY "Test 4 fail: " TEST-FLD
105219              END-DISPLAY
105220           END-IF.
105221           MOVE FUNCTION HIGHEST-ALGEBRAIC (F5)
105222             TO TEST-FLD.
105223           IF TEST-FLD NOT = 99999.99
105224              DISPLAY "Test 5 fail: " TEST-FLD
105225              END-DISPLAY
105226           END-IF.
105227           MOVE FUNCTION HIGHEST-ALGEBRAIC (F6)
105228             TO TEST-FLD.
105229           IF TEST-FLD NOT = 127
105230              DISPLAY "Test 6 fail: " TEST-FLD
105231              END-DISPLAY
105232           END-IF.
105233           MOVE FUNCTION HIGHEST-ALGEBRAIC (F7)
105234             TO TEST-FLD.
105235           IF TEST-FLD NOT = 255
105236              DISPLAY "Test 7 fail: " TEST-FLD
105237              END-DISPLAY
105238           END-IF.
105239           STOP RUN.
105240_ATEOF
105241
105242
105243{ set +x
105244$as_echo "$at_srcdir/run_functions.at:1390: \$COMPILE prog.cob"
105245at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1390"
105246( $at_check_trace; $COMPILE prog.cob
105247) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105248at_status=$? at_failed=false
105249$at_check_filter
105250at_fn_diff_devnull "$at_stderr" || at_failed=:
105251at_fn_diff_devnull "$at_stdout" || at_failed=:
105252at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1390"
105253$at_failed && at_fn_log_failure
105254$at_traceon; }
105255
105256{ set +x
105257$as_echo "$at_srcdir/run_functions.at:1391: \$COBCRUN_DIRECT ./prog"
105258at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1391"
105259( $at_check_trace; $COBCRUN_DIRECT ./prog
105260) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105261at_status=$? at_failed=false
105262$at_check_filter
105263at_fn_diff_devnull "$at_stderr" || at_failed=:
105264at_fn_diff_devnull "$at_stdout" || at_failed=:
105265at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1391"
105266$at_failed && at_fn_log_failure
105267$at_traceon; }
105268
105269
105270  set +x
105271  $at_times_p && times >"$at_times_file"
105272) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105273read at_status <"$at_status_file"
105274#AT_STOP_872
105275#AT_START_873
105276at_fn_group_banner 873 'run_functions.at:1396' \
105277  "FUNCTION INTEGER" "                               " 4
105278at_xfail=no
105279(
105280  $as_echo "873. $at_setup_line: testing $at_desc ..."
105281  $at_traceon
105282
105283
105284
105285cat >prog.cob <<'_ATEOF'
105286
105287       IDENTIFICATION   DIVISION.
105288       PROGRAM-ID.      prog.
105289       DATA             DIVISION.
105290       WORKING-STORAGE  SECTION.
105291       01  X            PIC   S9(4)V9(4) VALUE -1.5.
105292       01  Y            PIC   9(12)      VALUE 600851475143.
105293       01  TEST-FLD     PIC S9(14)V9(08).
105294       PROCEDURE        DIVISION.
105295           MOVE FUNCTION INTEGER ( X )
105296             TO TEST-FLD.
105297           IF TEST-FLD NOT = -2
105298              DISPLAY 'INTEGER ( X ) wrong: ' TEST-FLD
105299              END-DISPLAY
105300           END-IF.
105301           MOVE FUNCTION INTEGER ( Y / 71 )
105302             TO TEST-FLD.
105303           IF TEST-FLD NOT = 8462696833
105304              DISPLAY 'INTEGER ( Y / 71 ) wrong: ' TEST-FLD
105305              END-DISPLAY
105306           END-IF.
105307           STOP RUN.
105308_ATEOF
105309
105310
105311{ set +x
105312$as_echo "$at_srcdir/run_functions.at:1423: \$COMPILE prog.cob"
105313at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1423"
105314( $at_check_trace; $COMPILE prog.cob
105315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105316at_status=$? at_failed=false
105317$at_check_filter
105318at_fn_diff_devnull "$at_stderr" || at_failed=:
105319at_fn_diff_devnull "$at_stdout" || at_failed=:
105320at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1423"
105321$at_failed && at_fn_log_failure
105322$at_traceon; }
105323
105324{ set +x
105325$as_echo "$at_srcdir/run_functions.at:1424: \$COBCRUN_DIRECT ./prog"
105326at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1424"
105327( $at_check_trace; $COBCRUN_DIRECT ./prog
105328) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105329at_status=$? at_failed=false
105330$at_check_filter
105331at_fn_diff_devnull "$at_stderr" || at_failed=:
105332at_fn_diff_devnull "$at_stdout" || at_failed=:
105333at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1424"
105334$at_failed && at_fn_log_failure
105335$at_traceon; }
105336
105337
105338  set +x
105339  $at_times_p && times >"$at_times_file"
105340) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105341read at_status <"$at_status_file"
105342#AT_STOP_873
105343#AT_START_874
105344at_fn_group_banner 874 'run_functions.at:1429' \
105345  "FUNCTION INTEGER-OF-DATE" "                       " 4
105346at_xfail=no
105347(
105348  $as_echo "874. $at_setup_line: testing $at_desc ..."
105349  $at_traceon
105350
105351
105352
105353cat >prog.cob <<'_ATEOF'
105354
105355       IDENTIFICATION   DIVISION.
105356       PROGRAM-ID.      prog.
105357       DATA             DIVISION.
105358       WORKING-STORAGE  SECTION.
105359       01  TEST-FLD     PIC S9(09)V9(02).
105360       PROCEDURE        DIVISION.
105361           MOVE FUNCTION INTEGER-OF-DATE ( 20000925 )
105362             TO TEST-FLD.
105363           IF TEST-FLD NOT = 000146000
105364              DISPLAY TEST-FLD
105365              END-DISPLAY
105366           END-IF.
105367           STOP RUN.
105368_ATEOF
105369
105370
105371{ set +x
105372$as_echo "$at_srcdir/run_functions.at:1448: \$COMPILE prog.cob"
105373at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1448"
105374( $at_check_trace; $COMPILE prog.cob
105375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105376at_status=$? at_failed=false
105377$at_check_filter
105378at_fn_diff_devnull "$at_stderr" || at_failed=:
105379at_fn_diff_devnull "$at_stdout" || at_failed=:
105380at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1448"
105381$at_failed && at_fn_log_failure
105382$at_traceon; }
105383
105384{ set +x
105385$as_echo "$at_srcdir/run_functions.at:1449: \$COBCRUN_DIRECT ./prog"
105386at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1449"
105387( $at_check_trace; $COBCRUN_DIRECT ./prog
105388) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105389at_status=$? at_failed=false
105390$at_check_filter
105391at_fn_diff_devnull "$at_stderr" || at_failed=:
105392at_fn_diff_devnull "$at_stdout" || at_failed=:
105393at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1449"
105394$at_failed && at_fn_log_failure
105395$at_traceon; }
105396
105397
105398  set +x
105399  $at_times_p && times >"$at_times_file"
105400) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105401read at_status <"$at_status_file"
105402#AT_STOP_874
105403#AT_START_875
105404at_fn_group_banner 875 'run_functions.at:1454' \
105405  "FUNCTION INTEGER-OF-DAY" "                        " 4
105406at_xfail=no
105407(
105408  $as_echo "875. $at_setup_line: testing $at_desc ..."
105409  $at_traceon
105410
105411
105412
105413cat >prog.cob <<'_ATEOF'
105414
105415       IDENTIFICATION   DIVISION.
105416       PROGRAM-ID.      prog.
105417       DATA             DIVISION.
105418       WORKING-STORAGE  SECTION.
105419       01  TEST-FLD     PIC S9(09)V9(02).
105420       PROCEDURE        DIVISION.
105421           MOVE FUNCTION INTEGER-OF-DAY ( 2000269 )
105422             TO TEST-FLD.
105423           IF TEST-FLD NOT = 000146000
105424              DISPLAY TEST-FLD
105425              END-DISPLAY
105426           END-IF.
105427           STOP RUN.
105428_ATEOF
105429
105430
105431{ set +x
105432$as_echo "$at_srcdir/run_functions.at:1473: \$COMPILE prog.cob"
105433at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1473"
105434( $at_check_trace; $COMPILE prog.cob
105435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105436at_status=$? at_failed=false
105437$at_check_filter
105438at_fn_diff_devnull "$at_stderr" || at_failed=:
105439at_fn_diff_devnull "$at_stdout" || at_failed=:
105440at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1473"
105441$at_failed && at_fn_log_failure
105442$at_traceon; }
105443
105444{ set +x
105445$as_echo "$at_srcdir/run_functions.at:1474: \$COBCRUN_DIRECT ./prog"
105446at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1474"
105447( $at_check_trace; $COBCRUN_DIRECT ./prog
105448) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105449at_status=$? at_failed=false
105450$at_check_filter
105451at_fn_diff_devnull "$at_stderr" || at_failed=:
105452at_fn_diff_devnull "$at_stdout" || at_failed=:
105453at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1474"
105454$at_failed && at_fn_log_failure
105455$at_traceon; }
105456
105457
105458  set +x
105459  $at_times_p && times >"$at_times_file"
105460) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105461read at_status <"$at_status_file"
105462#AT_STOP_875
105463#AT_START_876
105464at_fn_group_banner 876 'run_functions.at:1479' \
105465  "FUNCTION INTEGER-OF-FORMATTED-DATE" "             " 4
105466at_xfail=no
105467(
105468  $as_echo "876. $at_setup_line: testing $at_desc ..."
105469  $at_traceon
105470
105471
105472
105473cat >prog.cob <<'_ATEOF'
105474
105475       IDENTIFICATION   DIVISION.
105476       PROGRAM-ID.      prog.
105477       DATA             DIVISION.
105478       WORKING-STORAGE  SECTION.
105479       01  day-int      PIC 9(9).
105480
105481       PROCEDURE        DIVISION.
105482           *> The date 2013-12-30 is used as it can also be used to
105483           *> check the conversion of dates in week form.
105484           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
105485                   ("YYYY-MM-DD", "2013-12-30")
105486               TO day-int
105487           IF day-int <> 150844
105488               DISPLAY "Test 1 failed: " day-int END-DISPLAY
105489           END-IF
105490
105491           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
105492                   ("YYYY-DDD", "2013-364")
105493               TO day-int
105494           IF day-int <> 150844
105495               DISPLAY "Test 2 failed: " day-int END-DISPLAY
105496           END-IF
105497
105498           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
105499                   ("YYYY-Www-D", "2014-W01-1")
105500               TO day-int
105501           IF day-int <> 150844
105502               DISPLAY "Test 3 failed: " day-int END-DISPLAY
105503           END-IF
105504
105505           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
105506                   ("YYYY-MM-DDThh:mm:ss", "2013-12-30T12:34:56")
105507               TO day-int
105508           IF day-int <> 150844
105509               DISPLAY "Test 4 failed: " day-int END-DISPLAY
105510           END-IF
105511
105512           STOP RUN.
105513_ATEOF
105514
105515
105516{ set +x
105517$as_echo "$at_srcdir/run_functions.at:1523: \$COMPILE prog.cob"
105518at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1523"
105519( $at_check_trace; $COMPILE prog.cob
105520) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105521at_status=$? at_failed=false
105522$at_check_filter
105523at_fn_diff_devnull "$at_stderr" || at_failed=:
105524at_fn_diff_devnull "$at_stdout" || at_failed=:
105525at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1523"
105526$at_failed && at_fn_log_failure
105527$at_traceon; }
105528
105529{ set +x
105530$as_echo "$at_srcdir/run_functions.at:1524: \$COBCRUN_DIRECT ./prog"
105531at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1524"
105532( $at_check_trace; $COBCRUN_DIRECT ./prog
105533) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105534at_status=$? at_failed=false
105535$at_check_filter
105536at_fn_diff_devnull "$at_stderr" || at_failed=:
105537at_fn_diff_devnull "$at_stdout" || at_failed=:
105538at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1524"
105539$at_failed && at_fn_log_failure
105540$at_traceon; }
105541
105542
105543  set +x
105544  $at_times_p && times >"$at_times_file"
105545) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105546read at_status <"$at_status_file"
105547#AT_STOP_876
105548#AT_START_877
105549at_fn_group_banner 877 'run_functions.at:1529' \
105550  "FUNCTION INTEGER-PART" "                          " 4
105551at_xfail=no
105552(
105553  $as_echo "877. $at_setup_line: testing $at_desc ..."
105554  $at_traceon
105555
105556
105557
105558cat >prog.cob <<'_ATEOF'
105559
105560       IDENTIFICATION   DIVISION.
105561       PROGRAM-ID.      prog.
105562       DATA             DIVISION.
105563       WORKING-STORAGE  SECTION.
105564       01  X   PIC   S9(4)V9(4) VALUE -1.5.
105565       01  TEST-FLD     PIC S9(04)V9(02).
105566       PROCEDURE        DIVISION.
105567           MOVE FUNCTION INTEGER-PART ( X )
105568             TO TEST-FLD.
105569           IF TEST-FLD NOT = -1
105570              DISPLAY TEST-FLD
105571              END-DISPLAY
105572           END-IF.
105573           STOP RUN.
105574_ATEOF
105575
105576
105577{ set +x
105578$as_echo "$at_srcdir/run_functions.at:1549: \$COMPILE prog.cob"
105579at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1549"
105580( $at_check_trace; $COMPILE prog.cob
105581) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105582at_status=$? at_failed=false
105583$at_check_filter
105584at_fn_diff_devnull "$at_stderr" || at_failed=:
105585at_fn_diff_devnull "$at_stdout" || at_failed=:
105586at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1549"
105587$at_failed && at_fn_log_failure
105588$at_traceon; }
105589
105590{ set +x
105591$as_echo "$at_srcdir/run_functions.at:1550: \$COBCRUN_DIRECT ./prog"
105592at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1550"
105593( $at_check_trace; $COBCRUN_DIRECT ./prog
105594) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105595at_status=$? at_failed=false
105596$at_check_filter
105597at_fn_diff_devnull "$at_stderr" || at_failed=:
105598at_fn_diff_devnull "$at_stdout" || at_failed=:
105599at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1550"
105600$at_failed && at_fn_log_failure
105601$at_traceon; }
105602
105603
105604  set +x
105605  $at_times_p && times >"$at_times_file"
105606) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105607read at_status <"$at_status_file"
105608#AT_STOP_877
105609#AT_START_878
105610at_fn_group_banner 878 'run_functions.at:1555' \
105611  "FUNCTION LENGTH" "                                " 4
105612at_xfail=no
105613(
105614  $as_echo "878. $at_setup_line: testing $at_desc ..."
105615  $at_traceon
105616
105617
105618
105619cat >prog.cob <<'_ATEOF'
105620
105621       IDENTIFICATION   DIVISION.
105622       PROGRAM-ID.      prog.
105623       DATA             DIVISION.
105624       WORKING-STORAGE  SECTION.
105625       01  X   PIC      S9(4)V9(4) VALUE -1.5.
105626       01  N   PIC      N(9).
105627       01  TEST-FLD     PIC S9(04)V9(02).
105628       PROCEDURE        DIVISION.
105629           MOVE FUNCTION LENGTH ( X )
105630             TO TEST-FLD
105631           IF TEST-FLD NOT = 8
105632              DISPLAY 'LENGTH "00128" wrong: ' TEST-FLD
105633              END-DISPLAY
105634           END-IF
105635           MOVE FUNCTION LENGTH ( N )
105636             TO TEST-FLD
105637           IF TEST-FLD NOT = 9
105638              DISPLAY 'LENGTH N(9) wrong: ' TEST-FLD
105639              END-DISPLAY
105640           END-IF
105641
105642           MOVE FUNCTION LENGTH ( '00128' )
105643             TO TEST-FLD
105644           IF TEST-FLD NOT = 5
105645              DISPLAY 'LENGTH "00128" wrong: ' TEST-FLD
105646              END-DISPLAY
105647           END-IF
105648      *    note: we currently do not support items of category boolean...
105649      *>   MOVE FUNCTION LENGTH ( b'100' )
105650      *>     TO TEST-FLD
105651      *>   IF TEST-FLD NOT = 3
105652      *>      DISPLAY 'LENGTH b"100" wrong: ' TEST-FLD
105653      *>      END-DISPLAY
105654      *>   END-IF
105655           MOVE FUNCTION LENGTH ( x'a0' )
105656             TO TEST-FLD
105657           IF TEST-FLD NOT = 1
105658              DISPLAY 'LENGTH x"a0" wrong: ' TEST-FLD
105659              END-DISPLAY
105660           END-IF
105661           MOVE FUNCTION LENGTH ( z'a0' )
105662             TO TEST-FLD
105663           IF TEST-FLD NOT = 3
105664              DISPLAY 'LENGTH z"a0" wrong: ' TEST-FLD
105665              END-DISPLAY
105666           END-IF
105667           MOVE FUNCTION LENGTH ( n'a0' )
105668             TO TEST-FLD
105669           IF TEST-FLD NOT = 2
105670              DISPLAY 'LENGTH n"a0" wrong: ' TEST-FLD
105671              END-DISPLAY
105672           END-IF
105673           STOP RUN.
105674_ATEOF
105675
105676
105677{ set +x
105678$as_echo "$at_srcdir/run_functions.at:1614: \$COMPILE prog.cob"
105679at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1614"
105680( $at_check_trace; $COMPILE prog.cob
105681) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105682at_status=$? at_failed=false
105683$at_check_filter
105684echo >>"$at_stderr"; $as_echo "prog.cob:7: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
105685prog.cob:48: warning: handling of national literal is unfinished; implementation is likely to be changed
105686" | \
105687  $at_diff - "$at_stderr" || at_failed=:
105688at_fn_diff_devnull "$at_stdout" || at_failed=:
105689at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1614"
105690$at_failed && at_fn_log_failure
105691$at_traceon; }
105692
105693{ set +x
105694$as_echo "$at_srcdir/run_functions.at:1618: \$COBCRUN_DIRECT ./prog"
105695at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1618"
105696( $at_check_trace; $COBCRUN_DIRECT ./prog
105697) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105698at_status=$? at_failed=false
105699$at_check_filter
105700at_fn_diff_devnull "$at_stderr" || at_failed=:
105701at_fn_diff_devnull "$at_stdout" || at_failed=:
105702at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1618"
105703$at_failed && at_fn_log_failure
105704$at_traceon; }
105705
105706
105707  set +x
105708  $at_times_p && times >"$at_times_file"
105709) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105710read at_status <"$at_status_file"
105711#AT_STOP_878
105712#AT_START_879
105713at_fn_group_banner 879 'run_functions.at:1623' \
105714  "FUNCTION LOCALE-COMPARE" "                        " 4
105715at_xfail=no
105716(
105717  $as_echo "879. $at_setup_line: testing $at_desc ..."
105718  $at_traceon
105719
105720
105721
105722cat >prog.cob <<'_ATEOF'
105723
105724       IDENTIFICATION   DIVISION.
105725       PROGRAM-ID.      prog.
105726       DATA             DIVISION.
105727       WORKING-STORAGE  SECTION.
105728       PROCEDURE        DIVISION.
105729           IF FUNCTION LOCALE-COMPARE ("A", "B") NOT = "<"
105730              DISPLAY "Test 1 fail"
105731              END-DISPLAY
105732           END-IF.
105733           IF FUNCTION LOCALE-COMPARE ("B", "A") NOT = ">"
105734              DISPLAY "Test 2 fail"
105735              END-DISPLAY
105736           END-IF.
105737           IF FUNCTION LOCALE-COMPARE ("A", "A") NOT = "="
105738              DISPLAY "Test 3 fail"
105739              END-DISPLAY
105740           END-IF.
105741           STOP RUN.
105742_ATEOF
105743
105744
105745{ set +x
105746$as_echo "$at_srcdir/run_functions.at:1647: \$COMPILE prog.cob"
105747at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1647"
105748( $at_check_trace; $COMPILE prog.cob
105749) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105750at_status=$? at_failed=false
105751$at_check_filter
105752at_fn_diff_devnull "$at_stderr" || at_failed=:
105753at_fn_diff_devnull "$at_stdout" || at_failed=:
105754at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1647"
105755$at_failed && at_fn_log_failure
105756$at_traceon; }
105757
105758{ set +x
105759$as_echo "$at_srcdir/run_functions.at:1648: \$COBCRUN_DIRECT ./prog"
105760at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1648"
105761( $at_check_trace; $COBCRUN_DIRECT ./prog
105762) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105763at_status=$? at_failed=false
105764$at_check_filter
105765at_fn_diff_devnull "$at_stderr" || at_failed=:
105766at_fn_diff_devnull "$at_stdout" || at_failed=:
105767at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1648"
105768$at_failed && at_fn_log_failure
105769$at_traceon; }
105770
105771
105772  set +x
105773  $at_times_p && times >"$at_times_file"
105774) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105775read at_status <"$at_status_file"
105776#AT_STOP_879
105777#AT_START_880
105778at_fn_group_banner 880 'run_functions.at:1653' \
105779  "FUNCTION LOCALE-DATE" "                           " 4
105780at_xfail=no
105781(
105782  $as_echo "880. $at_setup_line: testing $at_desc ..."
105783  $at_traceon
105784
105785
105786
105787cat >prog.cob <<'_ATEOF'
105788
105789       IDENTIFICATION   DIVISION.
105790       PROGRAM-ID.      prog.
105791       DATA             DIVISION.
105792       WORKING-STORAGE  SECTION.
105793       01  X   PIC   X(32)   VALUE SPACES.
105794       PROCEDURE        DIVISION.
105795           MOVE FUNCTION LOCALE-DATE ( "19630302" ) TO X.
105796           IF X NOT = SPACES
105797                DISPLAY "OK"
105798                END-DISPLAY
105799           END-IF.
105800           STOP RUN.
105801_ATEOF
105802
105803
105804{ set +x
105805$as_echo "$at_srcdir/run_functions.at:1671: \$COMPILE prog.cob"
105806at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1671"
105807( $at_check_trace; $COMPILE prog.cob
105808) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105809at_status=$? at_failed=false
105810$at_check_filter
105811at_fn_diff_devnull "$at_stderr" || at_failed=:
105812at_fn_diff_devnull "$at_stdout" || at_failed=:
105813at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1671"
105814$at_failed && at_fn_log_failure
105815$at_traceon; }
105816
105817{ set +x
105818$as_echo "$at_srcdir/run_functions.at:1672: \$COBCRUN_DIRECT ./prog"
105819at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1672"
105820( $at_check_trace; $COBCRUN_DIRECT ./prog
105821) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105822at_status=$? at_failed=false
105823$at_check_filter
105824at_fn_diff_devnull "$at_stderr" || at_failed=:
105825echo >>"$at_stdout"; $as_echo "OK
105826" | \
105827  $at_diff - "$at_stdout" || at_failed=:
105828at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1672"
105829$at_failed && at_fn_log_failure
105830$at_traceon; }
105831
105832
105833  set +x
105834  $at_times_p && times >"$at_times_file"
105835) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105836read at_status <"$at_status_file"
105837#AT_STOP_880
105838#AT_START_881
105839at_fn_group_banner 881 'run_functions.at:1679' \
105840  "FUNCTION LOCALE-TIME" "                           " 4
105841at_xfail=no
105842(
105843  $as_echo "881. $at_setup_line: testing $at_desc ..."
105844  $at_traceon
105845
105846
105847
105848cat >prog.cob <<'_ATEOF'
105849
105850       IDENTIFICATION   DIVISION.
105851       PROGRAM-ID.      prog.
105852       DATA             DIVISION.
105853       WORKING-STORAGE  SECTION.
105854       01  X   PIC   X(32)   VALUE SPACES.
105855       PROCEDURE        DIVISION.
105856           MOVE FUNCTION LOCALE-TIME ( "233012" ) TO X.
105857           IF X NOT = SPACES
105858                DISPLAY "OK"
105859                END-DISPLAY
105860           END-IF.
105861           STOP RUN.
105862_ATEOF
105863
105864
105865{ set +x
105866$as_echo "$at_srcdir/run_functions.at:1697: \$COMPILE prog.cob"
105867at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1697"
105868( $at_check_trace; $COMPILE prog.cob
105869) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105870at_status=$? at_failed=false
105871$at_check_filter
105872at_fn_diff_devnull "$at_stderr" || at_failed=:
105873at_fn_diff_devnull "$at_stdout" || at_failed=:
105874at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1697"
105875$at_failed && at_fn_log_failure
105876$at_traceon; }
105877
105878{ set +x
105879$as_echo "$at_srcdir/run_functions.at:1698: \$COBCRUN_DIRECT ./prog"
105880at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1698"
105881( $at_check_trace; $COBCRUN_DIRECT ./prog
105882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105883at_status=$? at_failed=false
105884$at_check_filter
105885at_fn_diff_devnull "$at_stderr" || at_failed=:
105886echo >>"$at_stdout"; $as_echo "OK
105887" | \
105888  $at_diff - "$at_stdout" || at_failed=:
105889at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1698"
105890$at_failed && at_fn_log_failure
105891$at_traceon; }
105892
105893
105894  set +x
105895  $at_times_p && times >"$at_times_file"
105896) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105897read at_status <"$at_status_file"
105898#AT_STOP_881
105899#AT_START_882
105900at_fn_group_banner 882 'run_functions.at:1705' \
105901  "FUNCTION LOCALE-TIME-FROM-SECONDS" "              " 4
105902at_xfail=no
105903(
105904  $as_echo "882. $at_setup_line: testing $at_desc ..."
105905  $at_traceon
105906
105907
105908
105909cat >prog.cob <<'_ATEOF'
105910
105911       IDENTIFICATION   DIVISION.
105912       PROGRAM-ID.      prog.
105913       DATA             DIVISION.
105914       WORKING-STORAGE  SECTION.
105915       01  X   PIC   X(32)   VALUE SPACES.
105916       PROCEDURE        DIVISION.
105917           MOVE FUNCTION LOCALE-TIME-FROM-SECONDS ( 33012 ) TO X.
105918           IF X NOT = SPACES
105919              DISPLAY "OK"
105920              END-DISPLAY
105921           END-IF.
105922           STOP RUN.
105923_ATEOF
105924
105925
105926{ set +x
105927$as_echo "$at_srcdir/run_functions.at:1723: \$COMPILE prog.cob"
105928at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1723"
105929( $at_check_trace; $COMPILE prog.cob
105930) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105931at_status=$? at_failed=false
105932$at_check_filter
105933at_fn_diff_devnull "$at_stderr" || at_failed=:
105934at_fn_diff_devnull "$at_stdout" || at_failed=:
105935at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1723"
105936$at_failed && at_fn_log_failure
105937$at_traceon; }
105938
105939{ set +x
105940$as_echo "$at_srcdir/run_functions.at:1724: \$COBCRUN_DIRECT ./prog"
105941at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1724"
105942( $at_check_trace; $COBCRUN_DIRECT ./prog
105943) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105944at_status=$? at_failed=false
105945$at_check_filter
105946at_fn_diff_devnull "$at_stderr" || at_failed=:
105947echo >>"$at_stdout"; $as_echo "OK
105948" | \
105949  $at_diff - "$at_stdout" || at_failed=:
105950at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1724"
105951$at_failed && at_fn_log_failure
105952$at_traceon; }
105953
105954
105955  set +x
105956  $at_times_p && times >"$at_times_file"
105957) 5>&1 2>&1 7>&- | eval $at_tee_pipe
105958read at_status <"$at_status_file"
105959#AT_STOP_882
105960#AT_START_883
105961at_fn_group_banner 883 'run_functions.at:1731' \
105962  "FUNCTION LOG" "                                   " 4
105963at_xfail=no
105964(
105965  $as_echo "883. $at_setup_line: testing $at_desc ..."
105966  $at_traceon
105967
105968
105969
105970cat >prog.cob <<'_ATEOF'
105971
105972       IDENTIFICATION   DIVISION.
105973       PROGRAM-ID.      prog.
105974       DATA             DIVISION.
105975       WORKING-STORAGE  SECTION.
105976       01  Y   PIC   S9V9(35).
105977       PROCEDURE        DIVISION.
105978           MOVE FUNCTION LOG ( 1.5 ) TO Y.
105979           IF Y NOT = 0.40546510810816438197801311546434913
105980              DISPLAY Y
105981              END-DISPLAY
105982           END-IF.
105983           STOP RUN.
105984_ATEOF
105985
105986
105987{ set +x
105988$as_echo "$at_srcdir/run_functions.at:1749: \$COMPILE prog.cob"
105989at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1749"
105990( $at_check_trace; $COMPILE prog.cob
105991) >>"$at_stdout" 2>>"$at_stderr" 5>&-
105992at_status=$? at_failed=false
105993$at_check_filter
105994at_fn_diff_devnull "$at_stderr" || at_failed=:
105995at_fn_diff_devnull "$at_stdout" || at_failed=:
105996at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1749"
105997$at_failed && at_fn_log_failure
105998$at_traceon; }
105999
106000{ set +x
106001$as_echo "$at_srcdir/run_functions.at:1750: \$COBCRUN_DIRECT ./prog"
106002at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1750"
106003( $at_check_trace; $COBCRUN_DIRECT ./prog
106004) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106005at_status=$? at_failed=false
106006$at_check_filter
106007at_fn_diff_devnull "$at_stderr" || at_failed=:
106008at_fn_diff_devnull "$at_stdout" || at_failed=:
106009at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1750"
106010$at_failed && at_fn_log_failure
106011$at_traceon; }
106012
106013
106014  set +x
106015  $at_times_p && times >"$at_times_file"
106016) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106017read at_status <"$at_status_file"
106018#AT_STOP_883
106019#AT_START_884
106020at_fn_group_banner 884 'run_functions.at:1755' \
106021  "FUNCTION LOG10" "                                 " 4
106022at_xfail=no
106023(
106024  $as_echo "884. $at_setup_line: testing $at_desc ..."
106025  $at_traceon
106026
106027
106028
106029cat >prog.cob <<'_ATEOF'
106030
106031       IDENTIFICATION   DIVISION.
106032       PROGRAM-ID.      prog.
106033       DATA             DIVISION.
106034       WORKING-STORAGE  SECTION.
106035       01  Y   PIC   S9V9(35).
106036       PROCEDURE        DIVISION.
106037           MOVE FUNCTION LOG10 ( 1.5 ) TO Y.
106038           IF Y NOT = 0.17609125905568124208128900853062228
106039              DISPLAY Y
106040              END-DISPLAY
106041           END-IF.
106042           STOP RUN.
106043_ATEOF
106044
106045
106046{ set +x
106047$as_echo "$at_srcdir/run_functions.at:1773: \$COMPILE prog.cob"
106048at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1773"
106049( $at_check_trace; $COMPILE prog.cob
106050) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106051at_status=$? at_failed=false
106052$at_check_filter
106053at_fn_diff_devnull "$at_stderr" || at_failed=:
106054at_fn_diff_devnull "$at_stdout" || at_failed=:
106055at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1773"
106056$at_failed && at_fn_log_failure
106057$at_traceon; }
106058
106059{ set +x
106060$as_echo "$at_srcdir/run_functions.at:1774: \$COBCRUN_DIRECT ./prog"
106061at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1774"
106062( $at_check_trace; $COBCRUN_DIRECT ./prog
106063) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106064at_status=$? at_failed=false
106065$at_check_filter
106066at_fn_diff_devnull "$at_stderr" || at_failed=:
106067at_fn_diff_devnull "$at_stdout" || at_failed=:
106068at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1774"
106069$at_failed && at_fn_log_failure
106070$at_traceon; }
106071
106072
106073  set +x
106074  $at_times_p && times >"$at_times_file"
106075) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106076read at_status <"$at_status_file"
106077#AT_STOP_884
106078#AT_START_885
106079at_fn_group_banner 885 'run_functions.at:1779' \
106080  "FUNCTION LOWER-CASE" "                            " 4
106081at_xfail=no
106082(
106083  $as_echo "885. $at_setup_line: testing $at_desc ..."
106084  $at_traceon
106085
106086
106087
106088cat >prog.cob <<'_ATEOF'
106089
106090       IDENTIFICATION   DIVISION.
106091       PROGRAM-ID.      prog.
106092       DATA             DIVISION.
106093       WORKING-STORAGE  SECTION.
106094       01  X            PIC X(10) VALUE "A#B.C%D+E$".
106095       01  TEST-FLD     PIC X(12) VALUE ALL '_'.
106096       PROCEDURE        DIVISION.
106097           STRING FUNCTION LOWER-CASE ( X )
106098                  DELIMITED BY SIZE
106099                  INTO TEST-FLD
106100           END-STRING
106101           IF TEST-FLD NOT = 'a#b.c%d+e$__'
106102              DISPLAY TEST-FLD
106103              END-DISPLAY
106104           END-IF.
106105           STOP RUN.
106106_ATEOF
106107
106108
106109{ set +x
106110$as_echo "$at_srcdir/run_functions.at:1801: \$COMPILE prog.cob"
106111at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1801"
106112( $at_check_trace; $COMPILE prog.cob
106113) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106114at_status=$? at_failed=false
106115$at_check_filter
106116at_fn_diff_devnull "$at_stderr" || at_failed=:
106117at_fn_diff_devnull "$at_stdout" || at_failed=:
106118at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1801"
106119$at_failed && at_fn_log_failure
106120$at_traceon; }
106121
106122{ set +x
106123$as_echo "$at_srcdir/run_functions.at:1802: \$COBCRUN_DIRECT ./prog"
106124at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1802"
106125( $at_check_trace; $COBCRUN_DIRECT ./prog
106126) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106127at_status=$? at_failed=false
106128$at_check_filter
106129at_fn_diff_devnull "$at_stderr" || at_failed=:
106130at_fn_diff_devnull "$at_stdout" || at_failed=:
106131at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1802"
106132$at_failed && at_fn_log_failure
106133$at_traceon; }
106134
106135
106136  set +x
106137  $at_times_p && times >"$at_times_file"
106138) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106139read at_status <"$at_status_file"
106140#AT_STOP_885
106141#AT_START_886
106142at_fn_group_banner 886 'run_functions.at:1807' \
106143  "FUNCTION LOWER-CASE with reference modding" "     " 4
106144at_xfail=no
106145(
106146  $as_echo "886. $at_setup_line: testing $at_desc ..."
106147  $at_traceon
106148
106149
106150
106151cat >prog.cob <<'_ATEOF'
106152
106153       IDENTIFICATION   DIVISION.
106154       PROGRAM-ID.      prog.
106155       DATA             DIVISION.
106156       WORKING-STORAGE  SECTION.
106157       01  X            PIC X(10) VALUE "A#B.C%D+E$".
106158       01  TEST-FLD     PIC X(03).
106159       PROCEDURE        DIVISION.
106160           MOVE FUNCTION LOWER-CASE ( X ) (1 : 3)
106161             TO TEST-FLD
106162           IF TEST-FLD NOT = 'a#b'
106163              DISPLAY TEST-FLD
106164              END-DISPLAY
106165           END-IF.
106166           STOP RUN.
106167_ATEOF
106168
106169
106170{ set +x
106171$as_echo "$at_srcdir/run_functions.at:1827: \$COMPILE prog.cob"
106172at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1827"
106173( $at_check_trace; $COMPILE prog.cob
106174) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106175at_status=$? at_failed=false
106176$at_check_filter
106177at_fn_diff_devnull "$at_stderr" || at_failed=:
106178at_fn_diff_devnull "$at_stdout" || at_failed=:
106179at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1827"
106180$at_failed && at_fn_log_failure
106181$at_traceon; }
106182
106183{ set +x
106184$as_echo "$at_srcdir/run_functions.at:1828: \$COBCRUN_DIRECT ./prog"
106185at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1828"
106186( $at_check_trace; $COBCRUN_DIRECT ./prog
106187) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106188at_status=$? at_failed=false
106189$at_check_filter
106190at_fn_diff_devnull "$at_stderr" || at_failed=:
106191at_fn_diff_devnull "$at_stdout" || at_failed=:
106192at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1828"
106193$at_failed && at_fn_log_failure
106194$at_traceon; }
106195
106196
106197  set +x
106198  $at_times_p && times >"$at_times_file"
106199) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106200read at_status <"$at_status_file"
106201#AT_STOP_886
106202#AT_START_887
106203at_fn_group_banner 887 'run_functions.at:1833' \
106204  "FUNCTION LOWEST-ALGEBRAIC" "                      " 4
106205at_xfail=no
106206(
106207  $as_echo "887. $at_setup_line: testing $at_desc ..."
106208  $at_traceon
106209
106210
106211
106212cat >prog.cob <<'_ATEOF'
106213
106214       IDENTIFICATION   DIVISION.
106215       PROGRAM-ID.      prog.
106216       DATA             DIVISION.
106217       WORKING-STORAGE  SECTION.
106218       01  F1           PIC S999.
106219       01  F2           PIC S9(4) BINARY.
106220       01  F3           PIC 99V9(3).
106221       01  F4           PIC $**,**9.99BCR.
106222       01  F5           PIC $**,**9.99.
106223       01  F6           USAGE BINARY-CHAR SIGNED.
106224       01  F7           USAGE BINARY-CHAR UNSIGNED.
106225       PROCEDURE        DIVISION.
106226           IF FUNCTION LOWEST-ALGEBRAIC (F1) NOT = -999
106227              DISPLAY "Test 1 fail"
106228              END-DISPLAY
106229           END-IF.
106230           IF FUNCTION LOWEST-ALGEBRAIC (F2) NOT = -9999
106231              DISPLAY "Test 2 fail"
106232              END-DISPLAY
106233           END-IF.
106234           IF FUNCTION LOWEST-ALGEBRAIC (F3) NOT = 0
106235              DISPLAY "Test 3 fail"
106236              END-DISPLAY
106237           END-IF.
106238           IF FUNCTION LOWEST-ALGEBRAIC (F4) NOT = -99999.99
106239              DISPLAY "Test 4 fail"
106240              END-DISPLAY
106241           END-IF.
106242           IF FUNCTION LOWEST-ALGEBRAIC (F5) NOT = 0
106243              DISPLAY "Test 5 fail"
106244              END-DISPLAY
106245           END-IF.
106246           IF FUNCTION LOWEST-ALGEBRAIC (F6) NOT = -128
106247              DISPLAY "Test 6 fail"
106248              END-DISPLAY
106249           END-IF.
106250           IF FUNCTION LOWEST-ALGEBRAIC (F7) NOT = 0
106251              DISPLAY "Test 7 fail"
106252              END-DISPLAY
106253           END-IF.
106254           STOP RUN.
106255_ATEOF
106256
106257
106258{ set +x
106259$as_echo "$at_srcdir/run_functions.at:1880: \$COMPILE prog.cob"
106260at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1880"
106261( $at_check_trace; $COMPILE prog.cob
106262) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106263at_status=$? at_failed=false
106264$at_check_filter
106265at_fn_diff_devnull "$at_stderr" || at_failed=:
106266at_fn_diff_devnull "$at_stdout" || at_failed=:
106267at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1880"
106268$at_failed && at_fn_log_failure
106269$at_traceon; }
106270
106271{ set +x
106272$as_echo "$at_srcdir/run_functions.at:1881: \$COBCRUN_DIRECT ./prog"
106273at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1881"
106274( $at_check_trace; $COBCRUN_DIRECT ./prog
106275) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106276at_status=$? at_failed=false
106277$at_check_filter
106278at_fn_diff_devnull "$at_stderr" || at_failed=:
106279at_fn_diff_devnull "$at_stdout" || at_failed=:
106280at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1881"
106281$at_failed && at_fn_log_failure
106282$at_traceon; }
106283
106284
106285  set +x
106286  $at_times_p && times >"$at_times_file"
106287) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106288read at_status <"$at_status_file"
106289#AT_STOP_887
106290#AT_START_888
106291at_fn_group_banner 888 'run_functions.at:1886' \
106292  "FUNCTION MAX" "                                   " 4
106293at_xfail=no
106294(
106295  $as_echo "888. $at_setup_line: testing $at_desc ..."
106296  $at_traceon
106297
106298
106299
106300cat >prog.cob <<'_ATEOF'
106301
106302       IDENTIFICATION   DIVISION.
106303       PROGRAM-ID.      prog.
106304       DATA             DIVISION.
106305       WORKING-STORAGE  SECTION.
106306       PROCEDURE        DIVISION.
106307           DISPLAY FUNCTION MAX ( 3 -14 0 8 -3 )
106308           END-DISPLAY.
106309           STOP RUN.
106310_ATEOF
106311
106312
106313{ set +x
106314$as_echo "$at_srcdir/run_functions.at:1900: \$COMPILE prog.cob"
106315at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1900"
106316( $at_check_trace; $COMPILE prog.cob
106317) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106318at_status=$? at_failed=false
106319$at_check_filter
106320at_fn_diff_devnull "$at_stderr" || at_failed=:
106321at_fn_diff_devnull "$at_stdout" || at_failed=:
106322at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1900"
106323$at_failed && at_fn_log_failure
106324$at_traceon; }
106325
106326{ set +x
106327$as_echo "$at_srcdir/run_functions.at:1901: \$COBCRUN_DIRECT ./prog"
106328at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1901"
106329( $at_check_trace; $COBCRUN_DIRECT ./prog
106330) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106331at_status=$? at_failed=false
106332$at_check_filter
106333at_fn_diff_devnull "$at_stderr" || at_failed=:
106334echo >>"$at_stdout"; $as_echo "8
106335" | \
106336  $at_diff - "$at_stdout" || at_failed=:
106337at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1901"
106338$at_failed && at_fn_log_failure
106339$at_traceon; }
106340
106341
106342  set +x
106343  $at_times_p && times >"$at_times_file"
106344) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106345read at_status <"$at_status_file"
106346#AT_STOP_888
106347#AT_START_889
106348at_fn_group_banner 889 'run_functions.at:1908' \
106349  "FUNCTION MEAN" "                                  " 4
106350at_xfail=no
106351(
106352  $as_echo "889. $at_setup_line: testing $at_desc ..."
106353  $at_traceon
106354
106355
106356
106357cat >prog.cob <<'_ATEOF'
106358
106359       IDENTIFICATION   DIVISION.
106360       PROGRAM-ID.      prog.
106361       DATA             DIVISION.
106362       WORKING-STORAGE  SECTION.
106363       PROCEDURE        DIVISION.
106364           DISPLAY FUNCTION MEAN ( 3 -14 0 8 -3 )
106365           END-DISPLAY.
106366           STOP RUN.
106367_ATEOF
106368
106369
106370{ set +x
106371$as_echo "$at_srcdir/run_functions.at:1922: \$COMPILE prog.cob"
106372at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1922"
106373( $at_check_trace; $COMPILE prog.cob
106374) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106375at_status=$? at_failed=false
106376$at_check_filter
106377at_fn_diff_devnull "$at_stderr" || at_failed=:
106378at_fn_diff_devnull "$at_stdout" || at_failed=:
106379at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1922"
106380$at_failed && at_fn_log_failure
106381$at_traceon; }
106382
106383{ set +x
106384$as_echo "$at_srcdir/run_functions.at:1923: \$COBCRUN_DIRECT ./prog"
106385at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1923"
106386( $at_check_trace; $COBCRUN_DIRECT ./prog
106387) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106388at_status=$? at_failed=false
106389$at_check_filter
106390at_fn_diff_devnull "$at_stderr" || at_failed=:
106391echo >>"$at_stdout"; $as_echo "-00000001.2
106392" | \
106393  $at_diff - "$at_stdout" || at_failed=:
106394at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1923"
106395$at_failed && at_fn_log_failure
106396$at_traceon; }
106397
106398
106399  set +x
106400  $at_times_p && times >"$at_times_file"
106401) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106402read at_status <"$at_status_file"
106403#AT_STOP_889
106404#AT_START_890
106405at_fn_group_banner 890 'run_functions.at:1930' \
106406  "FUNCTION MEDIAN" "                                " 4
106407at_xfail=no
106408(
106409  $as_echo "890. $at_setup_line: testing $at_desc ..."
106410  $at_traceon
106411
106412
106413
106414cat >prog.cob <<'_ATEOF'
106415
106416       IDENTIFICATION   DIVISION.
106417       PROGRAM-ID.      prog.
106418       DATA             DIVISION.
106419       WORKING-STORAGE  SECTION.
106420       PROCEDURE        DIVISION.
106421           DISPLAY FUNCTION MEDIAN ( 3 -14 0 8 -3 )
106422           END-DISPLAY.
106423           STOP RUN.
106424_ATEOF
106425
106426
106427{ set +x
106428$as_echo "$at_srcdir/run_functions.at:1944: \$COMPILE prog.cob"
106429at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1944"
106430( $at_check_trace; $COMPILE prog.cob
106431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106432at_status=$? at_failed=false
106433$at_check_filter
106434at_fn_diff_devnull "$at_stderr" || at_failed=:
106435at_fn_diff_devnull "$at_stdout" || at_failed=:
106436at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1944"
106437$at_failed && at_fn_log_failure
106438$at_traceon; }
106439
106440{ set +x
106441$as_echo "$at_srcdir/run_functions.at:1945: \$COBCRUN_DIRECT ./prog"
106442at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1945"
106443( $at_check_trace; $COBCRUN_DIRECT ./prog
106444) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106445at_status=$? at_failed=false
106446$at_check_filter
106447at_fn_diff_devnull "$at_stderr" || at_failed=:
106448echo >>"$at_stdout"; $as_echo "0
106449" | \
106450  $at_diff - "$at_stdout" || at_failed=:
106451at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1945"
106452$at_failed && at_fn_log_failure
106453$at_traceon; }
106454
106455
106456  set +x
106457  $at_times_p && times >"$at_times_file"
106458) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106459read at_status <"$at_status_file"
106460#AT_STOP_890
106461#AT_START_891
106462at_fn_group_banner 891 'run_functions.at:1952' \
106463  "FUNCTION MIDRANGE" "                              " 4
106464at_xfail=no
106465(
106466  $as_echo "891. $at_setup_line: testing $at_desc ..."
106467  $at_traceon
106468
106469
106470
106471cat >prog.cob <<'_ATEOF'
106472
106473       IDENTIFICATION   DIVISION.
106474       PROGRAM-ID.      prog.
106475       DATA             DIVISION.
106476       WORKING-STORAGE  SECTION.
106477       PROCEDURE        DIVISION.
106478           DISPLAY FUNCTION MIDRANGE ( 3 -14 0 8 -3 )
106479           END-DISPLAY.
106480           STOP RUN.
106481_ATEOF
106482
106483
106484{ set +x
106485$as_echo "$at_srcdir/run_functions.at:1966: \$COMPILE prog.cob"
106486at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1966"
106487( $at_check_trace; $COMPILE prog.cob
106488) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106489at_status=$? at_failed=false
106490$at_check_filter
106491at_fn_diff_devnull "$at_stderr" || at_failed=:
106492at_fn_diff_devnull "$at_stdout" || at_failed=:
106493at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1966"
106494$at_failed && at_fn_log_failure
106495$at_traceon; }
106496
106497{ set +x
106498$as_echo "$at_srcdir/run_functions.at:1967: \$COBCRUN_DIRECT ./prog"
106499at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1967"
106500( $at_check_trace; $COBCRUN_DIRECT ./prog
106501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106502at_status=$? at_failed=false
106503$at_check_filter
106504at_fn_diff_devnull "$at_stderr" || at_failed=:
106505echo >>"$at_stdout"; $as_echo "-000000003
106506" | \
106507  $at_diff - "$at_stdout" || at_failed=:
106508at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1967"
106509$at_failed && at_fn_log_failure
106510$at_traceon; }
106511
106512
106513  set +x
106514  $at_times_p && times >"$at_times_file"
106515) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106516read at_status <"$at_status_file"
106517#AT_STOP_891
106518#AT_START_892
106519at_fn_group_banner 892 'run_functions.at:1974' \
106520  "FUNCTION MIN" "                                   " 4
106521at_xfail=no
106522(
106523  $as_echo "892. $at_setup_line: testing $at_desc ..."
106524  $at_traceon
106525
106526
106527
106528cat >prog.cob <<'_ATEOF'
106529
106530       IDENTIFICATION   DIVISION.
106531       PROGRAM-ID.      prog.
106532       DATA             DIVISION.
106533       WORKING-STORAGE  SECTION.
106534       PROCEDURE        DIVISION.
106535           DISPLAY FUNCTION MIN ( 3 -14 0 8 -3 )
106536           END-DISPLAY.
106537           STOP RUN.
106538_ATEOF
106539
106540
106541{ set +x
106542$as_echo "$at_srcdir/run_functions.at:1988: \$COMPILE prog.cob"
106543at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1988"
106544( $at_check_trace; $COMPILE prog.cob
106545) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106546at_status=$? at_failed=false
106547$at_check_filter
106548at_fn_diff_devnull "$at_stderr" || at_failed=:
106549at_fn_diff_devnull "$at_stdout" || at_failed=:
106550at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1988"
106551$at_failed && at_fn_log_failure
106552$at_traceon; }
106553
106554{ set +x
106555$as_echo "$at_srcdir/run_functions.at:1989: \$COBCRUN_DIRECT ./prog"
106556at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1989"
106557( $at_check_trace; $COBCRUN_DIRECT ./prog
106558) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106559at_status=$? at_failed=false
106560$at_check_filter
106561at_fn_diff_devnull "$at_stderr" || at_failed=:
106562echo >>"$at_stdout"; $as_echo "-14
106563" | \
106564  $at_diff - "$at_stdout" || at_failed=:
106565at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1989"
106566$at_failed && at_fn_log_failure
106567$at_traceon; }
106568
106569
106570  set +x
106571  $at_times_p && times >"$at_times_file"
106572) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106573read at_status <"$at_status_file"
106574#AT_STOP_892
106575#AT_START_893
106576at_fn_group_banner 893 'run_functions.at:1996' \
106577  "FUNCTION MOD (valid)" "                           " 4
106578at_xfail=no
106579(
106580  $as_echo "893. $at_setup_line: testing $at_desc ..."
106581  $at_traceon
106582
106583
106584
106585cat >prog.cob <<'_ATEOF'
106586
106587       IDENTIFICATION   DIVISION.
106588       PROGRAM-ID.      prog.
106589       DATA             DIVISION.
106590       WORKING-STORAGE  SECTION.
106591       01  Y            PIC 9(12)      VALUE 600851475143.
106592       01  R            PIC S9(4)V9(4) VALUE 0.
106593       PROCEDURE        DIVISION.
106594           MOVE FUNCTION MOD ( -11 5 ) TO R
106595           IF R NOT = 4
106596              DISPLAY 'first one wrong: ' R
106597              END-DISPLAY
106598           END-IF
106599           MOVE FUNCTION MOD ( Y, 71 ) TO R
106600           IF R NOT = 0
106601              DISPLAY 'second one wrong: ' R
106602              END-DISPLAY
106603           END-IF
106604           STOP RUN.
106605_ATEOF
106606
106607
106608{ set +x
106609$as_echo "$at_srcdir/run_functions.at:2020: \$COMPILE prog.cob"
106610at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2020"
106611( $at_check_trace; $COMPILE prog.cob
106612) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106613at_status=$? at_failed=false
106614$at_check_filter
106615at_fn_diff_devnull "$at_stderr" || at_failed=:
106616at_fn_diff_devnull "$at_stdout" || at_failed=:
106617at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2020"
106618$at_failed && at_fn_log_failure
106619$at_traceon; }
106620
106621{ set +x
106622$as_echo "$at_srcdir/run_functions.at:2021: \$COBCRUN_DIRECT ./prog"
106623at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2021"
106624( $at_check_trace; $COBCRUN_DIRECT ./prog
106625) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106626at_status=$? at_failed=false
106627$at_check_filter
106628at_fn_diff_devnull "$at_stderr" || at_failed=:
106629at_fn_diff_devnull "$at_stdout" || at_failed=:
106630at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2021"
106631$at_failed && at_fn_log_failure
106632$at_traceon; }
106633
106634
106635  set +x
106636  $at_times_p && times >"$at_times_file"
106637) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106638read at_status <"$at_status_file"
106639#AT_STOP_893
106640#AT_START_894
106641at_fn_group_banner 894 'run_functions.at:2026' \
106642  "FUNCTION MOD (invalid)" "                         " 4
106643at_xfail=no
106644(
106645  $as_echo "894. $at_setup_line: testing $at_desc ..."
106646  $at_traceon
106647
106648
106649
106650cat >prog.cob <<'_ATEOF'
106651
106652       IDENTIFICATION   DIVISION.
106653       PROGRAM-ID.      prog.
106654       DATA             DIVISION.
106655       WORKING-STORAGE  SECTION.
106656       01  Z            PIC 9          VALUE 0.
106657       01  R            PIC S9(4)V9(4) VALUE 1.
106658       PROCEDURE        DIVISION.
106659           MOVE FUNCTION MOD ( -11 Z ) TO R
106660           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
106661           NOT = 'EC-ARGUMENT-FUNCTION'
106662              DISPLAY 'Wrong/missing exception: '
106663                      FUNCTION EXCEPTION-STATUS
106664              END-DISPLAY
106665           END-IF
106666           IF R NOT = 0
106667              DISPLAY 'result is not zero: ' R
106668              END-DISPLAY
106669           END-IF
106670           STOP RUN.
106671_ATEOF
106672
106673
106674{ set +x
106675$as_echo "$at_srcdir/run_functions.at:2051: \$COMPILE prog.cob"
106676at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2051"
106677( $at_check_trace; $COMPILE prog.cob
106678) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106679at_status=$? at_failed=false
106680$at_check_filter
106681at_fn_diff_devnull "$at_stderr" || at_failed=:
106682at_fn_diff_devnull "$at_stdout" || at_failed=:
106683at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2051"
106684$at_failed && at_fn_log_failure
106685$at_traceon; }
106686
106687{ set +x
106688$as_echo "$at_srcdir/run_functions.at:2052: \$COBCRUN_DIRECT ./prog"
106689at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2052"
106690( $at_check_trace; $COBCRUN_DIRECT ./prog
106691) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106692at_status=$? at_failed=false
106693$at_check_filter
106694at_fn_diff_devnull "$at_stderr" || at_failed=:
106695at_fn_diff_devnull "$at_stdout" || at_failed=:
106696at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2052"
106697$at_failed && at_fn_log_failure
106698$at_traceon; }
106699
106700
106701  set +x
106702  $at_times_p && times >"$at_times_file"
106703) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106704read at_status <"$at_status_file"
106705#AT_STOP_894
106706#AT_START_895
106707at_fn_group_banner 895 'run_functions.at:2057' \
106708  "FUNCTION MODULE-CALLER-ID" "                      " 4
106709at_xfail=no
106710(
106711  $as_echo "895. $at_setup_line: testing $at_desc ..."
106712  $at_traceon
106713
106714
106715
106716cat >prog.cob <<'_ATEOF'
106717
106718       IDENTIFICATION   DIVISION.
106719       PROGRAM-ID.      prog.
106720       ENVIRONMENT      DIVISION.
106721       DATA             DIVISION.
106722       WORKING-STORAGE SECTION.
106723       PROCEDURE        DIVISION.
106724           CALL "prog2"
106725           END-CALL.
106726           STOP RUN.
106727_ATEOF
106728
106729
106730cat >prog2.cob <<'_ATEOF'
106731
106732       IDENTIFICATION   DIVISION.
106733       PROGRAM-ID.      prog2.
106734       ENVIRONMENT      DIVISION.
106735       DATA             DIVISION.
106736       WORKING-STORAGE SECTION.
106737       PROCEDURE        DIVISION.
106738           DISPLAY FUNCTION MODULE-CALLER-ID NO ADVANCING
106739           END-DISPLAY.
106740           EXIT PROGRAM.
106741_ATEOF
106742
106743
106744{ set +x
106745$as_echo "$at_srcdir/run_functions.at:2084: \$COMPILE prog.cob"
106746at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2084"
106747( $at_check_trace; $COMPILE prog.cob
106748) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106749at_status=$? at_failed=false
106750$at_check_filter
106751at_fn_diff_devnull "$at_stderr" || at_failed=:
106752at_fn_diff_devnull "$at_stdout" || at_failed=:
106753at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2084"
106754$at_failed && at_fn_log_failure
106755$at_traceon; }
106756
106757{ set +x
106758$as_echo "$at_srcdir/run_functions.at:2085: \$COMPILE_MODULE prog2.cob"
106759at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_functions.at:2085"
106760( $at_check_trace; $COMPILE_MODULE prog2.cob
106761) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106762at_status=$? at_failed=false
106763$at_check_filter
106764at_fn_diff_devnull "$at_stderr" || at_failed=:
106765at_fn_diff_devnull "$at_stdout" || at_failed=:
106766at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2085"
106767$at_failed && at_fn_log_failure
106768$at_traceon; }
106769
106770{ set +x
106771$as_echo "$at_srcdir/run_functions.at:2086: \$COBCRUN_DIRECT ./prog"
106772at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2086"
106773( $at_check_trace; $COBCRUN_DIRECT ./prog
106774) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106775at_status=$? at_failed=false
106776$at_check_filter
106777at_fn_diff_devnull "$at_stderr" || at_failed=:
106778echo >>"$at_stdout"; $as_echo "prog" | \
106779  $at_diff - "$at_stdout" || at_failed=:
106780at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2086"
106781$at_failed && at_fn_log_failure
106782$at_traceon; }
106783
106784
106785  set +x
106786  $at_times_p && times >"$at_times_file"
106787) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106788read at_status <"$at_status_file"
106789#AT_STOP_895
106790#AT_START_896
106791at_fn_group_banner 896 'run_functions.at:2091' \
106792  "FUNCTION MODULE-DATE" "                           " 4
106793at_xfail=no
106794(
106795  $as_echo "896. $at_setup_line: testing $at_desc ..."
106796  $at_traceon
106797
106798
106799
106800cat >prog.cob <<'_ATEOF'
106801
106802       IDENTIFICATION   DIVISION.
106803       PROGRAM-ID.      prog.
106804       ENVIRONMENT      DIVISION.
106805       DATA             DIVISION.
106806       WORKING-STORAGE SECTION.
106807       01  TEST-DATE    PIC 9(8) VALUE 0.
106808       PROCEDURE        DIVISION.
106809           MOVE FUNCTION MODULE-DATE TO TEST-DATE.
106810           IF   TEST-DATE NOT = 0
106811             DISPLAY "OK" NO ADVANCING
106812             END-DISPLAY
106813           END-IF.
106814           STOP RUN.
106815_ATEOF
106816
106817
106818{ set +x
106819$as_echo "$at_srcdir/run_functions.at:2110: \$COMPILE prog.cob"
106820at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2110"
106821( $at_check_trace; $COMPILE prog.cob
106822) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106823at_status=$? at_failed=false
106824$at_check_filter
106825at_fn_diff_devnull "$at_stderr" || at_failed=:
106826at_fn_diff_devnull "$at_stdout" || at_failed=:
106827at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2110"
106828$at_failed && at_fn_log_failure
106829$at_traceon; }
106830
106831{ set +x
106832$as_echo "$at_srcdir/run_functions.at:2111: \$COBCRUN_DIRECT ./prog"
106833at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2111"
106834( $at_check_trace; $COBCRUN_DIRECT ./prog
106835) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106836at_status=$? at_failed=false
106837$at_check_filter
106838at_fn_diff_devnull "$at_stderr" || at_failed=:
106839echo >>"$at_stdout"; $as_echo "OK" | \
106840  $at_diff - "$at_stdout" || at_failed=:
106841at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2111"
106842$at_failed && at_fn_log_failure
106843$at_traceon; }
106844
106845
106846  set +x
106847  $at_times_p && times >"$at_times_file"
106848) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106849read at_status <"$at_status_file"
106850#AT_STOP_896
106851#AT_START_897
106852at_fn_group_banner 897 'run_functions.at:2116' \
106853  "FUNCTION MODULE-FORMATTED-DATE" "                 " 4
106854at_xfail=no
106855(
106856  $as_echo "897. $at_setup_line: testing $at_desc ..."
106857  $at_traceon
106858
106859
106860
106861cat >prog.cob <<'_ATEOF'
106862
106863       IDENTIFICATION   DIVISION.
106864       PROGRAM-ID.      prog.
106865       ENVIRONMENT      DIVISION.
106866       DATA             DIVISION.
106867       WORKING-STORAGE SECTION.
106868       01  TEST-DATE    PIC X(16) VALUE SPACES.
106869       PROCEDURE        DIVISION.
106870           MOVE FUNCTION MODULE-FORMATTED-DATE TO TEST-DATE.
106871           IF   TEST-DATE NOT = SPACES
106872             DISPLAY "OK" NO ADVANCING
106873             END-DISPLAY
106874           END-IF.
106875           STOP RUN.
106876_ATEOF
106877
106878
106879{ set +x
106880$as_echo "$at_srcdir/run_functions.at:2135: \$COMPILE prog.cob"
106881at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2135"
106882( $at_check_trace; $COMPILE prog.cob
106883) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106884at_status=$? at_failed=false
106885$at_check_filter
106886at_fn_diff_devnull "$at_stderr" || at_failed=:
106887at_fn_diff_devnull "$at_stdout" || at_failed=:
106888at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2135"
106889$at_failed && at_fn_log_failure
106890$at_traceon; }
106891
106892{ set +x
106893$as_echo "$at_srcdir/run_functions.at:2136: \$COBCRUN_DIRECT ./prog"
106894at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2136"
106895( $at_check_trace; $COBCRUN_DIRECT ./prog
106896) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106897at_status=$? at_failed=false
106898$at_check_filter
106899at_fn_diff_devnull "$at_stderr" || at_failed=:
106900echo >>"$at_stdout"; $as_echo "OK" | \
106901  $at_diff - "$at_stdout" || at_failed=:
106902at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2136"
106903$at_failed && at_fn_log_failure
106904$at_traceon; }
106905
106906
106907  set +x
106908  $at_times_p && times >"$at_times_file"
106909) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106910read at_status <"$at_status_file"
106911#AT_STOP_897
106912#AT_START_898
106913at_fn_group_banner 898 'run_functions.at:2141' \
106914  "FUNCTION MODULE-ID" "                             " 4
106915at_xfail=no
106916(
106917  $as_echo "898. $at_setup_line: testing $at_desc ..."
106918  $at_traceon
106919
106920
106921
106922cat >prog.cob <<'_ATEOF'
106923
106924       IDENTIFICATION   DIVISION.
106925       PROGRAM-ID.      prog.
106926       ENVIRONMENT      DIVISION.
106927       DATA             DIVISION.
106928       WORKING-STORAGE SECTION.
106929       PROCEDURE        DIVISION.
106930           DISPLAY FUNCTION MODULE-ID NO ADVANCING
106931           END-DISPLAY.
106932           STOP RUN.
106933_ATEOF
106934
106935
106936{ set +x
106937$as_echo "$at_srcdir/run_functions.at:2156: \$COMPILE prog.cob"
106938at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2156"
106939( $at_check_trace; $COMPILE prog.cob
106940) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106941at_status=$? at_failed=false
106942$at_check_filter
106943at_fn_diff_devnull "$at_stderr" || at_failed=:
106944at_fn_diff_devnull "$at_stdout" || at_failed=:
106945at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2156"
106946$at_failed && at_fn_log_failure
106947$at_traceon; }
106948
106949{ set +x
106950$as_echo "$at_srcdir/run_functions.at:2157: \$COBCRUN_DIRECT ./prog"
106951at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2157"
106952( $at_check_trace; $COBCRUN_DIRECT ./prog
106953) >>"$at_stdout" 2>>"$at_stderr" 5>&-
106954at_status=$? at_failed=false
106955$at_check_filter
106956at_fn_diff_devnull "$at_stderr" || at_failed=:
106957echo >>"$at_stdout"; $as_echo "prog" | \
106958  $at_diff - "$at_stdout" || at_failed=:
106959at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2157"
106960$at_failed && at_fn_log_failure
106961$at_traceon; }
106962
106963
106964  set +x
106965  $at_times_p && times >"$at_times_file"
106966) 5>&1 2>&1 7>&- | eval $at_tee_pipe
106967read at_status <"$at_status_file"
106968#AT_STOP_898
106969#AT_START_899
106970at_fn_group_banner 899 'run_functions.at:2162' \
106971  "FUNCTION MODULE-PATH" "                           " 4
106972at_xfail=no
106973(
106974  $as_echo "899. $at_setup_line: testing $at_desc ..."
106975  $at_traceon
106976
106977
106978
106979cat >prog.cob <<'_ATEOF'
106980
106981       IDENTIFICATION   DIVISION.
106982       PROGRAM-ID.      prog.
106983       ENVIRONMENT      DIVISION.
106984       DATA             DIVISION.
106985       WORKING-STORAGE SECTION.
106986       01  TEST-PATH    PIC X(16) VALUE SPACES.
106987       PROCEDURE        DIVISION.
106988           MOVE FUNCTION MODULE-PATH TO TEST-PATH.
106989           IF   TEST-PATH NOT = SPACES
106990             DISPLAY "OK" NO ADVANCING
106991             END-DISPLAY
106992           END-IF.
106993           STOP RUN.
106994_ATEOF
106995
106996
106997{ set +x
106998$as_echo "$at_srcdir/run_functions.at:2181: \$COMPILE prog.cob"
106999at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2181"
107000( $at_check_trace; $COMPILE prog.cob
107001) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107002at_status=$? at_failed=false
107003$at_check_filter
107004at_fn_diff_devnull "$at_stderr" || at_failed=:
107005at_fn_diff_devnull "$at_stdout" || at_failed=:
107006at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2181"
107007$at_failed && at_fn_log_failure
107008$at_traceon; }
107009
107010{ set +x
107011$as_echo "$at_srcdir/run_functions.at:2182: \$COBCRUN_DIRECT ./prog"
107012at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2182"
107013( $at_check_trace; $COBCRUN_DIRECT ./prog
107014) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107015at_status=$? at_failed=false
107016$at_check_filter
107017at_fn_diff_devnull "$at_stderr" || at_failed=:
107018echo >>"$at_stdout"; $as_echo "OK" | \
107019  $at_diff - "$at_stdout" || at_failed=:
107020at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2182"
107021$at_failed && at_fn_log_failure
107022$at_traceon; }
107023
107024
107025  set +x
107026  $at_times_p && times >"$at_times_file"
107027) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107028read at_status <"$at_status_file"
107029#AT_STOP_899
107030#AT_START_900
107031at_fn_group_banner 900 'run_functions.at:2187' \
107032  "FUNCTION MODULE-SOURCE" "                         " 4
107033at_xfail=no
107034(
107035  $as_echo "900. $at_setup_line: testing $at_desc ..."
107036  $at_traceon
107037
107038
107039
107040cat >prog.cob <<'_ATEOF'
107041
107042       IDENTIFICATION   DIVISION.
107043       PROGRAM-ID.      prog.
107044       ENVIRONMENT      DIVISION.
107045       DATA             DIVISION.
107046       WORKING-STORAGE SECTION.
107047       PROCEDURE        DIVISION.
107048           DISPLAY FUNCTION MODULE-SOURCE NO ADVANCING
107049           END-DISPLAY.
107050           STOP RUN.
107051_ATEOF
107052
107053
107054{ set +x
107055$as_echo "$at_srcdir/run_functions.at:2202: \$COMPILE prog.cob"
107056at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2202"
107057( $at_check_trace; $COMPILE prog.cob
107058) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107059at_status=$? at_failed=false
107060$at_check_filter
107061at_fn_diff_devnull "$at_stderr" || at_failed=:
107062at_fn_diff_devnull "$at_stdout" || at_failed=:
107063at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2202"
107064$at_failed && at_fn_log_failure
107065$at_traceon; }
107066
107067{ set +x
107068$as_echo "$at_srcdir/run_functions.at:2203: \$COBCRUN_DIRECT ./prog"
107069at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2203"
107070( $at_check_trace; $COBCRUN_DIRECT ./prog
107071) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107072at_status=$? at_failed=false
107073$at_check_filter
107074at_fn_diff_devnull "$at_stderr" || at_failed=:
107075echo >>"$at_stdout"; $as_echo "prog.cob" | \
107076  $at_diff - "$at_stdout" || at_failed=:
107077at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2203"
107078$at_failed && at_fn_log_failure
107079$at_traceon; }
107080
107081
107082  set +x
107083  $at_times_p && times >"$at_times_file"
107084) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107085read at_status <"$at_status_file"
107086#AT_STOP_900
107087#AT_START_901
107088at_fn_group_banner 901 'run_functions.at:2208' \
107089  "FUNCTION MODULE-TIME" "                           " 4
107090at_xfail=no
107091(
107092  $as_echo "901. $at_setup_line: testing $at_desc ..."
107093  $at_traceon
107094
107095
107096
107097cat >prog.cob <<'_ATEOF'
107098
107099       IDENTIFICATION   DIVISION.
107100       PROGRAM-ID.      prog.
107101       ENVIRONMENT      DIVISION.
107102       DATA             DIVISION.
107103       WORKING-STORAGE SECTION.
107104       01  TEST-TIME    PIC 9(6) VALUE 0.
107105       PROCEDURE        DIVISION.
107106           MOVE FUNCTION MODULE-TIME TO TEST-TIME.
107107           IF   TEST-TIME NOT = 0
107108             DISPLAY "OK" NO ADVANCING
107109             END-DISPLAY
107110           END-IF.
107111           STOP RUN.
107112_ATEOF
107113
107114
107115{ set +x
107116$as_echo "$at_srcdir/run_functions.at:2227: \$COMPILE prog.cob"
107117at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2227"
107118( $at_check_trace; $COMPILE prog.cob
107119) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107120at_status=$? at_failed=false
107121$at_check_filter
107122at_fn_diff_devnull "$at_stderr" || at_failed=:
107123at_fn_diff_devnull "$at_stdout" || at_failed=:
107124at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2227"
107125$at_failed && at_fn_log_failure
107126$at_traceon; }
107127
107128{ set +x
107129$as_echo "$at_srcdir/run_functions.at:2228: \$COBCRUN_DIRECT ./prog"
107130at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2228"
107131( $at_check_trace; $COBCRUN_DIRECT ./prog
107132) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107133at_status=$? at_failed=false
107134$at_check_filter
107135at_fn_diff_devnull "$at_stderr" || at_failed=:
107136echo >>"$at_stdout"; $as_echo "OK" | \
107137  $at_diff - "$at_stdout" || at_failed=:
107138at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2228"
107139$at_failed && at_fn_log_failure
107140$at_traceon; }
107141
107142
107143  set +x
107144  $at_times_p && times >"$at_times_file"
107145) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107146read at_status <"$at_status_file"
107147#AT_STOP_901
107148#AT_START_902
107149at_fn_group_banner 902 'run_functions.at:2233' \
107150  "FUNCTION MONETARY-DECIMAL-POINT" "                " 4
107151at_xfail=no
107152(
107153  $as_echo "902. $at_setup_line: testing $at_desc ..."
107154  $at_traceon
107155
107156
107157
107158cat >prog.cob <<'_ATEOF'
107159
107160       IDENTIFICATION   DIVISION.
107161       PROGRAM-ID.      prog.
107162       ENVIRONMENT      DIVISION.
107163       DATA             DIVISION.
107164       WORKING-STORAGE SECTION.
107165       01  TEST-FLD     PIC X(8) VALUE SPACES.
107166       PROCEDURE        DIVISION.
107167           MOVE FUNCTION MONETARY-DECIMAL-POINT TO TEST-FLD.
107168           DISPLAY "OK" NO ADVANCING
107169           END-DISPLAY
107170           STOP RUN.
107171_ATEOF
107172
107173
107174{ set +x
107175$as_echo "$at_srcdir/run_functions.at:2250: \$COMPILE prog.cob"
107176at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2250"
107177( $at_check_trace; $COMPILE prog.cob
107178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107179at_status=$? at_failed=false
107180$at_check_filter
107181at_fn_diff_devnull "$at_stderr" || at_failed=:
107182at_fn_diff_devnull "$at_stdout" || at_failed=:
107183at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2250"
107184$at_failed && at_fn_log_failure
107185$at_traceon; }
107186
107187{ set +x
107188$as_echo "$at_srcdir/run_functions.at:2251: \$COBCRUN_DIRECT ./prog"
107189at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2251"
107190( $at_check_trace; $COBCRUN_DIRECT ./prog
107191) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107192at_status=$? at_failed=false
107193$at_check_filter
107194at_fn_diff_devnull "$at_stderr" || at_failed=:
107195echo >>"$at_stdout"; $as_echo "OK" | \
107196  $at_diff - "$at_stdout" || at_failed=:
107197at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2251"
107198$at_failed && at_fn_log_failure
107199$at_traceon; }
107200
107201
107202  set +x
107203  $at_times_p && times >"$at_times_file"
107204) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107205read at_status <"$at_status_file"
107206#AT_STOP_902
107207#AT_START_903
107208at_fn_group_banner 903 'run_functions.at:2256' \
107209  "FUNCTION MONETARY-THOUSANDS-SEPARATOR" "          " 4
107210at_xfail=no
107211(
107212  $as_echo "903. $at_setup_line: testing $at_desc ..."
107213  $at_traceon
107214
107215
107216
107217cat >prog.cob <<'_ATEOF'
107218
107219       IDENTIFICATION   DIVISION.
107220       PROGRAM-ID.      prog.
107221       ENVIRONMENT      DIVISION.
107222       DATA             DIVISION.
107223       WORKING-STORAGE SECTION.
107224       01  TEST-FLD     PIC X(8) VALUE SPACES.
107225       PROCEDURE        DIVISION.
107226           MOVE FUNCTION MONETARY-THOUSANDS-SEPARATOR TO TEST-FLD.
107227           DISPLAY "OK" NO ADVANCING
107228           END-DISPLAY
107229           STOP RUN.
107230_ATEOF
107231
107232
107233{ set +x
107234$as_echo "$at_srcdir/run_functions.at:2273: \$COMPILE prog.cob"
107235at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2273"
107236( $at_check_trace; $COMPILE prog.cob
107237) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107238at_status=$? at_failed=false
107239$at_check_filter
107240at_fn_diff_devnull "$at_stderr" || at_failed=:
107241at_fn_diff_devnull "$at_stdout" || at_failed=:
107242at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2273"
107243$at_failed && at_fn_log_failure
107244$at_traceon; }
107245
107246{ set +x
107247$as_echo "$at_srcdir/run_functions.at:2274: \$COBCRUN_DIRECT ./prog"
107248at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2274"
107249( $at_check_trace; $COBCRUN_DIRECT ./prog
107250) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107251at_status=$? at_failed=false
107252$at_check_filter
107253at_fn_diff_devnull "$at_stderr" || at_failed=:
107254echo >>"$at_stdout"; $as_echo "OK" | \
107255  $at_diff - "$at_stdout" || at_failed=:
107256at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2274"
107257$at_failed && at_fn_log_failure
107258$at_traceon; }
107259
107260
107261  set +x
107262  $at_times_p && times >"$at_times_file"
107263) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107264read at_status <"$at_status_file"
107265#AT_STOP_903
107266#AT_START_904
107267at_fn_group_banner 904 'run_functions.at:2279' \
107268  "FUNCTION NUMERIC-DECIMAL-POINT" "                 " 4
107269at_xfail=no
107270(
107271  $as_echo "904. $at_setup_line: testing $at_desc ..."
107272  $at_traceon
107273
107274
107275
107276cat >prog.cob <<'_ATEOF'
107277
107278       IDENTIFICATION   DIVISION.
107279       PROGRAM-ID.      prog.
107280       ENVIRONMENT      DIVISION.
107281       DATA             DIVISION.
107282       WORKING-STORAGE SECTION.
107283       01  TEST-FLD     PIC X(8) VALUE SPACES.
107284       PROCEDURE        DIVISION.
107285           MOVE FUNCTION NUMERIC-DECIMAL-POINT TO TEST-FLD.
107286           DISPLAY "OK" NO ADVANCING
107287           END-DISPLAY
107288           STOP RUN.
107289_ATEOF
107290
107291
107292{ set +x
107293$as_echo "$at_srcdir/run_functions.at:2296: \$COMPILE prog.cob"
107294at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2296"
107295( $at_check_trace; $COMPILE prog.cob
107296) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107297at_status=$? at_failed=false
107298$at_check_filter
107299at_fn_diff_devnull "$at_stderr" || at_failed=:
107300at_fn_diff_devnull "$at_stdout" || at_failed=:
107301at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2296"
107302$at_failed && at_fn_log_failure
107303$at_traceon; }
107304
107305{ set +x
107306$as_echo "$at_srcdir/run_functions.at:2297: \$COBCRUN_DIRECT ./prog"
107307at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2297"
107308( $at_check_trace; $COBCRUN_DIRECT ./prog
107309) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107310at_status=$? at_failed=false
107311$at_check_filter
107312at_fn_diff_devnull "$at_stderr" || at_failed=:
107313echo >>"$at_stdout"; $as_echo "OK" | \
107314  $at_diff - "$at_stdout" || at_failed=:
107315at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2297"
107316$at_failed && at_fn_log_failure
107317$at_traceon; }
107318
107319
107320  set +x
107321  $at_times_p && times >"$at_times_file"
107322) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107323read at_status <"$at_status_file"
107324#AT_STOP_904
107325#AT_START_905
107326at_fn_group_banner 905 'run_functions.at:2302' \
107327  "FUNCTION NUMERIC-THOUSANDS-SEPARATOR" "           " 4
107328at_xfail=no
107329(
107330  $as_echo "905. $at_setup_line: testing $at_desc ..."
107331  $at_traceon
107332
107333
107334
107335cat >prog.cob <<'_ATEOF'
107336
107337       IDENTIFICATION   DIVISION.
107338       PROGRAM-ID.      prog.
107339       ENVIRONMENT      DIVISION.
107340       DATA             DIVISION.
107341       WORKING-STORAGE SECTION.
107342       01  TEST-FLD     PIC X(8) VALUE SPACES.
107343       PROCEDURE        DIVISION.
107344           MOVE FUNCTION NUMERIC-THOUSANDS-SEPARATOR TO TEST-FLD.
107345           DISPLAY "OK" NO ADVANCING
107346           END-DISPLAY
107347           STOP RUN.
107348_ATEOF
107349
107350
107351{ set +x
107352$as_echo "$at_srcdir/run_functions.at:2319: \$COMPILE prog.cob"
107353at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2319"
107354( $at_check_trace; $COMPILE prog.cob
107355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107356at_status=$? at_failed=false
107357$at_check_filter
107358at_fn_diff_devnull "$at_stderr" || at_failed=:
107359at_fn_diff_devnull "$at_stdout" || at_failed=:
107360at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2319"
107361$at_failed && at_fn_log_failure
107362$at_traceon; }
107363
107364{ set +x
107365$as_echo "$at_srcdir/run_functions.at:2320: \$COBCRUN_DIRECT ./prog"
107366at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2320"
107367( $at_check_trace; $COBCRUN_DIRECT ./prog
107368) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107369at_status=$? at_failed=false
107370$at_check_filter
107371at_fn_diff_devnull "$at_stderr" || at_failed=:
107372echo >>"$at_stdout"; $as_echo "OK" | \
107373  $at_diff - "$at_stdout" || at_failed=:
107374at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2320"
107375$at_failed && at_fn_log_failure
107376$at_traceon; }
107377
107378
107379  set +x
107380  $at_times_p && times >"$at_times_file"
107381) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107382read at_status <"$at_status_file"
107383#AT_STOP_905
107384#AT_START_906
107385at_fn_group_banner 906 'run_functions.at:2325' \
107386  "FUNCTION NUMVAL" "                                " 4
107387at_xfail=no
107388(
107389  $as_echo "906. $at_setup_line: testing $at_desc ..."
107390  $at_traceon
107391
107392
107393
107394cat >prog.cob <<'_ATEOF'
107395
107396       IDENTIFICATION   DIVISION.
107397       PROGRAM-ID.      prog.
107398       DATA             DIVISION.
107399       WORKING-STORAGE  SECTION.
107400       01  X1  PIC   X(12) VALUE " -9876.1234 ".
107401       01  X2  PIC   X(18) VALUE " 19876.1234 CR".
107402       01  N   PIC   s9(5)v9(5).
107403       PROCEDURE        DIVISION.
107404           MOVE FUNCTION NUMVAL ( X1 ) TO N
107405           IF N NOT = -9876.1234
107406              DISPLAY N
107407              END-DISPLAY
107408           END-IF
107409           MOVE FUNCTION NUMVAL ( X2 ) TO N
107410           IF N NOT = -19876.1234
107411              DISPLAY N
107412              END-DISPLAY
107413           END-IF
107414           STOP RUN.
107415_ATEOF
107416
107417
107418{ set +x
107419$as_echo "$at_srcdir/run_functions.at:2350: \$COMPILE prog.cob"
107420at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2350"
107421( $at_check_trace; $COMPILE prog.cob
107422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107423at_status=$? at_failed=false
107424$at_check_filter
107425at_fn_diff_devnull "$at_stderr" || at_failed=:
107426at_fn_diff_devnull "$at_stdout" || at_failed=:
107427at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2350"
107428$at_failed && at_fn_log_failure
107429$at_traceon; }
107430
107431{ set +x
107432$as_echo "$at_srcdir/run_functions.at:2351: \$COBCRUN_DIRECT ./prog"
107433at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2351"
107434( $at_check_trace; $COBCRUN_DIRECT ./prog
107435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107436at_status=$? at_failed=false
107437$at_check_filter
107438at_fn_diff_devnull "$at_stderr" || at_failed=:
107439at_fn_diff_devnull "$at_stdout" || at_failed=:
107440at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2351"
107441$at_failed && at_fn_log_failure
107442$at_traceon; }
107443
107444
107445  set +x
107446  $at_times_p && times >"$at_times_file"
107447) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107448read at_status <"$at_status_file"
107449#AT_STOP_906
107450#AT_START_907
107451at_fn_group_banner 907 'run_functions.at:2356' \
107452  "FUNCTION NUMVAL-C" "                              " 4
107453at_xfail=no
107454(
107455  $as_echo "907. $at_setup_line: testing $at_desc ..."
107456  $at_traceon
107457
107458
107459
107460cat >prog.cob <<'_ATEOF'
107461
107462       IDENTIFICATION   DIVISION.
107463       PROGRAM-ID.      prog.
107464       DATA             DIVISION.
107465       WORKING-STORAGE  SECTION.
107466       01  X1  PIC   X(14) VALUE " % -9876.1234 ".
107467       01  X2  PIC   X(20) VALUE " % 19,876.1234 DB".
107468       01  N   PIC   s9(5)v9(5).
107469       PROCEDURE        DIVISION.
107470           MOVE FUNCTION NUMVAL-C ( X1 , "%" ) TO N
107471           IF N NOT = -9876.1234
107472              DISPLAY N
107473              END-DISPLAY
107474           END-IF
107475           MOVE FUNCTION NUMVAL-C ( X2 , "%" ) TO N
107476           IF N NOT = -19876.1234
107477              DISPLAY N
107478              END-DISPLAY
107479           END-IF
107480           STOP RUN.
107481_ATEOF
107482
107483
107484{ set +x
107485$as_echo "$at_srcdir/run_functions.at:2381: \$COMPILE prog.cob"
107486at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2381"
107487( $at_check_trace; $COMPILE prog.cob
107488) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107489at_status=$? at_failed=false
107490$at_check_filter
107491at_fn_diff_devnull "$at_stderr" || at_failed=:
107492at_fn_diff_devnull "$at_stdout" || at_failed=:
107493at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2381"
107494$at_failed && at_fn_log_failure
107495$at_traceon; }
107496
107497{ set +x
107498$as_echo "$at_srcdir/run_functions.at:2382: \$COBCRUN_DIRECT ./prog"
107499at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2382"
107500( $at_check_trace; $COBCRUN_DIRECT ./prog
107501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107502at_status=$? at_failed=false
107503$at_check_filter
107504at_fn_diff_devnull "$at_stderr" || at_failed=:
107505at_fn_diff_devnull "$at_stdout" || at_failed=:
107506at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2382"
107507$at_failed && at_fn_log_failure
107508$at_traceon; }
107509
107510
107511  set +x
107512  $at_times_p && times >"$at_times_file"
107513) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107514read at_status <"$at_status_file"
107515#AT_STOP_907
107516#AT_START_908
107517at_fn_group_banner 908 'run_functions.at:2387' \
107518  "FUNCTION NUMVAL-C DP.COMMA" "                     " 4
107519at_xfail=no
107520(
107521  $as_echo "908. $at_setup_line: testing $at_desc ..."
107522  $at_traceon
107523
107524
107525
107526cat >prog.cob <<'_ATEOF'
107527
107528       IDENTIFICATION   DIVISION.
107529       PROGRAM-ID.      prog.
107530       ENVIRONMENT      DIVISION.
107531       CONFIGURATION    SECTION.
107532       SPECIAL-NAMES.
107533           DECIMAL-POINT IS COMMA
107534           .
107535       DATA             DIVISION.
107536       WORKING-STORAGE  SECTION.
107537       01  X1  PIC   X(20) VALUE " % 19.876,1234 DB".
107538       01  N   PIC   s9(5)v9(5).
107539       PROCEDURE        DIVISION.
107540           MOVE FUNCTION NUMVAL-C ( X1 , "%" ) TO N
107541           IF N NOT = -19876,1234
107542              DISPLAY N
107543              END-DISPLAY
107544           END-IF
107545           STOP RUN.
107546_ATEOF
107547
107548
107549{ set +x
107550$as_echo "$at_srcdir/run_functions.at:2411: \$COMPILE prog.cob"
107551at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2411"
107552( $at_check_trace; $COMPILE prog.cob
107553) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107554at_status=$? at_failed=false
107555$at_check_filter
107556at_fn_diff_devnull "$at_stderr" || at_failed=:
107557at_fn_diff_devnull "$at_stdout" || at_failed=:
107558at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2411"
107559$at_failed && at_fn_log_failure
107560$at_traceon; }
107561
107562{ set +x
107563$as_echo "$at_srcdir/run_functions.at:2412: \$COBCRUN_DIRECT ./prog"
107564at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2412"
107565( $at_check_trace; $COBCRUN_DIRECT ./prog
107566) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107567at_status=$? at_failed=false
107568$at_check_filter
107569at_fn_diff_devnull "$at_stderr" || at_failed=:
107570at_fn_diff_devnull "$at_stdout" || at_failed=:
107571at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2412"
107572$at_failed && at_fn_log_failure
107573$at_traceon; }
107574
107575
107576  set +x
107577  $at_times_p && times >"$at_times_file"
107578) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107579read at_status <"$at_status_file"
107580#AT_STOP_908
107581#AT_START_909
107582at_fn_group_banner 909 'run_functions.at:2417' \
107583  "FUNCTION NUMVAL-F" "                              " 4
107584at_xfail=no
107585(
107586  $as_echo "909. $at_setup_line: testing $at_desc ..."
107587  $at_traceon
107588
107589
107590
107591cat >prog.cob <<'_ATEOF'
107592
107593       IDENTIFICATION   DIVISION.
107594       PROGRAM-ID.      prog.
107595       DATA             DIVISION.
107596       WORKING-STORAGE  SECTION.
107597       01  X   PIC   X(12) VALUE " -0.1234E+4 ".
107598       PROCEDURE        DIVISION.
107599           DISPLAY FUNCTION NUMVAL-F ( X )
107600           END-DISPLAY.
107601           STOP RUN.
107602_ATEOF
107603
107604
107605{ set +x
107606$as_echo "$at_srcdir/run_functions.at:2432: \$COMPILE prog.cob"
107607at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2432"
107608( $at_check_trace; $COMPILE prog.cob
107609) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107610at_status=$? at_failed=false
107611$at_check_filter
107612at_fn_diff_devnull "$at_stderr" || at_failed=:
107613at_fn_diff_devnull "$at_stdout" || at_failed=:
107614at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2432"
107615$at_failed && at_fn_log_failure
107616$at_traceon; }
107617
107618{ set +x
107619$as_echo "$at_srcdir/run_functions.at:2433: \$COBCRUN_DIRECT ./prog"
107620at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2433"
107621( $at_check_trace; $COBCRUN_DIRECT ./prog
107622) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107623at_status=$? at_failed=false
107624$at_check_filter
107625at_fn_diff_devnull "$at_stderr" || at_failed=:
107626echo >>"$at_stdout"; $as_echo "-000001234
107627" | \
107628  $at_diff - "$at_stdout" || at_failed=:
107629at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2433"
107630$at_failed && at_fn_log_failure
107631$at_traceon; }
107632
107633
107634  set +x
107635  $at_times_p && times >"$at_times_file"
107636) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107637read at_status <"$at_status_file"
107638#AT_STOP_909
107639#AT_START_910
107640at_fn_group_banner 910 'run_functions.at:2440' \
107641  "FUNCTION ORD" "                                   " 4
107642at_xfail=no
107643(
107644  $as_echo "910. $at_setup_line: testing $at_desc ..."
107645  $at_traceon
107646
107647
107648
107649cat >prog.cob <<'_ATEOF'
107650
107651       IDENTIFICATION   DIVISION.
107652       PROGRAM-ID.      prog.
107653       DATA             DIVISION.
107654       WORKING-STORAGE  SECTION.
107655       PROCEDURE        DIVISION.
107656           DISPLAY FUNCTION ORD ( "k" )
107657           END-DISPLAY.
107658           STOP RUN.
107659_ATEOF
107660
107661
107662{ set +x
107663$as_echo "$at_srcdir/run_functions.at:2454: \$COMPILE prog.cob"
107664at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2454"
107665( $at_check_trace; $COMPILE prog.cob
107666) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107667at_status=$? at_failed=false
107668$at_check_filter
107669at_fn_diff_devnull "$at_stderr" || at_failed=:
107670at_fn_diff_devnull "$at_stdout" || at_failed=:
107671at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2454"
107672$at_failed && at_fn_log_failure
107673$at_traceon; }
107674
107675{ set +x
107676$as_echo "$at_srcdir/run_functions.at:2455: \$COBCRUN_DIRECT ./prog"
107677at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2455"
107678( $at_check_trace; $COBCRUN_DIRECT ./prog
107679) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107680at_status=$? at_failed=false
107681$at_check_filter
107682at_fn_diff_devnull "$at_stderr" || at_failed=:
107683echo >>"$at_stdout"; $as_echo "000000108
107684" | \
107685  $at_diff - "$at_stdout" || at_failed=:
107686at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2455"
107687$at_failed && at_fn_log_failure
107688$at_traceon; }
107689
107690
107691  set +x
107692  $at_times_p && times >"$at_times_file"
107693) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107694read at_status <"$at_status_file"
107695#AT_STOP_910
107696#AT_START_911
107697at_fn_group_banner 911 'run_functions.at:2462' \
107698  "FUNCTION ORD-MAX" "                               " 4
107699at_xfail=no
107700(
107701  $as_echo "911. $at_setup_line: testing $at_desc ..."
107702  $at_traceon
107703
107704
107705
107706cat >prog.cob <<'_ATEOF'
107707
107708       IDENTIFICATION   DIVISION.
107709       PROGRAM-ID.      prog.
107710       DATA             DIVISION.
107711       WORKING-STORAGE  SECTION.
107712       PROCEDURE        DIVISION.
107713           DISPLAY FUNCTION ORD-MAX ( 3 -14 0 8 -3 )
107714           END-DISPLAY.
107715           STOP RUN.
107716_ATEOF
107717
107718
107719{ set +x
107720$as_echo "$at_srcdir/run_functions.at:2476: \$COMPILE prog.cob"
107721at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2476"
107722( $at_check_trace; $COMPILE prog.cob
107723) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107724at_status=$? at_failed=false
107725$at_check_filter
107726at_fn_diff_devnull "$at_stderr" || at_failed=:
107727at_fn_diff_devnull "$at_stdout" || at_failed=:
107728at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2476"
107729$at_failed && at_fn_log_failure
107730$at_traceon; }
107731
107732{ set +x
107733$as_echo "$at_srcdir/run_functions.at:2477: \$COBCRUN_DIRECT ./prog"
107734at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2477"
107735( $at_check_trace; $COBCRUN_DIRECT ./prog
107736) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107737at_status=$? at_failed=false
107738$at_check_filter
107739at_fn_diff_devnull "$at_stderr" || at_failed=:
107740echo >>"$at_stdout"; $as_echo "000000004
107741" | \
107742  $at_diff - "$at_stdout" || at_failed=:
107743at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2477"
107744$at_failed && at_fn_log_failure
107745$at_traceon; }
107746
107747
107748  set +x
107749  $at_times_p && times >"$at_times_file"
107750) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107751read at_status <"$at_status_file"
107752#AT_STOP_911
107753#AT_START_912
107754at_fn_group_banner 912 'run_functions.at:2484' \
107755  "FUNCTION ORD-MIN" "                               " 4
107756at_xfail=no
107757(
107758  $as_echo "912. $at_setup_line: testing $at_desc ..."
107759  $at_traceon
107760
107761
107762
107763cat >prog.cob <<'_ATEOF'
107764
107765       IDENTIFICATION   DIVISION.
107766       PROGRAM-ID.      prog.
107767       DATA             DIVISION.
107768       WORKING-STORAGE  SECTION.
107769       PROCEDURE        DIVISION.
107770           DISPLAY FUNCTION ORD-MIN ( 3 -14 0 8 -3 )
107771           END-DISPLAY.
107772           STOP RUN.
107773_ATEOF
107774
107775
107776{ set +x
107777$as_echo "$at_srcdir/run_functions.at:2498: \$COMPILE prog.cob"
107778at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2498"
107779( $at_check_trace; $COMPILE prog.cob
107780) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107781at_status=$? at_failed=false
107782$at_check_filter
107783at_fn_diff_devnull "$at_stderr" || at_failed=:
107784at_fn_diff_devnull "$at_stdout" || at_failed=:
107785at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2498"
107786$at_failed && at_fn_log_failure
107787$at_traceon; }
107788
107789{ set +x
107790$as_echo "$at_srcdir/run_functions.at:2499: \$COBCRUN_DIRECT ./prog"
107791at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2499"
107792( $at_check_trace; $COBCRUN_DIRECT ./prog
107793) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107794at_status=$? at_failed=false
107795$at_check_filter
107796at_fn_diff_devnull "$at_stderr" || at_failed=:
107797echo >>"$at_stdout"; $as_echo "000000002
107798" | \
107799  $at_diff - "$at_stdout" || at_failed=:
107800at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2499"
107801$at_failed && at_fn_log_failure
107802$at_traceon; }
107803
107804
107805  set +x
107806  $at_times_p && times >"$at_times_file"
107807) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107808read at_status <"$at_status_file"
107809#AT_STOP_912
107810#AT_START_913
107811at_fn_group_banner 913 'run_functions.at:2506' \
107812  "FUNCTION PI" "                                    " 4
107813at_xfail=no
107814(
107815  $as_echo "913. $at_setup_line: testing $at_desc ..."
107816  $at_traceon
107817
107818
107819
107820cat >prog.cob <<'_ATEOF'
107821
107822       IDENTIFICATION   DIVISION.
107823       PROGRAM-ID.      prog.
107824       DATA             DIVISION.
107825       WORKING-STORAGE  SECTION.
107826       01  Y   PIC   9V9(35).
107827       PROCEDURE        DIVISION.
107828           MOVE    FUNCTION PI TO Y.
107829           IF Y NOT = 3.14159265358979323846264338327950288
107830              DISPLAY Y
107831              END-DISPLAY
107832           END-IF.
107833           STOP RUN.
107834_ATEOF
107835
107836
107837{ set +x
107838$as_echo "$at_srcdir/run_functions.at:2524: \$COMPILE prog.cob"
107839at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2524"
107840( $at_check_trace; $COMPILE prog.cob
107841) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107842at_status=$? at_failed=false
107843$at_check_filter
107844at_fn_diff_devnull "$at_stderr" || at_failed=:
107845at_fn_diff_devnull "$at_stdout" || at_failed=:
107846at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2524"
107847$at_failed && at_fn_log_failure
107848$at_traceon; }
107849
107850{ set +x
107851$as_echo "$at_srcdir/run_functions.at:2525: \$COBCRUN_DIRECT ./prog"
107852at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2525"
107853( $at_check_trace; $COBCRUN_DIRECT ./prog
107854) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107855at_status=$? at_failed=false
107856$at_check_filter
107857at_fn_diff_devnull "$at_stderr" || at_failed=:
107858at_fn_diff_devnull "$at_stdout" || at_failed=:
107859at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2525"
107860$at_failed && at_fn_log_failure
107861$at_traceon; }
107862
107863
107864  set +x
107865  $at_times_p && times >"$at_times_file"
107866) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107867read at_status <"$at_status_file"
107868#AT_STOP_913
107869#AT_START_914
107870at_fn_group_banner 914 'run_functions.at:2530' \
107871  "FUNCTION PRESENT-VALUE" "                         " 4
107872at_xfail=no
107873(
107874  $as_echo "914. $at_setup_line: testing $at_desc ..."
107875  $at_traceon
107876
107877
107878
107879cat >prog.cob <<'_ATEOF'
107880
107881       IDENTIFICATION   DIVISION.
107882       PROGRAM-ID.      prog.
107883       DATA             DIVISION.
107884       WORKING-STORAGE  SECTION.
107885       PROCEDURE        DIVISION.
107886           DISPLAY FUNCTION PRESENT-VALUE ( 3 2 1 )
107887           END-DISPLAY.
107888           STOP RUN.
107889_ATEOF
107890
107891
107892{ set +x
107893$as_echo "$at_srcdir/run_functions.at:2544: \$COMPILE prog.cob"
107894at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2544"
107895( $at_check_trace; $COMPILE prog.cob
107896) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107897at_status=$? at_failed=false
107898$at_check_filter
107899at_fn_diff_devnull "$at_stderr" || at_failed=:
107900at_fn_diff_devnull "$at_stdout" || at_failed=:
107901at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2544"
107902$at_failed && at_fn_log_failure
107903$at_traceon; }
107904
107905{ set +x
107906$as_echo "$at_srcdir/run_functions.at:2545: \$COBCRUN_DIRECT ./prog"
107907at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2545"
107908( $at_check_trace; $COBCRUN_DIRECT ./prog
107909) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107910at_status=$? at_failed=false
107911$at_check_filter
107912at_fn_diff_devnull "$at_stderr" || at_failed=:
107913echo >>"$at_stdout"; $as_echo "00000.5625
107914" | \
107915  $at_diff - "$at_stdout" || at_failed=:
107916at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2545"
107917$at_failed && at_fn_log_failure
107918$at_traceon; }
107919
107920
107921  set +x
107922  $at_times_p && times >"$at_times_file"
107923) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107924read at_status <"$at_status_file"
107925#AT_STOP_914
107926#AT_START_915
107927at_fn_group_banner 915 'run_functions.at:2552' \
107928  "FUNCTION RANDOM" "                                " 4
107929at_xfail=no
107930(
107931  $as_echo "915. $at_setup_line: testing $at_desc ..."
107932  $at_traceon
107933
107934
107935
107936cat >prog.cob <<'_ATEOF'
107937
107938       IDENTIFICATION   DIVISION.
107939       PROGRAM-ID.      prog.
107940       DATA             DIVISION.
107941       WORKING-STORAGE  SECTION.
107942       01  Y   PIC   S99V99   COMP VALUE -1.0.
107943       PROCEDURE        DIVISION.
107944           MOVE FUNCTION RANDOM ( ) TO Y.
107945           IF Y < 0
107946                   DISPLAY Y
107947                   END-DISPLAY
107948           END-IF.
107949           STOP RUN.
107950_ATEOF
107951
107952
107953{ set +x
107954$as_echo "$at_srcdir/run_functions.at:2570: \$COMPILE prog.cob"
107955at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2570"
107956( $at_check_trace; $COMPILE prog.cob
107957) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107958at_status=$? at_failed=false
107959$at_check_filter
107960at_fn_diff_devnull "$at_stderr" || at_failed=:
107961at_fn_diff_devnull "$at_stdout" || at_failed=:
107962at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2570"
107963$at_failed && at_fn_log_failure
107964$at_traceon; }
107965
107966{ set +x
107967$as_echo "$at_srcdir/run_functions.at:2571: \$COBCRUN_DIRECT ./prog"
107968at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2571"
107969( $at_check_trace; $COBCRUN_DIRECT ./prog
107970) >>"$at_stdout" 2>>"$at_stderr" 5>&-
107971at_status=$? at_failed=false
107972$at_check_filter
107973at_fn_diff_devnull "$at_stderr" || at_failed=:
107974at_fn_diff_devnull "$at_stdout" || at_failed=:
107975at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2571"
107976$at_failed && at_fn_log_failure
107977$at_traceon; }
107978
107979
107980  set +x
107981  $at_times_p && times >"$at_times_file"
107982) 5>&1 2>&1 7>&- | eval $at_tee_pipe
107983read at_status <"$at_status_file"
107984#AT_STOP_915
107985#AT_START_916
107986at_fn_group_banner 916 'run_functions.at:2576' \
107987  "FUNCTION RANGE" "                                 " 4
107988at_xfail=no
107989(
107990  $as_echo "916. $at_setup_line: testing $at_desc ..."
107991  $at_traceon
107992
107993
107994
107995cat >prog.cob <<'_ATEOF'
107996
107997       IDENTIFICATION   DIVISION.
107998       PROGRAM-ID.      prog.
107999       DATA             DIVISION.
108000       WORKING-STORAGE  SECTION.
108001       01  Z            PIC S9(4)V9(4) COMP-5.
108002       PROCEDURE        DIVISION.
108003           MOVE FUNCTION RANGE ( 3 -14 0 8 -3 ) TO Z.
108004           IF Z NOT = 22
108005              DISPLAY Z
108006              END-DISPLAY
108007           END-IF.
108008           STOP RUN.
108009_ATEOF
108010
108011
108012{ set +x
108013$as_echo "$at_srcdir/run_functions.at:2594: \$COMPILE prog.cob"
108014at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2594"
108015( $at_check_trace; $COMPILE prog.cob
108016) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108017at_status=$? at_failed=false
108018$at_check_filter
108019at_fn_diff_devnull "$at_stderr" || at_failed=:
108020at_fn_diff_devnull "$at_stdout" || at_failed=:
108021at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2594"
108022$at_failed && at_fn_log_failure
108023$at_traceon; }
108024
108025{ set +x
108026$as_echo "$at_srcdir/run_functions.at:2595: \$COBCRUN_DIRECT ./prog"
108027at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2595"
108028( $at_check_trace; $COBCRUN_DIRECT ./prog
108029) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108030at_status=$? at_failed=false
108031$at_check_filter
108032at_fn_diff_devnull "$at_stderr" || at_failed=:
108033at_fn_diff_devnull "$at_stdout" || at_failed=:
108034at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2595"
108035$at_failed && at_fn_log_failure
108036$at_traceon; }
108037
108038
108039  set +x
108040  $at_times_p && times >"$at_times_file"
108041) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108042read at_status <"$at_status_file"
108043#AT_STOP_916
108044#AT_START_917
108045at_fn_group_banner 917 'run_functions.at:2600' \
108046  "FUNCTION REM (valid)" "                           " 4
108047at_xfail=no
108048(
108049  $as_echo "917. $at_setup_line: testing $at_desc ..."
108050  $at_traceon
108051
108052
108053
108054cat >prog.cob <<'_ATEOF'
108055
108056       IDENTIFICATION   DIVISION.
108057       PROGRAM-ID.      prog.
108058       DATA             DIVISION.
108059       WORKING-STORAGE  SECTION.
108060       01  R            PIC S9(4)V9(4) COMP-5 VALUE 0.
108061       PROCEDURE        DIVISION.
108062           MOVE FUNCTION REM ( -11 5 ) TO R
108063           IF R NOT = -1
108064              DISPLAY R END-DISPLAY
108065           END-IF
108066           STOP RUN.
108067_ATEOF
108068
108069
108070{ set +x
108071$as_echo "$at_srcdir/run_functions.at:2617: \$COMPILE prog.cob"
108072at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2617"
108073( $at_check_trace; $COMPILE prog.cob
108074) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108075at_status=$? at_failed=false
108076$at_check_filter
108077at_fn_diff_devnull "$at_stderr" || at_failed=:
108078at_fn_diff_devnull "$at_stdout" || at_failed=:
108079at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2617"
108080$at_failed && at_fn_log_failure
108081$at_traceon; }
108082
108083{ set +x
108084$as_echo "$at_srcdir/run_functions.at:2618: \$COBCRUN_DIRECT ./prog"
108085at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2618"
108086( $at_check_trace; $COBCRUN_DIRECT ./prog
108087) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108088at_status=$? at_failed=false
108089$at_check_filter
108090at_fn_diff_devnull "$at_stderr" || at_failed=:
108091at_fn_diff_devnull "$at_stdout" || at_failed=:
108092at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2618"
108093$at_failed && at_fn_log_failure
108094$at_traceon; }
108095
108096
108097  set +x
108098  $at_times_p && times >"$at_times_file"
108099) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108100read at_status <"$at_status_file"
108101#AT_STOP_917
108102#AT_START_918
108103at_fn_group_banner 918 'run_functions.at:2623' \
108104  "FUNCTION REM (invalid)" "                         " 4
108105at_xfail=no
108106(
108107  $as_echo "918. $at_setup_line: testing $at_desc ..."
108108  $at_traceon
108109
108110
108111
108112cat >prog.cob <<'_ATEOF'
108113
108114       IDENTIFICATION   DIVISION.
108115       PROGRAM-ID.      prog.
108116       DATA             DIVISION.
108117       WORKING-STORAGE  SECTION.
108118       01  R            PIC S9(4)V9(4) COMP-5 VALUE 4.1.
108119       01  Z            PIC 9 COMP-5 VALUE 0.
108120       PROCEDURE        DIVISION.
108121           MOVE FUNCTION REM ( -11 Z ) TO R
108122           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
108123           NOT = 'EC-ARGUMENT-FUNCTION'
108124              DISPLAY 'Wrong/missing exception: '
108125                      FUNCTION EXCEPTION-STATUS
108126              END-DISPLAY
108127           END-IF
108128           IF R NOT = 0
108129              DISPLAY 'result is not zero: ' R
108130              END-DISPLAY
108131           END-IF
108132           STOP RUN.
108133_ATEOF
108134
108135
108136{ set +x
108137$as_echo "$at_srcdir/run_functions.at:2648: \$COMPILE prog.cob"
108138at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2648"
108139( $at_check_trace; $COMPILE prog.cob
108140) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108141at_status=$? at_failed=false
108142$at_check_filter
108143at_fn_diff_devnull "$at_stderr" || at_failed=:
108144at_fn_diff_devnull "$at_stdout" || at_failed=:
108145at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2648"
108146$at_failed && at_fn_log_failure
108147$at_traceon; }
108148
108149{ set +x
108150$as_echo "$at_srcdir/run_functions.at:2649: \$COBCRUN_DIRECT ./prog"
108151at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2649"
108152( $at_check_trace; $COBCRUN_DIRECT ./prog
108153) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108154at_status=$? at_failed=false
108155$at_check_filter
108156at_fn_diff_devnull "$at_stderr" || at_failed=:
108157at_fn_diff_devnull "$at_stdout" || at_failed=:
108158at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2649"
108159$at_failed && at_fn_log_failure
108160$at_traceon; }
108161
108162
108163  set +x
108164  $at_times_p && times >"$at_times_file"
108165) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108166read at_status <"$at_status_file"
108167#AT_STOP_918
108168#AT_START_919
108169at_fn_group_banner 919 'run_functions.at:2654' \
108170  "FUNCTION REVERSE" "                               " 4
108171at_xfail=no
108172(
108173  $as_echo "919. $at_setup_line: testing $at_desc ..."
108174  $at_traceon
108175
108176
108177
108178cat >prog.cob <<'_ATEOF'
108179
108180       IDENTIFICATION   DIVISION.
108181       PROGRAM-ID.      prog.
108182       DATA             DIVISION.
108183       WORKING-STORAGE  SECTION.
108184       01  X   PIC   X(10) VALUE "A#B.C%D+E$".
108185       01  Z   PIC   X(10).
108186       PROCEDURE        DIVISION.
108187           MOVE FUNCTION REVERSE ( X ) TO Z.
108188           IF Z NOT = "$E+D%C.B#A"
108189              DISPLAY Z
108190              END-DISPLAY
108191           END-IF.
108192           STOP RUN.
108193_ATEOF
108194
108195
108196{ set +x
108197$as_echo "$at_srcdir/run_functions.at:2673: \$COMPILE prog.cob"
108198at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2673"
108199( $at_check_trace; $COMPILE prog.cob
108200) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108201at_status=$? at_failed=false
108202$at_check_filter
108203at_fn_diff_devnull "$at_stderr" || at_failed=:
108204at_fn_diff_devnull "$at_stdout" || at_failed=:
108205at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2673"
108206$at_failed && at_fn_log_failure
108207$at_traceon; }
108208
108209{ set +x
108210$as_echo "$at_srcdir/run_functions.at:2674: \$COBCRUN_DIRECT ./prog"
108211at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2674"
108212( $at_check_trace; $COBCRUN_DIRECT ./prog
108213) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108214at_status=$? at_failed=false
108215$at_check_filter
108216at_fn_diff_devnull "$at_stderr" || at_failed=:
108217at_fn_diff_devnull "$at_stdout" || at_failed=:
108218at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2674"
108219$at_failed && at_fn_log_failure
108220$at_traceon; }
108221
108222
108223  set +x
108224  $at_times_p && times >"$at_times_file"
108225) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108226read at_status <"$at_status_file"
108227#AT_STOP_919
108228#AT_START_920
108229at_fn_group_banner 920 'run_functions.at:2679' \
108230  "FUNCTION REVERSE with reference modding" "        " 4
108231at_xfail=no
108232(
108233  $as_echo "920. $at_setup_line: testing $at_desc ..."
108234  $at_traceon
108235
108236
108237
108238cat >prog.cob <<'_ATEOF'
108239
108240       IDENTIFICATION   DIVISION.
108241       PROGRAM-ID.      prog.
108242       DATA             DIVISION.
108243       WORKING-STORAGE  SECTION.
108244       01  X   PIC   X(10) VALUE "A#B.C%D+E$".
108245       01  Z   PIC   X(10).
108246       PROCEDURE        DIVISION.
108247           MOVE FUNCTION REVERSE ( X ) (1 : 4) TO Z.
108248           IF Z NOT = "$E+D      "
108249              DISPLAY Z
108250              END-DISPLAY
108251           END-IF.
108252           STOP RUN.
108253_ATEOF
108254
108255
108256{ set +x
108257$as_echo "$at_srcdir/run_functions.at:2698: \$COMPILE prog.cob"
108258at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2698"
108259( $at_check_trace; $COMPILE prog.cob
108260) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108261at_status=$? at_failed=false
108262$at_check_filter
108263at_fn_diff_devnull "$at_stderr" || at_failed=:
108264at_fn_diff_devnull "$at_stdout" || at_failed=:
108265at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2698"
108266$at_failed && at_fn_log_failure
108267$at_traceon; }
108268
108269{ set +x
108270$as_echo "$at_srcdir/run_functions.at:2699: \$COBCRUN_DIRECT ./prog"
108271at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2699"
108272( $at_check_trace; $COBCRUN_DIRECT ./prog
108273) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108274at_status=$? at_failed=false
108275$at_check_filter
108276at_fn_diff_devnull "$at_stderr" || at_failed=:
108277at_fn_diff_devnull "$at_stdout" || at_failed=:
108278at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2699"
108279$at_failed && at_fn_log_failure
108280$at_traceon; }
108281
108282
108283  set +x
108284  $at_times_p && times >"$at_times_file"
108285) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108286read at_status <"$at_status_file"
108287#AT_STOP_920
108288#AT_START_921
108289at_fn_group_banner 921 'run_functions.at:2704' \
108290  "FUNCTION SECONDS-FROM-FORMATTED-TIME" "           " 4
108291at_xfail=no
108292(
108293  $as_echo "921. $at_setup_line: testing $at_desc ..."
108294  $at_traceon
108295
108296
108297
108298cat >prog.cob <<'_ATEOF'
108299
108300       IDENTIFICATION   DIVISION.
108301       PROGRAM-ID.      prog.
108302       DATA             DIVISION.
108303       WORKING-STORAGE  SECTION.
108304       01  result       PIC 9(8)V9(9) COMP-5.
108305       PROCEDURE        DIVISION.
108306           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108307                    ("hhmmss", "010203")
108308               TO result.
108309           IF result NOT = 3723
108310                   DISPLAY "Test 1 failed: " result
108311                   END-DISPLAY
108312           END-IF.
108313
108314           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108315                    ("hh:mm:ss", "01:02:03")
108316               TO result.
108317           IF result NOT = 3723
108318                   DISPLAY "Test 2 failed: " result
108319                   END-DISPLAY
108320           END-IF.
108321
108322           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108323                    ("hhmmss.ssssssss", "010203.04050607")
108324               TO result.
108325           IF result NOT = 3723.04050607
108326                   DISPLAY "Test 3 failed: " result
108327                   END-DISPLAY
108328           END-IF.
108329
108330           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108331                    ("hhmmssZ", "010203Z")
108332               TO result.
108333           IF result NOT = 3723
108334                   DISPLAY "Test 4 failed: " result
108335                   END-DISPLAY
108336           END-IF.
108337
108338           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108339                    ("hhmmss+hhmm", "010203+0405")
108340               TO result.
108341           IF result NOT = 3723
108342                   DISPLAY "Test 5 failed: " result
108343                   END-DISPLAY
108344           END-IF.
108345
108346           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
108347                    ("YYYYMMDDThhmmss", "16010101T010203")
108348               TO result.
108349           IF result NOT = 3723
108350                   DISPLAY "Test 6 failed: " result
108351                   END-DISPLAY
108352           END-IF.
108353
108354           STOP RUN.
108355_ATEOF
108356
108357
108358{ set +x
108359$as_echo "$at_srcdir/run_functions.at:2765: \$COMPILE prog.cob"
108360at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2765"
108361( $at_check_trace; $COMPILE prog.cob
108362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108363at_status=$? at_failed=false
108364$at_check_filter
108365at_fn_diff_devnull "$at_stderr" || at_failed=:
108366at_fn_diff_devnull "$at_stdout" || at_failed=:
108367at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2765"
108368$at_failed && at_fn_log_failure
108369$at_traceon; }
108370
108371{ set +x
108372$as_echo "$at_srcdir/run_functions.at:2766: \$COBCRUN_DIRECT ./prog"
108373at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2766"
108374( $at_check_trace; $COBCRUN_DIRECT ./prog
108375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108376at_status=$? at_failed=false
108377$at_check_filter
108378at_fn_diff_devnull "$at_stderr" || at_failed=:
108379at_fn_diff_devnull "$at_stdout" || at_failed=:
108380at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2766"
108381$at_failed && at_fn_log_failure
108382$at_traceon; }
108383
108384
108385  set +x
108386  $at_times_p && times >"$at_times_file"
108387) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108388read at_status <"$at_status_file"
108389#AT_STOP_921
108390#AT_START_922
108391at_fn_group_banner 922 'run_functions.at:2771' \
108392  "FUNCTION SECONDS-PAST-MIDNIGHT" "                 " 4
108393at_xfail=no
108394(
108395  $as_echo "922. $at_setup_line: testing $at_desc ..."
108396  $at_traceon
108397
108398
108399
108400cat >prog.cob <<'_ATEOF'
108401
108402       IDENTIFICATION   DIVISION.
108403       PROGRAM-ID.      prog.
108404       DATA             DIVISION.
108405       WORKING-STORAGE  SECTION.
108406       01  Y   PIC      9(8)   COMP-5.
108407       PROCEDURE        DIVISION.
108408           MOVE FUNCTION SECONDS-PAST-MIDNIGHT TO Y.
108409           IF Y NOT < 86402
108410                   DISPLAY Y
108411                   END-DISPLAY
108412           END-IF.
108413           STOP RUN.
108414_ATEOF
108415
108416
108417{ set +x
108418$as_echo "$at_srcdir/run_functions.at:2789: \$COMPILE prog.cob"
108419at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2789"
108420( $at_check_trace; $COMPILE prog.cob
108421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108422at_status=$? at_failed=false
108423$at_check_filter
108424at_fn_diff_devnull "$at_stderr" || at_failed=:
108425at_fn_diff_devnull "$at_stdout" || at_failed=:
108426at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2789"
108427$at_failed && at_fn_log_failure
108428$at_traceon; }
108429
108430{ set +x
108431$as_echo "$at_srcdir/run_functions.at:2790: \$COBCRUN_DIRECT ./prog"
108432at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2790"
108433( $at_check_trace; $COBCRUN_DIRECT ./prog
108434) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108435at_status=$? at_failed=false
108436$at_check_filter
108437at_fn_diff_devnull "$at_stderr" || at_failed=:
108438at_fn_diff_devnull "$at_stdout" || at_failed=:
108439at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2790"
108440$at_failed && at_fn_log_failure
108441$at_traceon; }
108442
108443
108444  set +x
108445  $at_times_p && times >"$at_times_file"
108446) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108447read at_status <"$at_status_file"
108448#AT_STOP_922
108449#AT_START_923
108450at_fn_group_banner 923 'run_functions.at:2795' \
108451  "FUNCTION SIGN" "                                  " 4
108452at_xfail=no
108453(
108454  $as_echo "923. $at_setup_line: testing $at_desc ..."
108455  $at_traceon
108456
108457
108458
108459cat >prog.cob <<'_ATEOF'
108460
108461       IDENTIFICATION   DIVISION.
108462       PROGRAM-ID.      prog.
108463       DATA             DIVISION.
108464       WORKING-STORAGE  SECTION.
108465       01  Z            USAGE BINARY-LONG SIGNED.
108466       PROCEDURE        DIVISION.
108467           MOVE FUNCTION SIGN ( 3.12345 ) TO Z.
108468           IF Z NOT = 1
108469              DISPLAY "Sign 1 " Z
108470              END-DISPLAY
108471           END-IF.
108472           MOVE FUNCTION SIGN ( -0.0 ) TO Z.
108473           IF Z NOT = 0
108474              DISPLAY "Sign 2 " Z
108475              END-DISPLAY
108476           END-IF.
108477           MOVE FUNCTION SIGN ( 0.0 ) TO Z.
108478           IF Z NOT = 0
108479              DISPLAY "Sign 3 " Z
108480              END-DISPLAY
108481           END-IF.
108482           MOVE FUNCTION SIGN ( -3.12345 ) TO Z.
108483           IF Z NOT = -1
108484              DISPLAY "Sign 4 " Z
108485              END-DISPLAY
108486           END-IF.
108487           STOP RUN.
108488_ATEOF
108489
108490
108491{ set +x
108492$as_echo "$at_srcdir/run_functions.at:2828: \$COMPILE prog.cob"
108493at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2828"
108494( $at_check_trace; $COMPILE prog.cob
108495) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108496at_status=$? at_failed=false
108497$at_check_filter
108498at_fn_diff_devnull "$at_stderr" || at_failed=:
108499at_fn_diff_devnull "$at_stdout" || at_failed=:
108500at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2828"
108501$at_failed && at_fn_log_failure
108502$at_traceon; }
108503
108504{ set +x
108505$as_echo "$at_srcdir/run_functions.at:2829: \$COBCRUN_DIRECT ./prog"
108506at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2829"
108507( $at_check_trace; $COBCRUN_DIRECT ./prog
108508) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108509at_status=$? at_failed=false
108510$at_check_filter
108511at_fn_diff_devnull "$at_stderr" || at_failed=:
108512at_fn_diff_devnull "$at_stdout" || at_failed=:
108513at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2829"
108514$at_failed && at_fn_log_failure
108515$at_traceon; }
108516
108517
108518  set +x
108519  $at_times_p && times >"$at_times_file"
108520) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108521read at_status <"$at_status_file"
108522#AT_STOP_923
108523#AT_START_924
108524at_fn_group_banner 924 'run_functions.at:2834' \
108525  "FUNCTION SIN" "                                   " 4
108526at_xfail=no
108527(
108528  $as_echo "924. $at_setup_line: testing $at_desc ..."
108529  $at_traceon
108530
108531
108532
108533cat >prog.cob <<'_ATEOF'
108534
108535       IDENTIFICATION   DIVISION.
108536       PROGRAM-ID.      prog.
108537       DATA             DIVISION.
108538       WORKING-STORAGE  SECTION.
108539       01  Y   PIC   S9V9(35).
108540       PROCEDURE        DIVISION.
108541           MOVE FUNCTION SIN ( 1.5 ) TO Y.
108542           IF Y NOT = 0.99749498660405443094172337114148732
108543                   DISPLAY Y
108544                   END-DISPLAY
108545           END-IF.
108546           STOP RUN.
108547_ATEOF
108548
108549
108550{ set +x
108551$as_echo "$at_srcdir/run_functions.at:2852: \$COMPILE prog.cob"
108552at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2852"
108553( $at_check_trace; $COMPILE prog.cob
108554) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108555at_status=$? at_failed=false
108556$at_check_filter
108557at_fn_diff_devnull "$at_stderr" || at_failed=:
108558at_fn_diff_devnull "$at_stdout" || at_failed=:
108559at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2852"
108560$at_failed && at_fn_log_failure
108561$at_traceon; }
108562
108563{ set +x
108564$as_echo "$at_srcdir/run_functions.at:2853: \$COBCRUN_DIRECT ./prog"
108565at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2853"
108566( $at_check_trace; $COBCRUN_DIRECT ./prog
108567) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108568at_status=$? at_failed=false
108569$at_check_filter
108570at_fn_diff_devnull "$at_stderr" || at_failed=:
108571at_fn_diff_devnull "$at_stdout" || at_failed=:
108572at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2853"
108573$at_failed && at_fn_log_failure
108574$at_traceon; }
108575
108576
108577  set +x
108578  $at_times_p && times >"$at_times_file"
108579) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108580read at_status <"$at_status_file"
108581#AT_STOP_924
108582#AT_START_925
108583at_fn_group_banner 925 'run_functions.at:2858' \
108584  "FUNCTION SQRT" "                                  " 4
108585at_xfail=no
108586(
108587  $as_echo "925. $at_setup_line: testing $at_desc ..."
108588  $at_traceon
108589
108590
108591
108592cat >prog.cob <<'_ATEOF'
108593
108594       IDENTIFICATION   DIVISION.
108595       PROGRAM-ID.      prog.
108596       DATA             DIVISION.
108597       WORKING-STORAGE  SECTION.
108598       01  Y   PIC   S9V9(35).
108599       PROCEDURE        DIVISION.
108600           MOVE FUNCTION SQRT ( 1.5 ) TO Y.
108601           IF Y NOT = 1.22474487139158904909864203735294569
108602                   DISPLAY Y
108603                   END-DISPLAY
108604           END-IF.
108605           STOP RUN.
108606_ATEOF
108607
108608
108609{ set +x
108610$as_echo "$at_srcdir/run_functions.at:2876: \$COMPILE prog.cob"
108611at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2876"
108612( $at_check_trace; $COMPILE prog.cob
108613) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108614at_status=$? at_failed=false
108615$at_check_filter
108616at_fn_diff_devnull "$at_stderr" || at_failed=:
108617at_fn_diff_devnull "$at_stdout" || at_failed=:
108618at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2876"
108619$at_failed && at_fn_log_failure
108620$at_traceon; }
108621
108622{ set +x
108623$as_echo "$at_srcdir/run_functions.at:2877: \$COBCRUN_DIRECT ./prog"
108624at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2877"
108625( $at_check_trace; $COBCRUN_DIRECT ./prog
108626) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108627at_status=$? at_failed=false
108628$at_check_filter
108629at_fn_diff_devnull "$at_stderr" || at_failed=:
108630at_fn_diff_devnull "$at_stdout" || at_failed=:
108631at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2877"
108632$at_failed && at_fn_log_failure
108633$at_traceon; }
108634
108635
108636  set +x
108637  $at_times_p && times >"$at_times_file"
108638) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108639read at_status <"$at_status_file"
108640#AT_STOP_925
108641#AT_START_926
108642at_fn_group_banner 926 'run_functions.at:2882' \
108643  "FUNCTION STANDARD-DEVIATION" "                    " 4
108644at_xfail=no
108645(
108646  $as_echo "926. $at_setup_line: testing $at_desc ..."
108647  $at_traceon
108648
108649
108650
108651cat >prog.cob <<'_ATEOF'
108652
108653       IDENTIFICATION   DIVISION.
108654       PROGRAM-ID.      prog.
108655       DATA             DIVISION.
108656       WORKING-STORAGE  SECTION.
108657       01  Y   PIC   S9V9(35).
108658       PROCEDURE        DIVISION.
108659           MOVE FUNCTION STANDARD-DEVIATION ( 3 -14 0 8 -3 ) TO Y.
108660           IF Y NOT = 7.35934779718963954877237043574538183
108661                   DISPLAY Y
108662                   END-DISPLAY
108663           END-IF.
108664           STOP RUN.
108665_ATEOF
108666
108667
108668{ set +x
108669$as_echo "$at_srcdir/run_functions.at:2900: \$COMPILE prog.cob"
108670at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2900"
108671( $at_check_trace; $COMPILE prog.cob
108672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108673at_status=$? at_failed=false
108674$at_check_filter
108675at_fn_diff_devnull "$at_stderr" || at_failed=:
108676at_fn_diff_devnull "$at_stdout" || at_failed=:
108677at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2900"
108678$at_failed && at_fn_log_failure
108679$at_traceon; }
108680
108681{ set +x
108682$as_echo "$at_srcdir/run_functions.at:2901: \$COBCRUN_DIRECT ./prog"
108683at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2901"
108684( $at_check_trace; $COBCRUN_DIRECT ./prog
108685) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108686at_status=$? at_failed=false
108687$at_check_filter
108688at_fn_diff_devnull "$at_stderr" || at_failed=:
108689at_fn_diff_devnull "$at_stdout" || at_failed=:
108690at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2901"
108691$at_failed && at_fn_log_failure
108692$at_traceon; }
108693
108694
108695  set +x
108696  $at_times_p && times >"$at_times_file"
108697) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108698read at_status <"$at_status_file"
108699#AT_STOP_926
108700#AT_START_927
108701at_fn_group_banner 927 'run_functions.at:2906' \
108702  "FUNCTION STORED-CHAR-LENGTH" "                    " 4
108703at_xfail=no
108704(
108705  $as_echo "927. $at_setup_line: testing $at_desc ..."
108706  $at_traceon
108707
108708
108709
108710cat >prog.cob <<'_ATEOF'
108711
108712       IDENTIFICATION   DIVISION.
108713       PROGRAM-ID.      prog.
108714       DATA             DIVISION.
108715       WORKING-STORAGE  SECTION.
108716       01  Y   PIC   X(24).
108717       01  Z   USAGE BINARY-LONG.
108718       PROCEDURE        DIVISION.
108719           MOVE "123456789012" TO Y.
108720           MOVE FUNCTION STORED-CHAR-LENGTH ( Y ) TO Z.
108721           IF Z NOT = 12
108722              DISPLAY Z
108723              END-DISPLAY
108724           END-IF.
108725           STOP RUN.
108726_ATEOF
108727
108728
108729{ set +x
108730$as_echo "$at_srcdir/run_functions.at:2926: \$COMPILE prog.cob"
108731at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2926"
108732( $at_check_trace; $COMPILE prog.cob
108733) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108734at_status=$? at_failed=false
108735$at_check_filter
108736at_fn_diff_devnull "$at_stderr" || at_failed=:
108737at_fn_diff_devnull "$at_stdout" || at_failed=:
108738at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2926"
108739$at_failed && at_fn_log_failure
108740$at_traceon; }
108741
108742{ set +x
108743$as_echo "$at_srcdir/run_functions.at:2927: \$COBCRUN_DIRECT ./prog"
108744at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2927"
108745( $at_check_trace; $COBCRUN_DIRECT ./prog
108746) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108747at_status=$? at_failed=false
108748$at_check_filter
108749at_fn_diff_devnull "$at_stderr" || at_failed=:
108750at_fn_diff_devnull "$at_stdout" || at_failed=:
108751at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2927"
108752$at_failed && at_fn_log_failure
108753$at_traceon; }
108754
108755
108756  set +x
108757  $at_times_p && times >"$at_times_file"
108758) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108759read at_status <"$at_status_file"
108760#AT_STOP_927
108761#AT_START_928
108762at_fn_group_banner 928 'run_functions.at:2932' \
108763  "FUNCTION SUBSTITUTE" "                            " 4
108764at_xfail=no
108765(
108766  $as_echo "928. $at_setup_line: testing $at_desc ..."
108767  $at_traceon
108768
108769
108770
108771cat >prog.cob <<'_ATEOF'
108772
108773       IDENTIFICATION   DIVISION.
108774       PROGRAM-ID.      prog.
108775       DATA             DIVISION.
108776       WORKING-STORAGE  SECTION.
108777       01  Y   PIC   X(20).
108778       01  Z   PIC   X(20) VALUE ALL '_'.
108779       PROCEDURE        DIVISION.
108780           MOVE "abc111444555defxxabc" TO Y.
108781           STRING FUNCTION SUBSTITUTE ( Y "abc" "zz" "55" "666" )
108782                  DELIMITED BY SIZE
108783                  INTO Z
108784           END-STRING
108785           IF Z NOT = "zz1114446665defxxzz_"
108786              DISPLAY Z
108787              END-DISPLAY
108788           END-IF.
108789           STOP RUN.
108790_ATEOF
108791
108792
108793{ set +x
108794$as_echo "$at_srcdir/run_functions.at:2955: \$COMPILE prog.cob"
108795at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2955"
108796( $at_check_trace; $COMPILE prog.cob
108797) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108798at_status=$? at_failed=false
108799$at_check_filter
108800at_fn_diff_devnull "$at_stderr" || at_failed=:
108801at_fn_diff_devnull "$at_stdout" || at_failed=:
108802at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2955"
108803$at_failed && at_fn_log_failure
108804$at_traceon; }
108805
108806{ set +x
108807$as_echo "$at_srcdir/run_functions.at:2956: \$COBCRUN_DIRECT ./prog"
108808at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2956"
108809( $at_check_trace; $COBCRUN_DIRECT ./prog
108810) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108811at_status=$? at_failed=false
108812$at_check_filter
108813at_fn_diff_devnull "$at_stderr" || at_failed=:
108814at_fn_diff_devnull "$at_stdout" || at_failed=:
108815at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2956"
108816$at_failed && at_fn_log_failure
108817$at_traceon; }
108818
108819
108820  set +x
108821  $at_times_p && times >"$at_times_file"
108822) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108823read at_status <"$at_status_file"
108824#AT_STOP_928
108825#AT_START_929
108826at_fn_group_banner 929 'run_functions.at:2961' \
108827  "FUNCTION SUBSTITUTE with reference modding" "     " 4
108828at_xfail=no
108829(
108830  $as_echo "929. $at_setup_line: testing $at_desc ..."
108831  $at_traceon
108832
108833
108834
108835cat >prog.cob <<'_ATEOF'
108836
108837       IDENTIFICATION   DIVISION.
108838       PROGRAM-ID.      prog.
108839       DATA             DIVISION.
108840       WORKING-STORAGE  SECTION.
108841       01  Y   PIC   X(20).
108842       01  Z   PIC   X(20).
108843       PROCEDURE        DIVISION.
108844           MOVE "abc111444555defxxabc" TO Y.
108845           MOVE FUNCTION SUBSTITUTE
108846                   ( Y "abc" "zz" "55" "666" ) (2 : 9)
108847                TO Z.
108848           IF Z NOT = "z11144466"
108849              DISPLAY Z
108850              END-DISPLAY
108851           END-IF.
108852           STOP RUN.
108853_ATEOF
108854
108855
108856{ set +x
108857$as_echo "$at_srcdir/run_functions.at:2983: \$COMPILE prog.cob"
108858at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2983"
108859( $at_check_trace; $COMPILE prog.cob
108860) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108861at_status=$? at_failed=false
108862$at_check_filter
108863at_fn_diff_devnull "$at_stderr" || at_failed=:
108864at_fn_diff_devnull "$at_stdout" || at_failed=:
108865at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2983"
108866$at_failed && at_fn_log_failure
108867$at_traceon; }
108868
108869{ set +x
108870$as_echo "$at_srcdir/run_functions.at:2984: \$COBCRUN_DIRECT ./prog"
108871at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2984"
108872( $at_check_trace; $COBCRUN_DIRECT ./prog
108873) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108874at_status=$? at_failed=false
108875$at_check_filter
108876at_fn_diff_devnull "$at_stderr" || at_failed=:
108877at_fn_diff_devnull "$at_stdout" || at_failed=:
108878at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2984"
108879$at_failed && at_fn_log_failure
108880$at_traceon; }
108881
108882
108883  set +x
108884  $at_times_p && times >"$at_times_file"
108885) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108886read at_status <"$at_status_file"
108887#AT_STOP_929
108888#AT_START_930
108889at_fn_group_banner 930 'run_functions.at:2989' \
108890  "FUNCTION SUBSTITUTE-CASE" "                       " 4
108891at_xfail=no
108892(
108893  $as_echo "930. $at_setup_line: testing $at_desc ..."
108894  $at_traceon
108895
108896
108897
108898cat >prog.cob <<'_ATEOF'
108899
108900       IDENTIFICATION   DIVISION.
108901       PROGRAM-ID.      prog.
108902       DATA             DIVISION.
108903       WORKING-STORAGE  SECTION.
108904       01  Y   PIC   X(20).
108905       01  Z   PIC   X(20).
108906       PROCEDURE        DIVISION.
108907           MOVE "ABC111444555defxxabc" TO Y.
108908           MOVE FUNCTION SUBSTITUTE-CASE (Y "abc" "zz" "55" "666")
108909                TO Z.
108910           IF Z NOT = "zz1114446665defxxzz"
108911              DISPLAY Z
108912              END-DISPLAY
108913           END-IF.
108914           STOP RUN.
108915_ATEOF
108916
108917
108918{ set +x
108919$as_echo "$at_srcdir/run_functions.at:3010: \$COMPILE prog.cob"
108920at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3010"
108921( $at_check_trace; $COMPILE prog.cob
108922) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108923at_status=$? at_failed=false
108924$at_check_filter
108925at_fn_diff_devnull "$at_stderr" || at_failed=:
108926at_fn_diff_devnull "$at_stdout" || at_failed=:
108927at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3010"
108928$at_failed && at_fn_log_failure
108929$at_traceon; }
108930
108931{ set +x
108932$as_echo "$at_srcdir/run_functions.at:3011: \$COBCRUN_DIRECT ./prog"
108933at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3011"
108934( $at_check_trace; $COBCRUN_DIRECT ./prog
108935) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108936at_status=$? at_failed=false
108937$at_check_filter
108938at_fn_diff_devnull "$at_stderr" || at_failed=:
108939at_fn_diff_devnull "$at_stdout" || at_failed=:
108940at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3011"
108941$at_failed && at_fn_log_failure
108942$at_traceon; }
108943
108944
108945  set +x
108946  $at_times_p && times >"$at_times_file"
108947) 5>&1 2>&1 7>&- | eval $at_tee_pipe
108948read at_status <"$at_status_file"
108949#AT_STOP_930
108950#AT_START_931
108951at_fn_group_banner 931 'run_functions.at:3016' \
108952  "FUNCTION SUBSTITUTE-CASE with reference mod" "    " 4
108953at_xfail=no
108954(
108955  $as_echo "931. $at_setup_line: testing $at_desc ..."
108956  $at_traceon
108957
108958
108959
108960cat >prog.cob <<'_ATEOF'
108961
108962       IDENTIFICATION   DIVISION.
108963       PROGRAM-ID.      prog.
108964       DATA             DIVISION.
108965       WORKING-STORAGE  SECTION.
108966       01  Y   PIC   X(20).
108967       01  Z   PIC   X(20).
108968       PROCEDURE        DIVISION.
108969           MOVE "abc111444555defxxabc" TO Y.
108970           MOVE FUNCTION SUBSTITUTE-CASE
108971                   ( Y "ABC" "zz" "55" "666" ) (2 : 9)
108972                TO Z.
108973           IF Z NOT = "z11144466"
108974              DISPLAY Z
108975              END-DISPLAY
108976           END-IF.
108977           STOP RUN.
108978_ATEOF
108979
108980
108981{ set +x
108982$as_echo "$at_srcdir/run_functions.at:3038: \$COMPILE prog.cob"
108983at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3038"
108984( $at_check_trace; $COMPILE prog.cob
108985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108986at_status=$? at_failed=false
108987$at_check_filter
108988at_fn_diff_devnull "$at_stderr" || at_failed=:
108989at_fn_diff_devnull "$at_stdout" || at_failed=:
108990at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3038"
108991$at_failed && at_fn_log_failure
108992$at_traceon; }
108993
108994{ set +x
108995$as_echo "$at_srcdir/run_functions.at:3039: \$COBCRUN_DIRECT ./prog"
108996at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3039"
108997( $at_check_trace; $COBCRUN_DIRECT ./prog
108998) >>"$at_stdout" 2>>"$at_stderr" 5>&-
108999at_status=$? at_failed=false
109000$at_check_filter
109001at_fn_diff_devnull "$at_stderr" || at_failed=:
109002at_fn_diff_devnull "$at_stdout" || at_failed=:
109003at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3039"
109004$at_failed && at_fn_log_failure
109005$at_traceon; }
109006
109007
109008  set +x
109009  $at_times_p && times >"$at_times_file"
109010) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109011read at_status <"$at_status_file"
109012#AT_STOP_931
109013#AT_START_932
109014at_fn_group_banner 932 'run_functions.at:3044' \
109015  "FUNCTION SUM" "                                   " 4
109016at_xfail=no
109017(
109018  $as_echo "932. $at_setup_line: testing $at_desc ..."
109019  $at_traceon
109020
109021
109022
109023cat >prog.cob <<'_ATEOF'
109024
109025       IDENTIFICATION   DIVISION.
109026       PROGRAM-ID.      prog.
109027       DATA             DIVISION.
109028       WORKING-STORAGE  SECTION.
109029       01  Z            USAGE BINARY-LONG.
109030       PROCEDURE        DIVISION.
109031           MOVE FUNCTION SUM ( 3 -14 0 8 -3 ) TO Z.
109032           IF Z NOT = -6
109033              DISPLAY Z
109034              END-DISPLAY
109035           END-IF.
109036           STOP RUN.
109037_ATEOF
109038
109039
109040{ set +x
109041$as_echo "$at_srcdir/run_functions.at:3062: \$COMPILE prog.cob"
109042at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3062"
109043( $at_check_trace; $COMPILE prog.cob
109044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109045at_status=$? at_failed=false
109046$at_check_filter
109047at_fn_diff_devnull "$at_stderr" || at_failed=:
109048at_fn_diff_devnull "$at_stdout" || at_failed=:
109049at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3062"
109050$at_failed && at_fn_log_failure
109051$at_traceon; }
109052
109053{ set +x
109054$as_echo "$at_srcdir/run_functions.at:3063: \$COBCRUN_DIRECT ./prog"
109055at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3063"
109056( $at_check_trace; $COBCRUN_DIRECT ./prog
109057) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109058at_status=$? at_failed=false
109059$at_check_filter
109060at_fn_diff_devnull "$at_stderr" || at_failed=:
109061at_fn_diff_devnull "$at_stdout" || at_failed=:
109062at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3063"
109063$at_failed && at_fn_log_failure
109064$at_traceon; }
109065
109066
109067  set +x
109068  $at_times_p && times >"$at_times_file"
109069) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109070read at_status <"$at_status_file"
109071#AT_STOP_932
109072#AT_START_933
109073at_fn_group_banner 933 'run_functions.at:3068' \
109074  "FUNCTION TAN" "                                   " 4
109075at_xfail=no
109076(
109077  $as_echo "933. $at_setup_line: testing $at_desc ..."
109078  $at_traceon
109079
109080
109081
109082cat >prog.cob <<'_ATEOF'
109083
109084       IDENTIFICATION   DIVISION.
109085       PROGRAM-ID.      prog.
109086       DATA             DIVISION.
109087       WORKING-STORAGE  SECTION.
109088       01  Y   PIC   S99V9(34).
109089       PROCEDURE        DIVISION.
109090           MOVE FUNCTION TAN ( 1.5 ) TO Y.
109091           IF Y NOT = 14.1014199471717193876460836519877564
109092                   DISPLAY Y
109093                   END-DISPLAY
109094           END-IF.
109095           STOP RUN.
109096_ATEOF
109097
109098
109099{ set +x
109100$as_echo "$at_srcdir/run_functions.at:3086: \$COMPILE prog.cob"
109101at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3086"
109102( $at_check_trace; $COMPILE prog.cob
109103) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109104at_status=$? at_failed=false
109105$at_check_filter
109106at_fn_diff_devnull "$at_stderr" || at_failed=:
109107at_fn_diff_devnull "$at_stdout" || at_failed=:
109108at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3086"
109109$at_failed && at_fn_log_failure
109110$at_traceon; }
109111
109112{ set +x
109113$as_echo "$at_srcdir/run_functions.at:3087: \$COBCRUN_DIRECT ./prog"
109114at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3087"
109115( $at_check_trace; $COBCRUN_DIRECT ./prog
109116) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109117at_status=$? at_failed=false
109118$at_check_filter
109119at_fn_diff_devnull "$at_stderr" || at_failed=:
109120at_fn_diff_devnull "$at_stdout" || at_failed=:
109121at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3087"
109122$at_failed && at_fn_log_failure
109123$at_traceon; }
109124
109125
109126  set +x
109127  $at_times_p && times >"$at_times_file"
109128) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109129read at_status <"$at_status_file"
109130#AT_STOP_933
109131#AT_START_934
109132at_fn_group_banner 934 'run_functions.at:3092' \
109133  "FUNCTION TEST-DATE-YYYYMMDD" "                    " 4
109134at_xfail=no
109135(
109136  $as_echo "934. $at_setup_line: testing $at_desc ..."
109137  $at_traceon
109138
109139
109140
109141cat >prog.cob <<'_ATEOF'
109142
109143       IDENTIFICATION   DIVISION.
109144       PROGRAM-ID.      prog.
109145       DATA             DIVISION.
109146       WORKING-STORAGE  SECTION.
109147       PROCEDURE        DIVISION.
109148           DISPLAY FUNCTION TEST-DATE-YYYYMMDD ( 20020231 )
109149           END-DISPLAY.
109150           STOP RUN.
109151_ATEOF
109152
109153
109154{ set +x
109155$as_echo "$at_srcdir/run_functions.at:3106: \$COMPILE prog.cob"
109156at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3106"
109157( $at_check_trace; $COMPILE prog.cob
109158) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109159at_status=$? at_failed=false
109160$at_check_filter
109161at_fn_diff_devnull "$at_stderr" || at_failed=:
109162at_fn_diff_devnull "$at_stdout" || at_failed=:
109163at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3106"
109164$at_failed && at_fn_log_failure
109165$at_traceon; }
109166
109167{ set +x
109168$as_echo "$at_srcdir/run_functions.at:3107: \$COBCRUN_DIRECT ./prog"
109169at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3107"
109170( $at_check_trace; $COBCRUN_DIRECT ./prog
109171) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109172at_status=$? at_failed=false
109173$at_check_filter
109174at_fn_diff_devnull "$at_stderr" || at_failed=:
109175echo >>"$at_stdout"; $as_echo "000000003
109176" | \
109177  $at_diff - "$at_stdout" || at_failed=:
109178at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3107"
109179$at_failed && at_fn_log_failure
109180$at_traceon; }
109181
109182
109183  set +x
109184  $at_times_p && times >"$at_times_file"
109185) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109186read at_status <"$at_status_file"
109187#AT_STOP_934
109188#AT_START_935
109189at_fn_group_banner 935 'run_functions.at:3114' \
109190  "FUNCTION TEST-DAY-YYYYDDD" "                      " 4
109191at_xfail=no
109192(
109193  $as_echo "935. $at_setup_line: testing $at_desc ..."
109194  $at_traceon
109195
109196
109197
109198cat >prog.cob <<'_ATEOF'
109199
109200       IDENTIFICATION   DIVISION.
109201       PROGRAM-ID.      prog.
109202       DATA             DIVISION.
109203       WORKING-STORAGE  SECTION.
109204       PROCEDURE        DIVISION.
109205           DISPLAY FUNCTION TEST-DAY-YYYYDDD ( 2002400 )
109206           END-DISPLAY.
109207           STOP RUN.
109208_ATEOF
109209
109210
109211{ set +x
109212$as_echo "$at_srcdir/run_functions.at:3128: \$COMPILE prog.cob"
109213at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3128"
109214( $at_check_trace; $COMPILE prog.cob
109215) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109216at_status=$? at_failed=false
109217$at_check_filter
109218at_fn_diff_devnull "$at_stderr" || at_failed=:
109219at_fn_diff_devnull "$at_stdout" || at_failed=:
109220at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3128"
109221$at_failed && at_fn_log_failure
109222$at_traceon; }
109223
109224{ set +x
109225$as_echo "$at_srcdir/run_functions.at:3129: \$COBCRUN_DIRECT ./prog"
109226at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3129"
109227( $at_check_trace; $COBCRUN_DIRECT ./prog
109228) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109229at_status=$? at_failed=false
109230$at_check_filter
109231at_fn_diff_devnull "$at_stderr" || at_failed=:
109232echo >>"$at_stdout"; $as_echo "000000002
109233" | \
109234  $at_diff - "$at_stdout" || at_failed=:
109235at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3129"
109236$at_failed && at_fn_log_failure
109237$at_traceon; }
109238
109239
109240  set +x
109241  $at_times_p && times >"$at_times_file"
109242) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109243read at_status <"$at_status_file"
109244#AT_STOP_935
109245#AT_START_936
109246at_fn_group_banner 936 'run_functions.at:3136' \
109247  "FUNCTION TEST-FORMATTED-DATETIME with dates" "    " 4
109248at_xfail=no
109249(
109250  $as_echo "936. $at_setup_line: testing $at_desc ..."
109251  $at_traceon
109252
109253
109254
109255cat >prog.cob <<'_ATEOF'
109256
109257        IDENTIFICATION   DIVISION.
109258        PROGRAM-ID.      prog.
109259        DATA             DIVISION.
109260        WORKING-STORAGE  SECTION.
109261        PROCEDURE        DIVISION.
109262            IF FUNCTION TEST-FORMATTED-DATETIME
109263                   ("YYYYMMDD", "16010101") <> 0
109264                DISPLAY "Test 1 failed" END-DISPLAY
109265            END-IF
109266            IF FUNCTION TEST-FORMATTED-DATETIME
109267                   ("YYYY-MM-DD", "1601-01-01") <> 0
109268                DISPLAY "Test 2 failed" END-DISPLAY
109269            END-IF
109270            IF FUNCTION TEST-FORMATTED-DATETIME
109271                   ("YYYYDDD", "1601001") <> 0
109272                DISPLAY "Test 3 failed" END-DISPLAY
109273            END-IF
109274            IF FUNCTION TEST-FORMATTED-DATETIME
109275                   ("YYYY-DDD", "1601-001") <> 0
109276                DISPLAY "Test 4 failed" END-DISPLAY
109277            END-IF
109278            IF FUNCTION TEST-FORMATTED-DATETIME
109279                   ("YYYYWwwD", "1601W011") <> 0
109280                DISPLAY "Test 5 failed" END-DISPLAY
109281            END-IF
109282            IF FUNCTION TEST-FORMATTED-DATETIME
109283                   ("YYYY-Www-D", "1601-W01-1") <> 0
109284                DISPLAY "Test 6 failed" END-DISPLAY
109285            END-IF
109286
109287
109288            *> How will this work with zero-length items?
109289            IF FUNCTION TEST-FORMATTED-DATETIME
109290                   ("YYYYMMDD", "1") <> 2
109291                DISPLAY "Test 7 failed" END-DISPLAY
109292            END-IF
109293            IF FUNCTION TEST-FORMATTED-DATETIME
109294                   ("YYYYMMDD", "160A0101") <> 4
109295                DISPLAY "Test 8 failed" END-DISPLAY
109296            END-IF
109297            IF FUNCTION TEST-FORMATTED-DATETIME
109298                   ("YYYYMMDD", "00000101") <> 1
109299                DISPLAY "Test 9 failed" END-DISPLAY
109300            END-IF
109301            IF FUNCTION TEST-FORMATTED-DATETIME
109302                   ("YYYYMMDD", "16000101") <> 4
109303                DISPLAY "Test 10 failed" END-DISPLAY
109304            END-IF
109305            IF FUNCTION TEST-FORMATTED-DATETIME
109306                   ("YYYYMMDD", "16010001") <> 6
109307                DISPLAY "Test 11 failed" END-DISPLAY
109308            END-IF
109309            IF FUNCTION TEST-FORMATTED-DATETIME
109310                   ("YYYYMMDD", "16011301") <> 6
109311                DISPLAY "Test 12 failed" END-DISPLAY
109312            END-IF
109313            IF FUNCTION TEST-FORMATTED-DATETIME
109314                   ("YYYYMMDD", "16010190") <> 7
109315                DISPLAY "Test 13 failed" END-DISPLAY
109316            END-IF
109317            IF FUNCTION TEST-FORMATTED-DATETIME
109318                   ("YYYYMMDD", "18000229") <> 8
109319                DISPLAY "Test 14 failed" END-DISPLAY
109320            END-IF
109321            IF FUNCTION TEST-FORMATTED-DATETIME
109322                   ("YYYY-MM-DD", "1601 01 01") <> 5
109323                DISPLAY "Test 15 failed" END-DISPLAY
109324            END-IF
109325            IF FUNCTION TEST-FORMATTED-DATETIME
109326                   ("YYYYMMDD", "160101010") <> 9
109327                DISPLAY "Test 16 failed" END-DISPLAY
109328            END-IF
109329            IF FUNCTION TEST-FORMATTED-DATETIME
109330                   ("YYYYWwwD", "1601A011") <> 5
109331                DISPLAY "Test 17 failed" END-DISPLAY
109332            END-IF
109333            IF FUNCTION TEST-FORMATTED-DATETIME
109334                   ("YYYYWwwD", "1601W531") <> 7
109335                DISPLAY "Test 18 failed" END-DISPLAY
109336            END-IF
109337            IF FUNCTION TEST-FORMATTED-DATETIME
109338                   ("YYYYWwwD", "1601W601") <> 6
109339                DISPLAY "Test 19 failed" END-DISPLAY
109340            END-IF
109341            IF FUNCTION TEST-FORMATTED-DATETIME
109342                   ("YYYYWwwD", "2009W531") <> 0
109343                DISPLAY "Test 20 failed" END-DISPLAY
109344            END-IF
109345            IF FUNCTION TEST-FORMATTED-DATETIME
109346                   ("YYYYWwwD", "1601W018") <> 8
109347                DISPLAY "Test 21 failed" END-DISPLAY
109348            END-IF
109349            IF FUNCTION TEST-FORMATTED-DATETIME
109350                   ("YYYYDDD", "1601366") <> 7
109351                DISPLAY "Test 22 failed" END-DISPLAY
109352            END-IF
109353            IF FUNCTION TEST-FORMATTED-DATETIME
109354                   ("YYYYDDD", "1601370") <> 6
109355                DISPLAY "Test 23 failed" END-DISPLAY
109356            END-IF
109357            IF FUNCTION TEST-FORMATTED-DATETIME
109358                   ("YYYYDDD", "1601400") <> 5
109359                DISPLAY "Test 24 failed" END-DISPLAY
109360            END-IF
109361            IF FUNCTION TEST-FORMATTED-DATETIME
109362                   ("YYYYMMDD", "01") <> 1
109363                DISPLAY "Test 25 failed" END-DISPLAY
109364            END-IF
109365            IF FUNCTION TEST-FORMATTED-DATETIME
109366                   ("YYYYMMDD", "1601010") <> 8
109367                DISPLAY "Test 26 failed" END-DISPLAY
109368            END-IF
109369
109370            STOP RUN
109371            .
109372_ATEOF
109373
109374
109375{ set +x
109376$as_echo "$at_srcdir/run_functions.at:3257: \$COMPILE prog.cob"
109377at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3257"
109378( $at_check_trace; $COMPILE prog.cob
109379) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109380at_status=$? at_failed=false
109381$at_check_filter
109382at_fn_diff_devnull "$at_stderr" || at_failed=:
109383at_fn_diff_devnull "$at_stdout" || at_failed=:
109384at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3257"
109385$at_failed && at_fn_log_failure
109386$at_traceon; }
109387
109388{ set +x
109389$as_echo "$at_srcdir/run_functions.at:3258: \$COBCRUN_DIRECT ./prog"
109390at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3258"
109391( $at_check_trace; $COBCRUN_DIRECT ./prog
109392) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109393at_status=$? at_failed=false
109394$at_check_filter
109395at_fn_diff_devnull "$at_stderr" || at_failed=:
109396at_fn_diff_devnull "$at_stdout" || at_failed=:
109397at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3258"
109398$at_failed && at_fn_log_failure
109399$at_traceon; }
109400
109401
109402  set +x
109403  $at_times_p && times >"$at_times_file"
109404) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109405read at_status <"$at_status_file"
109406#AT_STOP_936
109407#AT_START_937
109408at_fn_group_banner 937 'run_functions.at:3263' \
109409  "FUNCTION TEST-FORMATTED-DATETIME with times" "    " 4
109410at_xfail=no
109411(
109412  $as_echo "937. $at_setup_line: testing $at_desc ..."
109413  $at_traceon
109414
109415
109416
109417cat >prog.cob <<'_ATEOF'
109418
109419        IDENTIFICATION   DIVISION.
109420        PROGRAM-ID.      prog.
109421        DATA             DIVISION.
109422        WORKING-STORAGE  SECTION.
109423        PROCEDURE        DIVISION.
109424            IF FUNCTION TEST-FORMATTED-DATETIME
109425                    ("hhmmss.sssssssssZ", "000000.000000000Z") <> 0
109426                DISPLAY "Test 1 failed" END-DISPLAY
109427            END-IF
109428            IF FUNCTION TEST-FORMATTED-DATETIME
109429                    ("hh:mm:ss.sssssssssZ", "00:00:00.000000000Z") <> 0
109430                DISPLAY "Test 2 failed" END-DISPLAY
109431            END-IF
109432            *> 0 instead of +/- valid in sending fields with offset of zero.
109433            IF FUNCTION TEST-FORMATTED-DATETIME
109434                    ("hhmmss.sssssssss+hhmm", "000000.00000000000000")
109435                    <> 0
109436                DISPLAY "Test 3 failed" END-DISPLAY
109437            END-IF
109438            IF FUNCTION TEST-FORMATTED-DATETIME
109439                    ("hh:mm:ss.sssssssss+hh:mm",
109440                    "00:00:00.000000000+00:00")
109441                    <> 0
109442                DISPLAY "Test 4 failed" END-DISPLAY
109443            END-IF
109444
109445            IF FUNCTION TEST-FORMATTED-DATETIME
109446                    ("hhmmss", "300000") <> 1
109447                DISPLAY "Test 5 failed" END-DISPLAY
109448            END-IF
109449            IF FUNCTION TEST-FORMATTED-DATETIME
109450                    ("hhmmss", "250000") <> 2
109451                DISPLAY "Test 6 failed" END-DISPLAY
109452            END-IF
109453            IF FUNCTION TEST-FORMATTED-DATETIME
109454                    ("hhmmss", "006000") <> 3
109455                DISPLAY "Test 7 failed" END-DISPLAY
109456            END-IF
109457            IF FUNCTION TEST-FORMATTED-DATETIME
109458                    ("hhmmss", "000060") <> 5
109459                DISPLAY "Test 8 failed" END-DISPLAY
109460            END-IF
109461            IF FUNCTION TEST-FORMATTED-DATETIME
109462                    ("hh:mm:ss", "00-00-00") <> 3
109463                DISPLAY "Test 9 failed" END-DISPLAY
109464            END-IF
109465            IF FUNCTION TEST-FORMATTED-DATETIME
109466                    ("hhmmss.ss", "000000,00") <> 7
109467                DISPLAY "Test 10 failed" END-DISPLAY
109468            END-IF
109469            IF FUNCTION TEST-FORMATTED-DATETIME
109470                    ("hhmmss+hhmm", "000000 0000") <> 7
109471                DISPLAY "Test 11 failed" END-DISPLAY
109472            END-IF
109473            IF FUNCTION TEST-FORMATTED-DATETIME
109474                    ("hhmmss+hhmm", "00000000001") <> 11
109475                DISPLAY "Test 12 failed" END-DISPLAY
109476            END-IF
109477            IF FUNCTION TEST-FORMATTED-DATETIME
109478                    ("hhmmssZ", "000000A") <> 7
109479                DISPLAY "Test 13 failed" END-DISPLAY
109480            END-IF
109481            IF FUNCTION TEST-FORMATTED-DATETIME
109482                    ("hhmmss", SPACE) <> 1
109483                DISPLAY "Test 14 failed" END-DISPLAY
109484            END-IF
109485
109486            STOP RUN
109487            .
109488_ATEOF
109489
109490
109491{ set +x
109492$as_echo "$at_srcdir/run_functions.at:3338: \$COMPILE prog.cob"
109493at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3338"
109494( $at_check_trace; $COMPILE prog.cob
109495) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109496at_status=$? at_failed=false
109497$at_check_filter
109498at_fn_diff_devnull "$at_stderr" || at_failed=:
109499at_fn_diff_devnull "$at_stdout" || at_failed=:
109500at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3338"
109501$at_failed && at_fn_log_failure
109502$at_traceon; }
109503
109504{ set +x
109505$as_echo "$at_srcdir/run_functions.at:3339: \$COBCRUN_DIRECT ./prog"
109506at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3339"
109507( $at_check_trace; $COBCRUN_DIRECT ./prog
109508) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109509at_status=$? at_failed=false
109510$at_check_filter
109511at_fn_diff_devnull "$at_stderr" || at_failed=:
109512at_fn_diff_devnull "$at_stdout" || at_failed=:
109513at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3339"
109514$at_failed && at_fn_log_failure
109515$at_traceon; }
109516
109517
109518  set +x
109519  $at_times_p && times >"$at_times_file"
109520) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109521read at_status <"$at_status_file"
109522#AT_STOP_937
109523#AT_START_938
109524at_fn_group_banner 938 'run_functions.at:3344' \
109525  "FUNCTION TEST-FORMATTED-DATETIME with datetimes" "" 4
109526at_xfail=no
109527(
109528  $as_echo "938. $at_setup_line: testing $at_desc ..."
109529  $at_traceon
109530
109531
109532
109533cat >prog.cob <<'_ATEOF'
109534
109535        IDENTIFICATION   DIVISION.
109536        PROGRAM-ID.      prog.
109537        DATA             DIVISION.
109538        WORKING-STORAGE  SECTION.
109539        77 RESULT        PIC 9(02).
109540        PROCEDURE        DIVISION.
109541            MOVE FUNCTION TEST-FORMATTED-DATETIME
109542                    ("YYYYMMDDThhmmss", "16010101T000000")
109543              TO RESULT
109544            IF RESULT <> 0
109545               DISPLAY "Test 1 failed: " RESULT END-DISPLAY
109546            END-IF
109547            MOVE FUNCTION TEST-FORMATTED-DATETIME
109548                    ("YYYY-MM-DDThh:mm:ss.sssssssss+hh:mm",
109549                    "1601-01-01T00:00:00.000000000+00:00")
109550              TO RESULT
109551            IF RESULT <> 0
109552               DISPLAY "Test 2 failed: " RESULT END-DISPLAY
109553            END-IF
109554
109555            MOVE FUNCTION TEST-FORMATTED-DATETIME
109556                    ("YYYYMMDDThhmmss", "16010101 000000")
109557              TO RESULT
109558            IF RESULT <> 9
109559               DISPLAY "Test 3 failed: " RESULT END-DISPLAY
109560            END-IF
109561            MOVE FUNCTION TEST-FORMATTED-DATETIME
109562                    ("YYYYMMDDThhmmss", SPACE)
109563              TO RESULT
109564            IF RESULT <> 1
109565               DISPLAY "Test 4 failed: " RESULT END-DISPLAY
109566            END-IF
109567            MOVE FUNCTION TEST-FORMATTED-DATETIME
109568                    ("YYYYMMDDThhmmss", "16010101T      ")
109569              TO RESULT
109570            IF RESULT <> 10
109571               DISPLAY "Test 5 failed: " RESULT END-DISPLAY
109572            END-IF
109573
109574            STOP RUN
109575            .
109576_ATEOF
109577
109578
109579{ set +x
109580$as_echo "$at_srcdir/run_functions.at:3391: \$COMPILE prog.cob"
109581at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3391"
109582( $at_check_trace; $COMPILE prog.cob
109583) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109584at_status=$? at_failed=false
109585$at_check_filter
109586at_fn_diff_devnull "$at_stderr" || at_failed=:
109587at_fn_diff_devnull "$at_stdout" || at_failed=:
109588at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3391"
109589$at_failed && at_fn_log_failure
109590$at_traceon; }
109591
109592{ set +x
109593$as_echo "$at_srcdir/run_functions.at:3392: \$COBCRUN_DIRECT ./prog"
109594at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3392"
109595( $at_check_trace; $COBCRUN_DIRECT ./prog
109596) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109597at_status=$? at_failed=false
109598$at_check_filter
109599at_fn_diff_devnull "$at_stderr" || at_failed=:
109600at_fn_diff_devnull "$at_stdout" || at_failed=:
109601at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3392"
109602$at_failed && at_fn_log_failure
109603$at_traceon; }
109604
109605
109606  set +x
109607  $at_times_p && times >"$at_times_file"
109608) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109609read at_status <"$at_status_file"
109610#AT_STOP_938
109611#AT_START_939
109612at_fn_group_banner 939 'run_functions.at:3397' \
109613  "FUNCTION TEST-FORMATTED-DATETIME DP.COMMA" "      " 4
109614at_xfail=no
109615(
109616  $as_echo "939. $at_setup_line: testing $at_desc ..."
109617  $at_traceon
109618
109619
109620
109621cat >prog.cob <<'_ATEOF'
109622
109623        IDENTIFICATION   DIVISION.
109624        PROGRAM-ID.      prog.
109625        ENVIRONMENT      DIVISION.
109626        CONFIGURATION    SECTION.
109627        SPECIAL-NAMES.
109628            DECIMAL-POINT IS COMMA.
109629        DATA             DIVISION.
109630        WORKING-STORAGE  SECTION.
109631        PROCEDURE        DIVISION.
109632            IF FUNCTION TEST-FORMATTED-DATETIME
109633                    ("hhmmss,ss", "000000,00") <> 0
109634                DISPLAY "Test 1 failed" END-DISPLAY
109635            END-IF
109636            IF FUNCTION TEST-FORMATTED-DATETIME
109637                    ("YYYYMMDDThhmmss,ss", "16010101T000000,00") <> 0
109638                DISPLAY "Test 2 failed" END-DISPLAY
109639            END-IF
109640
109641            IF FUNCTION TEST-FORMATTED-DATETIME
109642                    ("hhmmss,ss", "000000.00") <> 7
109643                DISPLAY "Test 3 failed" END-DISPLAY
109644            END-IF
109645            IF FUNCTION TEST-FORMATTED-DATETIME
109646                    ("YYYYMMDDThhmmss,ss", "16010101T000000.00") <> 16
109647                DISPLAY "Test 4 failed" END-DISPLAY
109648            END-IF
109649
109650            STOP RUN
109651            .
109652_ATEOF
109653
109654
109655{ set +x
109656$as_echo "$at_srcdir/run_functions.at:3432: \$COMPILE prog.cob"
109657at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3432"
109658( $at_check_trace; $COMPILE prog.cob
109659) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109660at_status=$? at_failed=false
109661$at_check_filter
109662at_fn_diff_devnull "$at_stderr" || at_failed=:
109663at_fn_diff_devnull "$at_stdout" || at_failed=:
109664at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3432"
109665$at_failed && at_fn_log_failure
109666$at_traceon; }
109667
109668{ set +x
109669$as_echo "$at_srcdir/run_functions.at:3433: \$COBCRUN_DIRECT ./prog"
109670at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3433"
109671( $at_check_trace; $COBCRUN_DIRECT ./prog
109672) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109673at_status=$? at_failed=false
109674$at_check_filter
109675at_fn_diff_devnull "$at_stderr" || at_failed=:
109676at_fn_diff_devnull "$at_stdout" || at_failed=:
109677at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3433"
109678$at_failed && at_fn_log_failure
109679$at_traceon; }
109680
109681
109682  set +x
109683  $at_times_p && times >"$at_times_file"
109684) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109685read at_status <"$at_status_file"
109686#AT_STOP_939
109687#AT_START_940
109688at_fn_group_banner 940 'run_functions.at:3438' \
109689  "FUNCTION TEST-NUMVAL" "                           " 4
109690at_xfail=no
109691(
109692  $as_echo "940. $at_setup_line: testing $at_desc ..."
109693  $at_traceon
109694
109695
109696
109697cat >prog.cob <<'_ATEOF'
109698
109699       IDENTIFICATION   DIVISION.
109700       PROGRAM-ID.      prog.
109701       DATA             DIVISION.
109702       WORKING-STORAGE  SECTION.
109703       PROCEDURE        DIVISION.
109704           IF FUNCTION TEST-NUMVAL ("+ 1")     NOT = 0
109705              DISPLAY "Test 1  fail"
109706              END-DISPLAY
109707           END-IF.
109708           IF FUNCTION TEST-NUMVAL (" + 1")    NOT = 0
109709              DISPLAY "Test 2  fail"
109710              END-DISPLAY
109711           END-IF.
109712           IF FUNCTION TEST-NUMVAL ("- 1")     NOT = 0
109713              DISPLAY "Test 3  fail"
109714              END-DISPLAY
109715           END-IF.
109716           IF FUNCTION TEST-NUMVAL (" - 1")    NOT = 0
109717              DISPLAY "Test 4  fail"
109718              END-DISPLAY
109719           END-IF.
109720           IF FUNCTION TEST-NUMVAL ("+- 1")    NOT = 2
109721              DISPLAY "Test 5  fail"
109722              END-DISPLAY
109723           END-IF.
109724           IF FUNCTION TEST-NUMVAL ("1 +")     NOT = 0
109725              DISPLAY "Test 6  fail"
109726              END-DISPLAY
109727           END-IF.
109728           IF FUNCTION TEST-NUMVAL ("1 -")     NOT = 0
109729              DISPLAY "Test 7  fail"
109730              END-DISPLAY
109731           END-IF.
109732           IF FUNCTION TEST-NUMVAL ("1 +-")    NOT = 4
109733              DISPLAY "Test 8  fail"
109734              END-DISPLAY
109735           END-IF.
109736           IF FUNCTION TEST-NUMVAL ("1 -+")    NOT = 4
109737              DISPLAY "Test 9  fail"
109738              END-DISPLAY
109739           END-IF.
109740           IF FUNCTION TEST-NUMVAL ("+ 1.1")   NOT = 0
109741              DISPLAY "Test 10 fail"
109742              END-DISPLAY
109743           END-IF.
109744           IF FUNCTION TEST-NUMVAL ("- 1.1")   NOT = 0
109745              DISPLAY "Test 11 fail"
109746              END-DISPLAY
109747           END-IF.
109748           IF FUNCTION TEST-NUMVAL ("1.1 +")   NOT = 0
109749              DISPLAY "Test 12 fail"
109750              END-DISPLAY
109751           END-IF.
109752           IF FUNCTION TEST-NUMVAL ("1.1 -")   NOT = 0
109753              DISPLAY "Test 13 fail"
109754              END-DISPLAY
109755           END-IF.
109756           IF FUNCTION TEST-NUMVAL ("1.1 CR")  NOT = 0
109757              DISPLAY "Test 14 fail"
109758              END-DISPLAY
109759           END-IF.
109760           IF FUNCTION TEST-NUMVAL ("1.1 DB")  NOT = 0
109761              DISPLAY "Test 15 fail"
109762              END-DISPLAY
109763           END-IF.
109764           IF FUNCTION TEST-NUMVAL ("1.1 -CR") NOT = 6
109765              DISPLAY "Test 16 fail"
109766              END-DISPLAY
109767           END-IF.
109768           IF FUNCTION TEST-NUMVAL ("1.1 +DB") NOT = 6
109769              DISPLAY "Test 17 fail"
109770              END-DISPLAY
109771           END-IF.
109772           IF FUNCTION TEST-NUMVAL ("1.1 CDB") NOT = 6
109773              DISPLAY "Test 18 fail"
109774              END-DISPLAY
109775           END-IF.
109776           IF FUNCTION TEST-NUMVAL ("+1.1 CR") NOT = 6
109777              DISPLAY "Test 19 fail"
109778              END-DISPLAY
109779           END-IF.
109780           IF FUNCTION TEST-NUMVAL ("+      ") NOT = 8
109781              DISPLAY "Test 20 fail"
109782              END-DISPLAY
109783           END-IF.
109784           STOP RUN.
109785_ATEOF
109786
109787
109788{ set +x
109789$as_echo "$at_srcdir/run_functions.at:3530: \$COMPILE prog.cob"
109790at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3530"
109791( $at_check_trace; $COMPILE prog.cob
109792) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109793at_status=$? at_failed=false
109794$at_check_filter
109795at_fn_diff_devnull "$at_stderr" || at_failed=:
109796at_fn_diff_devnull "$at_stdout" || at_failed=:
109797at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3530"
109798$at_failed && at_fn_log_failure
109799$at_traceon; }
109800
109801{ set +x
109802$as_echo "$at_srcdir/run_functions.at:3531: \$COBCRUN_DIRECT ./prog"
109803at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3531"
109804( $at_check_trace; $COBCRUN_DIRECT ./prog
109805) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109806at_status=$? at_failed=false
109807$at_check_filter
109808at_fn_diff_devnull "$at_stderr" || at_failed=:
109809at_fn_diff_devnull "$at_stdout" || at_failed=:
109810at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3531"
109811$at_failed && at_fn_log_failure
109812$at_traceon; }
109813
109814
109815  set +x
109816  $at_times_p && times >"$at_times_file"
109817) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109818read at_status <"$at_status_file"
109819#AT_STOP_940
109820#AT_START_941
109821at_fn_group_banner 941 'run_functions.at:3536' \
109822  "FUNCTION TEST-NUMVAL-C" "                         " 4
109823at_xfail=no
109824(
109825  $as_echo "941. $at_setup_line: testing $at_desc ..."
109826  $at_traceon
109827
109828
109829
109830cat >prog.cob <<'_ATEOF'
109831
109832       IDENTIFICATION   DIVISION.
109833       PROGRAM-ID.      prog.
109834       DATA             DIVISION.
109835       WORKING-STORAGE  SECTION.
109836       PROCEDURE        DIVISION.
109837           IF FUNCTION TEST-NUMVAL-C ("+ 1")     NOT = 0
109838              DISPLAY "Test 1  fail"
109839              END-DISPLAY
109840           END-IF.
109841           IF FUNCTION TEST-NUMVAL-C (" + 1")    NOT = 0
109842              DISPLAY "Test 2  fail"
109843              END-DISPLAY
109844           END-IF.
109845           IF FUNCTION TEST-NUMVAL-C ("- 1")     NOT = 0
109846              DISPLAY "Test 3  fail"
109847              END-DISPLAY
109848           END-IF.
109849           IF FUNCTION TEST-NUMVAL-C (" - 1")    NOT = 0
109850              DISPLAY "Test 4  fail"
109851              END-DISPLAY
109852           END-IF.
109853           IF FUNCTION TEST-NUMVAL-C ("+- 1")    NOT = 2
109854              DISPLAY "Test 5  fail"
109855              END-DISPLAY
109856           END-IF.
109857           IF FUNCTION TEST-NUMVAL-C ("1 +")     NOT = 0
109858              DISPLAY "Test 6  fail"
109859              END-DISPLAY
109860           END-IF.
109861           IF FUNCTION TEST-NUMVAL-C ("1 -")     NOT = 0
109862              DISPLAY "Test 7  fail"
109863              END-DISPLAY
109864           END-IF.
109865           IF FUNCTION TEST-NUMVAL-C ("1 +-")    NOT = 4
109866              DISPLAY "Test 8  fail"
109867              END-DISPLAY
109868           END-IF.
109869           IF FUNCTION TEST-NUMVAL-C ("1 -+")    NOT = 4
109870              DISPLAY "Test 9  fail"
109871              END-DISPLAY
109872           END-IF.
109873           IF FUNCTION TEST-NUMVAL-C ("+ 1.1")   NOT = 0
109874              DISPLAY "Test 10 fail"
109875              END-DISPLAY
109876           END-IF.
109877           IF FUNCTION TEST-NUMVAL-C ("- 1.1")   NOT = 0
109878              DISPLAY "Test 11 fail"
109879              END-DISPLAY
109880           END-IF.
109881           IF FUNCTION TEST-NUMVAL-C ("1.1 +")   NOT = 0
109882              DISPLAY "Test 12 fail"
109883              END-DISPLAY
109884           END-IF.
109885           IF FUNCTION TEST-NUMVAL-C ("1.1 -")   NOT = 0
109886              DISPLAY "Test 13 fail"
109887              END-DISPLAY
109888           END-IF.
109889           IF FUNCTION TEST-NUMVAL-C ("1.1 CR")  NOT = 0
109890              DISPLAY "Test 14 fail"
109891              END-DISPLAY
109892           END-IF.
109893           IF FUNCTION TEST-NUMVAL-C ("1.1 DB")  NOT = 0
109894              DISPLAY "Test 15 fail"
109895              END-DISPLAY
109896           END-IF.
109897           IF FUNCTION TEST-NUMVAL-C ("1.1 -CR") NOT = 6
109898              DISPLAY "Test 16 fail"
109899              END-DISPLAY
109900           END-IF.
109901           IF FUNCTION TEST-NUMVAL-C ("+ $1.1 ") NOT = 0
109902              DISPLAY "Test 17 fail"
109903              END-DISPLAY
109904           END-IF.
109905           IF FUNCTION TEST-NUMVAL-C ("- $1.1 ") NOT = 0
109906              DISPLAY "Test 18 fail"
109907              END-DISPLAY
109908           END-IF.
109909           IF FUNCTION TEST-NUMVAL-C ("+ X1.1 ", "X") NOT = 0
109910              DISPLAY "Test 19 fail"
109911              END-DISPLAY
109912           END-IF.
109913           IF FUNCTION TEST-NUMVAL-C ("- X1.1 ", "X") NOT = 0
109914              DISPLAY "Test 20 fail"
109915              END-DISPLAY
109916           END-IF.
109917           STOP RUN.
109918_ATEOF
109919
109920
109921{ set +x
109922$as_echo "$at_srcdir/run_functions.at:3628: \$COMPILE prog.cob"
109923at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3628"
109924( $at_check_trace; $COMPILE prog.cob
109925) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109926at_status=$? at_failed=false
109927$at_check_filter
109928at_fn_diff_devnull "$at_stderr" || at_failed=:
109929at_fn_diff_devnull "$at_stdout" || at_failed=:
109930at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3628"
109931$at_failed && at_fn_log_failure
109932$at_traceon; }
109933
109934{ set +x
109935$as_echo "$at_srcdir/run_functions.at:3629: \$COBCRUN_DIRECT ./prog"
109936at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3629"
109937( $at_check_trace; $COBCRUN_DIRECT ./prog
109938) >>"$at_stdout" 2>>"$at_stderr" 5>&-
109939at_status=$? at_failed=false
109940$at_check_filter
109941at_fn_diff_devnull "$at_stderr" || at_failed=:
109942at_fn_diff_devnull "$at_stdout" || at_failed=:
109943at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3629"
109944$at_failed && at_fn_log_failure
109945$at_traceon; }
109946
109947
109948  set +x
109949  $at_times_p && times >"$at_times_file"
109950) 5>&1 2>&1 7>&- | eval $at_tee_pipe
109951read at_status <"$at_status_file"
109952#AT_STOP_941
109953#AT_START_942
109954at_fn_group_banner 942 'run_functions.at:3634' \
109955  "FUNCTION TEST-NUMVAL-F" "                         " 4
109956at_xfail=no
109957(
109958  $as_echo "942. $at_setup_line: testing $at_desc ..."
109959  $at_traceon
109960
109961
109962
109963cat >prog.cob <<'_ATEOF'
109964
109965       IDENTIFICATION   DIVISION.
109966       PROGRAM-ID.      prog.
109967       DATA             DIVISION.
109968       WORKING-STORAGE  SECTION.
109969       PROCEDURE        DIVISION.
109970           IF FUNCTION TEST-NUMVAL-F ("+ 1")     NOT = 0
109971              DISPLAY "Test 1  fail"
109972              END-DISPLAY
109973           END-IF.
109974           IF FUNCTION TEST-NUMVAL-F (" + 1")    NOT = 0
109975              DISPLAY "Test 2  fail"
109976              END-DISPLAY
109977           END-IF.
109978           IF FUNCTION TEST-NUMVAL-F ("- 1")     NOT = 0
109979              DISPLAY "Test 3  fail"
109980              END-DISPLAY
109981           END-IF.
109982           IF FUNCTION TEST-NUMVAL-F (" - 1")    NOT = 0
109983              DISPLAY "Test 4  fail"
109984              END-DISPLAY
109985           END-IF.
109986           IF FUNCTION TEST-NUMVAL-F ("+- 1")    NOT = 2
109987              DISPLAY "Test 5  fail"
109988              END-DISPLAY
109989           END-IF.
109990           IF FUNCTION TEST-NUMVAL-F ("1 +")     NOT = 0
109991              DISPLAY "Test 6  fail"
109992              END-DISPLAY
109993           END-IF.
109994           IF FUNCTION TEST-NUMVAL-F ("1 -")     NOT = 0
109995              DISPLAY "Test 7  fail"
109996              END-DISPLAY
109997           END-IF.
109998           IF FUNCTION TEST-NUMVAL-F ("1 +-")    NOT = 4
109999              DISPLAY "Test 8  fail"
110000              END-DISPLAY
110001           END-IF.
110002           IF FUNCTION TEST-NUMVAL-F ("1 -+")    NOT = 4
110003              DISPLAY "Test 9  fail"
110004              END-DISPLAY
110005           END-IF.
110006           IF FUNCTION TEST-NUMVAL-F ("+ 1.1")   NOT = 0
110007              DISPLAY "Test 10 fail"
110008              END-DISPLAY
110009           END-IF.
110010           IF FUNCTION TEST-NUMVAL-F ("- 1.1")   NOT = 0
110011              DISPLAY "Test 11 fail"
110012              END-DISPLAY
110013           END-IF.
110014           IF FUNCTION TEST-NUMVAL-F ("1.1 +")   NOT = 0
110015              DISPLAY "Test 12 fail"
110016              END-DISPLAY
110017           END-IF.
110018           IF FUNCTION TEST-NUMVAL-F ("1.1 -")   NOT = 0
110019              DISPLAY "Test 13 fail"
110020              END-DISPLAY
110021           END-IF.
110022           IF FUNCTION TEST-NUMVAL-F ("1.1   ")  NOT = 0
110023              DISPLAY "Test 14 fail"
110024              END-DISPLAY
110025           END-IF.
110026           IF FUNCTION TEST-NUMVAL-F ("1.1   ")  NOT = 0
110027              DISPLAY "Test 15 fail"
110028              END-DISPLAY
110029           END-IF.
110030           IF FUNCTION TEST-NUMVAL-F ("1.1 -CR") NOT = 6
110031              DISPLAY "Test 16 fail"
110032              END-DISPLAY
110033           END-IF.
110034           IF FUNCTION TEST-NUMVAL-F ("1.1 E+1") NOT = 0
110035              DISPLAY "Test 17 fail"
110036              END-DISPLAY
110037           END-IF.
110038           IF FUNCTION TEST-NUMVAL-F ("1.1 E -1") NOT = 0
110039              DISPLAY "Test 18 fail"
110040              END-DISPLAY
110041           END-IF.
110042           IF FUNCTION TEST-NUMVAL-F ("1.1 EE") NOT = 6
110043              DISPLAY "Test 19 fail"
110044              END-DISPLAY
110045           END-IF.
110046           IF FUNCTION TEST-NUMVAL-F ("+1.1 E001") NOT = 7
110047              DISPLAY "Test 20 fail"
110048              END-DISPLAY
110049           END-IF.
110050           STOP RUN.
110051_ATEOF
110052
110053
110054{ set +x
110055$as_echo "$at_srcdir/run_functions.at:3726: \$COMPILE prog.cob"
110056at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3726"
110057( $at_check_trace; $COMPILE prog.cob
110058) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110059at_status=$? at_failed=false
110060$at_check_filter
110061at_fn_diff_devnull "$at_stderr" || at_failed=:
110062at_fn_diff_devnull "$at_stdout" || at_failed=:
110063at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3726"
110064$at_failed && at_fn_log_failure
110065$at_traceon; }
110066
110067{ set +x
110068$as_echo "$at_srcdir/run_functions.at:3727: \$COBCRUN_DIRECT ./prog"
110069at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3727"
110070( $at_check_trace; $COBCRUN_DIRECT ./prog
110071) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110072at_status=$? at_failed=false
110073$at_check_filter
110074at_fn_diff_devnull "$at_stderr" || at_failed=:
110075at_fn_diff_devnull "$at_stdout" || at_failed=:
110076at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3727"
110077$at_failed && at_fn_log_failure
110078$at_traceon; }
110079
110080
110081  set +x
110082  $at_times_p && times >"$at_times_file"
110083) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110084read at_status <"$at_status_file"
110085#AT_STOP_942
110086#AT_START_943
110087at_fn_group_banner 943 'run_functions.at:3732' \
110088  "FUNCTION TRIM" "                                  " 4
110089at_xfail=no
110090(
110091  $as_echo "943. $at_setup_line: testing $at_desc ..."
110092  $at_traceon
110093
110094
110095
110096cat >prog.cob <<'_ATEOF'
110097
110098       IDENTIFICATION   DIVISION.
110099       PROGRAM-ID.      prog.
110100       DATA             DIVISION.
110101       WORKING-STORAGE  SECTION.
110102       01  X   PIC   X(12) VALUE " a#b.c%d+e$ ".
110103       PROCEDURE        DIVISION.
110104           DISPLAY FUNCTION TRIM ( X )
110105           END-DISPLAY.
110106           DISPLAY FUNCTION TRIM ( X TRAILING )
110107           END-DISPLAY.
110108           STOP RUN.
110109_ATEOF
110110
110111
110112{ set +x
110113$as_echo "$at_srcdir/run_functions.at:3749: \$COMPILE prog.cob"
110114at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3749"
110115( $at_check_trace; $COMPILE prog.cob
110116) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110117at_status=$? at_failed=false
110118$at_check_filter
110119at_fn_diff_devnull "$at_stderr" || at_failed=:
110120at_fn_diff_devnull "$at_stdout" || at_failed=:
110121at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3749"
110122$at_failed && at_fn_log_failure
110123$at_traceon; }
110124
110125{ set +x
110126$as_echo "$at_srcdir/run_functions.at:3750: \$COBCRUN_DIRECT ./prog"
110127at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3750"
110128( $at_check_trace; $COBCRUN_DIRECT ./prog
110129) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110130at_status=$? at_failed=false
110131$at_check_filter
110132at_fn_diff_devnull "$at_stderr" || at_failed=:
110133echo >>"$at_stdout"; $as_echo "a#b.c%d+e\$
110134 a#b.c%d+e\$
110135" | \
110136  $at_diff - "$at_stdout" || at_failed=:
110137at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3750"
110138$at_failed && at_fn_log_failure
110139$at_traceon; }
110140
110141
110142  set +x
110143  $at_times_p && times >"$at_times_file"
110144) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110145read at_status <"$at_status_file"
110146#AT_STOP_943
110147#AT_START_944
110148at_fn_group_banner 944 'run_functions.at:3758' \
110149  "FUNCTION TRIM with reference modding" "           " 4
110150at_xfail=no
110151(
110152  $as_echo "944. $at_setup_line: testing $at_desc ..."
110153  $at_traceon
110154
110155
110156
110157cat >prog.cob <<'_ATEOF'
110158
110159       IDENTIFICATION   DIVISION.
110160       PROGRAM-ID.      prog.
110161       DATA             DIVISION.
110162       WORKING-STORAGE  SECTION.
110163       01  X   PIC   X(12) VALUE " a#b.c%d+e$ ".
110164       PROCEDURE        DIVISION.
110165           DISPLAY FUNCTION TRIM ( X ) (2 : 3)
110166           END-DISPLAY.
110167           DISPLAY FUNCTION TRIM ( X TRAILING ) (2 : 3)
110168           END-DISPLAY.
110169           STOP RUN.
110170_ATEOF
110171
110172
110173{ set +x
110174$as_echo "$at_srcdir/run_functions.at:3775: \$COMPILE prog.cob"
110175at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3775"
110176( $at_check_trace; $COMPILE prog.cob
110177) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110178at_status=$? at_failed=false
110179$at_check_filter
110180at_fn_diff_devnull "$at_stderr" || at_failed=:
110181at_fn_diff_devnull "$at_stdout" || at_failed=:
110182at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3775"
110183$at_failed && at_fn_log_failure
110184$at_traceon; }
110185
110186{ set +x
110187$as_echo "$at_srcdir/run_functions.at:3776: \$COBCRUN_DIRECT ./prog"
110188at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3776"
110189( $at_check_trace; $COBCRUN_DIRECT ./prog
110190) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110191at_status=$? at_failed=false
110192$at_check_filter
110193at_fn_diff_devnull "$at_stderr" || at_failed=:
110194echo >>"$at_stdout"; $as_echo "#b.
110195a#b
110196" | \
110197  $at_diff - "$at_stdout" || at_failed=:
110198at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3776"
110199$at_failed && at_fn_log_failure
110200$at_traceon; }
110201
110202
110203  set +x
110204  $at_times_p && times >"$at_times_file"
110205) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110206read at_status <"$at_status_file"
110207#AT_STOP_944
110208#AT_START_945
110209at_fn_group_banner 945 'run_functions.at:3784' \
110210  "FUNCTION TRIM zero length" "                      " 4
110211at_xfail=no
110212(
110213  $as_echo "945. $at_setup_line: testing $at_desc ..."
110214  $at_traceon
110215
110216
110217
110218cat >prog.cob <<'_ATEOF'
110219
110220       IDENTIFICATION   DIVISION.
110221       PROGRAM-ID.      prog.
110222       DATA             DIVISION.
110223       WORKING-STORAGE  SECTION.
110224       01  X   PIC   X(4) VALUE "NOOK".
110225       PROCEDURE        DIVISION.
110226           MOVE FUNCTION TRIM ( "  " ) TO X.
110227           DISPLAY ">" X "<"
110228           END-DISPLAY.
110229           DISPLAY ">" FUNCTION TRIM ( "   " ) "<"
110230           END-DISPLAY.
110231           STOP RUN.
110232_ATEOF
110233
110234
110235{ set +x
110236$as_echo "$at_srcdir/run_functions.at:3802: \$COMPILE prog.cob"
110237at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3802"
110238( $at_check_trace; $COMPILE prog.cob
110239) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110240at_status=$? at_failed=false
110241$at_check_filter
110242at_fn_diff_devnull "$at_stderr" || at_failed=:
110243at_fn_diff_devnull "$at_stdout" || at_failed=:
110244at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3802"
110245$at_failed && at_fn_log_failure
110246$at_traceon; }
110247
110248{ set +x
110249$as_echo "$at_srcdir/run_functions.at:3803: \$COBCRUN_DIRECT ./prog"
110250at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3803"
110251( $at_check_trace; $COBCRUN_DIRECT ./prog
110252) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110253at_status=$? at_failed=false
110254$at_check_filter
110255at_fn_diff_devnull "$at_stderr" || at_failed=:
110256echo >>"$at_stdout"; $as_echo ">    <
110257><
110258" | \
110259  $at_diff - "$at_stdout" || at_failed=:
110260at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3803"
110261$at_failed && at_fn_log_failure
110262$at_traceon; }
110263
110264
110265  set +x
110266  $at_times_p && times >"$at_times_file"
110267) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110268read at_status <"$at_status_file"
110269#AT_STOP_945
110270#AT_START_946
110271at_fn_group_banner 946 'run_functions.at:3811' \
110272  "FUNCTION UPPER-CASE" "                            " 4
110273at_xfail=no
110274(
110275  $as_echo "946. $at_setup_line: testing $at_desc ..."
110276  $at_traceon
110277
110278
110279
110280cat >prog.cob <<'_ATEOF'
110281
110282       IDENTIFICATION   DIVISION.
110283       PROGRAM-ID.      prog.
110284       DATA             DIVISION.
110285       WORKING-STORAGE  SECTION.
110286       01  X   PIC   X(10) VALUE "a#b.c%d+e$".
110287       01  Z   PIC   X(10).
110288       PROCEDURE        DIVISION.
110289           MOVE FUNCTION UPPER-CASE ( X ) TO Z.
110290           IF Z NOT = "A#B.C%D+E$"
110291              DISPLAY Z
110292              END-DISPLAY
110293           END-IF.
110294           STOP RUN.
110295_ATEOF
110296
110297
110298{ set +x
110299$as_echo "$at_srcdir/run_functions.at:3830: \$COMPILE prog.cob"
110300at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3830"
110301( $at_check_trace; $COMPILE prog.cob
110302) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110303at_status=$? at_failed=false
110304$at_check_filter
110305at_fn_diff_devnull "$at_stderr" || at_failed=:
110306at_fn_diff_devnull "$at_stdout" || at_failed=:
110307at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3830"
110308$at_failed && at_fn_log_failure
110309$at_traceon; }
110310
110311{ set +x
110312$as_echo "$at_srcdir/run_functions.at:3831: \$COBCRUN_DIRECT ./prog"
110313at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3831"
110314( $at_check_trace; $COBCRUN_DIRECT ./prog
110315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110316at_status=$? at_failed=false
110317$at_check_filter
110318at_fn_diff_devnull "$at_stderr" || at_failed=:
110319at_fn_diff_devnull "$at_stdout" || at_failed=:
110320at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3831"
110321$at_failed && at_fn_log_failure
110322$at_traceon; }
110323
110324
110325  set +x
110326  $at_times_p && times >"$at_times_file"
110327) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110328read at_status <"$at_status_file"
110329#AT_STOP_946
110330#AT_START_947
110331at_fn_group_banner 947 'run_functions.at:3836' \
110332  "FUNCTION UPPER-CASE with reference modding" "     " 4
110333at_xfail=no
110334(
110335  $as_echo "947. $at_setup_line: testing $at_desc ..."
110336  $at_traceon
110337
110338
110339
110340cat >prog.cob <<'_ATEOF'
110341
110342       IDENTIFICATION   DIVISION.
110343       PROGRAM-ID.      prog.
110344       DATA             DIVISION.
110345       WORKING-STORAGE  SECTION.
110346       01  X   PIC   X(10) VALUE "a#b.c%d+e$".
110347       01  Z   PIC   X(4).
110348       PROCEDURE        DIVISION.
110349           MOVE FUNCTION UPPER-CASE ( X ) (1 : 3) TO Z.
110350           IF Z NOT = "A#B "
110351              DISPLAY Z
110352              END-DISPLAY
110353           END-IF.
110354           STOP RUN.
110355_ATEOF
110356
110357
110358{ set +x
110359$as_echo "$at_srcdir/run_functions.at:3855: \$COMPILE prog.cob"
110360at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3855"
110361( $at_check_trace; $COMPILE prog.cob
110362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110363at_status=$? at_failed=false
110364$at_check_filter
110365at_fn_diff_devnull "$at_stderr" || at_failed=:
110366at_fn_diff_devnull "$at_stdout" || at_failed=:
110367at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3855"
110368$at_failed && at_fn_log_failure
110369$at_traceon; }
110370
110371{ set +x
110372$as_echo "$at_srcdir/run_functions.at:3856: \$COBCRUN_DIRECT ./prog"
110373at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3856"
110374( $at_check_trace; $COBCRUN_DIRECT ./prog
110375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110376at_status=$? at_failed=false
110377$at_check_filter
110378at_fn_diff_devnull "$at_stderr" || at_failed=:
110379at_fn_diff_devnull "$at_stdout" || at_failed=:
110380at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3856"
110381$at_failed && at_fn_log_failure
110382$at_traceon; }
110383
110384
110385  set +x
110386  $at_times_p && times >"$at_times_file"
110387) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110388read at_status <"$at_status_file"
110389#AT_STOP_947
110390#AT_START_948
110391at_fn_group_banner 948 'run_functions.at:3861' \
110392  "FUNCTION VARIANCE" "                              " 4
110393at_xfail=no
110394(
110395  $as_echo "948. $at_setup_line: testing $at_desc ..."
110396  $at_traceon
110397
110398
110399
110400cat >prog.cob <<'_ATEOF'
110401
110402       IDENTIFICATION   DIVISION.
110403       PROGRAM-ID.      prog.
110404       DATA             DIVISION.
110405       WORKING-STORAGE  SECTION.
110406       01  Z            PIC S9(4)V9(4) COMP-5.
110407       PROCEDURE        DIVISION.
110408           MOVE FUNCTION VARIANCE ( 3 -14 0 8 -3 ) TO Z.
110409           IF Z NOT = 54.16
110410              DISPLAY Z
110411              END-DISPLAY
110412           END-IF.
110413           STOP RUN.
110414_ATEOF
110415
110416
110417{ set +x
110418$as_echo "$at_srcdir/run_functions.at:3879: \$COMPILE prog.cob"
110419at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3879"
110420( $at_check_trace; $COMPILE prog.cob
110421) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110422at_status=$? at_failed=false
110423$at_check_filter
110424at_fn_diff_devnull "$at_stderr" || at_failed=:
110425at_fn_diff_devnull "$at_stdout" || at_failed=:
110426at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3879"
110427$at_failed && at_fn_log_failure
110428$at_traceon; }
110429
110430{ set +x
110431$as_echo "$at_srcdir/run_functions.at:3880: \$COBCRUN_DIRECT ./prog"
110432at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3880"
110433( $at_check_trace; $COBCRUN_DIRECT ./prog
110434) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110435at_status=$? at_failed=false
110436$at_check_filter
110437at_fn_diff_devnull "$at_stderr" || at_failed=:
110438at_fn_diff_devnull "$at_stdout" || at_failed=:
110439at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3880"
110440$at_failed && at_fn_log_failure
110441$at_traceon; }
110442
110443
110444  set +x
110445  $at_times_p && times >"$at_times_file"
110446) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110447read at_status <"$at_status_file"
110448#AT_STOP_948
110449#AT_START_949
110450at_fn_group_banner 949 'run_functions.at:3885' \
110451  "FUNCTION WHEN-COMPILED" "                         " 4
110452at_xfail=no
110453(
110454  $as_echo "949. $at_setup_line: testing $at_desc ..."
110455  $at_traceon
110456
110457
110458
110459cat >prog.cob <<'_ATEOF'
110460
110461       IDENTIFICATION   DIVISION.
110462       PROGRAM-ID.      prog.
110463       DATA             DIVISION.
110464       WORKING-STORAGE  SECTION.
110465       01  compiled-datetime.
110466           03  compiled-date.
110467               05  millennium PIC X.
110468               05  FILLER    PIC X(15).
110469           03  timezone  PIC X(5).
110470       PROCEDURE        DIVISION.
110471           *> Check millennium.
110472           MOVE FUNCTION WHEN-COMPILED TO compiled-datetime.
110473           IF millennium NOT = "2"
110474              DISPLAY "Millennium NOT OK: " millennium
110475              END-DISPLAY
110476           END-IF.
110477
110478           *> Check timezone.
110479           IF timezone NOT = FUNCTION CURRENT-DATE (17:5)
110480              DISPLAY "Timezone NOT OK: " timezone
110481              END-DISPLAY
110482           END-IF.
110483
110484           *> Check date format.
110485           INSPECT compiled-date CONVERTING "0123456789"
110486               TO "9999999999".
110487           IF compiled-date NOT = ALL "9"
110488               DISPLAY "Date format NOT OK: " compiled-date
110489               END-DISPLAY
110490           END-IF.
110491
110492           *> Check timezone format.
110493           IF timezone NOT = "00000"
110494               INSPECT timezone CONVERTING "0123456789"
110495                   TO "9999999999"
110496               IF timezone NOT = "+9999" AND "-9999"
110497                   DISPLAY "Timezone format NOT OK: " timezone
110498                   END-DISPLAY
110499               END-IF
110500           END-IF.
110501
110502           STOP RUN.
110503_ATEOF
110504
110505
110506{ set +x
110507$as_echo "$at_srcdir/run_functions.at:3933: \$COMPILE prog.cob"
110508at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3933"
110509( $at_check_trace; $COMPILE prog.cob
110510) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110511at_status=$? at_failed=false
110512$at_check_filter
110513at_fn_diff_devnull "$at_stderr" || at_failed=:
110514at_fn_diff_devnull "$at_stdout" || at_failed=:
110515at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3933"
110516$at_failed && at_fn_log_failure
110517$at_traceon; }
110518
110519{ set +x
110520$as_echo "$at_srcdir/run_functions.at:3934: \$COBCRUN_DIRECT ./prog"
110521at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3934"
110522( $at_check_trace; $COBCRUN_DIRECT ./prog
110523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110524at_status=$? at_failed=false
110525$at_check_filter
110526at_fn_diff_devnull "$at_stderr" || at_failed=:
110527at_fn_diff_devnull "$at_stdout" || at_failed=:
110528at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3934"
110529$at_failed && at_fn_log_failure
110530$at_traceon; }
110531
110532
110533  set +x
110534  $at_times_p && times >"$at_times_file"
110535) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110536read at_status <"$at_status_file"
110537#AT_STOP_949
110538#AT_START_950
110539at_fn_group_banner 950 'run_functions.at:3939' \
110540  "FUNCTION YEAR-TO-YYYY" "                          " 4
110541at_xfail=no
110542(
110543  $as_echo "950. $at_setup_line: testing $at_desc ..."
110544  $at_traceon
110545
110546
110547
110548cat >prog.cob <<'_ATEOF'
110549
110550       IDENTIFICATION   DIVISION.
110551       PROGRAM-ID.      prog.
110552       DATA             DIVISION.
110553       WORKING-STORAGE  SECTION.
110554       01  Z            USAGE BINARY-LONG.
110555       PROCEDURE        DIVISION.
110556           MOVE FUNCTION YEAR-TO-YYYY ( 50 ) TO Z.
110557           IF Z NOT = 2050
110558              DISPLAY Z
110559              END-DISPLAY
110560           END-IF.
110561           STOP RUN.
110562_ATEOF
110563
110564
110565{ set +x
110566$as_echo "$at_srcdir/run_functions.at:3957: \$COMPILE prog.cob"
110567at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3957"
110568( $at_check_trace; $COMPILE prog.cob
110569) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110570at_status=$? at_failed=false
110571$at_check_filter
110572at_fn_diff_devnull "$at_stderr" || at_failed=:
110573at_fn_diff_devnull "$at_stdout" || at_failed=:
110574at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3957"
110575$at_failed && at_fn_log_failure
110576$at_traceon; }
110577
110578{ set +x
110579$as_echo "$at_srcdir/run_functions.at:3958: \$COBCRUN_DIRECT ./prog"
110580at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3958"
110581( $at_check_trace; $COBCRUN_DIRECT ./prog
110582) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110583at_status=$? at_failed=false
110584$at_check_filter
110585at_fn_diff_devnull "$at_stderr" || at_failed=:
110586at_fn_diff_devnull "$at_stdout" || at_failed=:
110587at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3958"
110588$at_failed && at_fn_log_failure
110589$at_traceon; }
110590
110591
110592  set +x
110593  $at_times_p && times >"$at_times_file"
110594) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110595read at_status <"$at_status_file"
110596#AT_STOP_950
110597#AT_START_951
110598at_fn_group_banner 951 'run_functions.at:3963' \
110599  "Formatted funcs w/ invalid variable format" "     " 4
110600at_xfail=no
110601(
110602  $as_echo "951. $at_setup_line: testing $at_desc ..."
110603  $at_traceon
110604
110605
110606
110607cat >prog.cob <<'_ATEOF'
110608
110609       IDENTIFICATION   DIVISION.
110610       PROGRAM-ID.      prog.
110611       DATA             DIVISION.
110612       WORKING-STORAGE  SECTION.
110613       01  invalid-date-format          PIC X(10) VALUE "yyyymmdd".
110614       01  invalid-datetime-format      PIC X(17)
110615                                        VALUE "yyyymmddtHHMMSS".
110616       01  invalid-time-format          PIC X(6) VALUE "HHMMSS".
110617       PROCEDURE        DIVISION.
110618           IF FUNCTION FORMATTED-CURRENT-DATE
110619                           (invalid-date-format) <> SPACES
110620                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110621                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 11"
110622               DISPLAY "Test 1 failed" END-DISPLAY
110623           END-IF
110624
110625           IF FUNCTION FORMATTED-DATE (invalid-date-format, 1) <> SPACES
110626                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110627                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 18"
110628               DISPLAY "Test 2 failed" END-DISPLAY
110629           END-IF
110630
110631           IF FUNCTION FORMATTED-DATETIME
110632                           (invalid-datetime-format, 1, 1) <> SPACES
110633                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110634                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 24"
110635               DISPLAY "Test 3 failed" END-DISPLAY
110636           END-IF
110637
110638           IF FUNCTION FORMATTED-TIME (invalid-time-format, 1) <> SPACES
110639                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110640                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 31"
110641               DISPLAY "Test 4 failed" END-DISPLAY
110642           END-IF
110643
110644           IF FUNCTION INTEGER-OF-FORMATTED-DATE
110645                           (invalid-date-format, 1) <> ZERO
110646                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110647                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 37"
110648               DISPLAY "Test 5 failed" END-DISPLAY
110649           END-IF
110650
110651           IF FUNCTION SECONDS-FROM-FORMATTED-TIME
110652                           (invalid-time-format, 1) <> ZERO
110653                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110654                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 44"
110655               DISPLAY "Test 6 failed" END-DISPLAY
110656           END-IF
110657
110658           IF FUNCTION TEST-FORMATTED-DATETIME
110659                           (invalid-datetime-format, 1) <> ZERO
110660                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
110661                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 51"
110662               DISPLAY "Test 7 failed" END-DISPLAY
110663           END-IF
110664
110665           STOP RUN.
110666_ATEOF
110667
110668
110669{ set +x
110670$as_echo "$at_srcdir/run_functions.at:4027: \$COMPILE prog.cob"
110671at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4027"
110672( $at_check_trace; $COMPILE prog.cob
110673) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110674at_status=$? at_failed=false
110675$at_check_filter
110676echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: FUNCTION 'FORMATTED-CURRENT-DATE' has format in variable
110677prog.cob:18: warning: FUNCTION 'FORMATTED-DATE' has format in variable
110678prog.cob:24: warning: FUNCTION 'FORMATTED-DATETIME' has format in variable
110679prog.cob:31: warning: FUNCTION 'FORMATTED-TIME' has format in variable
110680prog.cob:37: warning: FUNCTION 'INTEGER-OF-FORMATTED-DATE' has format in variable
110681prog.cob:44: warning: FUNCTION 'SECONDS-FROM-FORMATTED-TIME' has format in variable
110682prog.cob:51: warning: FUNCTION 'TEST-FORMATTED-DATETIME' has format in variable
110683" | \
110684  $at_diff - "$at_stderr" || at_failed=:
110685at_fn_diff_devnull "$at_stdout" || at_failed=:
110686at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4027"
110687$at_failed && at_fn_log_failure
110688$at_traceon; }
110689
110690
110691# running the program
110692{ set +x
110693$as_echo "$at_srcdir/run_functions.at:4038: \$COBCRUN_DIRECT ./prog"
110694at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4038"
110695( $at_check_trace; $COBCRUN_DIRECT ./prog
110696) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110697at_status=$? at_failed=false
110698$at_check_filter
110699at_fn_diff_devnull "$at_stderr" || at_failed=:
110700at_fn_diff_devnull "$at_stdout" || at_failed=:
110701at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4038"
110702$at_failed && at_fn_log_failure
110703$at_traceon; }
110704
110705
110706
110707  set +x
110708  $at_times_p && times >"$at_times_file"
110709) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110710read at_status <"$at_status_file"
110711#AT_STOP_951
110712#AT_START_952
110713at_fn_group_banner 952 'run_functions.at:4044' \
110714  "FORMATTED-(DATE)TIME with SYSTEM-OFFSET" "        " 4
110715at_xfail=no
110716(
110717  $as_echo "952. $at_setup_line: testing $at_desc ..."
110718  $at_traceon
110719
110720
110721
110722cat >prog.cob <<'_ATEOF'
110723
110724       IDENTIFICATION  DIVISION.
110725       PROGRAM-ID.     prog.
110726       DATA            DIVISION.
110727       WORKING-STORAGE SECTION.
110728       01  str         PIC X(30).
110729       77  val         pic 9(02).
110730
110731       PROCEDURE DIVISION.
110732           MOVE FUNCTION FORMATTED-DATETIME
110733                    ("YYYYDDDThhmmss+hhmm", 1, 45296, SYSTEM-OFFSET)
110734               TO str
110735           MOVE FUNCTION TEST-FORMATTED-DATETIME
110736                   ("YYYYDDDThhmmss+hhmm", str) TO val
110737           IF val not = 0
110738               DISPLAY "Test 1 failed: " str ' - ' val END-DISPLAY
110739           END-IF
110740
110741           MOVE FUNCTION FORMATTED-TIME
110742                    ("hhmmss.ssZ", 45296, SYSTEM-OFFSET)
110743               TO str
110744           MOVE FUNCTION TEST-FORMATTED-DATETIME
110745                   ("hhmmss.ssZ", str) TO val
110746           IF val not = 0
110747               DISPLAY "Test 2 failed: " str ' - ' val END-DISPLAY
110748           END-IF
110749           .
110750_ATEOF
110751
110752
110753{ set +x
110754$as_echo "$at_srcdir/run_functions.at:4076: \$COMPILE prog.cob"
110755at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4076"
110756( $at_check_trace; $COMPILE prog.cob
110757) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110758at_status=$? at_failed=false
110759$at_check_filter
110760at_fn_diff_devnull "$at_stderr" || at_failed=:
110761at_fn_diff_devnull "$at_stdout" || at_failed=:
110762at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4076"
110763$at_failed && at_fn_log_failure
110764$at_traceon; }
110765
110766{ set +x
110767$as_echo "$at_srcdir/run_functions.at:4077: \$COBCRUN_DIRECT ./prog"
110768at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4077"
110769( $at_check_trace; $COBCRUN_DIRECT ./prog
110770) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110771at_status=$? at_failed=false
110772$at_check_filter
110773at_fn_diff_devnull "$at_stderr" || at_failed=:
110774at_fn_diff_devnull "$at_stdout" || at_failed=:
110775at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4077"
110776$at_failed && at_fn_log_failure
110777$at_traceon; }
110778
110779
110780  set +x
110781  $at_times_p && times >"$at_times_file"
110782) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110783read at_status <"$at_status_file"
110784#AT_STOP_952
110785#AT_START_953
110786at_fn_group_banner 953 'run_functions.at:4082' \
110787  "Intrinsics without FUNCTION keyword (1)" "        " 4
110788at_xfail=no
110789(
110790  $as_echo "953. $at_setup_line: testing $at_desc ..."
110791  $at_traceon
110792
110793
110794
110795cat >prog.cob <<'_ATEOF'
110796
110797       IDENTIFICATION   DIVISION.
110798       PROGRAM-ID.      prog.
110799       DATA             DIVISION.
110800       WORKING-STORAGE  SECTION.
110801       01  Z            PIC 99V99.
110802       PROCEDURE        DIVISION.
110803           MOVE PI TO Z.
110804           MOVE E TO Z.
110805           STOP RUN.
110806_ATEOF
110807
110808
110809{ set +x
110810$as_echo "$at_srcdir/run_functions.at:4097: \$COMPILE -fintrinsics=all prog.cob"
110811at_fn_check_prepare_dynamic "$COMPILE -fintrinsics=all prog.cob" "run_functions.at:4097"
110812( $at_check_trace; $COMPILE -fintrinsics=all prog.cob
110813) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110814at_status=$? at_failed=false
110815$at_check_filter
110816at_fn_diff_devnull "$at_stderr" || at_failed=:
110817at_fn_diff_devnull "$at_stdout" || at_failed=:
110818at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4097"
110819$at_failed && at_fn_log_failure
110820$at_traceon; }
110821
110822{ set +x
110823$as_echo "$at_srcdir/run_functions.at:4098: \$COBCRUN_DIRECT ./prog"
110824at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4098"
110825( $at_check_trace; $COBCRUN_DIRECT ./prog
110826) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110827at_status=$? at_failed=false
110828$at_check_filter
110829at_fn_diff_devnull "$at_stderr" || at_failed=:
110830at_fn_diff_devnull "$at_stdout" || at_failed=:
110831at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4098"
110832$at_failed && at_fn_log_failure
110833$at_traceon; }
110834
110835
110836  set +x
110837  $at_times_p && times >"$at_times_file"
110838) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110839read at_status <"$at_status_file"
110840#AT_STOP_953
110841#AT_START_954
110842at_fn_group_banner 954 'run_functions.at:4103' \
110843  "Intrinsics without FUNCTION keyword (2)" "        " 4
110844at_xfail=no
110845(
110846  $as_echo "954. $at_setup_line: testing $at_desc ..."
110847  $at_traceon
110848
110849
110850
110851cat >prog.cob <<'_ATEOF'
110852
110853       IDENTIFICATION   DIVISION.
110854       PROGRAM-ID.      prog.
110855       DATA             DIVISION.
110856       WORKING-STORAGE  SECTION.
110857       01  Z            PIC 99V99.
110858       PROCEDURE        DIVISION.
110859           MOVE PI TO Z.
110860           MOVE E TO Z.
110861           STOP RUN.
110862_ATEOF
110863
110864
110865{ set +x
110866$as_echo "$at_srcdir/run_functions.at:4118: \$COMPILE -fintrinsics=pi,e prog.cob"
110867at_fn_check_prepare_dynamic "$COMPILE -fintrinsics=pi,e prog.cob" "run_functions.at:4118"
110868( $at_check_trace; $COMPILE -fintrinsics=pi,e prog.cob
110869) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110870at_status=$? at_failed=false
110871$at_check_filter
110872at_fn_diff_devnull "$at_stderr" || at_failed=:
110873at_fn_diff_devnull "$at_stdout" || at_failed=:
110874at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4118"
110875$at_failed && at_fn_log_failure
110876$at_traceon; }
110877
110878{ set +x
110879$as_echo "$at_srcdir/run_functions.at:4119: \$COBCRUN_DIRECT ./prog"
110880at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4119"
110881( $at_check_trace; $COBCRUN_DIRECT ./prog
110882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110883at_status=$? at_failed=false
110884$at_check_filter
110885at_fn_diff_devnull "$at_stderr" || at_failed=:
110886at_fn_diff_devnull "$at_stdout" || at_failed=:
110887at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4119"
110888$at_failed && at_fn_log_failure
110889$at_traceon; }
110890
110891
110892  set +x
110893  $at_times_p && times >"$at_times_file"
110894) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110895read at_status <"$at_status_file"
110896#AT_STOP_954
110897#AT_START_955
110898at_fn_group_banner 955 'run_functions.at:4126' \
110899  "User-Defined FUNCTION with/without parameter" "   " 4
110900at_xfail=no
110901(
110902  $as_echo "955. $at_setup_line: testing $at_desc ..."
110903  $at_traceon
110904
110905
110906
110907cat >prog.cob <<'_ATEOF'
110908
110909       IDENTIFICATION   DIVISION.
110910       FUNCTION-ID.     WITHPAR.
110911       DATA             DIVISION.
110912       LINKAGE          SECTION.
110913       01 PAR-IN        PIC 9.
110914       01 PAR-OUT       PIC 9.
110915       PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
110916           ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
110917           GOBACK.
110918       END FUNCTION WITHPAR.
110919
110920       IDENTIFICATION   DIVISION.
110921       FUNCTION-ID.     WITHOUTPAR.
110922       DATA             DIVISION.
110923       LINKAGE          SECTION.
110924       01 PAR           PIC 9.
110925       PROCEDURE DIVISION RETURNING PAR.
110926           MOVE 1 TO PAR.
110927           GOBACK.
110928       END FUNCTION WITHOUTPAR.
110929
110930       IDENTIFICATION   DIVISION.
110931       PROGRAM-ID.      prog.
110932       ENVIRONMENT      DIVISION.
110933       CONFIGURATION    SECTION.
110934       REPOSITORY.
110935           FUNCTION     WITHPAR
110936           FUNCTION     WITHOUTPAR.
110937       PROCEDURE        DIVISION.
110938           IF WITHPAR(1) NOT = 2
110939              DISPLAY WITHPAR(1)
110940              END-DISPLAY
110941           END-IF.
110942           IF WITHOUTPAR NOT = 1
110943              DISPLAY WITHOUTPAR
110944              END-DISPLAY
110945           END-IF.
110946           STOP RUN.
110947       END PROGRAM prog.
110948_ATEOF
110949
110950
110951{ set +x
110952$as_echo "$at_srcdir/run_functions.at:4171: \$COMPILE prog.cob"
110953at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4171"
110954( $at_check_trace; $COMPILE prog.cob
110955) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110956at_status=$? at_failed=false
110957$at_check_filter
110958at_fn_diff_devnull "$at_stderr" || at_failed=:
110959at_fn_diff_devnull "$at_stdout" || at_failed=:
110960at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4171"
110961$at_failed && at_fn_log_failure
110962$at_traceon; }
110963
110964{ set +x
110965$as_echo "$at_srcdir/run_functions.at:4172: \$COBCRUN_DIRECT ./prog"
110966at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4172"
110967( $at_check_trace; $COBCRUN_DIRECT ./prog
110968) >>"$at_stdout" 2>>"$at_stderr" 5>&-
110969at_status=$? at_failed=false
110970$at_check_filter
110971at_fn_diff_devnull "$at_stderr" || at_failed=:
110972at_fn_diff_devnull "$at_stdout" || at_failed=:
110973at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4172"
110974$at_failed && at_fn_log_failure
110975$at_traceon; }
110976
110977
110978  set +x
110979  $at_times_p && times >"$at_times_file"
110980) 5>&1 2>&1 7>&- | eval $at_tee_pipe
110981read at_status <"$at_status_file"
110982#AT_STOP_955
110983#AT_START_956
110984at_fn_group_banner 956 'run_functions.at:4177' \
110985  "UDF in COMPUTE" "                                 " 4
110986at_xfail=no
110987(
110988  $as_echo "956. $at_setup_line: testing $at_desc ..."
110989  $at_traceon
110990
110991
110992
110993cat >prog.cob <<'_ATEOF'
110994
110995       IDENTIFICATION DIVISION.
110996       FUNCTION-ID. func.
110997
110998       DATA DIVISION.
110999       LINKAGE SECTION.
111000       01  num PIC 999.
111001
111002       PROCEDURE DIVISION RETURNING num.
111003           MOVE 100 TO num
111004           .
111005       END FUNCTION func.
111006
111007       IDENTIFICATION DIVISION.
111008       PROGRAM-ID. prog.
111009
111010       ENVIRONMENT DIVISION.
111011       CONFIGURATION SECTION.
111012       REPOSITORY.
111013           FUNCTION func.
111014
111015       DATA DIVISION.
111016       WORKING-STORAGE SECTION.
111017       01  x PIC 999.
111018
111019       PROCEDURE DIVISION.
111020           COMPUTE x = 101 + FUNCTION func
111021           DISPLAY x
111022           .
111023       END PROGRAM prog.
111024_ATEOF
111025
111026
111027{ set +x
111028$as_echo "$at_srcdir/run_functions.at:4212: \$COMPILE prog.cob"
111029at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4212"
111030( $at_check_trace; $COMPILE prog.cob
111031) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111032at_status=$? at_failed=false
111033$at_check_filter
111034at_fn_diff_devnull "$at_stderr" || at_failed=:
111035at_fn_diff_devnull "$at_stdout" || at_failed=:
111036at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4212"
111037$at_failed && at_fn_log_failure
111038$at_traceon; }
111039
111040{ set +x
111041$as_echo "$at_srcdir/run_functions.at:4213: \$COBCRUN_DIRECT ./prog"
111042at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4213"
111043( $at_check_trace; $COBCRUN_DIRECT ./prog
111044) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111045at_status=$? at_failed=false
111046$at_check_filter
111047at_fn_diff_devnull "$at_stderr" || at_failed=:
111048echo >>"$at_stdout"; $as_echo "201
111049" | \
111050  $at_diff - "$at_stdout" || at_failed=:
111051at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4213"
111052$at_failed && at_fn_log_failure
111053$at_traceon; }
111054
111055
111056  set +x
111057  $at_times_p && times >"$at_times_file"
111058) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111059read at_status <"$at_status_file"
111060#AT_STOP_956
111061#AT_START_957
111062at_fn_group_banner 957 'run_functions.at:4220' \
111063  "UDF replacing intrinsic function" "               " 4
111064at_xfail=no
111065(
111066  $as_echo "957. $at_setup_line: testing $at_desc ..."
111067  $at_traceon
111068
111069
111070
111071cat >prog.cob <<'_ATEOF'
111072
111073       IDENTIFICATION DIVISION.
111074       FUNCTION-ID. SUBSTITUTE.
111075
111076       DATA DIVISION.
111077       LINKAGE SECTION.
111078       01  func-in  PIC X(15).
111079       01  func-sub PIC X.
111080       01  func-out PIC X(15).
111081
111082       PROCEDURE DIVISION USING func-in, func-sub RETURNING func-out.
111083           MOVE func-in TO func-out
111084           INSPECT func-out REPLACING ALL '%' BY func-sub
111085           .
111086       END FUNCTION SUBSTITUTE.
111087
111088       IDENTIFICATION DIVISION.
111089       PROGRAM-ID. prog.
111090
111091       ENVIRONMENT DIVISION.
111092       CONFIGURATION SECTION.
111093       REPOSITORY.
111094           FUNCTION SUBSTITUTE
111095           .
111096       PROCEDURE DIVISION.
111097           DISPLAY '"' FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "_") '"'
111098           DISPLAY '"' FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "-") '"'
111099           .
111100       END PROGRAM prog.
111101_ATEOF
111102
111103
111104{ set +x
111105$as_echo "$at_srcdir/run_functions.at:4254: \$COMPILE -fnot-intrinsic=substitute prog.cob"
111106at_fn_check_prepare_dynamic "$COMPILE -fnot-intrinsic=substitute prog.cob" "run_functions.at:4254"
111107( $at_check_trace; $COMPILE -fnot-intrinsic=substitute prog.cob
111108) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111109at_status=$? at_failed=false
111110$at_check_filter
111111at_fn_diff_devnull "$at_stderr" || at_failed=:
111112at_fn_diff_devnull "$at_stdout" || at_failed=:
111113at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4254"
111114$at_failed && at_fn_log_failure
111115$at_traceon; }
111116
111117{ set +x
111118$as_echo "$at_srcdir/run_functions.at:4255: \$COBCRUN_DIRECT ./prog"
111119at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4255"
111120( $at_check_trace; $COBCRUN_DIRECT ./prog
111121) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111122at_status=$? at_failed=false
111123$at_check_filter
111124at_fn_diff_devnull "$at_stderr" || at_failed=:
111125echo >>"$at_stdout"; $as_echo "\" _ C_O_B_O_L _ \"
111126\" - C-O-B-O-L - \"
111127" | \
111128  $at_diff - "$at_stdout" || at_failed=:
111129at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4255"
111130$at_failed && at_fn_log_failure
111131$at_traceon; }
111132
111133
111134  set +x
111135  $at_times_p && times >"$at_times_file"
111136) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111137read at_status <"$at_status_file"
111138#AT_STOP_957
111139#AT_START_958
111140at_fn_group_banner 958 'run_functions.at:4263' \
111141  "UDF with recursion" "                             " 4
111142at_xfail=no
111143(
111144  $as_echo "958. $at_setup_line: testing $at_desc ..."
111145  $at_traceon
111146
111147
111148
111149$as_echo "run_functions.at:4266" >"$at_check_line_file"
111150at_fn_check_skip 77 "$at_srcdir/run_functions.at:4266"	# see bug #222 and r2291 - postponed
111151
111152cat >prog.cob <<'_ATEOF'
111153
111154       IDENTIFICATION DIVISION.
111155       FUNCTION-ID. foo.
111156
111157       DATA DIVISION.
111158       WORKING-STORAGE SECTION.
111159       01  ttl  PIC 9 VALUE 1.
111160
111161       LOCAL-STORAGE SECTION.
111162       01  num  PIC 9.
111163
111164       LINKAGE SECTION.
111165       01  arg PIC 9.
111166       01  ret PIC 9.
111167
111168       PROCEDURE DIVISION USING arg RETURNING ret.
111169           IF arg < 5
111170              ADD 1 TO arg GIVING num END-ADD
111171              MOVE FUNCTION foo (num) TO ret
111172           ELSE
111173              MOVE arg TO ret
111174           END-IF
111175           DISPLAY "Step: " ttl ", Arg: " arg ", Return: " ret
111176           END-DISPLAY
111177           ADD 1 to ttl END-ADD
111178           GOBACK.
111179       END FUNCTION foo.
111180
111181       IDENTIFICATION DIVISION.
111182       PROGRAM-ID. prog.
111183
111184       ENVIRONMENT DIVISION.
111185       CONFIGURATION SECTION.
111186       REPOSITORY.
111187           FUNCTION foo.
111188
111189       DATA DIVISION.
111190       WORKING-STORAGE SECTION.
111191       01 num PIC 9 VALUE 1.
111192
111193       PROCEDURE DIVISION.
111194           DISPLAY "Return value '" FUNCTION foo (num) "'"
111195             WITH NO ADVANCING
111196           END-DISPLAY
111197           GOBACK.
111198       END PROGRAM prog.
111199
111200_ATEOF
111201
111202
111203{ set +x
111204$as_echo "$at_srcdir/run_functions.at:4317: \$COMPILE prog.cob"
111205at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4317"
111206( $at_check_trace; $COMPILE prog.cob
111207) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111208at_status=$? at_failed=false
111209$at_check_filter
111210at_fn_diff_devnull "$at_stderr" || at_failed=:
111211at_fn_diff_devnull "$at_stdout" || at_failed=:
111212at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4317"
111213$at_failed && at_fn_log_failure
111214$at_traceon; }
111215
111216
111217{ set +x
111218$as_echo "$at_srcdir/run_functions.at:4319: \$COBCRUN_DIRECT ./prog"
111219at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4319"
111220( $at_check_trace; $COBCRUN_DIRECT ./prog
111221) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111222at_status=$? at_failed=false
111223$at_check_filter
111224at_fn_diff_devnull "$at_stderr" || at_failed=:
111225echo >>"$at_stdout"; $as_echo "Step: 1, Arg: 5, Return: 5
111226Step: 2, Arg: 4, Return: 5
111227Step: 3, Arg: 3, Return: 5
111228Step: 4, Arg: 2, Return: 5
111229Step: 5, Arg: 1, Return: 5
111230Return value '5'" | \
111231  $at_diff - "$at_stdout" || at_failed=:
111232at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4319"
111233$at_failed && at_fn_log_failure
111234$at_traceon; }
111235
111236
111237  set +x
111238  $at_times_p && times >"$at_times_file"
111239) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111240read at_status <"$at_status_file"
111241#AT_STOP_958
111242#AT_START_959
111243at_fn_group_banner 959 'run_extensions.at:25' \
111244  "CALL BY CONTENT binary and literal" "             " 4
111245at_xfail=no
111246(
111247  $as_echo "959. $at_setup_line: testing $at_desc ..."
111248  $at_traceon
111249
111250
111251
111252cat >dump.c <<'_ATEOF'
111253
111254#include <stdio.h>
111255#include <libcob.h>
111256
111257COB_EXT_EXPORT int
111258dump (unsigned char *data, int *p)
111259{
111260  int i;
111261  if ( *p == 1 ) {
111262     for (i = 0; i < 4; i++)
111263       printf ("%02x", data[i]);
111264  } else {
111265       printf ("%8.8d", *((int *)data));
111266  }
111267  puts ("");
111268  return 0;
111269}
111270_ATEOF
111271
111272
111273cat >prog.cob <<'_ATEOF'
111274
111275       IDENTIFICATION   DIVISION.
111276       PROGRAM-ID.      prog.
111277       DATA             DIVISION.
111278       WORKING-STORAGE  SECTION.
111279       01 X-1           PIC 9(9) VALUE 4660 COMP.
111280       01 X-2           PIC 9(9) VALUE 4660 COMP-5.
111281       PROCEDURE        DIVISION.
111282           CALL "dump" USING X-1 BY CONTENT 1
111283           END-CALL.
111284           CALL "dump" USING X-2 BY CONTENT 2
111285           END-CALL.
111286           STOP RUN.
111287_ATEOF
111288
111289
111290{ set +x
111291$as_echo "$at_srcdir/run_extensions.at:62: \$COMPILE_MODULE dump.c"
111292at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_extensions.at:62"
111293( $at_check_trace; $COMPILE_MODULE dump.c
111294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111295at_status=$? at_failed=false
111296$at_check_filter
111297at_fn_diff_devnull "$at_stderr" || at_failed=:
111298at_fn_diff_devnull "$at_stdout" || at_failed=:
111299at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:62"
111300$at_failed && at_fn_log_failure
111301$at_traceon; }
111302
111303{ set +x
111304$as_echo "$at_srcdir/run_extensions.at:63: \$COMPILE prog.cob"
111305at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:63"
111306( $at_check_trace; $COMPILE prog.cob
111307) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111308at_status=$? at_failed=false
111309$at_check_filter
111310at_fn_diff_devnull "$at_stderr" || at_failed=:
111311at_fn_diff_devnull "$at_stdout" || at_failed=:
111312at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:63"
111313$at_failed && at_fn_log_failure
111314$at_traceon; }
111315
111316{ set +x
111317$as_echo "$at_srcdir/run_extensions.at:64: \$COBCRUN_DIRECT ./prog"
111318at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:64"
111319( $at_check_trace; $COBCRUN_DIRECT ./prog
111320) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111321at_status=$? at_failed=false
111322$at_check_filter
111323at_fn_diff_devnull "$at_stderr" || at_failed=:
111324echo >>"$at_stdout"; $as_echo "00001234
11132500004660
111326" | \
111327  $at_diff - "$at_stdout" || at_failed=:
111328at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:64"
111329$at_failed && at_fn_log_failure
111330$at_traceon; }
111331
111332
111333  set +x
111334  $at_times_p && times >"$at_times_file"
111335) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111336read at_status <"$at_status_file"
111337#AT_STOP_959
111338#AT_START_960
111339at_fn_group_banner 960 'run_extensions.at:72' \
111340  "Numeric Boolean literals" "                       " 4
111341at_xfail=no
111342(
111343  $as_echo "960. $at_setup_line: testing $at_desc ..."
111344  $at_traceon
111345
111346
111347
111348cat >prog.cob <<'_ATEOF'
111349
111350       IDENTIFICATION   DIVISION.
111351       PROGRAM-ID.      prog.
111352       DATA             DIVISION.
111353       WORKING-STORAGE  SECTION.
111354       01 X-1           PIC 9(2)  VALUE B"010101".
111355       01 X-2           PIC 9(20) VALUE B"111111111111111111111111111111
111356      -                                  "111111111111111111111111111111
111357      -                                  "1111".
111358       PROCEDURE        DIVISION.
111359           DISPLAY X-1
111360           END-DISPLAY.
111361           DISPLAY X-2
111362           END-DISPLAY.
111363           STOP RUN.
111364_ATEOF
111365
111366
111367{ set +x
111368$as_echo "$at_srcdir/run_extensions.at:92: \$COMPILE prog.cob"
111369at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:92"
111370( $at_check_trace; $COMPILE prog.cob
111371) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111372at_status=$? at_failed=false
111373$at_check_filter
111374at_fn_diff_devnull "$at_stderr" || at_failed=:
111375at_fn_diff_devnull "$at_stdout" || at_failed=:
111376at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:92"
111377$at_failed && at_fn_log_failure
111378$at_traceon; }
111379
111380{ set +x
111381$as_echo "$at_srcdir/run_extensions.at:93: \$COBCRUN_DIRECT ./prog"
111382at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:93"
111383( $at_check_trace; $COBCRUN_DIRECT ./prog
111384) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111385at_status=$? at_failed=false
111386$at_check_filter
111387at_fn_diff_devnull "$at_stderr" || at_failed=:
111388echo >>"$at_stdout"; $as_echo "21
11138918446744073709551615
111390" | \
111391  $at_diff - "$at_stdout" || at_failed=:
111392at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:93"
111393$at_failed && at_fn_log_failure
111394$at_traceon; }
111395
111396
111397  set +x
111398  $at_times_p && times >"$at_times_file"
111399) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111400read at_status <"$at_status_file"
111401#AT_STOP_960
111402#AT_START_961
111403at_fn_group_banner 961 'run_extensions.at:101' \
111404  "ACUCOBOL literals" "                              " 4
111405at_xfail=no
111406(
111407  $as_echo "961. $at_setup_line: testing $at_desc ..."
111408  $at_traceon
111409
111410
111411
111412cat >prog.cob <<'_ATEOF'
111413
111414       IDENTIFICATION   DIVISION.
111415       PROGRAM-ID.      prog.
111416       PROCEDURE        DIVISION.
111417           DISPLAY B#101 UPON STDOUT
111418           DISPLAY O#17777777777 UPON STDOUT
111419           DISPLAY X#ffFFFFff UPON STDOUT
111420           DISPLAY H#ffFFFFff UPON STDOUT
111421
111422           STOP RUN.
111423_ATEOF
111424
111425
111426{ set +x
111427$as_echo "$at_srcdir/run_extensions.at:116: \$COMPILE -facu-literals=ok prog.cob"
111428at_fn_check_prepare_dynamic "$COMPILE -facu-literals=ok prog.cob" "run_extensions.at:116"
111429( $at_check_trace; $COMPILE -facu-literals=ok prog.cob
111430) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111431at_status=$? at_failed=false
111432$at_check_filter
111433at_fn_diff_devnull "$at_stderr" || at_failed=:
111434at_fn_diff_devnull "$at_stdout" || at_failed=:
111435at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:116"
111436$at_failed && at_fn_log_failure
111437$at_traceon; }
111438
111439{ set +x
111440$as_echo "$at_srcdir/run_extensions.at:117: \$COBCRUN_DIRECT ./prog"
111441at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:117"
111442( $at_check_trace; $COBCRUN_DIRECT ./prog
111443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111444at_status=$? at_failed=false
111445$at_check_filter
111446at_fn_diff_devnull "$at_stderr" || at_failed=:
111447echo >>"$at_stdout"; $as_echo "5
1114482147483647
1114494294967295
1114504294967295
111451" | \
111452  $at_diff - "$at_stdout" || at_failed=:
111453at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:117"
111454$at_failed && at_fn_log_failure
111455$at_traceon; }
111456
111457
111458  set +x
111459  $at_times_p && times >"$at_times_file"
111460) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111461read at_status <"$at_status_file"
111462#AT_STOP_961
111463#AT_START_962
111464at_fn_group_banner 962 'run_extensions.at:127' \
111465  "HP COBOL octal literals" "                        " 4
111466at_xfail=yes
111467(
111468  $as_echo "962. $at_setup_line: testing $at_desc ..."
111469  $at_traceon
111470
111471
111472
111473# FIXME: the type of octal literals must be context-sensitive, see below
111474# currently hard-wired as numeric (may be switched in scanner.l to alphanumeric)
111475
111476
111477
111478cat >prog.cob <<'_ATEOF'
111479
111480       IDENTIFICATION   DIVISION.
111481       PROGRAM-ID.      prog.
111482       DATA             DIVISION.
111483       WORKING-STORAGE  SECTION.
111484      *>   Octal literal is "AB" in ASCII.
111485       01  ITEM-ALPHA     PIC XX        VALUE %40502.
111486      *>   Octal literal is 39.
111487       01  ITEM-NUMERIC   PIC 99 BINARY VALUE %47.
111488      *>   Octal literal is ASCII 12.
111489       01  ITEM-NUM       PIC 99        VALUE %30462.
111490       PROCEDURE        DIVISION.
111491      *>   Octal literal is "XY".
111492           DISPLAY %54131.
111493           IF ITEM-ALPHA NOT = "AB"
111494              DISPLAY "VALUE %40502 is not ""AB"" (ASCII) but "
111495                      ITEM-ALPHA
111496           END-IF
111497           IF ITEM-NUMERIC NOT = 39
111498              DISPLAY "VALUE %47 BINARY is not 39 but " ITEM-NUMERIC
111499           END-IF
111500           IF ITEM-NUM NOT = 12
111501              DISPLAY "VALUE %30462 is not 12 (ASCII) but " ITEM-NUM
111502           END-IF
111503      *>   Adds octal 23 (decimal 19, as it is an arithmetic expression).
111504           ADD %23 TO ITEM-NUM.
111505           IF ITEM-NUM NOT = 31
111506              DISPLAY "12 + %23 (19) is not 31 but " ITEM-NUM
111507           END-IF
111508      *>   Sets the data to octal 30462 (ASCII 12).
111509           MOVE %30462 TO ITEM-NUM
111510           IF ITEM-NUM NOT = 12
111511              DISPLAY "%30462 is not 12 (ASCII) but " ITEM-NUM
111512           END-IF
111513      *>   Sets the data to x'4100' (octal 101 -> ASCII A + right-pad NULL)
111514           MOVE %101 TO ITEM-ALPHA
111515           IF ITEM-ALPHA NOT = x"4100"
111516              DISPLAY "%101 is not x""4100"" = Anull (ASCII) but "
111517                      ITEM-ALPHA
111518           END-IF
111519
111520
111521           STOP RUN.
111522_ATEOF
111523
111524
111525{ set +x
111526$as_echo "$at_srcdir/run_extensions.at:180: \$COMPILE -fhp-octal-literals=ok prog.cob"
111527at_fn_check_prepare_dynamic "$COMPILE -fhp-octal-literals=ok prog.cob" "run_extensions.at:180"
111528( $at_check_trace; $COMPILE -fhp-octal-literals=ok prog.cob
111529) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111530at_status=$? at_failed=false
111531$at_check_filter
111532at_fn_diff_devnull "$at_stderr" || at_failed=:
111533at_fn_diff_devnull "$at_stdout" || at_failed=:
111534at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:180"
111535$at_failed && at_fn_log_failure
111536$at_traceon; }
111537
111538{ set +x
111539$as_echo "$at_srcdir/run_extensions.at:181: \$COBCRUN_DIRECT ./prog"
111540at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:181"
111541( $at_check_trace; $COBCRUN_DIRECT ./prog
111542) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111543at_status=$? at_failed=false
111544$at_check_filter
111545at_fn_diff_devnull "$at_stderr" || at_failed=:
111546echo >>"$at_stdout"; $as_echo "XY
111547" | \
111548  $at_diff - "$at_stdout" || at_failed=:
111549at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:181"
111550$at_failed && at_fn_log_failure
111551$at_traceon; }
111552
111553
111554  set +x
111555  $at_times_p && times >"$at_times_file"
111556) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111557read at_status <"$at_status_file"
111558#AT_STOP_962
111559#AT_START_963
111560at_fn_group_banner 963 'run_extensions.at:188' \
111561  "Hexadecimal numeric literals" "                   " 4
111562at_xfail=no
111563(
111564  $as_echo "963. $at_setup_line: testing $at_desc ..."
111565  $at_traceon
111566 # FIXME: needs a dialect configuration
111567
111568
111569cat >prog.cob <<'_ATEOF'
111570
111571       IDENTIFICATION   DIVISION.
111572       PROGRAM-ID.      prog.
111573       DATA             DIVISION.
111574       WORKING-STORAGE  SECTION.
111575       01 X-1           PIC 9(8) VALUE H"012345".
111576       01 X-2           PIC 9(8) VALUE H"FFFFFF".
111577       PROCEDURE        DIVISION.
111578           DISPLAY X-1
111579           END-DISPLAY.
111580           DISPLAY X-2
111581           END-DISPLAY.
111582           STOP RUN.
111583_ATEOF
111584
111585
111586{ set +x
111587$as_echo "$at_srcdir/run_extensions.at:206: \$COMPILE prog.cob"
111588at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:206"
111589( $at_check_trace; $COMPILE prog.cob
111590) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111591at_status=$? at_failed=false
111592$at_check_filter
111593at_fn_diff_devnull "$at_stderr" || at_failed=:
111594at_fn_diff_devnull "$at_stdout" || at_failed=:
111595at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:206"
111596$at_failed && at_fn_log_failure
111597$at_traceon; }
111598
111599{ set +x
111600$as_echo "$at_srcdir/run_extensions.at:207: \$COBCRUN_DIRECT ./prog"
111601at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:207"
111602( $at_check_trace; $COBCRUN_DIRECT ./prog
111603) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111604at_status=$? at_failed=false
111605$at_check_filter
111606at_fn_diff_devnull "$at_stderr" || at_failed=:
111607echo >>"$at_stdout"; $as_echo "00074565
11160816777215
111609" | \
111610  $at_diff - "$at_stdout" || at_failed=:
111611at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:207"
111612$at_failed && at_fn_log_failure
111613$at_traceon; }
111614
111615
111616  set +x
111617  $at_times_p && times >"$at_times_file"
111618) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111619read at_status <"$at_status_file"
111620#AT_STOP_963
111621#AT_START_964
111622at_fn_group_banner 964 'run_extensions.at:217' \
111623  "Semi-parenthesized condition" "                   " 4
111624at_xfail=no
111625(
111626  $as_echo "964. $at_setup_line: testing $at_desc ..."
111627  $at_traceon
111628
111629 # Shouldn't this be in run_fundamentals?
111630
111631cat >prog.cob <<'_ATEOF'
111632
111633       IDENTIFICATION   DIVISION.
111634       PROGRAM-ID.      prog.
111635       PROCEDURE        DIVISION.
111636           IF 1 = (1 OR 2)
111637             DISPLAY "OK" NO ADVANCING
111638             END-DISPLAY
111639           END-IF.
111640           STOP RUN.
111641_ATEOF
111642
111643
111644{ set +x
111645$as_echo "$at_srcdir/run_extensions.at:231: \$COMPILE -Wno-constant-expression prog.cob"
111646at_fn_check_prepare_dynamic "$COMPILE -Wno-constant-expression prog.cob" "run_extensions.at:231"
111647( $at_check_trace; $COMPILE -Wno-constant-expression prog.cob
111648) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111649at_status=$? at_failed=false
111650$at_check_filter
111651at_fn_diff_devnull "$at_stderr" || at_failed=:
111652at_fn_diff_devnull "$at_stdout" || at_failed=:
111653at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:231"
111654$at_failed && at_fn_log_failure
111655$at_traceon; }
111656
111657{ set +x
111658$as_echo "$at_srcdir/run_extensions.at:232: \$COBCRUN_DIRECT ./prog"
111659at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:232"
111660( $at_check_trace; $COBCRUN_DIRECT ./prog
111661) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111662at_status=$? at_failed=false
111663$at_check_filter
111664at_fn_diff_devnull "$at_stderr" || at_failed=:
111665echo >>"$at_stdout"; $as_echo "OK" | \
111666  $at_diff - "$at_stdout" || at_failed=:
111667at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:232"
111668$at_failed && at_fn_log_failure
111669$at_traceon; }
111670
111671
111672  set +x
111673  $at_times_p && times >"$at_times_file"
111674) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111675read at_status <"$at_status_file"
111676#AT_STOP_964
111677#AT_START_965
111678at_fn_group_banner 965 'run_extensions.at:237' \
111679  "ADDRESS OF" "                                     " 4
111680at_xfail=no
111681(
111682  $as_echo "965. $at_setup_line: testing $at_desc ..."
111683  $at_traceon
111684 # Shouldn't this be in run_fundamentals?
111685
111686
111687cat >prog.cob <<'_ATEOF'
111688
111689       IDENTIFICATION   DIVISION.
111690       PROGRAM-ID.      prog.
111691       DATA             DIVISION.
111692       WORKING-STORAGE  SECTION.
111693       01 X-1           PIC X(3) VALUE "X-1".
111694       01 X-2           PIC X(3) VALUE "X-2".
111695       01 G.
111696         02 PTR-1       USAGE POINTER VALUE NULL.
111697         02 PTR-2       USAGE POINTER VALUE NULL.
111698       LINKAGE          SECTION.
111699       01 Y             PIC X(3).
111700       PROCEDURE        DIVISION.
111701         SET ADDRESS OF Y TO ADDRESS OF X-1.
111702         IF Y NOT = "X-1"
111703            DISPLAY "Test 1 " Y
111704            END-DISPLAY
111705         END-IF.
111706         SET PTR-1 TO ADDRESS OF X-2.
111707         SET PTR-2 TO PTR-1
111708         SET ADDRESS OF Y TO PTR-2.
111709         IF Y NOT = "X-2"
111710            DISPLAY "Test 2 " Y
111711            END-DISPLAY
111712         END-IF
111713         INITIALIZE PTR-1.
111714         IF PTR-1 NOT = NULL
111715           DISPLAY "NG 1"
111716           END-DISPLAY
111717         END-IF.
111718         SET ADDRESS OF Y TO NULL.
111719         IF PTR-1 NOT = ADDRESS OF Y
111720           DISPLAY "NG 2"
111721           END-DISPLAY
111722         END-IF.
111723         IF ADDRESS OF Y NOT = PTR-1
111724           DISPLAY "NG 3"
111725           END-DISPLAY
111726         END-IF.
111727_ATEOF
111728
111729
111730{ set +x
111731$as_echo "$at_srcdir/run_extensions.at:281: \$COMPILE prog.cob"
111732at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:281"
111733( $at_check_trace; $COMPILE prog.cob
111734) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111735at_status=$? at_failed=false
111736$at_check_filter
111737at_fn_diff_devnull "$at_stderr" || at_failed=:
111738at_fn_diff_devnull "$at_stdout" || at_failed=:
111739at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:281"
111740$at_failed && at_fn_log_failure
111741$at_traceon; }
111742
111743{ set +x
111744$as_echo "$at_srcdir/run_extensions.at:282: \$COBCRUN_DIRECT ./prog"
111745at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:282"
111746( $at_check_trace; $COBCRUN_DIRECT ./prog
111747) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111748at_status=$? at_failed=false
111749$at_check_filter
111750at_fn_diff_devnull "$at_stderr" || at_failed=:
111751at_fn_diff_devnull "$at_stdout" || at_failed=:
111752at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:282"
111753$at_failed && at_fn_log_failure
111754$at_traceon; }
111755
111756
111757  set +x
111758  $at_times_p && times >"$at_times_file"
111759) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111760read at_status <"$at_status_file"
111761#AT_STOP_965
111762#AT_START_966
111763at_fn_group_banner 966 'run_extensions.at:287' \
111764  "LENGTH OF" "                                      " 4
111765at_xfail=no
111766(
111767  $as_echo "966. $at_setup_line: testing $at_desc ..."
111768  $at_traceon
111769
111770
111771
111772cat >prog.cob <<'_ATEOF'
111773
111774       IDENTIFICATION   DIVISION.
111775       PROGRAM-ID.      prog.
111776       DATA             DIVISION.
111777       WORKING-STORAGE  SECTION.
111778       01 X             PIC X(2).
111779       01 G.
111780         02 Y           PIC X(2) OCCURS 10.
111781         02 G-GROUP.
111782         03 G-SGROUP.
111783         04 G1          PIC X(05).
111784         04 G2          PIC X(06).
111785         04 G3          PIC X(22).
111786         03 FILLER      PIC XX OCCURS 5.
111787       66 RENAME-STD-G  RENAMES G-GROUP.
111788       66 RENAME-STD-SG RENAMES G-SGROUP.
111789       66 RENAME-STD    RENAMES G1 THROUGH G3.
111790       66 RENAME-G      RENAMES G.
111791       01 L             PIC s9(4)v99.
111792       01 I             PIC 9(2) VALUE 10.
111793       78 I-LEN         VALUE LENGTH OF I.
111794      * TODO: check size of FILLER here
111795       01 TSTDISP.
111796         02 FILLER OCCURS 5000.
111797           10 T1        PIC X(11).
111798           10 T2        PIC X(22).
111799       78 var-length-l      value length of '00128'.
111800       78 var-length-x      value length of x'a0'.
111801       78 var-length-z      value length of z'a0'.
111802      *78 var-length-n      value length of n'001'.
111803       PROCEDURE        DIVISION.
111804           move var-length-l TO L
111805           IF L NOT = 5
111806              DISPLAY "Length '00128'" L
111807              END-DISPLAY
111808           END-IF
111809           move var-length-x TO L
111810           IF L NOT = 1
111811              DISPLAY "Length x'a0'" L
111812              END-DISPLAY
111813           END-IF
111814           move var-length-z TO L
111815           IF L NOT = 3
111816              DISPLAY "Length z'a0'" L
111817              END-DISPLAY
111818           END-IF
111819      *    What does MF reports here?
111820      *>   move var-length-n TO L
111821      *>   IF L NOT = 3
111822      *>      DISPLAY "Length n'001'" L
111823      *>      END-DISPLAY
111824      *>   END-IF
111825           MOVE LENGTH OF X  TO L
111826           IF L NOT = 2
111827              DISPLAY "Length 1 " L
111828              END-DISPLAY
111829           END-IF
111830           MOVE LENGTH OF X  TO L
111831           IF L NOT = 2
111832              DISPLAY "Length 1a " L LENGTH X
111833              END-DISPLAY
111834           END-IF
111835           MOVE LENGTH OF Y  TO L
111836           IF L NOT = 2
111837              DISPLAY "Length 2 " L
111838              END-DISPLAY
111839           END-IF
111840           IF L NOT = 2
111841              DISPLAY "Length 2a " L LENGTH OF Y
111842              END-DISPLAY
111843           END-IF
111844           MOVE LENGTH OF Y(1) TO L
111845           IF L NOT = 2
111846              DISPLAY "Length 3 " L
111847              END-DISPLAY
111848           END-IF
111849           MOVE LENGTH Y(1) TO L
111850           IF L NOT = 2
111851              DISPLAY "Length 3a " L LENGTH OF Y(1)
111852              END-DISPLAY
111853           END-IF
111854           IF I-LEN NOT = 2
111855              DISPLAY "Length 4 " I-LEN
111856              END-DISPLAY
111857           END-IF
111858           IF LENGTH OF L + 2 NOT = 8
111859              ADD 2 TO LENGTH OF L GIVING L
111860              DISPLAY "Length 5 + 2" L
111861              END-DISPLAY
111862           END-IF
111863           IF LENGTH L + 2 NOT = 8
111864              ADD 2 TO LENGTH L GIVING L
111865              DISPLAY "Length 5a + 2 " L
111866              END-DISPLAY
111867           END-IF
111868           MOVE 0 TO L
111869           PERFORM LENGTH OF L TIMES
111870              ADD 1 TO L
111871           END-PERFORM
111872           PERFORM LENGTH L TIMES
111873              ADD 1 TO L
111874           END-PERFORM
111875           IF L NOT = 12
111876              DISPLAY "Length 6 " L
111877              END-DISPLAY
111878           END-IF
111879           MOVE 0 TO L
111880           PERFORM VARME
111881                   VARYING I FROM LENGTH OF I
111882                             BY   LENGTH OF X
111883                   UNTIL   I > LENGTH OF L
111884           IF ((L NOT = 3) OR
111885               (I NOT = 8)    )
111886              DISPLAY "Length 7 " L " - " I
111887              END-DISPLAY
111888           END-IF
111889           MOVE 0 TO L
111890           PERFORM VARME
111891                   VARYING I FROM LENGTH I
111892                             BY   LENGTH X
111893                   UNTIL   I > LENGTH L
111894           IF ((L NOT = 3) OR
111895               (I NOT = 8)    )
111896              DISPLAY "Length 7a " L " - " I
111897              END-DISPLAY
111898           END-IF
111899           MOVE LENGTH OF RENAME-STD-SG  TO L
111900           IF L NOT = 33
111901              DISPLAY "Length 8a " L
111902              END-DISPLAY
111903           END-IF
111904           MOVE LENGTH OF RENAME-STD-G  TO L
111905           IF L NOT = 43
111906              DISPLAY "Length 8b " L
111907              END-DISPLAY
111908           END-IF
111909           MOVE LENGTH OF RENAME-STD  TO L
111910           IF L NOT = 33
111911              DISPLAY "Length 8c " L
111912              END-DISPLAY
111913           END-IF
111914           MOVE LENGTH OF RENAME-G  TO L
111915           IF L NOT = 63
111916              DISPLAY "Length 8d " L
111917              END-DISPLAY
111918           END-IF
111919           *> one display test
111920           DISPLAY LENGTH OF TSTDISP WITH NO ADVANCING
111921           END-DISPLAY
111922           STOP RUN.
111923       VARME.
111924           ADD 1 TO L
111925           .
111926_ATEOF
111927
111928
111929{ set +x
111930$as_echo "$at_srcdir/run_extensions.at:445: \$COMPILE -Wno-constant-expression prog.cob"
111931at_fn_check_prepare_dynamic "$COMPILE -Wno-constant-expression prog.cob" "run_extensions.at:445"
111932( $at_check_trace; $COMPILE -Wno-constant-expression prog.cob
111933) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111934at_status=$? at_failed=false
111935$at_check_filter
111936at_fn_diff_devnull "$at_stderr" || at_failed=:
111937at_fn_diff_devnull "$at_stdout" || at_failed=:
111938at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:445"
111939$at_failed && at_fn_log_failure
111940$at_traceon; }
111941
111942{ set +x
111943$as_echo "$at_srcdir/run_extensions.at:446: \$COBCRUN_DIRECT ./prog"
111944at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:446"
111945( $at_check_trace; $COBCRUN_DIRECT ./prog
111946) >>"$at_stdout" 2>>"$at_stderr" 5>&-
111947at_status=$? at_failed=false
111948$at_check_filter
111949at_fn_diff_devnull "$at_stderr" || at_failed=:
111950echo >>"$at_stdout"; $as_echo "165000" | \
111951  $at_diff - "$at_stdout" || at_failed=:
111952at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:446"
111953$at_failed && at_fn_log_failure
111954$at_traceon; }
111955
111956
111957  set +x
111958  $at_times_p && times >"$at_times_file"
111959) 5>&1 2>&1 7>&- | eval $at_tee_pipe
111960read at_status <"$at_status_file"
111961#AT_STOP_966
111962#AT_START_967
111963at_fn_group_banner 967 'run_extensions.at:451' \
111964  "SET TO SIZE OF" "                                 " 4
111965at_xfail=no
111966(
111967  $as_echo "967. $at_setup_line: testing $at_desc ..."
111968  $at_traceon
111969
111970
111971
111972cat >prog.cob <<'_ATEOF'
111973
111974       IDENTIFICATION DIVISION.
111975       PROGRAM-ID. prog.
111976       ENVIRONMENT DIVISION.
111977       CONFIGURATION SECTION.
111978       DATA  DIVISION.
111979       WORKING-STORAGE SECTION.
111980       01  TST    PIC X(10) VALUE "abcdefghij".
111981       01  TST2.
111982           05  FILLER OCCURS 5000.
111983               10 T2-1    PIC X(11).
111984               10 T2-2    PIC X(22).
111985       01  LN     PIC 9(06).
111986
111987       PROCEDURE DIVISION.
111988           SET LN TO SIZE OF TST
111989           IF LN NOT = 10
111990              DISPLAY "SIZE OF TST is " LN UPON SYSERR
111991              END-DISPLAY
111992           END-IF
111993           SET LN TO SIZE OF TST2
111994           IF LN NOT = 165000
111995              DISPLAY "SIZE OF TST2 is " LN UPON SYSERR
111996              END-DISPLAY
111997           END-IF
111998           STOP RUN.
111999_ATEOF
112000
112001
112002{ set +x
112003$as_echo "$at_srcdir/run_extensions.at:482: \$COMPILE prog.cob "
112004at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_extensions.at:482"
112005( $at_check_trace; $COMPILE prog.cob
112006) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112007at_status=$? at_failed=false
112008$at_check_filter
112009at_fn_diff_devnull "$at_stderr" || at_failed=:
112010at_fn_diff_devnull "$at_stdout" || at_failed=:
112011at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:482"
112012$at_failed && at_fn_log_failure
112013$at_traceon; }
112014
112015{ set +x
112016$as_echo "$at_srcdir/run_extensions.at:483: \$COBCRUN_DIRECT ./prog"
112017at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:483"
112018( $at_check_trace; $COBCRUN_DIRECT ./prog
112019) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112020at_status=$? at_failed=false
112021$at_check_filter
112022at_fn_diff_devnull "$at_stderr" || at_failed=:
112023at_fn_diff_devnull "$at_stdout" || at_failed=:
112024at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:483"
112025$at_failed && at_fn_log_failure
112026$at_traceon; }
112027
112028
112029  set +x
112030  $at_times_p && times >"$at_times_file"
112031) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112032read at_status <"$at_status_file"
112033#AT_STOP_967
112034#AT_START_968
112035at_fn_group_banner 968 'run_extensions.at:488' \
112036  "WHEN-COMPILED" "                                  " 4
112037at_xfail=no
112038(
112039  $as_echo "968. $at_setup_line: testing $at_desc ..."
112040  $at_traceon
112041
112042
112043
112044cat >prog.cob <<'_ATEOF'
112045
112046       IDENTIFICATION   DIVISION.
112047       PROGRAM-ID.      prog.
112048       DATA             DIVISION.
112049       WORKING-STORAGE  SECTION.
112050       01 X             PIC X(20).
112051       PROCEDURE        DIVISION.
112052           MOVE WHEN-COMPILED TO X.
112053           INSPECT X CONVERTING "0123456789" TO "9999999999".
112054           IF X NOT = "99/99/9999.99.99    "
112055              CALL 'CBL_OC_DUMP' USING X
112056                 ON EXCEPTION
112057                    DISPLAY X NO ADVANCING
112058                    END-DISPLAY
112059              END-CALL
112060           END-IF
112061           STOP RUN.
112062_ATEOF
112063
112064
112065{ set +x
112066$as_echo "$at_srcdir/run_extensions.at:510: \$COMPILE prog.cob"
112067at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:510"
112068( $at_check_trace; $COMPILE prog.cob
112069) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112070at_status=$? at_failed=false
112071$at_check_filter
112072at_fn_diff_devnull "$at_stderr" || at_failed=:
112073at_fn_diff_devnull "$at_stdout" || at_failed=:
112074at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:510"
112075$at_failed && at_fn_log_failure
112076$at_traceon; }
112077
112078{ set +x
112079$as_echo "$at_srcdir/run_extensions.at:511: \$COBCRUN_DIRECT ./prog"
112080at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:511"
112081( $at_check_trace; $COBCRUN_DIRECT ./prog
112082) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112083at_status=$? at_failed=false
112084$at_check_filter
112085at_fn_diff_devnull "$at_stderr" || at_failed=:
112086at_fn_diff_devnull "$at_stdout" || at_failed=:
112087at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:511"
112088$at_failed && at_fn_log_failure
112089$at_traceon; }
112090
112091
112092  set +x
112093  $at_times_p && times >"$at_times_file"
112094) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112095read at_status <"$at_status_file"
112096#AT_STOP_968
112097#AT_START_969
112098at_fn_group_banner 969 'run_extensions.at:517' \
112099  "Complex OCCURS DEPENDING ON (1)" "                " 4
112100at_xfail=no
112101(
112102  $as_echo "969. $at_setup_line: testing $at_desc ..."
112103  $at_traceon
112104
112105
112106
112107cat >prog.cob <<'_ATEOF'
112108
112109       IDENTIFICATION   DIVISION.
112110       PROGRAM-ID.      prog.
112111       DATA             DIVISION.
112112       WORKING-STORAGE  SECTION.
112113       01 I PIC 9.
112114       01 G-1 VALUE "123456789".
112115         02 G-2.
112116           03 X   PIC X OCCURS 1 TO 3 DEPENDING ON I.
112117         02 G-3.
112118           03 G-4.
112119             04 X PIC X OCCURS 1 TO 3 DEPENDING ON I.
112120           03 G-5.
112121             04 X PIC X OCCURS 1 TO 3 DEPENDING ON I.
112122       PROCEDURE        DIVISION.
112123           MOVE 2 TO I.
112124           DISPLAY G-1 ":" G-4 ":" G-5 NO ADVANCING
112125           .
112126_ATEOF
112127
112128
112129{ set +x
112130$as_echo "$at_srcdir/run_extensions.at:540: \$COMPILE -std=mvs prog.cob"
112131at_fn_check_prepare_dynamic "$COMPILE -std=mvs prog.cob" "run_extensions.at:540"
112132( $at_check_trace; $COMPILE -std=mvs prog.cob
112133) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112134at_status=$? at_failed=false
112135$at_check_filter
112136at_fn_diff_devnull "$at_stderr" || at_failed=:
112137at_fn_diff_devnull "$at_stdout" || at_failed=:
112138at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:540"
112139$at_failed && at_fn_log_failure
112140$at_traceon; }
112141
112142{ set +x
112143$as_echo "$at_srcdir/run_extensions.at:541: \$COBCRUN_DIRECT ./prog"
112144at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:541"
112145( $at_check_trace; $COBCRUN_DIRECT ./prog
112146) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112147at_status=$? at_failed=false
112148$at_check_filter
112149at_fn_diff_devnull "$at_stderr" || at_failed=:
112150echo >>"$at_stdout"; $as_echo "123456:34:56" | \
112151  $at_diff - "$at_stdout" || at_failed=:
112152at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:541"
112153$at_failed && at_fn_log_failure
112154$at_traceon; }
112155
112156
112157  set +x
112158  $at_times_p && times >"$at_times_file"
112159) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112160read at_status <"$at_status_file"
112161#AT_STOP_969
112162#AT_START_970
112163at_fn_group_banner 970 'run_extensions.at:546' \
112164  "Complex OCCURS DEPENDING ON (2)" "                " 4
112165at_xfail=no
112166(
112167  $as_echo "970. $at_setup_line: testing $at_desc ..."
112168  $at_traceon
112169
112170
112171
112172cat >prog.cob <<'_ATEOF'
112173
112174       IDENTIFICATION   DIVISION.
112175       PROGRAM-ID.      prog.
112176       ENVIRONMENT      DIVISION.
112177       DATA             DIVISION.
112178       WORKING-STORAGE  SECTION.
112179       01  I            PIC 99.
112180       01  J            PIC 99.
112181       01  K            PIC 99.
112182       01  VLEN         PIC 99.
112183       01  VTOP.
112184           03 VGROUP.
112185             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
112186               10 VXX   PIC X(1).
112187             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
112188               10 VYY   PIC X(2).
112189             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
112190               10 VZZ   PIC X(3).
112191       PROCEDURE        DIVISION.
112192           MOVE    1      TO I.
112193           MOVE    1      TO J.
112194           MOVE    1      TO K.
112195           MOVE    '1'    TO VXX (1).
112196           MOVE    '22'   TO VYY (1).
112197           MOVE    '333'  TO VZZ (1).
112198           MOVE    LENGTH OF VGROUP         TO VLEN.
112199           DISPLAY VLEN   NO ADVANCING
112200           END-DISPLAY.
112201           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112202           DISPLAY VLEN   NO ADVANCING
112203           END-DISPLAY.
112204           DISPLAY VGROUP
112205           END-DISPLAY.
112206           INITIALIZE     VTOP.
112207           MOVE    3      TO I.
112208           MOVE    2      TO J.
112209           MOVE    1      TO K.
112210           MOVE    '3'    TO VXX (3).
112211           MOVE    '22'   TO VYY (2).
112212           MOVE    '111'  TO VZZ (1).
112213           MOVE    LENGTH OF VGROUP         TO VLEN.
112214           DISPLAY VLEN   NO ADVANCING
112215           END-DISPLAY.
112216           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112217           DISPLAY VLEN   NO ADVANCING
112218           END-DISPLAY.
112219           DISPLAY VGROUP
112220           END-DISPLAY.
112221           STOP RUN.
112222_ATEOF
112223
112224
112225{ set +x
112226$as_echo "$at_srcdir/run_extensions.at:600: \$COMPILE -std=mf prog.cob"
112227at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:600"
112228( $at_check_trace; $COMPILE -std=mf prog.cob
112229) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112230at_status=$? at_failed=false
112231$at_check_filter
112232at_fn_diff_devnull "$at_stderr" || at_failed=:
112233at_fn_diff_devnull "$at_stdout" || at_failed=:
112234at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:600"
112235$at_failed && at_fn_log_failure
112236$at_traceon; }
112237
112238{ set +x
112239$as_echo "$at_srcdir/run_extensions.at:601: \$COBCRUN_DIRECT ./prog"
112240at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:601"
112241( $at_check_trace; $COBCRUN_DIRECT ./prog
112242) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112243at_status=$? at_failed=false
112244$at_check_filter
112245at_fn_diff_devnull "$at_stderr" || at_failed=:
112246echo >>"$at_stdout"; $as_echo "18181    22        333
1122471818  3    22      111
112248" | \
112249  $at_diff - "$at_stdout" || at_failed=:
112250at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:601"
112251$at_failed && at_fn_log_failure
112252$at_traceon; }
112253
112254
112255  set +x
112256  $at_times_p && times >"$at_times_file"
112257) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112258read at_status <"$at_status_file"
112259#AT_STOP_970
112260#AT_START_971
112261at_fn_group_banner 971 'run_extensions.at:609' \
112262  "Complex OCCURS DEPENDING ON (3)" "                " 4
112263at_xfail=no
112264(
112265  $as_echo "971. $at_setup_line: testing $at_desc ..."
112266  $at_traceon
112267
112268
112269
112270cat >prog.cob <<'_ATEOF'
112271
112272       IDENTIFICATION   DIVISION.
112273       PROGRAM-ID.      prog.
112274       ENVIRONMENT      DIVISION.
112275       DATA             DIVISION.
112276       WORKING-STORAGE  SECTION.
112277       01  I            PIC 99.
112278       01  J            PIC 99.
112279       01  K            PIC 99.
112280       01  VLEN         PIC 99.
112281       01  VTOP.
112282           03 VGROUP.
112283             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
112284               10 VXX   PIC X(1).
112285             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
112286               10 VYY   PIC X(2).
112287             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
112288               10 VZZ   PIC X(3).
112289       PROCEDURE        DIVISION.
112290           MOVE    1      TO I.
112291           MOVE    1      TO J.
112292           MOVE    1      TO K.
112293           MOVE    '1'    TO VXX (1).
112294           MOVE    '22'   TO VYY (1).
112295           MOVE    '333'  TO VZZ (1).
112296           MOVE    LENGTH OF VGROUP         TO VLEN.
112297           DISPLAY VLEN   NO ADVANCING
112298           END-DISPLAY.
112299           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112300           DISPLAY VLEN   NO ADVANCING
112301           END-DISPLAY.
112302           DISPLAY VGROUP
112303           END-DISPLAY.
112304           INITIALIZE     VTOP.
112305           MOVE    3      TO I.
112306           MOVE    2      TO J.
112307           MOVE    1      TO K.
112308           MOVE    '3'    TO VXX (3).
112309           MOVE    '22'   TO VYY (2).
112310           MOVE    '111'  TO VZZ (1).
112311           MOVE    LENGTH OF VGROUP         TO VLEN.
112312           DISPLAY VLEN   NO ADVANCING
112313           END-DISPLAY.
112314           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112315           DISPLAY VLEN   NO ADVANCING
112316           END-DISPLAY.
112317           DISPLAY VGROUP
112318           END-DISPLAY.
112319           STOP RUN.
112320_ATEOF
112321
112322
112323{ set +x
112324$as_echo "$at_srcdir/run_extensions.at:663: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
112325at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:663"
112326( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide prog.cob
112327) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112328at_status=$? at_failed=false
112329$at_check_filter
112330at_fn_diff_devnull "$at_stderr" || at_failed=:
112331at_fn_diff_devnull "$at_stdout" || at_failed=:
112332at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:663"
112333$at_failed && at_fn_log_failure
112334$at_traceon; }
112335
112336{ set +x
112337$as_echo "$at_srcdir/run_extensions.at:664: \$COBCRUN_DIRECT ./prog"
112338at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:664"
112339( $at_check_trace; $COBCRUN_DIRECT ./prog
112340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112341at_status=$? at_failed=false
112342$at_check_filter
112343at_fn_diff_devnull "$at_stderr" || at_failed=:
112344echo >>"$at_stdout"; $as_echo "0606122333
1123451010  3  22111
112346" | \
112347  $at_diff - "$at_stdout" || at_failed=:
112348at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:664"
112349$at_failed && at_fn_log_failure
112350$at_traceon; }
112351
112352
112353  set +x
112354  $at_times_p && times >"$at_times_file"
112355) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112356read at_status <"$at_status_file"
112357#AT_STOP_971
112358#AT_START_972
112359at_fn_group_banner 972 'run_extensions.at:672' \
112360  "Complex OCCURS DEPENDING ON (4)" "                " 4
112361at_xfail=no
112362(
112363  $as_echo "972. $at_setup_line: testing $at_desc ..."
112364  $at_traceon
112365
112366
112367
112368cat >prog.cob <<'_ATEOF'
112369
112370       IDENTIFICATION   DIVISION.
112371       PROGRAM-ID.      prog.
112372       ENVIRONMENT      DIVISION.
112373       DATA             DIVISION.
112374       WORKING-STORAGE  SECTION.
112375       01  I            PIC 99.
112376       01  J            PIC 99.
112377       01  K            PIC 99.
112378       01  VLEN         PIC 99.
112379       01  VTOP.
112380           03 VGROUP.
112381             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
112382               10 VXX   PIC X(1).
112383             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
112384               10 VYY   PIC X(2).
112385             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
112386               10 VZZ   PIC X(3).
112387             05  VFIX   PIC X(3).
112388       PROCEDURE        DIVISION.
112389           MOVE    1      TO I.
112390           MOVE    1      TO J.
112391           MOVE    1      TO K.
112392           MOVE    '1'    TO VXX (1).
112393           MOVE    '22'   TO VYY (1).
112394           MOVE    '333'  TO VZZ (1).
112395           MOVE    '444'  TO VFIX.
112396           MOVE    LENGTH OF VGROUP         TO VLEN.
112397           DISPLAY VLEN   NO ADVANCING
112398           END-DISPLAY.
112399           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112400           DISPLAY VLEN   NO ADVANCING
112401           END-DISPLAY.
112402           DISPLAY VGROUP
112403           END-DISPLAY.
112404           INITIALIZE     VTOP.
112405           MOVE    3      TO I.
112406           MOVE    2      TO J.
112407           MOVE    1      TO K.
112408           MOVE    '3'    TO VXX (3).
112409           MOVE    '22'   TO VYY (2).
112410           MOVE    '111'  TO VZZ (1).
112411           MOVE    '000'  TO VFIX.
112412           MOVE    LENGTH OF VGROUP         TO VLEN.
112413           DISPLAY VLEN   NO ADVANCING
112414           END-DISPLAY.
112415           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112416           DISPLAY VLEN   NO ADVANCING
112417           END-DISPLAY.
112418           DISPLAY VGROUP
112419           END-DISPLAY.
112420           STOP RUN.
112421_ATEOF
112422
112423
112424{ set +x
112425$as_echo "$at_srcdir/run_extensions.at:729: \$COMPILE -fcomplex-odo prog.cob"
112426at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo prog.cob" "run_extensions.at:729"
112427( $at_check_trace; $COMPILE -fcomplex-odo prog.cob
112428) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112429at_status=$? at_failed=false
112430$at_check_filter
112431at_fn_diff_devnull "$at_stderr" || at_failed=:
112432at_fn_diff_devnull "$at_stdout" || at_failed=:
112433at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:729"
112434$at_failed && at_fn_log_failure
112435$at_traceon; }
112436
112437{ set +x
112438$as_echo "$at_srcdir/run_extensions.at:730: \$COBCRUN_DIRECT ./prog"
112439at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:730"
112440( $at_check_trace; $COBCRUN_DIRECT ./prog
112441) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112442at_status=$? at_failed=false
112443$at_check_filter
112444at_fn_diff_devnull "$at_stderr" || at_failed=:
112445echo >>"$at_stdout"; $as_echo "33331    22        333            444
1124463333  3    22      111            000
112447" | \
112448  $at_diff - "$at_stdout" || at_failed=:
112449at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:730"
112450$at_failed && at_fn_log_failure
112451$at_traceon; }
112452
112453
112454  set +x
112455  $at_times_p && times >"$at_times_file"
112456) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112457read at_status <"$at_status_file"
112458#AT_STOP_972
112459#AT_START_973
112460at_fn_group_banner 973 'run_extensions.at:738' \
112461  "Complex OCCURS DEPENDING ON (5)" "                " 4
112462at_xfail=no
112463(
112464  $as_echo "973. $at_setup_line: testing $at_desc ..."
112465  $at_traceon
112466
112467
112468
112469cat >prog.cob <<'_ATEOF'
112470
112471       IDENTIFICATION   DIVISION.
112472       PROGRAM-ID.      prog.
112473       ENVIRONMENT      DIVISION.
112474       DATA             DIVISION.
112475       WORKING-STORAGE  SECTION.
112476       01  I            PIC 99.
112477       01  J            PIC 99.
112478       01  K            PIC 99.
112479       01  VLEN         PIC 99.
112480       01  VTOP.
112481           03 VGROUP.
112482             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
112483               10 VXX   PIC X(1).
112484             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
112485               10 VYY   PIC X(2).
112486             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
112487               10 VZZ   PIC X(3).
112488             05  VFIX   PIC X(3).
112489       PROCEDURE        DIVISION.
112490           MOVE    1      TO I.
112491           MOVE    1      TO J.
112492           MOVE    1      TO K.
112493           MOVE    '1'    TO VXX (1).
112494           MOVE    '22'   TO VYY (1).
112495           MOVE    '333'  TO VZZ (1).
112496           MOVE    '444'  TO VFIX.
112497           MOVE    LENGTH OF VGROUP         TO VLEN.
112498           DISPLAY VLEN   NO ADVANCING
112499           END-DISPLAY.
112500           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112501           DISPLAY VLEN   NO ADVANCING
112502           END-DISPLAY.
112503           DISPLAY VGROUP
112504           END-DISPLAY.
112505           INITIALIZE     VTOP.
112506           MOVE    3      TO I.
112507           MOVE    2      TO J.
112508           MOVE    1      TO K.
112509           MOVE    '3'    TO VXX (3).
112510           MOVE    '22'   TO VYY (2).
112511           MOVE    '111'  TO VZZ (1).
112512           MOVE    '000'  TO VFIX.
112513           MOVE    LENGTH OF VGROUP         TO VLEN.
112514           DISPLAY VLEN   NO ADVANCING
112515           END-DISPLAY.
112516           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
112517           DISPLAY VLEN   NO ADVANCING
112518           END-DISPLAY.
112519           DISPLAY VGROUP
112520           END-DISPLAY.
112521           STOP RUN.
112522_ATEOF
112523
112524
112525{ set +x
112526$as_echo "$at_srcdir/run_extensions.at:795: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
112527at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:795"
112528( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide prog.cob
112529) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112530at_status=$? at_failed=false
112531$at_check_filter
112532at_fn_diff_devnull "$at_stderr" || at_failed=:
112533at_fn_diff_devnull "$at_stdout" || at_failed=:
112534at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:795"
112535$at_failed && at_fn_log_failure
112536$at_traceon; }
112537
112538{ set +x
112539$as_echo "$at_srcdir/run_extensions.at:796: \$COBCRUN_DIRECT ./prog"
112540at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:796"
112541( $at_check_trace; $COBCRUN_DIRECT ./prog
112542) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112543at_status=$? at_failed=false
112544$at_check_filter
112545at_fn_diff_devnull "$at_stderr" || at_failed=:
112546echo >>"$at_stdout"; $as_echo "0909122333444
1125471313  3  22111000
112548" | \
112549  $at_diff - "$at_stdout" || at_failed=:
112550at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:796"
112551$at_failed && at_fn_log_failure
112552$at_traceon; }
112553
112554
112555  set +x
112556  $at_times_p && times >"$at_times_file"
112557) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112558read at_status <"$at_status_file"
112559#AT_STOP_973
112560#AT_START_974
112561at_fn_group_banner 974 'run_extensions.at:804' \
112562  "Complex OCCURS DEPENDING ON (6)" "                " 4
112563at_xfail=no
112564(
112565  $as_echo "974. $at_setup_line: testing $at_desc ..."
112566  $at_traceon
112567
112568
112569
112570cat >prog.cob <<'_ATEOF'
112571
112572       IDENTIFICATION   DIVISION.
112573       PROGRAM-ID.      prog.
112574       DATA             DIVISION.
112575       WORKING-STORAGE  SECTION.
112576       01  n            PIC 9 VALUE 2.
112577       01  m            PIC 9 VALUE 3.
112578
112579       01  a-table      VALUE "ABCDEFGHIJ".
112580           03  rows     OCCURS 0 TO 2 TIMES
112581                        DEPENDING ON n.
112582                05  chars OCCURS 0 TO 5 TIMES
112583                          DEPENDING ON m
112584                          PIC X.
112585
112586       01  vals         PIC X(3).
112587
112588       PROCEDURE DIVISION.
112589           MOVE chars (1, 2) TO vals (1:1)
112590           MOVE chars (2, 1) TO vals (2:1)
112591           MOVE chars (2, 3) TO vals (3:1)
112592           IF vals NOT = "BDF"
112593              DISPLAY "Vals (slided) wrong: " vals
112594              END-DISPLAY
112595           END-IF
112596           IF a-table NOT = "ABCDEF"
112597              DISPLAY "Table (slided) wrong: " a-table
112598              END-DISPLAY
112599           END-IF
112600           .
112601_ATEOF
112602
112603
112604{ set +x
112605$as_echo "$at_srcdir/run_extensions.at:839: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
112606at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:839"
112607( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide prog.cob
112608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112609at_status=$? at_failed=false
112610$at_check_filter
112611at_fn_diff_devnull "$at_stderr" || at_failed=:
112612at_fn_diff_devnull "$at_stdout" || at_failed=:
112613at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:839"
112614$at_failed && at_fn_log_failure
112615$at_traceon; }
112616
112617{ set +x
112618$as_echo "$at_srcdir/run_extensions.at:840: \$COBCRUN_DIRECT ./prog"
112619at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:840"
112620( $at_check_trace; $COBCRUN_DIRECT ./prog
112621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112622at_status=$? at_failed=false
112623$at_check_filter
112624at_fn_diff_devnull "$at_stderr" || at_failed=:
112625at_fn_diff_devnull "$at_stdout" || at_failed=:
112626at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:840"
112627$at_failed && at_fn_log_failure
112628$at_traceon; }
112629
112630
112631  set +x
112632  $at_times_p && times >"$at_times_file"
112633) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112634read at_status <"$at_status_file"
112635#AT_STOP_974
112636#AT_START_975
112637at_fn_group_banner 975 'run_extensions.at:845' \
112638  "OCCURS UNBOUNDED (1)" "                           " 4
112639at_xfail=no
112640(
112641  $as_echo "975. $at_setup_line: testing $at_desc ..."
112642  $at_traceon
112643
112644
112645
112646cat >prog.cob <<'_ATEOF'
112647
112648       IDENTIFICATION   DIVISION.
112649       PROGRAM-ID. prog.
112650       DATA             DIVISION.
112651       WORKING-STORAGE  SECTION.
112652       01  N            PIC 9(03)  VALUE 123 COMP-5.
112653       01  P            USAGE POINTER.
112654       01  SAV          PIC X(8192).
112655       01  W-TABLE.
112656           03  WROWS     OCCURS 0 TO 500 TIMES
112657                        DEPENDING ON N.
112658               05 WCOL1  PIC 9.
112659               05 WCOL2  PIC X(02).
112660
112661       LINKAGE SECTION.
112662       01  A-TABLE.
112663           03  ROWS     OCCURS 0 TO UNBOUNDED TIMES
112664                        DEPENDING ON N.
112665               05 COL1  PIC X.
112666               05 COL2  PIC X(02).
112667
112668       PROCEDURE DIVISION.
112669           IF FUNCTION LENGTH (W-TABLE) NOT = 369
112670              DISPLAY 'WRONG WS LENGTH: ' FUNCTION LENGTH (A-TABLE)
112671              END-DISPLAY
112672           END-IF
112673           IF FUNCTION LENGTH (A-TABLE) NOT = 369
112674              DISPLAY 'WRONG LS LENGTH: ' FUNCTION LENGTH (A-TABLE)
112675              END-DISPLAY
112676           END-IF
112677           ALLOCATE FUNCTION LENGTH (A-TABLE) CHARACTERS
112678                    INITIALIZED TO ALL "ABCDE"
112679                    RETURNING P
112680           SET ADDRESS OF A-TABLE TO P
112681           IF COL2(1) NOT = "BC"
112682              DISPLAY "col2(1) wrong: " col2(1)
112683           END-IF
112684           IF ROWS(2) NOT = "DEA"
112685              DISPLAY "rows(2) wrong: " rows(2)
112686           END-IF
112687      *
112688           INITIALIZE W-TABLE
112689      *
112690           MOVE A-TABLE TO SAV
112691           INITIALIZE A-TABLE
112692      *
112693           FREE p
112694           .
112695_ATEOF
112696
112697
112698{ set +x
112699$as_echo "$at_srcdir/run_extensions.at:898: \$COBC -x -std=ibm -w -fodoslide prog.cob "
112700at_fn_check_prepare_dynamic "$COBC -x -std=ibm -w -fodoslide prog.cob " "run_extensions.at:898"
112701( $at_check_trace; $COBC -x -std=ibm -w -fodoslide prog.cob
112702) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112703at_status=$? at_failed=false
112704$at_check_filter
112705at_fn_diff_devnull "$at_stderr" || at_failed=:
112706at_fn_diff_devnull "$at_stdout" || at_failed=:
112707at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:898"
112708$at_failed && at_fn_log_failure
112709$at_traceon; }
112710
112711{ set +x
112712$as_echo "$at_srcdir/run_extensions.at:899: \$COMPILE prog.cob"
112713at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:899"
112714( $at_check_trace; $COMPILE prog.cob
112715) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112716at_status=$? at_failed=false
112717$at_check_filter
112718at_fn_diff_devnull "$at_stderr" || at_failed=:
112719at_fn_diff_devnull "$at_stdout" || at_failed=:
112720at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:899"
112721$at_failed && at_fn_log_failure
112722$at_traceon; }
112723
112724
112725{ set +x
112726$as_echo "$at_srcdir/run_extensions.at:901: \$COBCRUN_DIRECT ./prog"
112727at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:901"
112728( $at_check_trace; $COBCRUN_DIRECT ./prog
112729) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112730at_status=$? at_failed=false
112731$at_check_filter
112732at_fn_diff_devnull "$at_stderr" || at_failed=:
112733at_fn_diff_devnull "$at_stdout" || at_failed=:
112734at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:901"
112735$at_failed && at_fn_log_failure
112736$at_traceon; }
112737
112738
112739  set +x
112740  $at_times_p && times >"$at_times_file"
112741) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112742read at_status <"$at_status_file"
112743#AT_STOP_975
112744#AT_START_976
112745at_fn_group_banner 976 'run_extensions.at:906' \
112746  "OCCURS UNBOUNDED (2)" "                           " 4
112747at_xfail=yes
112748(
112749  $as_echo "976. $at_setup_line: testing $at_desc ..."
112750  $at_traceon
112751
112752
112753
112754# note: the following example is from IBM's Language Reference
112755#       for Enterprise COBOL for z/OS 6.1, but with fixed use
112756#       of old-size (+ removing some binary zeros for output)
112757
112758cat >ALLOC.cob <<'_ATEOF'
112759
112760       ID DIVISION.
112761        PROGRAM-ID. ALLOC.
112762       ENVIRONMENT DIVISION.
112763       DATA DIVISION.
112764        WORKING-STORAGE SECTION.
112765        77  X   PIC  9(2) PACKED-DECIMAL.
112766        77  NUM-ELEMENTS PIC 9(4) BINARY.
112767        77  SIZE-NEEDED  PIC 9(4) BINARY.
112768        77  old-size     pic 9(4) binary.
112769        77  VPTR  POINTER.
112770        77  VPTR2 POINTER.
112771        77  VPTR3 POINTER.
112772
112773        LINKAGE       SECTION.
112774
112775        01  VARGRP.
112776          02  OBJ     PIC 9(4) COMP.
112777          02  TABGRP.
112778            03  VARTAB OCCURS 1 TO UNBOUNDED DEPENDING ON OBJ.
112779              04  T1      PIC 9(4).
112780              04  T2      PIC X(8).
112781              04  T3      PIC 9(4). *> changed from COMP because of output
112782        01 BUFFER         PIC X(1000).
112783
112784       PROCEDURE DIVISION.
112785
112786      *>    DISPLAY 'Starting testcase ALLOC'
112787
112788           SET VPTR VPTR2 VPTR3 To NULL
112789
112790      *************************************************************
112791      *  Allocate a table with 20 elements
112792      *************************************************************
112793           COMPUTE NUM-ELEMENTS = 20
112794           PERFORM ALLOC-VARGRP
112795
112796      *************************************************************
112797      *  Set some 'test' values to validate re-allocated table
112798      *************************************************************
112799           initialize vartab(12), vartab(17)
112800           COMPUTE T1(12) = 9999
112801           MOVE 'HI MOM' TO T2 (17)
112802      *>   DISPLAY '  '
112803           DISPLAY 'VARTAB(12) = "' VARTAB(12) '"'
112804           DISPLAY 'VARTAB(17) = "' VARTAB(17) '"'
112805      *>   DISPLAY '  '
112806
112807      *************************************************************
112808      *  Need a bigger table! Allocate a larger one and copy data
112809      *************************************************************
112810           COMPUTE NUM-ELEMENTS = 30
112811           PERFORM ALLOC-VARGRP
112812
112813      *************************************************************
112814      *  Ensure that new table has correct data from original
112815      *************************************************************
112816           DISPLAY 'VARTAB(12) = "' VARTAB(12) '"'
112817           DISPLAY 'VARTAB(17) = "' VARTAB(17) '"'
112818
112819           GOBACK.
112820
112821      *************************************************************
112822      *  The first time allocate the original table.  If the table
112823      *  has already been allocated, assume that we are allocating
112824      *  a larger one and want to copy the data over to it
112825      *************************************************************
112826        ALLOC-VARGRP.
112827
112828           If VPTR = NULL Then      *> If first time, allocate the table
112829             COMPUTE SIZE-NEEDED = LENGTH OF OBJ +
112830                                 LENGTH OF VARTAB * NUM-ELEMENTS
112831             display 'First allocation, using ' size-needed ' bytes.'
112832             ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR
112833
112834             SET ADDRESS OF VARGRP TO VPTR
112835             MOVE NUM-ELEMENTS TO OBJ
112836
112837           Else                     *> If already have a table, doing re-size
112838      *********************************************************************
112839      * Re-size it!
112840      * First, allocate space for data save area  and move data in
112841      *********************************************************************
112842
112843             ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR2
112844             SET ADDRESS OF BUFFER TO VPTR2
112845             MOVE VARGRP TO BUFFER(1:SIZE-NEEDED)
112846             inspect BUFFER(1:SIZE-NEEDED) replacing all x'00' by space
112847             DISPLAY 'BUFFER     = "'
112848                   BUFFER(170:66) '"'
112849             DISPLAY 'BUFFER     = "'
112850                   BUFFER(226:66) '"'
112851             move size-needed to old-size
112852
112853      *********************************************************************
112854      * Calculate new size from NUM-ElEMENTS
112855      *********************************************************************
112856             COMPUTE SIZE-NEEDED = LENGTH OF OBJ +
112857                                   LENGTH OF VARTAB * NUM-ELEMENTS
112858
112859             display 'Re-allocation, using ' size-needed ' bytes.'
112860      *>     ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR3
112861             if size-needed < 2097152
112862                ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED
112863                                                loc 24
112864                                                RETURNING VPTR3
112865             else
112866                ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED
112867                                                loc 31
112868                                                RETURNING VPTR3
112869             end-if
112870
112871      *************************************************************
112872      * Move data from data save area to new larger table
112873      *************************************************************
112874             SET ADDRESS OF VARGRP TO VPTR3
112875             MOVE NUM-ELEMENTS TO OBJ
112876             MOVE BUFFER(1:old-size) TO VARGRP
112877             call 'CBL_OC_DUMP' using VARGRP   *> remove me once all is fine
112878             (1:size-needed) *> FIXME (from rw-branch), shouldn't be needed
112879      *************************************************************
112880      * Free the original table and temp copy
112881      *************************************************************
112882             FREE VPTR  VPTR2
112883             SET VPTR TO VPTR2
112884             .
112885_ATEOF
112886
112887
112888{ set +x
112889$as_echo "$at_srcdir/run_extensions.at:1041: \$COMPILE -std=ibm-strict -w ALLOC.cob"
112890at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict -w ALLOC.cob" "run_extensions.at:1041"
112891( $at_check_trace; $COMPILE -std=ibm-strict -w ALLOC.cob
112892) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112893at_status=$? at_failed=false
112894$at_check_filter
112895at_fn_diff_devnull "$at_stderr" || at_failed=:
112896at_fn_diff_devnull "$at_stdout" || at_failed=:
112897at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1041"
112898$at_failed && at_fn_log_failure
112899$at_traceon; }
112900
112901
112902# compiler limits ODO-item wrong, merge of rw-branch needed
112903
112904
112905{ set +x
112906$as_echo "$at_srcdir/run_extensions.at:1046: \$COBCRUN_DIRECT ./ALLOC"
112907at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./ALLOC" "run_extensions.at:1046"
112908( $at_check_trace; $COBCRUN_DIRECT ./ALLOC
112909) >>"$at_stdout" 2>>"$at_stderr" 5>&-
112910at_status=$? at_failed=false
112911$at_check_filter
112912at_fn_diff_devnull "$at_stderr" || at_failed=:
112913echo >>"$at_stdout"; $as_echo "First allocation, using 00322 bytes.
112914VARTAB(12) = \"9999        0000\"
112915VARTAB(17) = \"0000HI MOM  0000\"
112916BUFFER     = \"        9999        0000                                \"
112917             \"                                0000HI MOM  0000        \"
112918Re-allocation, using 00482 bytes.
112919VARTAB(12) = \"9999        0000\"
112920VARTAB(17) = \"0000HI MOM  0000\"
112921" | \
112922  $at_diff - "$at_stdout" || at_failed=:
112923at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1046"
112924$at_failed && at_fn_log_failure
112925$at_traceon; }
112926
112927
112928  set +x
112929  $at_times_p && times >"$at_times_file"
112930) 5>&1 2>&1 7>&- | eval $at_tee_pipe
112931read at_status <"$at_status_file"
112932#AT_STOP_976
112933#AT_START_977
112934at_fn_group_banner 977 'run_extensions.at:1060' \
112935  "INITIALIZE OCCURS UNBOUNDED" "                    " 4
112936at_xfail=no
112937(
112938  $as_echo "977. $at_setup_line: testing $at_desc ..."
112939  $at_traceon
112940
112941
112942
112943cat >prog.cob <<'_ATEOF'
112944
112945       IDENTIFICATION   DIVISION.
112946       PROGRAM-ID.      prog.
112947       DATA             DIVISION.
112948       WORKING-STORAGE  SECTION.
112949       01  p            USAGE POINTER.
112950       01  p2           USAGE POINTER.
112951       01  dlen         PIC 9(7).
112952
112953       LINKAGE SECTION.
112954       01  a-table.
112955           03  prefix.
112956               05  n    PIC 9(03)  VALUE 123.
112957           03  table-data value all "ABCDE".
112958            04  rows    OCCURS 0 TO UNBOUNDED TIMES
112959                        DEPENDING ON n.
112960               05 col1  PIC X.
112961               05 col2  PIC X(02).
112962
112963       PROCEDURE DIVISION.
112964           ALLOCATE LENGTH OF prefix CHARACTERS
112965                    RETURNING p
112966           SET ADDRESS OF a-table TO p
112967           INITIALIZE prefix ALL TO VALUE
112968           IF FUNCTION LENGTH (a-table) NOT = 372
112969              DISPLAY 'WRONG LENGTH table: ' FUNCTION LENGTH (a-table)
112970              END-DISPLAY
112971           END-IF
112972           ALLOCATE FUNCTION LENGTH (a-table) CHARACTERS
112973                    RETURNING p2
112974           SET ADDRESS OF a-table TO p2
112975           FREE p
112976
112977           INITIALIZE prefix ALL TO VALUE
112978
112979           IF LENGTH OF a-table NOT = 372
112980              MOVE LENGTH OF a-table TO dlen
112981              DISPLAY "BAD SIZE: " dlen
112982           END-DISPLAY
112983
112984           INITIALIZE table-data (1:FUNCTION LENGTH(rows(1)) * n)
112985                      ALL TO VALUE
112986           IF col2(1) NOT = "BC"
112987              DISPLAY "col2(1) wrong: " col2(1)
112988              END-DISPLAY
112989           END-IF
112990           IF rows(2) NOT = "DEA"
112991              DISPLAY "rows(2) wrong: " rows(2)
112992              END-DISPLAY
112993           END-IF
112994
112995      *>   check if ref-mod also works as expected
112996           MOVE ALL ZEROES TO a-table (1: (LENGTH OF a-table))
112997
112998      *> Test -  should only initialize up to current size, not max:
112999           INITIALIZE table-data     TO DEFAULT
113000           INITIALIZE table-data ALL TO VALUE
113001
113002      *> Test - FUNCTION LENGTH(table-data) must be resolved at run-time
113003          INITIALIZE table-data (1:FUNCTION LENGTH(table-data))
113004              ALL TO VALUE
113005           .
113006_ATEOF
113007
113008
113009{ set +x
113010$as_echo "$at_srcdir/run_extensions.at:1127: \$COMPILE prog.cob"
113011at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1127"
113012( $at_check_trace; $COMPILE prog.cob
113013) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113014at_status=$? at_failed=false
113015$at_check_filter
113016at_fn_diff_devnull "$at_stderr" || at_failed=:
113017at_fn_diff_devnull "$at_stdout" || at_failed=:
113018at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1127"
113019$at_failed && at_fn_log_failure
113020$at_traceon; }
113021
113022
113023{ set +x
113024$as_echo "$at_srcdir/run_extensions.at:1129: \$COBCRUN_DIRECT ./prog"
113025at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1129"
113026( $at_check_trace; $COBCRUN_DIRECT ./prog
113027) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113028at_status=$? at_failed=false
113029$at_check_filter
113030at_fn_diff_devnull "$at_stderr" || at_failed=:
113031at_fn_diff_devnull "$at_stdout" || at_failed=:
113032at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1129"
113033$at_failed && at_fn_log_failure
113034$at_traceon; }
113035
113036
113037  set +x
113038  $at_times_p && times >"$at_times_file"
113039) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113040read at_status <"$at_status_file"
113041#AT_STOP_977
113042#AT_START_978
113043at_fn_group_banner 978 'run_extensions.at:1134' \
113044  "INITIALIZE OCCURS ODOSLIDE" "                     " 4
113045at_xfail=no
113046(
113047  $as_echo "978. $at_setup_line: testing $at_desc ..."
113048  $at_traceon
113049
113050
113051
113052cat >prog.cob <<'_ATEOF'
113053
113054       IDENTIFICATION   DIVISION.
113055       PROGRAM-ID.      prog.
113056       DATA             DIVISION.
113057       WORKING-STORAGE  SECTION.
113058       01  p            USAGE POINTER.
113059       01  p2           USAGE POINTER.
113060       01  dlen         PIC 9(7).
113061       01  grp-0.
113062           05   FILLER  PIC X(3).
113063           05   FLD-0.
113064              10   FLD-0-1 OCCURS 8193 TIMES.
113065                15   FLD-0-2 PIC XXX VALUE "XYZ".
113066                15   FLD-0-3 PIC 99  VALUE 12.
113067                15   FLD-0-4 PIC XX  VALUE "QQ".
113068           05   FILLER  PIC X(3).
113069       01  grp-1.
113070           05   FILLER  PIC X(3).
113071           05   FLD-1   PIC X(5) VALUE ALL "ABCDE".
113072           05   FILLER  PIC X(3).
113073       01  grp-2.
113074           05   FILLER  PIC X(3).
113075           05   FLD-2   PIC X(42) VALUE ALL "ABCD ".
113076           05   FILLER  PIC X(3).
113077       01  grp-2a.
113078           05   FILLER  PIC X(3).
113079           05   FLD-2A  PIC X(8) VALUE ALL "ABC".
113080           05   FILLER  PIC X(3).
113081       01  grp-3.
113082           05   FILLER  PIC X(3).
113083           05   FLD-3   OCCURS 3 TIMES
113084                        VALUE ALL "ABC00XX".
113085                15   FLD-3-2 PIC XXX.
113086                15   FLD-3-3 PIC 99.
113087                15   FLD-3-4 PIC XX.
113088           05   FILLER  PIC X(3).
113089       01  grp-4.
113090           05   FILLER  PIC X(3).
113091           05   FLD-4.
113092              10   FLD-4-1 OCCURS 11 TIMES.
113093                15   FLD-4-2 PIC XX  VALUE "AB".
113094                15   FLD-4-3 PIC 99  VALUE 12.
113095                15   FLD-4-4 PIC XX  VALUE "YZ".
113096           05   FILLER  PIC X(3).
113097
113098       77  C5    PIC 9(03)  VALUE 6.
113099       01  grp-5.
113100           05   FILLER  PIC X(3).
113101           05   FLD-5.
113102              10   FLD-5-1 OCCURS 0 TO 9 TIMES
113103                        DEPENDING ON C5.
113104                15   FLD-5-2 PIC XXX VALUE "Mon".
113105                15   FLD-5-3 PIC 99  VALUE 49.
113106                15   FLD-5-4 PIC XX  VALUE "ey".
113107           05   FILLER  PIC X(3).
113108
113109       PROCEDURE DIVISION.
113110           MOVE ALL "*" TO grp-1.
113111           INITIALIZE FLD-1 ALL TO VALUE.
113112           DISPLAY "GRP-1:" grp-1.
113113
113114           MOVE ALL "*" TO grp-2.
113115           INITIALIZE FLD-2 ALL TO VALUE.
113116           DISPLAY "GRP-2:" grp-2.
113117
113118           MOVE ALL "*" TO grp-3.
113119           INITIALIZE FLD-3 (1) ALL TO VALUE.
113120           INITIALIZE FLD-3 (2) ALL TO VALUE.
113121           INITIALIZE FLD-3 (3) ALL TO VALUE.
113122           DISPLAY "GRP-3:" grp-3.
113123
113124           MOVE ALL "*" TO grp-4.
113125           INITIALIZE FLD-4 ALL TO VALUE.
113126           DISPLAY "GRP-4:" grp-4.
113127
113128           MOVE 7       TO c5.
113129           MOVE ALL "*" TO grp-5.
113130           INITIALIZE FLD-5 ALL TO VALUE.
113131           DISPLAY "GRP-5:" grp-5.
113132_ATEOF
113133
113134
113135{ set +x
113136$as_echo "$at_srcdir/run_extensions.at:1218: \$COMPILE -fodoslide prog.cob"
113137at_fn_check_prepare_dynamic "$COMPILE -fodoslide prog.cob" "run_extensions.at:1218"
113138( $at_check_trace; $COMPILE -fodoslide prog.cob
113139) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113140at_status=$? at_failed=false
113141$at_check_filter
113142at_fn_diff_devnull "$at_stderr" || at_failed=:
113143at_fn_diff_devnull "$at_stdout" || at_failed=:
113144at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1218"
113145$at_failed && at_fn_log_failure
113146$at_traceon; }
113147
113148
113149{ set +x
113150$as_echo "$at_srcdir/run_extensions.at:1220: \$COBCRUN_DIRECT ./prog"
113151at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1220"
113152( $at_check_trace; $COBCRUN_DIRECT ./prog
113153) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113154at_status=$? at_failed=false
113155$at_check_filter
113156at_fn_diff_devnull "$at_stderr" || at_failed=:
113157echo >>"$at_stdout"; $as_echo "GRP-1:***ABCDE***
113158GRP-2:***ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB***
113159GRP-3:***ABC00XXABC00XXABC00XX***
113160GRP-4:***AB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZ***
113161GRP-5:***Mon49eyMon49eyMon49eyMon49eyMon49eyMon49eyMon49ey***
113162" | \
113163  $at_diff - "$at_stdout" || at_failed=:
113164at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1220"
113165$at_failed && at_fn_log_failure
113166$at_traceon; }
113167
113168
113169  set +x
113170  $at_times_p && times >"$at_times_file"
113171) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113172read at_status <"$at_status_file"
113173#AT_STOP_978
113174#AT_START_979
113175at_fn_group_banner 979 'run_extensions.at:1231' \
113176  "DEPENDING ON with ODOSLIDE" "                     " 4
113177at_xfail=no
113178(
113179  $as_echo "979. $at_setup_line: testing $at_desc ..."
113180  $at_traceon
113181
113182
113183
113184cat >prog.cob <<'_ATEOF'
113185
113186       IDENTIFICATION DIVISION.
113187       PROGRAM-ID. prog.
113188       ENVIRONMENT DIVISION.
113189       CONFIGURATION SECTION.
113190       INPUT-OUTPUT SECTION.
113191       FILE-CONTROL.
113192           SELECT FLATFILE
113193           ASSIGN "SEQODO"
113194           ORGANIZATION LINE SEQUENTIAL
113195           FILE STATUS IS CUST-STAT .
113196
113197       DATA  DIVISION.
113198       FILE SECTION.
113199       FD  FLATFILE
113200           BLOCK CONTAINS 5 RECORDS.
113201
113202       01  TSTREC.
113203         05  SEQ           PIC 99.
113204         05  DEP-X         PIC 99.
113205         05  DEP-Y         PIC 99.
113206         05  HELLO         PIC X(5) VALUE 'World'.
113207         05  TSTGRP.
113208           10  TSTGRP1.
113209             15  TSTX OCCURS 1 TO 3 TIMES
113210                      DEPENDING ON DEP-X.
113211               20  TSTG-1  PIC Z9.
113212             15  TSTTAIL1  PIC XXXX.
113213           10  TSTY-ALL.
113214             15  TSTY OCCURS 1 TO 3 TIMES
113215                      DEPENDING ON DEP-X.
113216               20  TSTY-1  PIC 99.
113217               20  TSTY-2  PIC XXX.
113218               20  TSTY-3  PIC X
113219                             OCCURS 1 TO 12 TIMES
113220                             DEPENDING ON DEP-Y.
113221               20  TSTY-4  PIC XX.
113222               20  TSTY-5    OCCURS 1 TO 3 TIMES
113223                             DEPENDING ON DEP-X.
113224                  25  TSTY-6 OCCURS 1 TO 3 TIMES
113225                             DEPENDING ON DEP-X.
113226                     30  TSTY-7  PIC X.
113227           10  TSTTAIL2    PIC XX.
113228
113229       WORKING-STORAGE SECTION.
113230       77  CUST-STAT PIC  X(2).
113231       01  LN        PIC  9(3).
113232       01  IX        PIC  9(9) BINARY.
113233       01  IY        PIC  9(9) BINARY.
113234       01  IZ        PIC  9(9) BINARY.
113235       01  TSTXXX    PIC  X(26) VALUE "Abcdefghijklmnopqrstuvwxyz".
113236       01  TSTALPHA REDEFINES TSTXXX.
113237           05 ALPH-CHR PIC  X OCCURS 26 TIMES.
113238       01  TSTHEX    PIC  X(15) VALUE "123456789ABCDEF".
113239       01  FILLER REDEFINES TSTHEX.
113240           05 HEX-CHR PIC  X OCCURS 15 TIMES.
113241
113242       01  TSTREC2.
113243         05  DEP-X2        PIC 99.
113244         05  TSTGRP2.
113245             10  TSTX2 OCCURS 1 TO 3 TIMES DEPENDING ON DEP-X2.
113246               15  TSTG2-1  PIC Z9.
113247             10  TST2TAIL1  PIC XXX.
113248
113249       01  TSTREC3.
113250         05  DEP-X3        PIC 99.
113251         05  TSTGRP3.
113252             10  TSTX3 OCCURS 1 TO 6 TIMES DEPENDING ON DEP-X3.
113253               15  TSTG3-1  PIC 9.
113254       01  TSTWRK   PIC X(24).
113255
113256       PROCEDURE DIVISION.
113257       MAIN-10.
113258           MOVE 6 TO DEP-X3.
113259           MOVE 1 TO TSTG3-1 (1).
113260           MOVE 2 TO TSTG3-1 (2).
113261           MOVE 3 TO TSTG3-1 (3).
113262           MOVE 4 TO TSTG3-1 (4).
113263           MOVE 5 TO TSTG3-1 (5).
113264           MOVE 6 TO TSTG3-1 (6).
113265           MOVE 3 TO DEP-X3.
113266           STRING TSTGRP3 "-TRAILER" DELIMITED BY SIZE
113267           INTO TSTWRK.
113268           DISPLAY "'" TSTWRK "'".
113269           OPEN OUTPUT FLATFILE.
113270           MOVE "Howdy" TO HELLO.
113271           MOVE 0 TO SEQ.
113272           MOVE 2 TO DEP-X.
113273           MOVE 5 TO DEP-Y.
113274           PERFORM WRITE-REC.
113275           MOVE 1 TO DEP-X.
113276           MOVE 2 TO DEP-Y.
113277           PERFORM WRITE-REC.
113278           MOVE 3 TO DEP-X.
113279           MOVE 3 TO DEP-Y.
113280           PERFORM WRITE-REC.
113281           MOVE 3 TO DEP-X.
113282           MOVE 10 TO DEP-Y.
113283           PERFORM WRITE-REC.
113284           CLOSE FLATFILE.
113285           OPEN INPUT FLATFILE.
113286           PERFORM READ-REC.
113287           CLOSE FLATFILE.
113288           STOP RUN.
113289
113290       WRITE-REC SECTION.
113291           ADD 1 TO SEQ.
113292           MOVE LENGTH OF TSTREC TO LN.
113293           DISPLAY "Write SEQ " SEQ ", DEP-X = " DEP-X
113294                   " & DEP-Y = " DEP-Y
113295                   ", TSTREC len:" LN.
113296           MOVE ALL "*" TO TSTGRP.
113297           MOVE "<>"    TO TSTTAIL1, TSTTAIL2.
113298           PERFORM VARYING IX FROM 1 BY 1
113299                     UNTIL IX > DEP-X
113300               MOVE IX TO TSTG-1 (IX)
113301           END-PERFORM.
113302           MOVE LENGTH OF TSTGRP1 TO LN.
113303           DISPLAY "Group1: '" TSTGRP1 "' len:" LN.
113304           PERFORM VARYING IX FROM 1 BY 1
113305                     UNTIL IX > DEP-X
113306               MOVE IX TO TSTY-1 (IX)
113307               MOVE "." TO TSTY-4 (IX)
113308               PERFORM VARYING IY FROM 1 BY 1
113309                         UNTIL IY > DEP-Y
113310                   MOVE ALPH-CHR (IY) TO TSTY-3 (IX, IY)
113311               END-PERFORM
113312           END-PERFORM.
113313           PERFORM VARYING IX FROM 1 BY 1
113314                     UNTIL IX > DEP-X
113315               PERFORM VARYING IY FROM 1 BY 1
113316                         UNTIL IY > DEP-X
113317                 PERFORM VARYING IZ FROM 1 BY 1
113318                           UNTIL IZ > DEP-X
113319                   MOVE HEX-CHR (IX+IY+IZ) TO TSTY-7 (IX, IY, IZ)
113320                 END-PERFORM
113321               END-PERFORM
113322           END-PERFORM.
113323           DISPLAY "  Data: '" TSTGRP "'".
113324
113325           MOVE ALL "*" TO TSTGRP2.
113326           MOVE DEP-X TO DEP-X2.
113327           PERFORM VARYING IX FROM 1 BY 1
113328                     UNTIL IX > DEP-X2
113329               MOVE IX TO TSTG2-1 (IX)
113330           END-PERFORM.
113331           MOVE "<>"    TO TST2TAIL1.
113332           MOVE LENGTH OF TSTGRP2 TO LN.
113333           DISPLAY "Group2: '" TSTGRP2 "' len:" LN.
113334           WRITE TSTREC.
113335
113336       READ-REC SECTION.
113337       READ-10.
113338           READ FLATFILE AT END GO TO READ-99.
113339           MOVE LENGTH OF TSTREC TO LN.
113340           DISPLAY "Read SEQ " SEQ ", DEP-X = " DEP-X
113341                   " & DEP-Y = " DEP-Y
113342                   ", TSTREC len:" LN.
113343           DISPLAY "  Data: '" TSTGRP "'".
113344           GO TO READ-10.
113345       READ-99.
113346           EXIT .
113347_ATEOF
113348
113349
113350# FIXME: odo-checks (-debug) must be adjusted, either with -fodoslide or with a possibly new
113351#        compiler configuration flag as IBM seems to only check against the field-founder's
113352#        bounds, not the subscript (which is the reason to use "$COBC -x" instead of "$COMPILE")
113353{ set +x
113354$as_echo "$at_srcdir/run_extensions.at:1401: \$COBC -x -fodoslide prog.cob"
113355at_fn_check_prepare_dynamic "$COBC -x -fodoslide prog.cob" "run_extensions.at:1401"
113356( $at_check_trace; $COBC -x -fodoslide prog.cob
113357) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113358at_status=$? at_failed=false
113359$at_check_filter
113360at_fn_diff_devnull "$at_stderr" || at_failed=:
113361at_fn_diff_devnull "$at_stdout" || at_failed=:
113362at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1401"
113363$at_failed && at_fn_log_failure
113364$at_traceon; }
113365
113366
113367{ set +x
113368$as_echo "$at_srcdir/run_extensions.at:1403: \$COBCRUN_DIRECT ./prog"
113369at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1403"
113370( $at_check_trace; $COBCRUN_DIRECT ./prog
113371) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113372at_status=$? at_failed=false
113373$at_check_filter
113374at_fn_diff_devnull "$at_stderr" || at_failed=:
113375echo >>"$at_stdout"; $as_echo "'123-TRAILER             '
113376Write SEQ 01, DEP-X = 02 & DEP-Y = 05, TSTREC len:053
113377Group1: ' 1 2<>  ' len:008
113378  Data: ' 1 2<>  01***Abcde. 344502***Abcde. 4556<>'
113379Group2: ' 1 2<> ' len:007
113380Write SEQ 02, DEP-X = 01 & DEP-Y = 02, TSTREC len:029
113381Group1: ' 1<>  ' len:006
113382  Data: ' 1<>  01***Ab. 3<>'
113383Group2: ' 1<> ' len:005
113384Write SEQ 03, DEP-X = 03 & DEP-Y = 03, TSTREC len:080
113385Group1: ' 1 2 3<>  ' len:010
113386  Data: ' 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>'
113387Group2: ' 1 2 3<> ' len:009
113388Write SEQ 04, DEP-X = 03 & DEP-Y = 10, TSTREC len:101
113389Group1: ' 1 2 3<>  ' len:010
113390  Data: ' 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>'
113391Group2: ' 1 2 3<> ' len:009
113392Read SEQ 01, DEP-X = 02 & DEP-Y = 05, TSTREC len:053
113393  Data: ' 1 2<>  01***Abcde. 344502***Abcde. 4556<>'
113394Read SEQ 02, DEP-X = 01 & DEP-Y = 02, TSTREC len:029
113395  Data: ' 1<>  01***Ab. 3<>'
113396Read SEQ 03, DEP-X = 03 & DEP-Y = 03, TSTREC len:080
113397  Data: ' 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>'
113398Read SEQ 04, DEP-X = 03 & DEP-Y = 10, TSTREC len:101
113399  Data: ' 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>'
113400" | \
113401  $at_diff - "$at_stdout" || at_failed=:
113402at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1403"
113403$at_failed && at_fn_log_failure
113404$at_traceon; }
113405
113406
113407
113408
113409
113410cat >reference <<'_ATEOF'
113411010205Howdy 1 2<>  01***Abcde. 344502***Abcde. 4556<>
113412020102Howdy 1<>  01***Ab. 3<>
113413030303Howdy 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>
113414040310Howdy 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>
113415_ATEOF
113416
113417
113418{ set +x
113419$as_echo "$at_srcdir/run_extensions.at:1441: diff reference SEQODO"
113420at_fn_check_prepare_trace "run_extensions.at:1441"
113421( $at_check_trace; diff reference SEQODO
113422) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113423at_status=$? at_failed=false
113424$at_check_filter
113425at_fn_diff_devnull "$at_stderr" || at_failed=:
113426at_fn_diff_devnull "$at_stdout" || at_failed=:
113427at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1441"
113428$at_failed && at_fn_log_failure  \
113429"./SEQODO"
113430$at_traceon; }
113431
113432
113433  set +x
113434  $at_times_p && times >"$at_times_file"
113435) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113436read at_status <"$at_status_file"
113437#AT_STOP_979
113438#AT_START_980
113439at_fn_group_banner 980 'run_extensions.at:1446' \
113440  "DEPENDING ON with ODOSLIDE for IBM" "             " 4
113441at_xfail=no
113442(
113443  $as_echo "980. $at_setup_line: testing $at_desc ..."
113444  $at_traceon
113445
113446
113447
113448cat >prog.cob <<'_ATEOF'
113449
113450       IDENTIFICATION DIVISION.
113451       PROGRAM-ID. prog.
113452
113453       DATA DIVISION.
113454       WORKING-STORAGE SECTION.
113455       01  L1-1-2-S    PIC 99.
113456       01  L1-1-2-1-S  PIC 99.
113457       01  L1-2-S      PIC 99.
113458       01  L1-3-S      PIC 99.
113459       01  L1-3-2-S    PIC 99.
113460       01  BUFFER      PIC X(370).
113461
113462       PROCEDURE DIVISION.
113463           MOVE ALL '0123456789' TO BUFFER.
113464           MOVE 3 TO L1-1-2-S.
113465           MOVE 4 TO L1-1-2-1-S.
113466           MOVE 0 TO L1-2-S.
113467           MOVE 6 TO L1-3-S.
113468           MOVE 1 TO L1-3-2-S.
113469           CALL 'IBM-ODO-TEST' USING BUFFER
113470                               L1-1-2-S
113471                               L1-1-2-1-S
113472                               L1-2-S
113473                               L1-3-S
113474                               L1-3-2-S.
113475
113476           MOVE ALL '0123456789' TO BUFFER.
113477           MOVE 2 TO L1-1-2-S.
113478           MOVE 3 TO L1-1-2-1-S.
113479           MOVE 1 TO L1-2-S.
113480           MOVE 4 TO L1-3-S.
113481           MOVE 0 TO L1-3-2-S.
113482           CALL 'IBM-ODO-TEST' USING BUFFER
113483                               L1-1-2-S
113484                               L1-1-2-1-S
113485                               L1-2-S
113486                               L1-3-S
113487                               L1-3-2-S.
113488           STOP RUN.
113489           END PROGRAM prog.
113490
113491       IDENTIFICATION DIVISION.
113492       PROGRAM-ID. IBM-ODO-TEST.
113493
113494       DATA DIVISION.
113495       WORKING-STORAGE SECTION.
113496
113497       LINKAGE SECTION.
113498       01  L1-1-2-S    PIC 99.
113499       01  L1-1-2-1-S  PIC 99.
113500       01  L1-2-S      PIC 99.
113501       01  L1-3-S      PIC 99.
113502       01  L1-3-2-S    PIC 99.
113503       01 BASE.
113504         10 ARRAY OCCURS 2 TIMES.
113505           20 L1-1.
113506             25 L1-1-1 PIC X(3).
113507             25 L1-1-2 OCCURS 4 TIMES DEPENDING ON L1-1-2-S.
113508               30 L1-1-2-1 OCCURS 5 TIMES DEPENDING ON L1-1-2-1-S
113509                  PIC XXX.
113510           20 L1-2 OCCURS 0 TO 1 TIMES DEPENDING ON L1-2-S PIC XX.
113511           20 L1-3 OCCURS 1 TO 10 TIMES DEPENDING ON L1-3-S.
113512             25 L1-3-1.
113513               30  L1-3-1-1 PIC X(5).
113514               30  L1-3-1-2 PIC X.
113515               30  L1-3-1-3 PIC X(5).
113516             25 L1-3-2 OCCURS 0 TO 1 TIMES DEPENDING ON L1-3-2-S PIC X.
113517
113518       PROCEDURE DIVISION USING BASE
113519                                L1-1-2-S
113520                                L1-1-2-1-S
113521                                L1-2-S
113522                                L1-3-S
113523                                L1-3-2-S.
113524           DISPLAY "Length is " LENGTH OF BASE
113525                   " with " L1-1-2-S
113526                   ", " L1-1-2-1-S
113527                   ", " L1-2-S
113528                   ", " L1-3-S
113529                   ", " L1-3-2-S.
113530           MOVE '.'   TO L1-3-2(1, 5, 1).
113531           MOVE '--'  TO L1-2(2, 1).
113532           MOVE '+++' TO L1-1-2-1(2, 1, 5).
113533           DISPLAY '"' BASE '"'.
113534       END PROGRAM IBM-ODO-TEST.
113535_ATEOF
113536
113537# FIXME: odo-checks (-debug) must be adjusted, either with -fodoslide or with a possibly new
113538#        compiler configuration flag as IBM seems to only check against the field-founder's
113539#        bounds, not the subscript (which is the reason to use "$COBC -x" instead of "$COMPILE")
113540{ set +x
113541$as_echo "$at_srcdir/run_extensions.at:1539: \$COBC -x -std=ibm -fodoslide prog.cob"
113542at_fn_check_prepare_dynamic "$COBC -x -std=ibm -fodoslide prog.cob" "run_extensions.at:1539"
113543( $at_check_trace; $COBC -x -std=ibm -fodoslide prog.cob
113544) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113545at_status=$? at_failed=false
113546$at_check_filter
113547at_fn_diff_devnull "$at_stderr" || at_failed=:
113548at_fn_diff_devnull "$at_stdout" || at_failed=:
113549at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1539"
113550$at_failed && at_fn_log_failure
113551$at_traceon; }
113552
113553
113554{ set +x
113555$as_echo "$at_srcdir/run_extensions.at:1541: \$COBCRUN_DIRECT ./prog"
113556at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1541"
113557( $at_check_trace; $COBCRUN_DIRECT ./prog
113558) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113559at_status=$? at_failed=false
113560$at_check_filter
113561at_fn_diff_devnull "$at_stderr" || at_failed=:
113562echo >>"$at_stdout"; $as_echo "Length is +0000000222 with 03, 04, 00, 06, 01
113563\"01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567.901234567890123456789012345+++901234567890123456789--2345678901234567890123456789012345678901234567890123456789012345678901\"
113564Length is +0000000134 with 02, 03, 01, 04, 00
113565\"012345678901234567890123456789012345678901234567890123456789012345678901234567.901+++567--01234567890123456789012345678901234567890123\"
113566" | \
113567  $at_diff - "$at_stdout" || at_failed=:
113568at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1541"
113569$at_failed && at_fn_log_failure
113570$at_traceon; }
113571
113572
113573  set +x
113574  $at_times_p && times >"$at_times_file"
113575) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113576read at_status <"$at_status_file"
113577#AT_STOP_980
113578#AT_START_981
113579at_fn_group_banner 981 'run_extensions.at:1551' \
113580  "INITIALIZE level 01" "                            " 4
113581at_xfail=no
113582(
113583  $as_echo "981. $at_setup_line: testing $at_desc ..."
113584  $at_traceon
113585
113586
113587
113588cat >prog.cob <<'_ATEOF'
113589
113590       IDENTIFICATION   DIVISION.
113591       PROGRAM-ID.      prog.
113592       DATA             DIVISION.
113593       WORKING-STORAGE  SECTION.
113594       01 L1 OCCURS 1000 TIMES.
113595           05 L2 PIC S9(9) COMP-5 VALUE 5.
113596           05 L3 PIC S9(9)        VALUE 5.
113597       PROCEDURE DIVISION.
113598           IF L2(3) not = 5
113599              DISPLAY '0 VALUE(3) = ' L2(3)
113600              END-DISPLAY
113601           END-IF.
113602           INITIALIZE L1(1).
113603           IF L2(1) not = 0
113604              DISPLAY '1 VALUE(1) = ' L2(1)
113605              END-DISPLAY
113606           END-IF.
113607           IF L2(3) not = 5
113608              DISPLAY '1 VALUE(3) = ' L2(3)
113609              END-DISPLAY
113610           END-IF.
113611           INITIALIZE L1(1)  DEFAULT.
113612           IF L2(1) not = 0
113613              DISPLAY '2 VALUE(1) = ' L2(1)
113614              END-DISPLAY
113615           END-IF.
113616           IF L2(3) not = 5
113617              DISPLAY '2 VALUE(3) = ' L2(3)
113618              END-DISPLAY
113619           END-IF.
113620           INITIALIZE L1(1)  ALL VALUE.
113621           IF L2(1) not = 5
113622              DISPLAY '3 VALUE(1) = ' L2(1)
113623              END-DISPLAY
113624           END-IF.
113625           IF L2(3) not = 5
113626              DISPLAY '3 VALUE(3) = ' L2(3)
113627              END-DISPLAY
113628           END-IF.
113629           STOP RUN.
113630_ATEOF
113631
113632
113633{ set +x
113634$as_echo "$at_srcdir/run_extensions.at:1597: \$COMPILE prog.cob"
113635at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1597"
113636( $at_check_trace; $COMPILE prog.cob
113637) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113638at_status=$? at_failed=false
113639$at_check_filter
113640at_fn_diff_devnull "$at_stderr" || at_failed=:
113641at_fn_diff_devnull "$at_stdout" || at_failed=:
113642at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1597"
113643$at_failed && at_fn_log_failure
113644$at_traceon; }
113645
113646{ set +x
113647$as_echo "$at_srcdir/run_extensions.at:1598: \$COBCRUN_DIRECT ./prog"
113648at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1598"
113649( $at_check_trace; $COBCRUN_DIRECT ./prog
113650) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113651at_status=$? at_failed=false
113652$at_check_filter
113653at_fn_diff_devnull "$at_stderr" || at_failed=:
113654at_fn_diff_devnull "$at_stdout" || at_failed=:
113655at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1598"
113656$at_failed && at_fn_log_failure
113657$at_traceon; }
113658
113659
113660  set +x
113661  $at_times_p && times >"$at_times_file"
113662) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113663read at_status <"$at_status_file"
113664#AT_STOP_981
113665#AT_START_982
113666at_fn_group_banner 982 'run_extensions.at:1603' \
113667  "MOVE of non-integer to alphanumeric" "            " 4
113668at_xfail=no
113669(
113670  $as_echo "982. $at_setup_line: testing $at_desc ..."
113671  $at_traceon
113672
113673
113674
113675cat >prog.cob <<'_ATEOF'
113676
113677       IDENTIFICATION   DIVISION.
113678       PROGRAM-ID.      prog.
113679       DATA             DIVISION.
113680       WORKING-STORAGE  SECTION.
113681        01 INTEGER             PIC 9(4)   VALUE 1289 .
113682        01 SIGNED-INTEGER      PIC S9(4)  VALUE -1289 .
113683
113684        01 ALPHA-FIELD         PIC X(4).
113685
113686        01 NON-INTEGER           PIC 9(2)V99   VALUE 12.89 .
113687        01 NON-INTEGER-2         PIC 9(2)V99
113688                                     USAGE BINARY VALUE 12.89 .
113689        01 NON-INTEGER-3         PIC 9(2)V99
113690                                      USAGE PACKED-DECIMAL VALUE 12.89 .
113691        01 SIGNED-NON-INTEGER    PIC S9(2)V99   VALUE -12.89 .
113692        01 SIGNED-NON-INTEGER-2  PIC S9(2)V99
113693                                     USAGE BINARY VALUE -12.89 .
113694        01 SIGNED-NON-INTEGER-3  PIC S9(2)V99
113695                                     USAGE PACKED-DECIMAL VALUE -12.89 .
113696
113697       PROCEDURE        DIVISION.
113698*     *    MOVE NON-INTEGER TO ALPHA-NUMERIC --> ignore Decimal Point!
113699       S-01.
113700          MOVE SPACES TO ALPHA-FIELD.
113701          MOVE INTEGER TO ALPHA-FIELD.
113702          DISPLAY  ALPHA-FIELD NO ADVANCING
113703          END-DISPLAY.
113704       S-02.
113705          MOVE SPACES TO ALPHA-FIELD.
113706          MOVE SIGNED-INTEGER TO ALPHA-FIELD.
113707          DISPLAY  ALPHA-FIELD NO ADVANCING
113708          END-DISPLAY.
113709       S-03.
113710          MOVE SPACES TO ALPHA-FIELD.
113711          MOVE NON-INTEGER TO ALPHA-FIELD.
113712          DISPLAY  ALPHA-FIELD NO ADVANCING
113713          END-DISPLAY.
113714       S-10.
113715          MOVE SPACES TO ALPHA-FIELD.
113716          MOVE NON-INTEGER-2 TO ALPHA-FIELD.
113717          DISPLAY  ALPHA-FIELD NO ADVANCING
113718          END-DISPLAY.
113719       S-20.
113720          MOVE SPACES TO ALPHA-FIELD.
113721          MOVE NON-INTEGER-3 TO ALPHA-FIELD.
113722          DISPLAY  ALPHA-FIELD NO ADVANCING
113723          END-DISPLAY.
113724       S-30.
113725          MOVE SPACES TO ALPHA-FIELD.
113726          MOVE SIGNED-NON-INTEGER TO ALPHA-FIELD.
113727          DISPLAY  ALPHA-FIELD NO ADVANCING
113728          END-DISPLAY.
113729       S-40.
113730          MOVE SPACES TO ALPHA-FIELD.
113731          MOVE SIGNED-NON-INTEGER-2 TO ALPHA-FIELD.
113732          DISPLAY  ALPHA-FIELD NO ADVANCING
113733          END-DISPLAY.
113734       S-50.
113735          MOVE SPACES TO ALPHA-FIELD.
113736          MOVE SIGNED-NON-INTEGER-3 TO ALPHA-FIELD.
113737          DISPLAY  ALPHA-FIELD NO ADVANCING
113738          END-DISPLAY.
113739
113740          STOP RUN.
113741_ATEOF
113742
113743
113744{ set +x
113745$as_echo "$at_srcdir/run_extensions.at:1673: \$COMPILE -std=mf prog.cob"
113746at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:1673"
113747( $at_check_trace; $COMPILE -std=mf prog.cob
113748) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113749at_status=$? at_failed=false
113750$at_check_filter
113751echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'S-03':
113752prog.cob:36: warning: MOVE of non-integer to alphanumeric
113753prog.cob: in paragraph 'S-10':
113754prog.cob:41: warning: MOVE of non-integer to alphanumeric
113755prog.cob: in paragraph 'S-20':
113756prog.cob:46: warning: MOVE of non-integer to alphanumeric
113757prog.cob: in paragraph 'S-30':
113758prog.cob:51: warning: MOVE of non-integer to alphanumeric
113759prog.cob: in paragraph 'S-40':
113760prog.cob:56: warning: MOVE of non-integer to alphanumeric
113761prog.cob: in paragraph 'S-50':
113762prog.cob:61: warning: MOVE of non-integer to alphanumeric
113763" | \
113764  $at_diff - "$at_stderr" || at_failed=:
113765at_fn_diff_devnull "$at_stdout" || at_failed=:
113766at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1673"
113767$at_failed && at_fn_log_failure
113768$at_traceon; }
113769
113770{ set +x
113771$as_echo "$at_srcdir/run_extensions.at:1687: \$COBCRUN_DIRECT ./prog"
113772at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1687"
113773( $at_check_trace; $COBCRUN_DIRECT ./prog
113774) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113775at_status=$? at_failed=false
113776$at_check_filter
113777at_fn_diff_devnull "$at_stderr" || at_failed=:
113778echo >>"$at_stdout"; $as_echo "12891289128912891289128912891289" | \
113779  $at_diff - "$at_stdout" || at_failed=:
113780at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1687"
113781$at_failed && at_fn_log_failure
113782$at_traceon; }
113783
113784
113785  set +x
113786  $at_times_p && times >"$at_times_file"
113787) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113788read at_status <"$at_status_file"
113789#AT_STOP_982
113790#AT_START_983
113791at_fn_group_banner 983 'run_extensions.at:1693' \
113792  "CALL USING file-name" "                           " 4
113793at_xfail=no
113794(
113795  $as_echo "983. $at_setup_line: testing $at_desc ..."
113796  $at_traceon
113797
113798
113799
113800cat >setfilename.c <<'_ATEOF'
113801
113802#include <stdio.h>
113803#include <string.h>
113804#include <libcob.h>
113805
113806COB_EXT_EXPORT int
113807setfilename (cob_file *f, unsigned char *name)
113808{
113809  memcpy (f->assign->data, name, strlen ((char *)name));
113810  return 0;
113811}
113812_ATEOF
113813
113814
113815cat >prog.cob <<'_ATEOF'
113816
113817       IDENTIFICATION   DIVISION.
113818       PROGRAM-ID.      prog.
113819       ENVIRONMENT      DIVISION.
113820       INPUT-OUTPUT     SECTION.
113821       FILE-CONTROL.
113822       SELECT TEST-FILE ASSIGN FILENAME.
113823       DATA             DIVISION.
113824       FILE             SECTION.
113825       FD TEST-FILE.
113826       01 TEST-REC      PIC X(4).
113827       WORKING-STORAGE  SECTION.
113828       01 FILENAME      PIC X(8).
113829       PROCEDURE        DIVISION.
113830           INITIALIZE FILENAME.
113831           CALL "setfilename" USING TEST-FILE "TESTFILE"
113832           END-CALL.
113833           OPEN OUTPUT TEST-FILE.
113834           CLOSE TEST-FILE.
113835           STOP RUN.
113836_ATEOF
113837
113838
113839{ set +x
113840$as_echo "$at_srcdir/run_extensions.at:1731: \$COMPILE_MODULE setfilename.c"
113841at_fn_check_prepare_dynamic "$COMPILE_MODULE setfilename.c" "run_extensions.at:1731"
113842( $at_check_trace; $COMPILE_MODULE setfilename.c
113843) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113844at_status=$? at_failed=false
113845$at_check_filter
113846at_fn_diff_devnull "$at_stderr" || at_failed=:
113847at_fn_diff_devnull "$at_stdout" || at_failed=:
113848at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1731"
113849$at_failed && at_fn_log_failure
113850$at_traceon; }
113851
113852{ set +x
113853$as_echo "$at_srcdir/run_extensions.at:1732: \$COMPILE prog.cob"
113854at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1732"
113855( $at_check_trace; $COMPILE prog.cob
113856) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113857at_status=$? at_failed=false
113858$at_check_filter
113859at_fn_diff_devnull "$at_stderr" || at_failed=:
113860at_fn_diff_devnull "$at_stdout" || at_failed=:
113861at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1732"
113862$at_failed && at_fn_log_failure
113863$at_traceon; }
113864
113865{ set +x
113866$as_echo "$at_srcdir/run_extensions.at:1733: \$COBCRUN_DIRECT ./prog"
113867at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1733"
113868( $at_check_trace; $COBCRUN_DIRECT ./prog
113869) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113870at_status=$? at_failed=false
113871$at_check_filter
113872at_fn_diff_devnull "$at_stderr" || at_failed=:
113873at_fn_diff_devnull "$at_stdout" || at_failed=:
113874at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1733"
113875$at_failed && at_fn_log_failure
113876$at_traceon; }
113877
113878{ set +x
113879$as_echo "$at_srcdir/run_extensions.at:1734: test -e TESTFILE"
113880at_fn_check_prepare_trace "run_extensions.at:1734"
113881( $at_check_trace; test -e TESTFILE
113882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113883at_status=$? at_failed=false
113884$at_check_filter
113885at_fn_diff_devnull "$at_stderr" || at_failed=:
113886at_fn_diff_devnull "$at_stdout" || at_failed=:
113887at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1734"
113888$at_failed && at_fn_log_failure
113889$at_traceon; }
113890
113891
113892  set +x
113893  $at_times_p && times >"$at_times_file"
113894) 5>&1 2>&1 7>&- | eval $at_tee_pipe
113895read at_status <"$at_status_file"
113896#AT_STOP_983
113897#AT_START_984
113898at_fn_group_banner 984 'run_extensions.at:1738' \
113899  "CALL unusual PROGRAM-ID." "                       " 4
113900at_xfail=no
113901(
113902  $as_echo "984. $at_setup_line: testing $at_desc ..."
113903  $at_traceon
113904
113905
113906
113907cat >A@B.cob <<'_ATEOF'
113908
113909       IDENTIFICATION   DIVISION.
113910       PROGRAM-ID.      "A@B".
113911       PROCEDURE        DIVISION.
113912           DISPLAY "P1" NO ADVANCING
113913           END-DISPLAY.
113914           EXIT PROGRAM.
113915_ATEOF
113916
113917
113918cat >A#B.cob <<'_ATEOF'
113919
113920       IDENTIFICATION   DIVISION.
113921       PROGRAM-ID.      "A#B".
113922       PROCEDURE        DIVISION.
113923           DISPLAY "P2" NO ADVANCING
113924           END-DISPLAY.
113925           EXIT PROGRAM.
113926_ATEOF
113927
113928
113929cat >A-B.cob <<'_ATEOF'
113930
113931       IDENTIFICATION   DIVISION.
113932       PROGRAM-ID.      "A-B".
113933       PROCEDURE        DIVISION.
113934           DISPLAY "P3" NO ADVANCING
113935           END-DISPLAY.
113936           EXIT PROGRAM.
113937_ATEOF
113938
113939
113940cat >A_B.cob <<'_ATEOF'
113941
113942       IDENTIFICATION   DIVISION.
113943       PROGRAM-ID.      "A_B".
113944       PROCEDURE        DIVISION.
113945           DISPLAY "P4" NO ADVANCING
113946           END-DISPLAY.
113947           EXIT PROGRAM.
113948_ATEOF
113949
113950
113951cat >caller.cob <<'_ATEOF'
113952
113953       IDENTIFICATION   DIVISION.
113954       PROGRAM-ID.      caller.
113955       PROCEDURE        DIVISION.
113956           CALL "A@B"
113957           END-CALL.
113958           CALL "A#B"
113959           END-CALL.
113960           CALL "A-B"
113961           END-CALL.
113962           CALL "A_B"
113963           END-CALL.
113964           STOP RUN.
113965_ATEOF
113966
113967
113968{ set +x
113969$as_echo "$at_srcdir/run_extensions.at:1792: \$COMPILE_MODULE A@B.cob"
113970at_fn_check_prepare_dynamic "$COMPILE_MODULE A@B.cob" "run_extensions.at:1792"
113971( $at_check_trace; $COMPILE_MODULE A@B.cob
113972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113973at_status=$? at_failed=false
113974$at_check_filter
113975at_fn_diff_devnull "$at_stderr" || at_failed=:
113976at_fn_diff_devnull "$at_stdout" || at_failed=:
113977at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1792"
113978$at_failed && at_fn_log_failure
113979$at_traceon; }
113980
113981{ set +x
113982$as_echo "$at_srcdir/run_extensions.at:1793: \$COMPILE_MODULE A#B.cob"
113983at_fn_check_prepare_dynamic "$COMPILE_MODULE A#B.cob" "run_extensions.at:1793"
113984( $at_check_trace; $COMPILE_MODULE A#B.cob
113985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113986at_status=$? at_failed=false
113987$at_check_filter
113988at_fn_diff_devnull "$at_stderr" || at_failed=:
113989at_fn_diff_devnull "$at_stdout" || at_failed=:
113990at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1793"
113991$at_failed && at_fn_log_failure
113992$at_traceon; }
113993
113994{ set +x
113995$as_echo "$at_srcdir/run_extensions.at:1794: \$COMPILE_MODULE A-B.cob"
113996at_fn_check_prepare_dynamic "$COMPILE_MODULE A-B.cob" "run_extensions.at:1794"
113997( $at_check_trace; $COMPILE_MODULE A-B.cob
113998) >>"$at_stdout" 2>>"$at_stderr" 5>&-
113999at_status=$? at_failed=false
114000$at_check_filter
114001at_fn_diff_devnull "$at_stderr" || at_failed=:
114002at_fn_diff_devnull "$at_stdout" || at_failed=:
114003at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1794"
114004$at_failed && at_fn_log_failure
114005$at_traceon; }
114006
114007{ set +x
114008$as_echo "$at_srcdir/run_extensions.at:1795: \$COMPILE_MODULE A_B.cob"
114009at_fn_check_prepare_dynamic "$COMPILE_MODULE A_B.cob" "run_extensions.at:1795"
114010( $at_check_trace; $COMPILE_MODULE A_B.cob
114011) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114012at_status=$? at_failed=false
114013$at_check_filter
114014at_fn_diff_devnull "$at_stderr" || at_failed=:
114015at_fn_diff_devnull "$at_stdout" || at_failed=:
114016at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1795"
114017$at_failed && at_fn_log_failure
114018$at_traceon; }
114019
114020{ set +x
114021$as_echo "$at_srcdir/run_extensions.at:1796: \$COMPILE -o caller caller.cob"
114022at_fn_check_prepare_dynamic "$COMPILE -o caller caller.cob" "run_extensions.at:1796"
114023( $at_check_trace; $COMPILE -o caller caller.cob
114024) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114025at_status=$? at_failed=false
114026$at_check_filter
114027at_fn_diff_devnull "$at_stderr" || at_failed=:
114028at_fn_diff_devnull "$at_stdout" || at_failed=:
114029at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1796"
114030$at_failed && at_fn_log_failure
114031$at_traceon; }
114032
114033
114034{ set +x
114035$as_echo "$at_srcdir/run_extensions.at:1798: \$COBCRUN_DIRECT ./caller"
114036at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:1798"
114037( $at_check_trace; $COBCRUN_DIRECT ./caller
114038) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114039at_status=$? at_failed=false
114040$at_check_filter
114041at_fn_diff_devnull "$at_stderr" || at_failed=:
114042echo >>"$at_stdout"; $as_echo "P1P2P3P4" | \
114043  $at_diff - "$at_stdout" || at_failed=:
114044at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1798"
114045$at_failed && at_fn_log_failure
114046$at_traceon; }
114047
114048
114049  set +x
114050  $at_times_p && times >"$at_times_file"
114051) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114052read at_status <"$at_status_file"
114053#AT_STOP_984
114054#AT_START_985
114055at_fn_group_banner 985 'run_extensions.at:1802' \
114056  "CALL / GOBACK with LOCAL-STORAGE" "               " 4
114057at_xfail=no
114058(
114059  $as_echo "985. $at_setup_line: testing $at_desc ..."
114060  $at_traceon
114061
114062
114063
114064# Testcase introduced when Bug #91 occurred.
114065# Will fail if memory is freed which was
114066# allocated by mpir/gmp.
114067cat >prog_a.cob <<'_ATEOF'
114068
114069		IDENTIFICATION DIVISION.
114070		PROGRAM-ID. prog_a.
114071		DATA DIVISION.
114072		WORKING-STORAGE SECTION.
114073		77  WS-STRINGA   PIC X(10).
114074		PROCEDURE DIVISION.
114075		    MOVE  "hi there"   TO WS-STRINGA
114076		    CALL  "prog_b"  USING WS-STRINGA
114077		    DISPLAY "back in prog_a"
114078		    GOBACK.
114079_ATEOF
114080
114081
114082cat >prog_b.cob <<'_ATEOF'
114083
114084		IDENTIFICATION DIVISION.
114085		PROGRAM-ID. prog_b.
114086		DATA DIVISION.
114087		WORKING-STORAGE SECTION.
114088		77  WS-STRINGB   PIC X(10).
114089		77  WS-CALLSB    PIC 9(03).
114090		LOCAL-STORAGE SECTION.
114091		77  LS-STRING  PIC X(10).
114092		LINKAGE SECTION.
114093		77  LK-STRING  PIC X(10).
114094
114095		PROCEDURE DIVISION  USING  LK-STRING.
114096		    DISPLAY "entered prog_b"
114097		    ADD   1  TO  WS-CALLSB
114098		    MOVE  LK-STRING TO WS-STRINGB
114099		    MOVE  LK-STRING TO LS-STRING
114100		    DISPLAY "exiting prog_b"
114101		    GOBACK.
114102_ATEOF
114103
114104
114105{ set +x
114106$as_echo "$at_srcdir/run_extensions.at:1842: \$COMPILE prog_a.cob"
114107at_fn_check_prepare_dynamic "$COMPILE prog_a.cob" "run_extensions.at:1842"
114108( $at_check_trace; $COMPILE prog_a.cob
114109) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114110at_status=$? at_failed=false
114111$at_check_filter
114112at_fn_diff_devnull "$at_stderr" || at_failed=:
114113at_fn_diff_devnull "$at_stdout" || at_failed=:
114114at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1842"
114115$at_failed && at_fn_log_failure
114116$at_traceon; }
114117
114118{ set +x
114119$as_echo "$at_srcdir/run_extensions.at:1843: \$COMPILE_MODULE prog_b.cob"
114120at_fn_check_prepare_dynamic "$COMPILE_MODULE prog_b.cob" "run_extensions.at:1843"
114121( $at_check_trace; $COMPILE_MODULE prog_b.cob
114122) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114123at_status=$? at_failed=false
114124$at_check_filter
114125at_fn_diff_devnull "$at_stderr" || at_failed=:
114126at_fn_diff_devnull "$at_stdout" || at_failed=:
114127at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1843"
114128$at_failed && at_fn_log_failure
114129$at_traceon; }
114130
114131{ set +x
114132$as_echo "$at_srcdir/run_extensions.at:1844: \$COBCRUN_DIRECT ./prog_a"
114133at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_a" "run_extensions.at:1844"
114134( $at_check_trace; $COBCRUN_DIRECT ./prog_a
114135) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114136at_status=$? at_failed=false
114137$at_check_filter
114138at_fn_diff_devnull "$at_stderr" || at_failed=:
114139echo >>"$at_stdout"; $as_echo "entered prog_b
114140exiting prog_b
114141back in prog_a
114142" | \
114143  $at_diff - "$at_stdout" || at_failed=:
114144at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1844"
114145$at_failed && at_fn_log_failure
114146$at_traceon; }
114147
114148
114149  set +x
114150  $at_times_p && times >"$at_times_file"
114151) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114152read at_status <"$at_status_file"
114153#AT_STOP_985
114154#AT_START_986
114155at_fn_group_banner 986 'run_extensions.at:1852' \
114156  "CALL BY VALUE alphanumeric item" "                " 4
114157at_xfail=no
114158(
114159  $as_echo "986. $at_setup_line: testing $at_desc ..."
114160  $at_traceon
114161
114162
114163
114164cat >prog.cob <<'_ATEOF'
114165
114166       IDENTIFICATION   DIVISION.
114167       PROGRAM-ID.      prog.
114168       DATA             DIVISION.
114169       WORKING-STORAGE  SECTION.
114170       01  X            PIC XX VALUE "OK".
114171       PROCEDURE        DIVISION.
114172           CALL "prog2" USING BY VALUE X
114173           END-CALL.
114174           IF X NOT = "OK"
114175              DISPLAY X NO ADVANCING
114176              END-DISPLAY
114177           END-IF.
114178           STOP RUN.
114179       PROGRAM-ID.      prog2.
114180       DATA             DIVISION.
114181       LINKAGE          SECTION.
114182       01  Y            PIC XX.
114183       PROCEDURE        DIVISION USING BY VALUE Y.
114184           MOVE "KO" TO Y.
114185           EXIT PROGRAM.
114186       END PROGRAM prog2.
114187       END PROGRAM prog.
114188_ATEOF
114189
114190
114191{ set +x
114192$as_echo "$at_srcdir/run_extensions.at:1880: \$COMPILE prog.cob"
114193at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1880"
114194( $at_check_trace; $COMPILE prog.cob
114195) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114196at_status=$? at_failed=false
114197$at_check_filter
114198echo >>"$at_stderr"; $as_echo "prog.cob:8: warning: BY CONTENT assumed for alphanumeric item 'X'
114199prog.cob:19: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
114200" | \
114201  $at_diff - "$at_stderr" || at_failed=:
114202at_fn_diff_devnull "$at_stdout" || at_failed=:
114203at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1880"
114204$at_failed && at_fn_log_failure
114205$at_traceon; }
114206
114207{ set +x
114208$as_echo "$at_srcdir/run_extensions.at:1884: \$COBCRUN_DIRECT ./prog"
114209at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1884"
114210( $at_check_trace; $COBCRUN_DIRECT ./prog
114211) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114212at_status=$? at_failed=false
114213$at_check_filter
114214at_fn_diff_devnull "$at_stderr" || at_failed=:
114215at_fn_diff_devnull "$at_stdout" || at_failed=:
114216at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1884"
114217$at_failed && at_fn_log_failure
114218$at_traceon; }
114219
114220
114221  set +x
114222  $at_times_p && times >"$at_times_file"
114223) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114224read at_status <"$at_status_file"
114225#AT_STOP_986
114226#AT_START_987
114227at_fn_group_banner 987 'run_extensions.at:1889' \
114228  "CALL BY VALUE numeric literal WITH SIZE" "        " 4
114229at_xfail=no
114230(
114231  $as_echo "987. $at_setup_line: testing $at_desc ..."
114232  $at_traceon
114233
114234
114235
114236cat >prog.cob <<'_ATEOF'
114237
114238       IDENTIFICATION   DIVISION.
114239       PROGRAM-ID.      prog.
114240       DATA             DIVISION.
114241       WORKING-STORAGE  SECTION.
114242       PROCEDURE        DIVISION.
114243           *> Test of auto size, identical to SIZE AUTO
114244           CALL "prog2" USING BY VALUE 4 0 0 1 0
114245           END-CALL
114246
114247           *> Test of explicit SIZE syntax
114248           CALL "prog2" USING BY VALUE 1 SIZE 1 2 0 0 0
114249           END-CALL
114250           CALL "prog2" USING BY VALUE 2 0 SIZE 2 3 0 0
114251           END-CALL
114252           CALL "prog2" USING BY VALUE 4 0 0 SIZE 4 4 0
114253           END-CALL
114254           CALL "prog2" USING BY VALUE 8 0 0 0 SIZE 8 5
114255           END-CALL
114256           CALL "prog2" USING BY VALUE 4 0 0 SIZE DEFAULT 6 0
114257           END-CALL
114258           CALL "prog2" USING BY VALUE 4 0 0 SIZE AUTO    7 0
114259           END-CALL
114260           *> test for SIZE AUTO with VALUE > INT_MAX is non-portable
114261
114262           *> Test of explicit UNSIGNED SIZE syntax
114263           CALL "prog2" USING BY VALUE 1 UNSIGNED SIZE 1 2 0 0 0
114264           END-CALL
114265           CALL "prog2" USING BY VALUE 2 0 UNSIGNED SIZE 2 3 0 0
114266           END-CALL
114267           CALL "prog2" USING BY VALUE 4 0 0 UNSIGNED SIZE 4 4 0
114268           END-CALL
114269           CALL "prog2" USING BY VALUE 8 0 0 0 UNSIGNED SIZE 8 5 0
114270           END-CALL
114271           CALL "prog2" USING BY VALUE 4 0 0 UNSIGNED SIZE AUTO 6 0
114272           END-CALL
114273           *> test for SIZE AUTO with VALUE > INT_MAX is non-portable
114274
114275           *> Test of MF size syntax
114276           *>CALL "prog2" USING BY VALUE 2 SIZE 1
114277           *>END-CALL
114278           *>CALL "prog2" USING BY VALUE 3 SIZE 2
114279           *>END-CALL
114280           *>CALL "prog2" USING BY VALUE 4 SIZE 4
114281           *>END-CALL
114282           *>CALL "prog2" USING BY VALUE 5 SIZE 8
114283           *>END-CALL
114284
114285           STOP RUN.
114286       PROGRAM-ID.      prog2.
114287       DATA             DIVISION.
114288       LINKAGE          SECTION.
114289       01  LEN          USAGE BINARY-LONG.
114290       01  VAR-1        USAGE BINARY-CHAR.
114291       01  VAR-2        USAGE BINARY-SHORT.
114292       01  VAR-4        USAGE BINARY-LONG.
114293       01  VAR-8        USAGE BINARY-DOUBLE.
114294       PROCEDURE        DIVISION USING BY VALUE LEN
114295                                                SIZE 1 VAR-1
114296                                                SIZE 2 VAR-2
114297                                                SIZE 4 VAR-4
114298                                                SIZE 8 VAR-8.
114299           EVALUATE len
114300              WHEN 1
114301                 DISPLAY '1: ' VAR-1 END-DISPLAY
114302              WHEN 2
114303                 DISPLAY '2: ' VAR-2 END-DISPLAY
114304              WHEN 4
114305                 DISPLAY '4: ' VAR-4 END-DISPLAY
114306              WHEN 8
114307                 DISPLAY '8: ' VAR-8 END-DISPLAY
114308           END-EVALUATE
114309           EXIT PROGRAM.
114310       END PROGRAM prog2.
114311       END PROGRAM prog.
114312_ATEOF
114313
114314
114315{ set +x
114316$as_echo "$at_srcdir/run_extensions.at:1969: \$COMPILE prog.cob"
114317at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1969"
114318( $at_check_trace; $COMPILE prog.cob
114319) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114320at_status=$? at_failed=false
114321$at_check_filter
114322echo stderr:; cat "$at_stderr"
114323at_fn_diff_devnull "$at_stdout" || at_failed=:
114324at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1969"
114325$at_failed && at_fn_log_failure
114326$at_traceon; }
114327
114328#AT_CHECK([$COMPILE prog.cob], [0], [],
114329# hack for now: ignore
114330#[prog.cob:58: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
114331#])
114332{ set +x
114333$as_echo "$at_srcdir/run_extensions.at:1974: \$COBCRUN_DIRECT ./prog"
114334at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1974"
114335( $at_check_trace; $COBCRUN_DIRECT ./prog
114336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114337at_status=$? at_failed=false
114338$at_check_filter
114339at_fn_diff_devnull "$at_stderr" || at_failed=:
114340echo >>"$at_stdout"; $as_echo "4: +0000000001
1143411: +002
1143422: +00003
1143434: +0000000004
1143448: +00000000000000000005
1143454: +0000000006
1143464: +0000000007
1143471: +002
1143482: +00003
1143494: +0000000004
1143508: +00000000000000000005
1143514: +0000000006
114352" | \
114353  $at_diff - "$at_stdout" || at_failed=:
114354at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1974"
114355$at_failed && at_fn_log_failure
114356$at_traceon; }
114357
114358
114359  set +x
114360  $at_times_p && times >"$at_times_file"
114361) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114362read at_status <"$at_status_file"
114363#AT_STOP_987
114364#AT_START_988
114365at_fn_group_banner 988 'run_extensions.at:1993' \
114366  "Case-sensitive PROGRAM-ID" "                      " 4
114367at_xfail=no
114368(
114369  $as_echo "988. $at_setup_line: testing $at_desc ..."
114370  $at_traceon
114371
114372
114373
114374cat >prog.cob <<'_ATEOF'
114375
114376       IDENTIFICATION   DIVISION.
114377       PROGRAM-ID.      PROG.
114378       PROCEDURE        DIVISION.
114379           CALL "prog"
114380           END-CALL.
114381           STOP RUN.
114382       PROGRAM-ID.      prog.
114383       PROCEDURE        DIVISION.
114384           EXIT PROGRAM.
114385       END PROGRAM prog.
114386       END PROGRAM PROG.
114387_ATEOF
114388
114389
114390{ set +x
114391$as_echo "$at_srcdir/run_extensions.at:2010: \$COMPILE prog.cob"
114392at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2010"
114393( $at_check_trace; $COMPILE prog.cob
114394) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114395at_status=$? at_failed=false
114396$at_check_filter
114397at_fn_diff_devnull "$at_stderr" || at_failed=:
114398at_fn_diff_devnull "$at_stdout" || at_failed=:
114399at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2010"
114400$at_failed && at_fn_log_failure
114401$at_traceon; }
114402
114403{ set +x
114404$as_echo "$at_srcdir/run_extensions.at:2011: \$COBCRUN_DIRECT ./prog"
114405at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2011"
114406( $at_check_trace; $COBCRUN_DIRECT ./prog
114407) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114408at_status=$? at_failed=false
114409$at_check_filter
114410at_fn_diff_devnull "$at_stderr" || at_failed=:
114411at_fn_diff_devnull "$at_stdout" || at_failed=:
114412at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2011"
114413$at_failed && at_fn_log_failure
114414$at_traceon; }
114415
114416
114417  set +x
114418  $at_times_p && times >"$at_times_file"
114419) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114420read at_status <"$at_status_file"
114421#AT_STOP_988
114422#AT_START_989
114423at_fn_group_banner 989 'run_extensions.at:2018' \
114424  "Quoted PROGRAM-ID" "                              " 4
114425at_xfail=no
114426(
114427  $as_echo "989. $at_setup_line: testing $at_desc ..."
114428  $at_traceon
114429
114430
114431
114432cat >prog.cob <<'_ATEOF'
114433
114434       IDENTIFICATION   DIVISION.
114435       PROGRAM-ID.      "caller".
114436       PROCEDURE        DIVISION.
114437           CALL "callee"
114438           END-CALL.
114439           STOP RUN.
114440       PROGRAM-ID.      "callee".
114441       PROCEDURE        DIVISION.
114442           EXIT PROGRAM.
114443       END PROGRAM callee.
114444       END PROGRAM caller.
114445_ATEOF
114446
114447
114448{ set +x
114449$as_echo "$at_srcdir/run_extensions.at:2035: \$COMPILE -w prog.cob"
114450at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_extensions.at:2035"
114451( $at_check_trace; $COMPILE -w prog.cob
114452) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114453at_status=$? at_failed=false
114454$at_check_filter
114455at_fn_diff_devnull "$at_stderr" || at_failed=:
114456at_fn_diff_devnull "$at_stdout" || at_failed=:
114457at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2035"
114458$at_failed && at_fn_log_failure
114459$at_traceon; }
114460
114461{ set +x
114462$as_echo "$at_srcdir/run_extensions.at:2036: \$COBCRUN_DIRECT ./prog"
114463at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2036"
114464( $at_check_trace; $COBCRUN_DIRECT ./prog
114465) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114466at_status=$? at_failed=false
114467$at_check_filter
114468at_fn_diff_devnull "$at_stderr" || at_failed=:
114469at_fn_diff_devnull "$at_stdout" || at_failed=:
114470at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2036"
114471$at_failed && at_fn_log_failure
114472$at_traceon; }
114473
114474
114475  set +x
114476  $at_times_p && times >"$at_times_file"
114477) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114478read at_status <"$at_status_file"
114479#AT_STOP_989
114480#AT_START_990
114481at_fn_group_banner 990 'run_extensions.at:2041' \
114482  "PROGRAM-ID AS clause" "                           " 4
114483at_xfail=no
114484(
114485  $as_echo "990. $at_setup_line: testing $at_desc ..."
114486  $at_traceon
114487
114488
114489
114490cat >prog.cob <<'_ATEOF'
114491
114492       IDENTIFICATION   DIVISION.
114493       PROGRAM-ID.      caller AS "PROG".
114494       PROCEDURE        DIVISION.
114495           CALL "prog"
114496           END-CALL.
114497           STOP RUN.
114498       PROGRAM-ID.      callee AS "prog".
114499       PROCEDURE        DIVISION.
114500           EXIT PROGRAM.
114501       END PROGRAM callee.
114502       END PROGRAM caller.
114503_ATEOF
114504
114505
114506{ set +x
114507$as_echo "$at_srcdir/run_extensions.at:2058: \$COMPILE prog.cob"
114508at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2058"
114509( $at_check_trace; $COMPILE prog.cob
114510) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114511at_status=$? at_failed=false
114512$at_check_filter
114513at_fn_diff_devnull "$at_stderr" || at_failed=:
114514at_fn_diff_devnull "$at_stdout" || at_failed=:
114515at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2058"
114516$at_failed && at_fn_log_failure
114517$at_traceon; }
114518
114519{ set +x
114520$as_echo "$at_srcdir/run_extensions.at:2059: \$COBCRUN_DIRECT ./prog"
114521at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2059"
114522( $at_check_trace; $COBCRUN_DIRECT ./prog
114523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114524at_status=$? at_failed=false
114525$at_check_filter
114526at_fn_diff_devnull "$at_stderr" || at_failed=:
114527at_fn_diff_devnull "$at_stdout" || at_failed=:
114528at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2059"
114529$at_failed && at_fn_log_failure
114530$at_traceon; }
114531
114532
114533  set +x
114534  $at_times_p && times >"$at_times_file"
114535) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114536read at_status <"$at_status_file"
114537#AT_STOP_990
114538#AT_START_991
114539at_fn_group_banner 991 'run_extensions.at:2064' \
114540  "NUMBER-OF-CALL-PARAMETERS" "                      " 4
114541at_xfail=no
114542(
114543  $as_echo "991. $at_setup_line: testing $at_desc ..."
114544  $at_traceon
114545
114546
114547
114548cat >callee.cob <<'_ATEOF'
114549
114550       IDENTIFICATION   DIVISION.
114551       PROGRAM-ID.      callee.
114552       DATA             DIVISION.
114553       LINKAGE          SECTION.
114554       01 W             PIC X.
114555       01 X             PIC X.
114556       01 Y             PIC X.
114557       01 Z             PIC X.
114558       PROCEDURE        DIVISION
114559           USING W X Y Z.
114560           DISPLAY NUMBER-OF-CALL-PARAMETERS
114561           END-DISPLAY.
114562           EXIT PROGRAM.
114563_ATEOF
114564
114565
114566cat >caller.cob <<'_ATEOF'
114567
114568       IDENTIFICATION   DIVISION.
114569       PROGRAM-ID.      caller.
114570       DATA             DIVISION.
114571       WORKING-STORAGE  SECTION.
114572       01 W             PIC X.
114573       01 X             PIC X.
114574       01 Y             PIC X.
114575       01 Z             PIC X.
114576       PROCEDURE        DIVISION.
114577           CALL "callee"
114578           END-CALL.
114579           CALL "callee" USING W
114580           END-CALL.
114581           CALL "callee" USING W X
114582           END-CALL.
114583           CALL "callee" USING W X Y
114584           END-CALL.
114585           CALL "callee" USING W X Y Z
114586           END-CALL.
114587           STOP RUN.
114588_ATEOF
114589
114590
114591{ set +x
114592$as_echo "$at_srcdir/run_extensions.at:2106: \$COMPILE caller.cob"
114593at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2106"
114594( $at_check_trace; $COMPILE caller.cob
114595) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114596at_status=$? at_failed=false
114597$at_check_filter
114598at_fn_diff_devnull "$at_stderr" || at_failed=:
114599at_fn_diff_devnull "$at_stdout" || at_failed=:
114600at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2106"
114601$at_failed && at_fn_log_failure
114602$at_traceon; }
114603
114604{ set +x
114605$as_echo "$at_srcdir/run_extensions.at:2107: \$COMPILE_MODULE callee.cob"
114606at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:2107"
114607( $at_check_trace; $COMPILE_MODULE callee.cob
114608) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114609at_status=$? at_failed=false
114610$at_check_filter
114611at_fn_diff_devnull "$at_stderr" || at_failed=:
114612at_fn_diff_devnull "$at_stdout" || at_failed=:
114613at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2107"
114614$at_failed && at_fn_log_failure
114615$at_traceon; }
114616
114617{ set +x
114618$as_echo "$at_srcdir/run_extensions.at:2108: \$COBCRUN_DIRECT ./caller"
114619at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2108"
114620( $at_check_trace; $COBCRUN_DIRECT ./caller
114621) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114622at_status=$? at_failed=false
114623$at_check_filter
114624at_fn_diff_devnull "$at_stderr" || at_failed=:
114625echo >>"$at_stdout"; $as_echo "+000000000
114626+000000001
114627+000000002
114628+000000003
114629+000000004
114630" | \
114631  $at_diff - "$at_stdout" || at_failed=:
114632at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2108"
114633$at_failed && at_fn_log_failure
114634$at_traceon; }
114635
114636
114637  set +x
114638  $at_times_p && times >"$at_times_file"
114639) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114640read at_status <"$at_status_file"
114641#AT_STOP_991
114642#AT_START_992
114643at_fn_group_banner 992 'run_extensions.at:2119' \
114644  "TALLY register" "                                 " 4
114645at_xfail=no
114646(
114647  $as_echo "992. $at_setup_line: testing $at_desc ..."
114648  $at_traceon
114649
114650
114651
114652cat >prog.cob <<'_ATEOF'
114653
114654       IDENTIFICATION   DIVISION.
114655       PROGRAM-ID.      callee.
114656       PROCEDURE        DIVISION.
114657           ADD 1 TO TALLY END-ADD
114658           CALL "nested" END-CALL
114659           STOP RUN.
114660
114661       IDENTIFICATION   DIVISION.
114662       PROGRAM-ID.      nested.
114663       PROCEDURE        DIVISION.
114664           DISPLAY tally END-DISPLAY
114665           STOP RUN.
114666       END PROGRAM      nested.
114667_ATEOF
114668
114669
114670#FIXME: Should get a dialect check in syntax checks,
114671#       along with all other special registers
114672{ set +x
114673$as_echo "$at_srcdir/run_extensions.at:2140: \$COMPILE_ONLY -fnot-register=TALLY prog.cob"
114674at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-register=TALLY prog.cob" "run_extensions.at:2140"
114675( $at_check_trace; $COMPILE_ONLY -fnot-register=TALLY prog.cob
114676) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114677at_status=$? at_failed=false
114678$at_check_filter
114679echo >>"$at_stderr"; $as_echo "prog.cob:5: error: 'TALLY' is not defined
114680prog.cob:12: error: 'tally' is not defined
114681" | \
114682  $at_diff - "$at_stderr" || at_failed=:
114683at_fn_diff_devnull "$at_stdout" || at_failed=:
114684at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2140"
114685$at_failed && at_fn_log_failure
114686$at_traceon; }
114687
114688
114689{ set +x
114690$as_echo "$at_srcdir/run_extensions.at:2145: \$COMPILE prog.cob"
114691at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2145"
114692( $at_check_trace; $COMPILE prog.cob
114693) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114694at_status=$? at_failed=false
114695$at_check_filter
114696at_fn_diff_devnull "$at_stderr" || at_failed=:
114697at_fn_diff_devnull "$at_stdout" || at_failed=:
114698at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2145"
114699$at_failed && at_fn_log_failure
114700$at_traceon; }
114701
114702{ set +x
114703$as_echo "$at_srcdir/run_extensions.at:2146: \$COBCRUN_DIRECT ./prog"
114704at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2146"
114705( $at_check_trace; $COBCRUN_DIRECT ./prog
114706) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114707at_status=$? at_failed=false
114708$at_check_filter
114709at_fn_diff_devnull "$at_stderr" || at_failed=:
114710echo >>"$at_stdout"; $as_echo "00001
114711" | \
114712  $at_diff - "$at_stdout" || at_failed=:
114713at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2146"
114714$at_failed && at_fn_log_failure
114715$at_traceon; }
114716
114717
114718  set +x
114719  $at_times_p && times >"$at_times_file"
114720) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114721read at_status <"$at_status_file"
114722#AT_STOP_992
114723#AT_START_993
114724at_fn_group_banner 993 'run_extensions.at:2153' \
114725  "Redefining TALLY" "                               " 4
114726at_xfail=no
114727(
114728  $as_echo "993. $at_setup_line: testing $at_desc ..."
114729  $at_traceon
114730
114731
114732
114733cat >prog.cob <<'_ATEOF'
114734
114735       IDENTIFICATION DIVISION.
114736       PROGRAM-ID. prog.
114737
114738       DATA DIVISION.
114739       WORKING-STORAGE SECTION.
114740       01  tally PIC 999 VALUE 1.
114741
114742       PROCEDURE DIVISION.
114743           ADD 1 TO tally
114744           DISPLAY tally UPON SYSOUT
114745           .
114746_ATEOF
114747
114748
114749
114750#FIXME: Should get a dialect check in syntax checks,
114751#       along with all other special registers
114752{ set +x
114753$as_echo "$at_srcdir/run_extensions.at:2173: \$COMPILE -std=ibm-strict prog.cob"
114754at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict prog.cob" "run_extensions.at:2173"
114755( $at_check_trace; $COMPILE -std=ibm-strict prog.cob
114756) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114757at_status=$? at_failed=false
114758$at_check_filter
114759echo stderr:; cat "$at_stderr"
114760at_fn_diff_devnull "$at_stdout" || at_failed=:
114761at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2173"
114762$at_failed && at_fn_log_failure
114763$at_traceon; }
114764
114765{ set +x
114766$as_echo "$at_srcdir/run_extensions.at:2174: \$COMPILE -std=acu-strict prog.cob"
114767at_fn_check_prepare_dynamic "$COMPILE -std=acu-strict prog.cob" "run_extensions.at:2174"
114768( $at_check_trace; $COMPILE -std=acu-strict prog.cob
114769) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114770at_status=$? at_failed=false
114771$at_check_filter
114772at_fn_diff_devnull "$at_stderr" || at_failed=:
114773at_fn_diff_devnull "$at_stdout" || at_failed=:
114774at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2174"
114775$at_failed && at_fn_log_failure
114776$at_traceon; }
114777
114778#AT_CHECK([$COMPILE -std=ibm prog.cob], [0], [], [])
114779#AT_CHECK([$COMPILE -std=ibm-strict prog.cob], [1], [],
114780#[prog.cob:7: error: redefinition of register 'TALLY'
114781#])
114782#AT_CHECK([$COMPILE prog.cob], [0], [], [])
114783{ set +x
114784$as_echo "$at_srcdir/run_extensions.at:2180: \$COBCRUN_DIRECT ./prog"
114785at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2180"
114786( $at_check_trace; $COBCRUN_DIRECT ./prog
114787) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114788at_status=$? at_failed=false
114789$at_check_filter
114790at_fn_diff_devnull "$at_stderr" || at_failed=:
114791echo >>"$at_stdout"; $as_echo "002
114792" | \
114793  $at_diff - "$at_stdout" || at_failed=:
114794at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2180"
114795$at_failed && at_fn_log_failure
114796$at_traceon; }
114797
114798
114799  set +x
114800  $at_times_p && times >"$at_times_file"
114801) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114802read at_status <"$at_status_file"
114803#AT_STOP_993
114804#AT_START_994
114805at_fn_group_banner 994 'run_extensions.at:2189' \
114806  "PROCEDURE DIVISION USING BY ..." "                " 4
114807at_xfail=no
114808(
114809  $as_echo "994. $at_setup_line: testing $at_desc ..."
114810  $at_traceon
114811
114812
114813
114814cat >callee.cob <<'_ATEOF'
114815
114816       IDENTIFICATION   DIVISION.
114817       PROGRAM-ID.      callee.
114818       DATA             DIVISION.
114819       LINKAGE          SECTION.
114820       01 X             PIC X.
114821       01 Y             PIC 99.
114822       01 Z             PIC 99 USAGE COMP.
114823       PROCEDURE        DIVISION
114824           USING BY VALUE X BY REFERENCE Y Z.
114825           MOVE "Z" TO X.
114826           MOVE 56 TO Y.
114827           MOVE 78 TO Z.
114828           EXIT PROGRAM.
114829_ATEOF
114830
114831
114832cat >caller.cob <<'_ATEOF'
114833
114834       IDENTIFICATION   DIVISION.
114835       PROGRAM-ID.      caller.
114836       DATA             DIVISION.
114837       WORKING-STORAGE  SECTION.
114838       01 X             PIC X.
114839       01 Y             PIC 99.
114840       01 Z             PIC 99 USAGE COMP.
114841       PROCEDURE        DIVISION.
114842           MOVE "X" TO X.
114843           MOVE 12 TO Y.
114844           MOVE 34 TO Z.
114845           CALL "callee" USING BY CONTENT X
114846                               BY REFERENCE Y
114847                               BY CONTENT Z
114848           END-CALL.
114849           IF X NOT = "X" OR
114850              Y NOT = 56  OR
114851              Z NOT = 34
114852                DISPLAY "X = " X " Y = " Y " Z = " Z
114853                END-DISPLAY
114854           END-IF
114855           STOP RUN.
114856_ATEOF
114857
114858
114859{ set +x
114860$as_echo "$at_srcdir/run_extensions.at:2233: \$COMPILE caller.cob"
114861at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2233"
114862( $at_check_trace; $COMPILE caller.cob
114863) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114864at_status=$? at_failed=false
114865$at_check_filter
114866at_fn_diff_devnull "$at_stderr" || at_failed=:
114867at_fn_diff_devnull "$at_stdout" || at_failed=:
114868at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2233"
114869$at_failed && at_fn_log_failure
114870$at_traceon; }
114871
114872{ set +x
114873$as_echo "$at_srcdir/run_extensions.at:2234: \$COMPILE_MODULE callee.cob"
114874at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:2234"
114875( $at_check_trace; $COMPILE_MODULE callee.cob
114876) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114877at_status=$? at_failed=false
114878$at_check_filter
114879echo >>"$at_stderr"; $as_echo "callee.cob:10: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
114880" | \
114881  $at_diff - "$at_stderr" || at_failed=:
114882at_fn_diff_devnull "$at_stdout" || at_failed=:
114883at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2234"
114884$at_failed && at_fn_log_failure
114885$at_traceon; }
114886
114887{ set +x
114888$as_echo "$at_srcdir/run_extensions.at:2237: \$COBCRUN_DIRECT ./caller"
114889at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2237"
114890( $at_check_trace; $COBCRUN_DIRECT ./caller
114891) >>"$at_stdout" 2>>"$at_stderr" 5>&-
114892at_status=$? at_failed=false
114893$at_check_filter
114894at_fn_diff_devnull "$at_stderr" || at_failed=:
114895at_fn_diff_devnull "$at_stdout" || at_failed=:
114896at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2237"
114897$at_failed && at_fn_log_failure
114898$at_traceon; }
114899
114900
114901  set +x
114902  $at_times_p && times >"$at_times_file"
114903) 5>&1 2>&1 7>&- | eval $at_tee_pipe
114904read at_status <"$at_status_file"
114905#AT_STOP_994
114906#AT_START_995
114907at_fn_group_banner 995 'run_extensions.at:2242' \
114908  "PROCEDURE DIVISION CHAINING" "                    " 4
114909at_xfail=no
114910(
114911  $as_echo "995. $at_setup_line: testing $at_desc ..."
114912  $at_traceon
114913
114914
114915
114916cat >prog.cob <<'_ATEOF'
114917
114918       IDENTIFICATION   DIVISION.
114919       PROGRAM-ID.      prog.
114920       DATA             DIVISION.
114921       WORKING-STORAGE  SECTION.
114922       01  X            PIC X.
114923       01  ABCD         PIC X(4).
114924       01  NUM          PIC 9 VALUE 7.
114925       PROCEDURE        DIVISION
114926                        CHAINING X ABCD NUM.
114927           IF X    NOT = "X"    OR
114928              ABCD NOT = "ABCD"
114929              DISPLAY "X = " X " ABCD = " ABCD
114930              END-DISPLAY
114931           END-IF
114932           IF NUM  NOT = 7
114933              DISPLAY "NUM not INITIALIZED: " NUM
114934              END-DISPLAY
114935           END-IF
114936           STOP RUN.
114937_ATEOF
114938
114939
114940cat >prog2.cob <<'_ATEOF'
114941
114942       IDENTIFICATION   DIVISION.
114943       PROGRAM-ID.      prog2.
114944       DATA             DIVISION.
114945       WORKING-STORAGE  SECTION.
114946       01  VAR.
114947           03  X            PIC X VALUE 'a'.
114948           03  ABCD         PIC X(4).
114949           03  NUM          PIC 9 VALUE 7.
114950       PROCEDURE        DIVISION
114951                        CHAINING VAR.
114952           DISPLAY '-' VAR '-' WITH NO ADVANCING
114953           END-DISPLAY
114954           STOP RUN.
114955_ATEOF
114956
114957
114958cat >prog3.cob <<'_ATEOF'
114959
114960       IDENTIFICATION   DIVISION.
114961       PROGRAM-ID.      prog3.
114962       DATA             DIVISION.
114963       WORKING-STORAGE  SECTION.
114964       01  X            PIC X.
114965       01  ABCD         PIC X(4).
114966       01  NUM          PIC 9 VALUE 7.
114967       PROCEDURE        DIVISION
114968                        CHAINING X ABCD NUM.
114969           IF X    NOT = "X"    OR
114970              ABCD NOT = "ABCD"
114971              DISPLAY "X = " X " ABCD = " ABCD
114972              END-DISPLAY
114973           END-IF
114974           IF NUM  NOT = 7
114975              DISPLAY "NUM not INITIALIZED: " NUM
114976              END-DISPLAY
114977           END-IF
114978           STOP RUN.
114979_ATEOF
114980
114981
114982cat >caller.cob <<'_ATEOF'
114983
114984       IDENTIFICATION   DIVISION.
114985       PROGRAM-ID.      caller.
114986       DATA             DIVISION.
114987       PROCEDURE        DIVISION.
114988           CALL "prog3" USING "X ABCD" END-CALL
114989           STOP RUN.
114990_ATEOF
114991
114992
114993cat >init.cob <<'_ATEOF'
114994
114995       IDENTIFICATION   DIVISION.
114996       PROGRAM-ID.      init.
114997       DATA             DIVISION.
114998       WORKING-STORAGE  SECTION.
114999       01  VAR.
115000           03  X            PIC X VALUE 'a'.
115001           03  ABCD         PIC X(4).
115002           03  NUM          PIC 9  VALUE 7.
115003       77  NUM2             PIC 99 VALUE 2.
115004       PROCEDURE        DIVISION
115005                        CHAINING VAR.
115006           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
115007           END-DISPLAY
115008           INITIALIZE  VAR NUM2
115009           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
115010           MOVE 'XXXX' TO ABCD
115011           INITIALIZE  VAR NUM2 ALL TO VALUE
115012           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
115013           MOVE ALL 'b' TO ABCD
115014           INITIALIZE  VAR NUM2 ALL TO VALUE THEN TO DEFAULT
115015           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
115016           STOP RUN.
115017_ATEOF
115018
115019
115020{ set +x
115021$as_echo "$at_srcdir/run_extensions.at:2339: \$COMPILE prog.cob"
115022at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2339"
115023( $at_check_trace; $COMPILE prog.cob
115024) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115025at_status=$? at_failed=false
115026$at_check_filter
115027at_fn_diff_devnull "$at_stderr" || at_failed=:
115028at_fn_diff_devnull "$at_stdout" || at_failed=:
115029at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2339"
115030$at_failed && at_fn_log_failure
115031$at_traceon; }
115032
115033{ set +x
115034$as_echo "$at_srcdir/run_extensions.at:2340: \$COBCRUN_DIRECT ./prog X ABCD"
115035at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X ABCD" "run_extensions.at:2340"
115036( $at_check_trace; $COBCRUN_DIRECT ./prog X ABCD
115037) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115038at_status=$? at_failed=false
115039$at_check_filter
115040at_fn_diff_devnull "$at_stderr" || at_failed=:
115041at_fn_diff_devnull "$at_stdout" || at_failed=:
115042at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2340"
115043$at_failed && at_fn_log_failure
115044$at_traceon; }
115045
115046
115047# note: sticky linkage and CHAINING produced compiler errors
115048#   --> additional test
115049{ set +x
115050$as_echo "$at_srcdir/run_extensions.at:2344: \$COMPILE prog.cob -fsticky-linkage -o prog_sticky"
115051at_fn_check_prepare_dynamic "$COMPILE prog.cob -fsticky-linkage -o prog_sticky" "run_extensions.at:2344"
115052( $at_check_trace; $COMPILE prog.cob -fsticky-linkage -o prog_sticky
115053) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115054at_status=$? at_failed=false
115055$at_check_filter
115056at_fn_diff_devnull "$at_stderr" || at_failed=:
115057at_fn_diff_devnull "$at_stdout" || at_failed=:
115058at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2344"
115059$at_failed && at_fn_log_failure
115060$at_traceon; }
115061
115062{ set +x
115063$as_echo "$at_srcdir/run_extensions.at:2345: \$COBCRUN_DIRECT ./prog_sticky X ABCD"
115064at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_sticky X ABCD" "run_extensions.at:2345"
115065( $at_check_trace; $COBCRUN_DIRECT ./prog_sticky X ABCD
115066) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115067at_status=$? at_failed=false
115068$at_check_filter
115069at_fn_diff_devnull "$at_stderr" || at_failed=:
115070at_fn_diff_devnull "$at_stdout" || at_failed=:
115071at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2345"
115072$at_failed && at_fn_log_failure
115073$at_traceon; }
115074
115075
115076{ set +x
115077$as_echo "$at_srcdir/run_extensions.at:2347: \$COMPILE prog2.cob"
115078at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_extensions.at:2347"
115079( $at_check_trace; $COMPILE prog2.cob
115080) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115081at_status=$? at_failed=false
115082$at_check_filter
115083at_fn_diff_devnull "$at_stderr" || at_failed=:
115084at_fn_diff_devnull "$at_stdout" || at_failed=:
115085at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2347"
115086$at_failed && at_fn_log_failure
115087$at_traceon; }
115088
115089{ set +x
115090$as_echo "$at_srcdir/run_extensions.at:2348: \$COBCRUN_DIRECT ./prog2 X"
115091at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2 X" "run_extensions.at:2348"
115092( $at_check_trace; $COBCRUN_DIRECT ./prog2 X
115093) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115094at_status=$? at_failed=false
115095$at_check_filter
115096at_fn_diff_devnull "$at_stderr" || at_failed=:
115097echo >>"$at_stdout"; $as_echo "-X     -" | \
115098  $at_diff - "$at_stdout" || at_failed=:
115099at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2348"
115100$at_failed && at_fn_log_failure
115101$at_traceon; }
115102
115103{ set +x
115104$as_echo "$at_srcdir/run_extensions.at:2349: \$COBCRUN_DIRECT ./prog2"
115105at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_extensions.at:2349"
115106( $at_check_trace; $COBCRUN_DIRECT ./prog2
115107) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115108at_status=$? at_failed=false
115109$at_check_filter
115110at_fn_diff_devnull "$at_stderr" || at_failed=:
115111echo >>"$at_stdout"; $as_echo "-a    7-" | \
115112  $at_diff - "$at_stdout" || at_failed=:
115113at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2349"
115114$at_failed && at_fn_log_failure
115115$at_traceon; }
115116
115117
115118{ set +x
115119$as_echo "$at_srcdir/run_extensions.at:2351: \$COMPILE_MODULE prog3.cob"
115120at_fn_check_prepare_dynamic "$COMPILE_MODULE prog3.cob" "run_extensions.at:2351"
115121( $at_check_trace; $COMPILE_MODULE prog3.cob
115122) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115123at_status=$? at_failed=false
115124$at_check_filter
115125at_fn_diff_devnull "$at_stderr" || at_failed=:
115126at_fn_diff_devnull "$at_stdout" || at_failed=:
115127at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2351"
115128$at_failed && at_fn_log_failure
115129$at_traceon; }
115130
115131{ set +x
115132$as_echo "$at_srcdir/run_extensions.at:2352: \$COBCRUN prog3 X ABCD"
115133at_fn_check_prepare_dynamic "$COBCRUN prog3 X ABCD" "run_extensions.at:2352"
115134( $at_check_trace; $COBCRUN prog3 X ABCD
115135) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115136at_status=$? at_failed=false
115137$at_check_filter
115138at_fn_diff_devnull "$at_stderr" || at_failed=:
115139at_fn_diff_devnull "$at_stdout" || at_failed=:
115140at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2352"
115141$at_failed && at_fn_log_failure
115142$at_traceon; }
115143
115144
115145{ set +x
115146$as_echo "$at_srcdir/run_extensions.at:2354: \$COMPILE caller.cob"
115147at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2354"
115148( $at_check_trace; $COMPILE caller.cob
115149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115150at_status=$? at_failed=false
115151$at_check_filter
115152at_fn_diff_devnull "$at_stderr" || at_failed=:
115153at_fn_diff_devnull "$at_stdout" || at_failed=:
115154at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2354"
115155$at_failed && at_fn_log_failure
115156$at_traceon; }
115157
115158{ set +x
115159$as_echo "$at_srcdir/run_extensions.at:2355: \$COBCRUN_DIRECT ./caller X ABCD"
115160at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller X ABCD" "run_extensions.at:2355"
115161( $at_check_trace; $COBCRUN_DIRECT ./caller X ABCD
115162) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115163at_status=$? at_failed=false
115164$at_check_filter
115165echo >>"$at_stderr"; $as_echo "libcob: caller.cob:6: error: CALL of program with CHAINING clause
115166" | \
115167  $at_diff - "$at_stderr" || at_failed=:
115168at_fn_diff_devnull "$at_stdout" || at_failed=:
115169at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2355"
115170$at_failed && at_fn_log_failure
115171$at_traceon; }
115172
115173
115174{ set +x
115175$as_echo "$at_srcdir/run_extensions.at:2359: \$COMPILE init.cob"
115176at_fn_check_prepare_dynamic "$COMPILE init.cob" "run_extensions.at:2359"
115177( $at_check_trace; $COMPILE init.cob
115178) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115179at_status=$? at_failed=false
115180$at_check_filter
115181at_fn_diff_devnull "$at_stderr" || at_failed=:
115182at_fn_diff_devnull "$at_stdout" || at_failed=:
115183at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2359"
115184$at_failed && at_fn_log_failure
115185$at_traceon; }
115186
115187{ set +x
115188$as_echo "$at_srcdir/run_extensions.at:2360: \$COBCRUN_DIRECT ./init X"
115189at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./init X" "run_extensions.at:2360"
115190( $at_check_trace; $COBCRUN_DIRECT ./init X
115191) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115192at_status=$? at_failed=false
115193$at_check_filter
115194at_fn_diff_devnull "$at_stderr" || at_failed=:
115195echo >>"$at_stdout"; $as_echo "-X     02--     000--aXXXX702--a    702-" | \
115196  $at_diff - "$at_stdout" || at_failed=:
115197at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2360"
115198$at_failed && at_fn_log_failure
115199$at_traceon; }
115200
115201
115202  set +x
115203  $at_times_p && times >"$at_times_file"
115204) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115205read at_status <"$at_status_file"
115206#AT_STOP_995
115207#AT_START_996
115208at_fn_group_banner 996 'run_extensions.at:2365' \
115209  "STOP RUN RETURNING/GIVING" "                      " 4
115210at_xfail=no
115211(
115212  $as_echo "996. $at_setup_line: testing $at_desc ..."
115213  $at_traceon
115214
115215
115216
115217cat >prog1.cob <<'_ATEOF'
115218
115219       IDENTIFICATION   DIVISION.
115220       PROGRAM-ID.      prog1.
115221       DATA             DIVISION.
115222       WORKING-STORAGE  SECTION.
115223       77  RET          PIC 99 USAGE DISPLAY.
115224       PROCEDURE        DIVISION.
115225           MOVE 11 TO RET
115226           STOP RUN RETURNING RET.
115227_ATEOF
115228
115229
115230cat >prog2.cob <<'_ATEOF'
115231
115232       IDENTIFICATION   DIVISION.
115233       PROGRAM-ID.      prog2.
115234       DATA             DIVISION.
115235       WORKING-STORAGE  SECTION.
115236       77  RET          PIC 99 USAGE PACKED-DECIMAL.
115237       PROCEDURE        DIVISION.
115238           MOVE 22 TO RET
115239           STOP RUN GIVING RET.
115240_ATEOF
115241
115242
115243cat >prog3.cob <<'_ATEOF'
115244
115245       IDENTIFICATION   DIVISION.
115246       PROGRAM-ID.      prog3.
115247       DATA             DIVISION.
115248       WORKING-STORAGE  SECTION.
115249       PROCEDURE        DIVISION.
115250           STOP RUN 33.
115251_ATEOF
115252
115253
115254cat >prog4.cob <<'_ATEOF'
115255
115256       IDENTIFICATION   DIVISION.
115257       PROGRAM-ID.      prog4.
115258       PROCEDURE        DIVISION.
115259           STOP RUN RETURNING 44.
115260_ATEOF
115261
115262
115263{ set +x
115264$as_echo "$at_srcdir/run_extensions.at:2406: \$COMPILE prog1.cob"
115265at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_extensions.at:2406"
115266( $at_check_trace; $COMPILE prog1.cob
115267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115268at_status=$? at_failed=false
115269$at_check_filter
115270at_fn_diff_devnull "$at_stderr" || at_failed=:
115271at_fn_diff_devnull "$at_stdout" || at_failed=:
115272at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2406"
115273$at_failed && at_fn_log_failure
115274$at_traceon; }
115275
115276{ set +x
115277$as_echo "$at_srcdir/run_extensions.at:2407: \$COBCRUN_DIRECT ./prog1"
115278at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_extensions.at:2407"
115279( $at_check_trace; $COBCRUN_DIRECT ./prog1
115280) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115281at_status=$? at_failed=false
115282$at_check_filter
115283at_fn_diff_devnull "$at_stderr" || at_failed=:
115284at_fn_diff_devnull "$at_stdout" || at_failed=:
115285at_fn_check_status 11 $at_status "$at_srcdir/run_extensions.at:2407"
115286$at_failed && at_fn_log_failure
115287$at_traceon; }
115288
115289
115290{ set +x
115291$as_echo "$at_srcdir/run_extensions.at:2409: \$COMPILE prog2.cob"
115292at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_extensions.at:2409"
115293( $at_check_trace; $COMPILE prog2.cob
115294) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115295at_status=$? at_failed=false
115296$at_check_filter
115297at_fn_diff_devnull "$at_stderr" || at_failed=:
115298at_fn_diff_devnull "$at_stdout" || at_failed=:
115299at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2409"
115300$at_failed && at_fn_log_failure
115301$at_traceon; }
115302
115303{ set +x
115304$as_echo "$at_srcdir/run_extensions.at:2410: \$COBCRUN_DIRECT ./prog2"
115305at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_extensions.at:2410"
115306( $at_check_trace; $COBCRUN_DIRECT ./prog2
115307) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115308at_status=$? at_failed=false
115309$at_check_filter
115310at_fn_diff_devnull "$at_stderr" || at_failed=:
115311at_fn_diff_devnull "$at_stdout" || at_failed=:
115312at_fn_check_status 22 $at_status "$at_srcdir/run_extensions.at:2410"
115313$at_failed && at_fn_log_failure
115314$at_traceon; }
115315
115316
115317{ set +x
115318$as_echo "$at_srcdir/run_extensions.at:2412: \$COMPILE prog3.cob"
115319at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_extensions.at:2412"
115320( $at_check_trace; $COMPILE prog3.cob
115321) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115322at_status=$? at_failed=false
115323$at_check_filter
115324at_fn_diff_devnull "$at_stderr" || at_failed=:
115325at_fn_diff_devnull "$at_stdout" || at_failed=:
115326at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2412"
115327$at_failed && at_fn_log_failure
115328$at_traceon; }
115329
115330{ set +x
115331$as_echo "$at_srcdir/run_extensions.at:2413: \$COBCRUN_DIRECT ./prog3"
115332at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_extensions.at:2413"
115333( $at_check_trace; $COBCRUN_DIRECT ./prog3
115334) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115335at_status=$? at_failed=false
115336$at_check_filter
115337at_fn_diff_devnull "$at_stderr" || at_failed=:
115338at_fn_diff_devnull "$at_stdout" || at_failed=:
115339at_fn_check_status 33 $at_status "$at_srcdir/run_extensions.at:2413"
115340$at_failed && at_fn_log_failure
115341$at_traceon; }
115342
115343
115344{ set +x
115345$as_echo "$at_srcdir/run_extensions.at:2415: \$COMPILE prog4.cob"
115346at_fn_check_prepare_dynamic "$COMPILE prog4.cob" "run_extensions.at:2415"
115347( $at_check_trace; $COMPILE prog4.cob
115348) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115349at_status=$? at_failed=false
115350$at_check_filter
115351at_fn_diff_devnull "$at_stderr" || at_failed=:
115352at_fn_diff_devnull "$at_stdout" || at_failed=:
115353at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2415"
115354$at_failed && at_fn_log_failure
115355$at_traceon; }
115356
115357{ set +x
115358$as_echo "$at_srcdir/run_extensions.at:2416: \$COBCRUN_DIRECT ./prog4"
115359at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog4" "run_extensions.at:2416"
115360( $at_check_trace; $COBCRUN_DIRECT ./prog4
115361) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115362at_status=$? at_failed=false
115363$at_check_filter
115364at_fn_diff_devnull "$at_stderr" || at_failed=:
115365at_fn_diff_devnull "$at_stdout" || at_failed=:
115366at_fn_check_status 44 $at_status "$at_srcdir/run_extensions.at:2416"
115367$at_failed && at_fn_log_failure
115368$at_traceon; }
115369
115370
115371  set +x
115372  $at_times_p && times >"$at_times_file"
115373) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115374read at_status <"$at_status_file"
115375#AT_STOP_996
115376#AT_START_997
115377at_fn_group_banner 997 'run_extensions.at:2421' \
115378  "GOBACK/EXIT PROGRAM RETURNING/GIVING" "           " 4
115379at_xfail=no
115380(
115381  $as_echo "997. $at_setup_line: testing $at_desc ..."
115382  $at_traceon
115383
115384
115385
115386cat >prog.cob <<'_ATEOF'
115387
115388       IDENTIFICATION   DIVISION.
115389       PROGRAM-ID.      prog.
115390       DATA             DIVISION.
115391       WORKING-STORAGE  SECTION.
115392       77  RETURN-DISP  PIC S9(08).
115393       PROCEDURE        DIVISION.
115394           CALL 'prog1' END-CALL
115395           IF RETURN-CODE NOT = -1
115396              MOVE RETURN-CODE TO RETURN-DISP
115397              DISPLAY 'RETURN-CODE ' RETURN-DISP
115398                      ' INSTEAD OF -1'
115399              END-DISPLAY
115400           END-IF
115401           CALL 'prog2' END-CALL
115402           IF RETURN-CODE NOT = 2
115403              MOVE RETURN-CODE TO RETURN-DISP
115404              DISPLAY 'RETURN-CODE ' RETURN-DISP
115405                      ' INSTEAD OF 2'
115406              END-DISPLAY
115407           END-IF
115408           STOP RUN.
115409_ATEOF
115410
115411
115412cat >prog1.cob <<'_ATEOF'
115413
115414       IDENTIFICATION   DIVISION.
115415       PROGRAM-ID.      prog1.
115416       PROCEDURE        DIVISION.
115417           EXIT PROGRAM RETURNING -1.
115418_ATEOF
115419
115420
115421
115422cat >prog2.cob <<'_ATEOF'
115423
115424       IDENTIFICATION   DIVISION.
115425       PROGRAM-ID.      prog2.
115426       PROCEDURE        DIVISION.
115427           GOBACK GIVING 2.
115428_ATEOF
115429
115430
115431{ set +x
115432$as_echo "$at_srcdir/run_extensions.at:2463: \$COMPILE prog.cob prog1.cob prog2.cob"
115433at_fn_check_prepare_dynamic "$COMPILE prog.cob prog1.cob prog2.cob" "run_extensions.at:2463"
115434( $at_check_trace; $COMPILE prog.cob prog1.cob prog2.cob
115435) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115436at_status=$? at_failed=false
115437$at_check_filter
115438at_fn_diff_devnull "$at_stderr" || at_failed=:
115439at_fn_diff_devnull "$at_stdout" || at_failed=:
115440at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2463"
115441$at_failed && at_fn_log_failure
115442$at_traceon; }
115443
115444{ set +x
115445$as_echo "$at_srcdir/run_extensions.at:2464: \$COBCRUN_DIRECT ./prog"
115446at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2464"
115447( $at_check_trace; $COBCRUN_DIRECT ./prog
115448) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115449at_status=$? at_failed=false
115450$at_check_filter
115451at_fn_diff_devnull "$at_stderr" || at_failed=:
115452at_fn_diff_devnull "$at_stdout" || at_failed=:
115453at_fn_check_status 2 $at_status "$at_srcdir/run_extensions.at:2464"
115454$at_failed && at_fn_log_failure
115455$at_traceon; }
115456
115457
115458  set +x
115459  $at_times_p && times >"$at_times_file"
115460) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115461read at_status <"$at_status_file"
115462#AT_STOP_997
115463#AT_START_998
115464at_fn_group_banner 998 'run_extensions.at:2471' \
115465  "ENTRY" "                                          " 4
115466at_xfail=no
115467(
115468  $as_echo "998. $at_setup_line: testing $at_desc ..."
115469  $at_traceon
115470
115471
115472
115473cat >caller.cob <<'_ATEOF'
115474
115475       IDENTIFICATION   DIVISION.
115476       PROGRAM-ID.      caller.
115477       PROCEDURE        DIVISION.
115478           CALL "hello" USING "COBOL"
115479           END-CALL.
115480           CALL "bye" USING "COBOL"
115481           END-CALL.
115482           STOP RUN.
115483_ATEOF
115484
115485
115486cat >hello.cob <<'_ATEOF'
115487
115488       IDENTIFICATION   DIVISION.
115489       PROGRAM-ID.      hello.
115490       DATA             DIVISION.
115491       WORKING-STORAGE  SECTION.
115492       01 MSG-HELLO     PIC X(7) VALUE "Hello, ".
115493       01 MSG-BYE       PIC X(5) VALUE "Bye, ".
115494       LINKAGE          SECTION.
115495       01 X             PIC X(5).
115496       01 Y             PIC X(5).
115497       PROCEDURE        DIVISION USING X.
115498           DISPLAY MSG-HELLO X "!".
115499           EXIT PROGRAM.
115500
115501       ENTRY "bye" USING Y.
115502           DISPLAY MSG-BYE Y "!".
115503           EXIT PROGRAM.
115504_ATEOF
115505
115506
115507{ set +x
115508$as_echo "$at_srcdir/run_extensions.at:2504: \$COMPILE caller.cob"
115509at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2504"
115510( $at_check_trace; $COMPILE caller.cob
115511) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115512at_status=$? at_failed=false
115513$at_check_filter
115514at_fn_diff_devnull "$at_stderr" || at_failed=:
115515at_fn_diff_devnull "$at_stdout" || at_failed=:
115516at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2504"
115517$at_failed && at_fn_log_failure
115518$at_traceon; }
115519
115520# TODO: Doesn't work without sticky-linkage which is likely a bug!
115521{ set +x
115522$as_echo "$at_srcdir/run_extensions.at:2506: \$COMPILE_MODULE -fentry-statement=ok -fsticky-linkage hello.cob"
115523at_fn_check_prepare_dynamic "$COMPILE_MODULE -fentry-statement=ok -fsticky-linkage hello.cob" "run_extensions.at:2506"
115524( $at_check_trace; $COMPILE_MODULE -fentry-statement=ok -fsticky-linkage hello.cob
115525) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115526at_status=$? at_failed=false
115527$at_check_filter
115528at_fn_diff_devnull "$at_stderr" || at_failed=:
115529at_fn_diff_devnull "$at_stdout" || at_failed=:
115530at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2506"
115531$at_failed && at_fn_log_failure
115532$at_traceon; }
115533
115534{ set +x
115535$as_echo "$at_srcdir/run_extensions.at:2507: \$COBCRUN_DIRECT ./caller"
115536at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2507"
115537( $at_check_trace; $COBCRUN_DIRECT ./caller
115538) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115539at_status=$? at_failed=false
115540$at_check_filter
115541at_fn_diff_devnull "$at_stderr" || at_failed=:
115542echo >>"$at_stdout"; $as_echo "Hello, COBOL!
115543Bye, COBOL!
115544" | \
115545  $at_diff - "$at_stdout" || at_failed=:
115546at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2507"
115547$at_failed && at_fn_log_failure
115548$at_traceon; }
115549
115550
115551  set +x
115552  $at_times_p && times >"$at_times_file"
115553) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115554read at_status <"$at_status_file"
115555#AT_STOP_998
115556#AT_START_999
115557at_fn_group_banner 999 'run_extensions.at:2517' \
115558  "LINE SEQUENTIAL write" "                          " 4
115559at_xfail=no
115560(
115561  $as_echo "999. $at_setup_line: testing $at_desc ..."
115562  $at_traceon
115563
115564
115565
115566cat >prog.cob <<'_ATEOF'
115567
115568       IDENTIFICATION   DIVISION.
115569       PROGRAM-ID.      prog.
115570       ENVIRONMENT      DIVISION.
115571       INPUT-OUTPUT     SECTION.
115572       FILE-CONTROL.
115573       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
115574                        ORGANIZATION IS LINE SEQUENTIAL.
115575       DATA             DIVISION.
115576       FILE             SECTION.
115577       FD TEST-FILE.
115578       01 TEST-REC      PIC X(4).
115579       PROCEDURE        DIVISION.
115580           OPEN OUTPUT TEST-FILE.
115581           MOVE "a"    TO TEST-REC.
115582           WRITE TEST-REC
115583           END-WRITE.
115584           MOVE "ab"   TO TEST-REC.
115585           WRITE TEST-REC AFTER 1 LINES
115586           END-WRITE.
115587           MOVE "abc"  TO TEST-REC.
115588           WRITE TEST-REC BEFORE 2 LINES
115589           END-WRITE.
115590           MOVE "abcd" TO TEST-REC.
115591           WRITE TEST-REC
115592           END-WRITE.
115593           CLOSE TEST-FILE.
115594           STOP RUN.
115595_ATEOF
115596
115597
115598{ set +x
115599$as_echo "$at_srcdir/run_extensions.at:2550: \$COMPILE prog.cob"
115600at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2550"
115601( $at_check_trace; $COMPILE prog.cob
115602) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115603at_status=$? at_failed=false
115604$at_check_filter
115605at_fn_diff_devnull "$at_stderr" || at_failed=:
115606at_fn_diff_devnull "$at_stdout" || at_failed=:
115607at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2550"
115608$at_failed && at_fn_log_failure
115609$at_traceon; }
115610
115611{ set +x
115612$as_echo "$at_srcdir/run_extensions.at:2551: \$COBCRUN_DIRECT ./prog"
115613at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2551"
115614( $at_check_trace; $COBCRUN_DIRECT ./prog
115615) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115616at_status=$? at_failed=false
115617$at_check_filter
115618at_fn_diff_devnull "$at_stderr" || at_failed=:
115619at_fn_diff_devnull "$at_stdout" || at_failed=:
115620at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2551"
115621$at_failed && at_fn_log_failure
115622$at_traceon; }
115623
115624{ set +x
115625$as_echo "$at_srcdir/run_extensions.at:2552: cat TEST-FILE"
115626at_fn_check_prepare_trace "run_extensions.at:2552"
115627( $at_check_trace; cat TEST-FILE
115628) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115629at_status=$? at_failed=false
115630$at_check_filter
115631at_fn_diff_devnull "$at_stderr" || at_failed=:
115632echo >>"$at_stdout"; $as_echo "a
115633
115634ababc
115635
115636abcd
115637" | \
115638  $at_diff - "$at_stdout" || at_failed=:
115639at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2552"
115640$at_failed && at_fn_log_failure
115641$at_traceon; }
115642
115643
115644  set +x
115645  $at_times_p && times >"$at_times_file"
115646) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115647read at_status <"$at_status_file"
115648#AT_STOP_999
115649#AT_START_1000
115650at_fn_group_banner 1000 'run_extensions.at:2563' \
115651  "LINE SEQUENTIAL read" "                           " 4
115652at_xfail=no
115653(
115654  $as_echo "1000. $at_setup_line: testing $at_desc ..."
115655  $at_traceon
115656
115657
115658
115659cat >TEST-FILE <<'_ATEOF'
115660a
115661ab
115662abc
115663abcd
115664abcde
115665abcdef
115666_ATEOF
115667
115668
115669cat >prog.cob <<'_ATEOF'
115670
115671       IDENTIFICATION   DIVISION.
115672       PROGRAM-ID.      prog.
115673       ENVIRONMENT      DIVISION.
115674       INPUT-OUTPUT     SECTION.
115675       FILE-CONTROL.
115676       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
115677                        ORGANIZATION IS LINE SEQUENTIAL.
115678       DATA             DIVISION.
115679       FILE             SECTION.
115680       FD TEST-FILE.
115681       01 TEST-REC      PIC X(4).
115682       PROCEDURE        DIVISION.
115683           OPEN INPUT TEST-FILE.
115684           READ TEST-FILE
115685           END-READ.
115686           DISPLAY "(" TEST-REC ")"
115687           END-DISPLAY.
115688           READ TEST-FILE
115689           END-READ.
115690           DISPLAY "(" TEST-REC ")"
115691           END-DISPLAY.
115692           READ TEST-FILE
115693           END-READ.
115694           DISPLAY "(" TEST-REC ")"
115695           END-DISPLAY.
115696           READ TEST-FILE
115697           END-READ.
115698           DISPLAY "(" TEST-REC ")"
115699           END-DISPLAY.
115700           READ TEST-FILE
115701           END-READ.
115702           DISPLAY "(" TEST-REC ")"
115703           END-DISPLAY.
115704           READ TEST-FILE
115705           END-READ.
115706           DISPLAY "(" TEST-REC ")"
115707           END-DISPLAY.
115708           CLOSE TEST-FILE.
115709           STOP RUN.
115710_ATEOF
115711
115712
115713{ set +x
115714$as_echo "$at_srcdir/run_extensions.at:2617: \$COMPILE prog.cob"
115715at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2617"
115716( $at_check_trace; $COMPILE prog.cob
115717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115718at_status=$? at_failed=false
115719$at_check_filter
115720at_fn_diff_devnull "$at_stderr" || at_failed=:
115721at_fn_diff_devnull "$at_stdout" || at_failed=:
115722at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2617"
115723$at_failed && at_fn_log_failure
115724$at_traceon; }
115725
115726{ set +x
115727$as_echo "$at_srcdir/run_extensions.at:2618: \$COBCRUN_DIRECT ./prog"
115728at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2618"
115729( $at_check_trace; $COBCRUN_DIRECT ./prog
115730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115731at_status=$? at_failed=false
115732$at_check_filter
115733at_fn_diff_devnull "$at_stderr" || at_failed=:
115734echo >>"$at_stdout"; $as_echo "(a   )
115735(ab  )
115736(abc )
115737(abcd)
115738(abcd)
115739(abcd)
115740" | \
115741  $at_diff - "$at_stdout" || at_failed=:
115742at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2618"
115743$at_failed && at_fn_log_failure
115744$at_traceon; }
115745
115746
115747  set +x
115748  $at_times_p && times >"$at_times_file"
115749) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115750read at_status <"$at_status_file"
115751#AT_STOP_1000
115752#AT_START_1001
115753at_fn_group_banner 1001 'run_extensions.at:2630' \
115754  "ASSIGN to KEYBOARD/DISPLAY" "                     " 4
115755at_xfail=no
115756(
115757  $as_echo "1001. $at_setup_line: testing $at_desc ..."
115758  $at_traceon
115759
115760
115761
115762cat >TEST-FILE <<'_ATEOF'
115763a
115764ab
115765abc
115766abcd
115767abcde
115768abcdef
115769_ATEOF
115770
115771
115772cat >prog.cob <<'_ATEOF'
115773
115774       IDENTIFICATION   DIVISION.
115775       PROGRAM-ID.      prog.
115776       ENVIRONMENT      DIVISION.
115777       INPUT-OUTPUT     SECTION.
115778       FILE-CONTROL.
115779       SELECT TEST-FILE ASSIGN  KEYBOARD
115780                        ORGANIZATION IS LINE SEQUENTIAL.
115781       SELECT TEST-OUT  ASSIGN  DISPLAY
115782                        ORGANIZATION IS LINE SEQUENTIAL.
115783       DATA             DIVISION.
115784       FILE             SECTION.
115785       FD TEST-FILE.
115786       01 TEST-REC      PIC X(80).
115787       FD TEST-OUT.
115788       01 TEST-REC-OUT  PIC X(80).
115789       PROCEDURE        DIVISION.
115790       A00.
115791           OPEN INPUT  TEST-FILE.
115792           OPEN OUTPUT TEST-OUT.
115793       A01.
115794           READ TEST-FILE AT END
115795                GO TO Z99
115796           END-READ.
115797           WRITE TEST-REC-OUT FROM TEST-REC
115798           END-WRITE.
115799           GO TO A01.
115800       Z99.
115801           CLOSE TEST-FILE.
115802           CLOSE TEST-OUT.
115803           STOP RUN.
115804_ATEOF
115805
115806
115807{ set +x
115808$as_echo "$at_srcdir/run_extensions.at:2675: \$COMPILE prog.cob"
115809at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2675"
115810( $at_check_trace; $COMPILE prog.cob
115811) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115812at_status=$? at_failed=false
115813$at_check_filter
115814at_fn_diff_devnull "$at_stderr" || at_failed=:
115815at_fn_diff_devnull "$at_stdout" || at_failed=:
115816at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2675"
115817$at_failed && at_fn_log_failure
115818$at_traceon; }
115819
115820{ set +x
115821$as_echo "$at_srcdir/run_extensions.at:2676: cat TEST-FILE | \$COBCRUN_DIRECT ./prog"
115822at_fn_check_prepare_notrace 'a shell pipeline' "run_extensions.at:2676"
115823( $at_check_trace; cat TEST-FILE | $COBCRUN_DIRECT ./prog
115824) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115825at_status=$? at_failed=false
115826$at_check_filter
115827at_fn_diff_devnull "$at_stderr" || at_failed=:
115828echo >>"$at_stdout"; $as_echo "a
115829ab
115830abc
115831abcd
115832abcde
115833abcdef
115834" | \
115835  $at_diff - "$at_stdout" || at_failed=:
115836at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2676"
115837$at_failed && at_fn_log_failure
115838$at_traceon; }
115839
115840
115841  set +x
115842  $at_times_p && times >"$at_times_file"
115843) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115844read at_status <"$at_status_file"
115845#AT_STOP_1001
115846#AT_START_1002
115847at_fn_group_banner 1002 'run_extensions.at:2688' \
115848  "SORT ASSIGN KEYBOARD to ASSIGN DISPLAY" "         " 4
115849at_xfail=yes
115850(
115851  $as_echo "1002. $at_setup_line: testing $at_desc ..."
115852  $at_traceon
115853
115854
115855
115856# GC has an extension "SORT FILES always in memory" and therefore didn't
115857# used the ASSIGN clause (which should be mandatory) for SORT files at all.
115858# We should add an according test and change the test here after cleanup,
115859# officially documenting the "ASSIGN clause not necessary for SORT FILES"
115860# extension and enable it only with a conf entry (set only in default.conf).
115861
115862
115863cat >TEST-FILE <<'_ATEOF'
1158649
11586522
11586611
1158670
11586800
1158698
11587077
115871_ATEOF
115872
115873
115874cat >prog.cob <<'_ATEOF'
115875
115876       IDENTIFICATION   DIVISION.
115877       PROGRAM-ID.      prog.
115878       ENVIRONMENT      DIVISION.
115879       INPUT-OUTPUT     SECTION.
115880       FILE-CONTROL.
115881       SELECT TEST-FILE ASSIGN  KEYBOARD
115882                        ORGANIZATION IS LINE SEQUENTIAL.
115883       SELECT TEST-OUT  ASSIGN  DISPLAY
115884                        ORGANIZATION IS LINE SEQUENTIAL.
115885       SELECT SORT-FILE.
115886       DATA             DIVISION.
115887       FILE             SECTION.
115888       FD TEST-FILE.
115889       01 TEST-REC      PIC X(80).
115890       FD TEST-OUT.
115891       01 TEST-REC-OUT  PIC X(80).
115892       SD SORT-FILE.
115893       01 SORT-REC      PIC X(80).
115894       PROCEDURE        DIVISION.
115895       A00.
115896           SORT SORT-FILE
115897                ON ASCENDING SORT-REC
115898                USING        TEST-FILE
115899                GIVING       TEST-OUT.
115900           STOP RUN.
115901_ATEOF
115902
115903
115904{ set +x
115905$as_echo "$at_srcdir/run_extensions.at:2736: \$COMPILE prog.cob"
115906at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2736"
115907( $at_check_trace; $COMPILE prog.cob
115908) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115909at_status=$? at_failed=false
115910$at_check_filter
115911at_fn_diff_devnull "$at_stderr" || at_failed=:
115912at_fn_diff_devnull "$at_stdout" || at_failed=:
115913at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2736"
115914$at_failed && at_fn_log_failure
115915$at_traceon; }
115916
115917{ set +x
115918$as_echo "$at_srcdir/run_extensions.at:2737: cat TEST-FILE | \$COBCRUN_DIRECT ./prog"
115919at_fn_check_prepare_notrace 'a shell pipeline' "run_extensions.at:2737"
115920( $at_check_trace; cat TEST-FILE | $COBCRUN_DIRECT ./prog
115921) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115922at_status=$? at_failed=false
115923$at_check_filter
115924at_fn_diff_devnull "$at_stderr" || at_failed=:
115925echo >>"$at_stdout"; $as_echo "0
11592600
11592711
11592822
11592977
1159308
1159319
115932" | \
115933  $at_diff - "$at_stdout" || at_failed=:
115934at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2737"
115935$at_failed && at_fn_log_failure
115936$at_traceon; }
115937
115938
115939  set +x
115940  $at_times_p && times >"$at_times_file"
115941) 5>&1 2>&1 7>&- | eval $at_tee_pipe
115942read at_status <"$at_status_file"
115943#AT_STOP_1002
115944#AT_START_1003
115945at_fn_group_banner 1003 'run_extensions.at:2750' \
115946  "Environment/Argument variable" "                  " 4
115947at_xfail=no
115948(
115949  $as_echo "1003. $at_setup_line: testing $at_desc ..."
115950  $at_traceon
115951
115952
115953
115954cat >prog.cob <<'_ATEOF'
115955
115956       IDENTIFICATION   DIVISION.
115957       PROGRAM-ID.      prog.
115958       DATA             DIVISION.
115959       WORKING-STORAGE  SECTION.
115960       01 X             PIC X(4).
115961       01 Y             PIC X(8).
115962       01 Z             PIC 9(4).
115963       PROCEDURE        DIVISION.
115964           DISPLAY "TEST_ENV" UPON ENVIRONMENT-NAME
115965           END-DISPLAY.
115966           ACCEPT X FROM ENVIRONMENT-VALUE
115967           END-ACCEPT.
115968           DISPLAY "(" X ")"
115969           END-DISPLAY.
115970           DISPLAY "RXW" UPON ENVIRONMENT-VALUE
115971           END-DISPLAY.
115972           ACCEPT X FROM ENVIRONMENT-VALUE
115973           END-ACCEPT.
115974           DISPLAY "(" X ")"
115975           END-DISPLAY.
115976           ACCEPT Y FROM ARGUMENT-VALUE
115977           END-ACCEPT.
115978           DISPLAY "(" Y ")"
115979           END-DISPLAY.
115980           ACCEPT Z FROM ARGUMENT-NUMBER
115981           END-ACCEPT.
115982           DISPLAY "(" Z ")"
115983           END-DISPLAY.
115984           STOP RUN.
115985_ATEOF
115986
115987
115988{ set +x
115989$as_echo "$at_srcdir/run_extensions.at:2785: \$COMPILE prog.cob"
115990at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2785"
115991( $at_check_trace; $COMPILE prog.cob
115992) >>"$at_stdout" 2>>"$at_stderr" 5>&-
115993at_status=$? at_failed=false
115994$at_check_filter
115995at_fn_diff_devnull "$at_stderr" || at_failed=:
115996at_fn_diff_devnull "$at_stdout" || at_failed=:
115997at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2785"
115998$at_failed && at_fn_log_failure
115999$at_traceon; }
116000
116001{ set +x
116002$as_echo "$at_srcdir/run_extensions.at:2786: TEST_ENV=OK \$COBCRUN_DIRECT ./prog CHECKPAR"
116003at_fn_check_prepare_dynamic "TEST_ENV=OK $COBCRUN_DIRECT ./prog CHECKPAR" "run_extensions.at:2786"
116004( $at_check_trace; TEST_ENV=OK $COBCRUN_DIRECT ./prog CHECKPAR
116005) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116006at_status=$? at_failed=false
116007$at_check_filter
116008at_fn_diff_devnull "$at_stderr" || at_failed=:
116009echo >>"$at_stdout"; $as_echo "(OK  )
116010(RXW )
116011(CHECKPAR)
116012(0001)
116013" | \
116014  $at_diff - "$at_stdout" || at_failed=:
116015at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2786"
116016$at_failed && at_fn_log_failure
116017$at_traceon; }
116018
116019
116020  set +x
116021  $at_times_p && times >"$at_times_file"
116022) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116023read at_status <"$at_status_file"
116024#AT_STOP_1003
116025#AT_START_1004
116026at_fn_group_banner 1004 'run_extensions.at:2796' \
116027  "78 Level (1)" "                                   " 4
116028at_xfail=no
116029(
116030  $as_echo "1004. $at_setup_line: testing $at_desc ..."
116031  $at_traceon
116032
116033
116034
116035cat >prog.cob <<'_ATEOF'
116036
116037       IDENTIFICATION   DIVISION.
116038       PROGRAM-ID.      prog.
116039       DATA             DIVISION.
116040       WORKING-STORAGE  SECTION.
116041       78  X            VALUE "OK".
116042       PROCEDURE        DIVISION.
116043           DISPLAY X
116044           END-DISPLAY.
116045           STOP RUN.
116046_ATEOF
116047
116048
116049{ set +x
116050$as_echo "$at_srcdir/run_extensions.at:2811: \$COMPILE prog.cob"
116051at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2811"
116052( $at_check_trace; $COMPILE prog.cob
116053) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116054at_status=$? at_failed=false
116055$at_check_filter
116056at_fn_diff_devnull "$at_stderr" || at_failed=:
116057at_fn_diff_devnull "$at_stdout" || at_failed=:
116058at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2811"
116059$at_failed && at_fn_log_failure
116060$at_traceon; }
116061
116062{ set +x
116063$as_echo "$at_srcdir/run_extensions.at:2812: \$COBCRUN_DIRECT ./prog"
116064at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2812"
116065( $at_check_trace; $COBCRUN_DIRECT ./prog
116066) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116067at_status=$? at_failed=false
116068$at_check_filter
116069at_fn_diff_devnull "$at_stderr" || at_failed=:
116070echo >>"$at_stdout"; $as_echo "OK
116071" | \
116072  $at_diff - "$at_stdout" || at_failed=:
116073at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2812"
116074$at_failed && at_fn_log_failure
116075$at_traceon; }
116076
116077
116078  set +x
116079  $at_times_p && times >"$at_times_file"
116080) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116081read at_status <"$at_status_file"
116082#AT_STOP_1004
116083#AT_START_1005
116084at_fn_group_banner 1005 'run_extensions.at:2819' \
116085  "78 Level (2)" "                                   " 4
116086at_xfail=no
116087(
116088  $as_echo "1005. $at_setup_line: testing $at_desc ..."
116089  $at_traceon
116090
116091
116092
116093cat >prog.cob <<'_ATEOF'
116094
116095       IDENTIFICATION   DIVISION.
116096       PROGRAM-ID.      prog.
116097       DATA             DIVISION.
116098       WORKING-STORAGE  SECTION.
116099       01  Z.
116100       78  X            VALUE "OK".
116101       78  Y            VALUE "OK".
116102           03  FILLER   PIC XX VALUE "OK".
116103       PROCEDURE        DIVISION.
116104           DISPLAY X Z Y
116105           END-DISPLAY.
116106           STOP RUN.
116107_ATEOF
116108
116109
116110{ set +x
116111$as_echo "$at_srcdir/run_extensions.at:2837: \$COMPILE prog.cob"
116112at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2837"
116113( $at_check_trace; $COMPILE prog.cob
116114) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116115at_status=$? at_failed=false
116116$at_check_filter
116117at_fn_diff_devnull "$at_stderr" || at_failed=:
116118at_fn_diff_devnull "$at_stdout" || at_failed=:
116119at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2837"
116120$at_failed && at_fn_log_failure
116121$at_traceon; }
116122
116123{ set +x
116124$as_echo "$at_srcdir/run_extensions.at:2838: \$COBCRUN_DIRECT ./prog"
116125at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2838"
116126( $at_check_trace; $COBCRUN_DIRECT ./prog
116127) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116128at_status=$? at_failed=false
116129$at_check_filter
116130at_fn_diff_devnull "$at_stderr" || at_failed=:
116131echo >>"$at_stdout"; $as_echo "OKOKOK
116132" | \
116133  $at_diff - "$at_stdout" || at_failed=:
116134at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2838"
116135$at_failed && at_fn_log_failure
116136$at_traceon; }
116137
116138
116139  set +x
116140  $at_times_p && times >"$at_times_file"
116141) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116142read at_status <"$at_status_file"
116143#AT_STOP_1005
116144#AT_START_1006
116145at_fn_group_banner 1006 'run_extensions.at:2845' \
116146  "78 Level (3)" "                                   " 4
116147at_xfail=no
116148(
116149  $as_echo "1006. $at_setup_line: testing $at_desc ..."
116150  $at_traceon
116151
116152
116153
116154cat >prog.cob <<'_ATEOF'
116155
116156       IDENTIFICATION   DIVISION.
116157       PROGRAM-ID.      prog.
116158       DATA             DIVISION.
116159       WORKING-STORAGE  SECTION.
116160       78  X            VALUE "OK".
116161       01  Z            PIC XX VALUE "OK".
116162       PROCEDURE        DIVISION.
116163           DISPLAY Z X
116164           END-DISPLAY.
116165           STOP RUN.
116166_ATEOF
116167
116168
116169{ set +x
116170$as_echo "$at_srcdir/run_extensions.at:2861: \$COMPILE prog.cob"
116171at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2861"
116172( $at_check_trace; $COMPILE prog.cob
116173) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116174at_status=$? at_failed=false
116175$at_check_filter
116176at_fn_diff_devnull "$at_stderr" || at_failed=:
116177at_fn_diff_devnull "$at_stdout" || at_failed=:
116178at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2861"
116179$at_failed && at_fn_log_failure
116180$at_traceon; }
116181
116182{ set +x
116183$as_echo "$at_srcdir/run_extensions.at:2862: \$COBCRUN_DIRECT ./prog"
116184at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2862"
116185( $at_check_trace; $COBCRUN_DIRECT ./prog
116186) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116187at_status=$? at_failed=false
116188$at_check_filter
116189at_fn_diff_devnull "$at_stderr" || at_failed=:
116190echo >>"$at_stdout"; $as_echo "OKOK
116191" | \
116192  $at_diff - "$at_stdout" || at_failed=:
116193at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2862"
116194$at_failed && at_fn_log_failure
116195$at_traceon; }
116196
116197
116198  set +x
116199  $at_times_p && times >"$at_times_file"
116200) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116201read at_status <"$at_status_file"
116202#AT_STOP_1006
116203#AT_START_1007
116204at_fn_group_banner 1007 'run_extensions.at:2869' \
116205  "SWITCHES with non-standard names" "               " 4
116206at_xfail=no
116207(
116208  $as_echo "1007. $at_setup_line: testing $at_desc ..."
116209  $at_traceon
116210
116211
116212
116213cat >prog.cob <<'_ATEOF'
116214
116215       IDENTIFICATION   DIVISION.
116216       PROGRAM-ID.      prog.
116217       ENVIRONMENT DIVISION.
116218       CONFIGURATION SECTION.
116219       SPECIAL-NAMES.
116220           SW1
116221             ON  IS SWIT1-ON
116222             OFF IS SWIT1-OFF
116223           .
116224           SWITCH B IS SWITCH-B
116225             ON  IS SWIT2-ON
116226             OFF IS SWIT2-OFF
116227           .
116228           SWITCH 25
116229             ON  IS SWIT25-ON
116230             OFF IS SWIT25-OFF
116231           .
116232           SWITCH Z
116233             ON  IS SWIT26-ON
116234             OFF IS SWIT26-OFF
116235           .
116236           USW-31
116237             ON  IS SWIT31-ON
116238             OFF IS SWIT31-OFF
116239           .
116240           SWITCH-32
116241             ON  IS SWIT32-ON
116242             OFF IS SWIT32-OFF
116243           .
116244       DATA             DIVISION.
116245       WORKING-STORAGE  SECTION.
116246       01  SWITCH       PIC 99 VALUE 12.
116247	   78  Z            VALUE 11.
116248       PROCEDURE        DIVISION.
116249           ADD SWITCH 1 GIVING SWITCH
116250           END-ADD.
116251           IF SWITCH NOT = 13
116252              DISPLAY "SWITCH (variable) + 1 WRONG: "
116253                      SWITCH
116254              END-DISPLAY
116255           END-IF.
116256           ADD SWITCH Z GIVING SWITCH
116257           END-ADD.
116258           IF SWITCH NOT = 24
116259              DISPLAY "SWITCH (variable) + Z WRONG: "
116260                      SWITCH
116261              END-DISPLAY
116262           END-IF.
116263           IF SWIT1-ON
116264              DISPLAY "ON" NO ADVANCING
116265              END-DISPLAY
116266           ELSE
116267              DISPLAY "OFF" NO ADVANCING
116268              END-DISPLAY
116269           END-IF.
116270           IF SWIT2-ON
116271              DISPLAY " ON" NO ADVANCING
116272              END-DISPLAY
116273           ELSE
116274              DISPLAY " OFF" NO ADVANCING
116275              END-DISPLAY
116276           END-IF.
116277           SET SWITCH-B TO OFF
116278           IF SWIT2-ON
116279              DISPLAY " ON" NO ADVANCING
116280              END-DISPLAY
116281           ELSE
116282              DISPLAY " OFF" NO ADVANCING
116283              END-DISPLAY
116284           END-IF.
116285           IF SWIT25-ON
116286              DISPLAY " ON" NO ADVANCING
116287              END-DISPLAY
116288           ELSE
116289              DISPLAY " OFF" NO ADVANCING
116290              END-DISPLAY
116291           END-IF.
116292           IF SWIT26-ON
116293              DISPLAY " ON" NO ADVANCING
116294              END-DISPLAY
116295           ELSE
116296              DISPLAY " OFF" NO ADVANCING
116297              END-DISPLAY
116298           END-IF.
116299           IF SWIT31-ON
116300              DISPLAY " ON" NO ADVANCING
116301              END-DISPLAY
116302           ELSE
116303              DISPLAY " OFF" NO ADVANCING
116304              END-DISPLAY
116305           END-IF.
116306           IF SWIT32-ON
116307              DISPLAY " ON" NO ADVANCING
116308              END-DISPLAY
116309           ELSE
116310              DISPLAY " OFF" NO ADVANCING
116311              END-DISPLAY
116312           END-IF.
116313           STOP RUN.
116314_ATEOF
116315
116316
116317{ set +x
116318$as_echo "$at_srcdir/run_extensions.at:2974: \$COMPILE -fsystem-name=\"sw1, SwItCh\\ b, SWITCH\\ 25\" \\
116319-fsystem-name=SWITCH-32 -fsystem-name=\"SWITCH\\ Z\" -fsystem-name=USW-31 prog.cob"
116320at_fn_check_prepare_notrace 'an embedded newline' "run_extensions.at:2974"
116321( $at_check_trace; $COMPILE -fsystem-name="sw1, SwItCh\ b, SWITCH\ 25" \
116322-fsystem-name=SWITCH-32 -fsystem-name="SWITCH\ Z" -fsystem-name=USW-31 prog.cob
116323) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116324at_status=$? at_failed=false
116325$at_check_filter
116326at_fn_diff_devnull "$at_stderr" || at_failed=:
116327at_fn_diff_devnull "$at_stdout" || at_failed=:
116328at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2974"
116329$at_failed && at_fn_log_failure
116330$at_traceon; }
116331
116332{ set +x
116333$as_echo "$at_srcdir/run_extensions.at:2976: COB_SWITCH_2=1 COB_SWITCH_26=1 COB_SWITCH_31=1 COB_SWITCH_32=1 ./prog"
116334at_fn_check_prepare_trace "run_extensions.at:2976"
116335( $at_check_trace; COB_SWITCH_2=1 COB_SWITCH_26=1 COB_SWITCH_31=1 COB_SWITCH_32=1 ./prog
116336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116337at_status=$? at_failed=false
116338$at_check_filter
116339at_fn_diff_devnull "$at_stderr" || at_failed=:
116340echo >>"$at_stdout"; $as_echo "OFF ON OFF OFF ON ON ON" | \
116341  $at_diff - "$at_stdout" || at_failed=:
116342at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2976"
116343$at_failed && at_fn_log_failure
116344$at_traceon; }
116345
116346
116347  set +x
116348  $at_times_p && times >"$at_times_file"
116349) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116350read at_status <"$at_status_file"
116351#AT_STOP_1007
116352#AT_START_1008
116353at_fn_group_banner 1008 'run_extensions.at:2982' \
116354  "Larger REDEFINES lengths" "                       " 4
116355at_xfail=no
116356(
116357  $as_echo "1008. $at_setup_line: testing $at_desc ..."
116358  $at_traceon
116359
116360
116361
116362cat >prog.cob <<'_ATEOF'
116363
116364       IDENTIFICATION   DIVISION.
116365       PROGRAM-ID.      prog.
116366       DATA             DIVISION.
116367       WORKING-STORAGE  SECTION.
116368       01  Z            PIC 99.
116369       01  XMAIN        PIC X(8).
116370       01  XMAINRED REDEFINES XMAIN.
116371           03  FILLER         PIC X(4).
116372           03  XMAIN03.
116373               05  XMAIN0501  PIC X(4).
116374               05  XMAIN0502 REDEFINES XMAIN0501 PIC X(5).
116375       01 USE-VARS.
116376          05 USE-VALUE                PIC 9
116377                                      VALUE ZERO.
116378             88 USE-ACTIVE-FIRST      VALUE 1.
116379             88 USE-ACTIVE-SECOND     VALUE 2.
116380          05 USE-FIRST.
116381             10 FIRST-DATA.
116382                20 FIRST-DATA-VAR     PIC X(033).
116383             10 FIRST-VARIANT-A REDEFINES FIRST-DATA.
116384                20 PART-A-FIRST       PIC X(33211).
116385             10 FIRST-VARIANT-B REDEFINES FIRST-DATA.
116386                20 PART-B-FIRST       PIC X(24561).
116387             10 FIRST-VARIANT-C REDEFINES FIRST-DATA.
116388                20 PART-C-FIRST       PIC X(3421).
116389         05 USE-SECOND REDEFINES USE-FIRST.
116390            10 SECOND-HEADER.
116391               20 SECOND-DATA         PIC 9(015).
116392               20 SECOND-CONTROL-SUM  PIC 9(015)V9(003).
116393            10 SECOND-VARIANT-A REDEFINES SECOND-HEADER.
116394               20 PART-A-SECOND       PIC X(27241).
116395            10 SECOND-VARIANT-B REDEFINES SECOND-HEADER.
116396               20 PART-B-SECOND       PIC X(3879).
116397       PROCEDURE        DIVISION.
116398           MOVE    LENGTH OF XMAIN       TO Z.
116399           IF Z NOT = 8
116400              DISPLAY "Test 1 " Z
116401              END-DISPLAY
116402           END-IF.
116403           MOVE    LENGTH OF XMAINRED    TO Z.
116404           IF Z NOT = 9
116405              DISPLAY "Test 2 " Z
116406              END-DISPLAY
116407           END-IF.
116408           MOVE    LENGTH OF XMAIN03     TO Z.
116409           IF Z NOT = 5
116410              DISPLAY "Test 3 " Z
116411              END-DISPLAY
116412           END-IF.
116413           MOVE    LENGTH OF XMAIN0501   TO Z.
116414           IF Z NOT = 4
116415              DISPLAY "Test 4 " Z
116416              END-DISPLAY
116417           END-IF.
116418           MOVE    LENGTH OF XMAIN0502   TO Z.
116419           IF Z NOT = 5
116420              DISPLAY "Test 5 " Z
116421              END-DISPLAY
116422           END-IF.
116423           IF LENGTH OF USE-FIRST  NOT = 33211
116424              DISPLAY LENGTH OF USE-FIRST   END-DISPLAY
116425           END-IF.
116426           IF LENGTH OF USE-SECOND NOT = 27241
116427              DISPLAY LENGTH OF USE-SECOND  END-DISPLAY
116428           END-IF.
116429           STOP RUN.
116430_ATEOF
116431
116432
116433{ set +x
116434$as_echo "$at_srcdir/run_extensions.at:3054: \$COMPILE -flarger-redefines-ok -Wno-constant-expression prog.cob"
116435at_fn_check_prepare_dynamic "$COMPILE -flarger-redefines-ok -Wno-constant-expression prog.cob" "run_extensions.at:3054"
116436( $at_check_trace; $COMPILE -flarger-redefines-ok -Wno-constant-expression prog.cob
116437) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116438at_status=$? at_failed=false
116439$at_check_filter
116440echo >>"$at_stderr"; $as_echo "prog.cob:12: warning: size of 'XMAIN0502' larger than size of 'XMAIN0501'
116441prog.cob:21: warning: size of 'FIRST-VARIANT-A' larger than size of 'FIRST-DATA'
116442prog.cob:23: warning: size of 'FIRST-VARIANT-B' larger than size of 'FIRST-DATA'
116443prog.cob:25: warning: size of 'FIRST-VARIANT-C' larger than size of 'FIRST-DATA'
116444prog.cob:31: warning: size of 'SECOND-VARIANT-A' larger than size of 'SECOND-HEADER'
116445prog.cob:33: warning: size of 'SECOND-VARIANT-B' larger than size of 'SECOND-HEADER'
116446" | \
116447  $at_diff - "$at_stderr" || at_failed=:
116448at_fn_diff_devnull "$at_stdout" || at_failed=:
116449at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3054"
116450$at_failed && at_fn_log_failure
116451$at_traceon; }
116452
116453{ set +x
116454$as_echo "$at_srcdir/run_extensions.at:3062: \$COBCRUN_DIRECT ./prog"
116455at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3062"
116456( $at_check_trace; $COBCRUN_DIRECT ./prog
116457) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116458at_status=$? at_failed=false
116459$at_check_filter
116460at_fn_diff_devnull "$at_stderr" || at_failed=:
116461at_fn_diff_devnull "$at_stdout" || at_failed=:
116462at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3062"
116463$at_failed && at_fn_log_failure
116464$at_traceon; }
116465
116466  set +x
116467  $at_times_p && times >"$at_times_file"
116468) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116469read at_status <"$at_status_file"
116470#AT_STOP_1008
116471#AT_START_1009
116472at_fn_group_banner 1009 'run_extensions.at:3066' \
116473  "REDEFINES: non-referenced ambiguous item" "       " 4
116474at_xfail=no
116475(
116476  $as_echo "1009. $at_setup_line: testing $at_desc ..."
116477  $at_traceon
116478
116479
116480
116481# bad extension, supported for compatibility to at least MicroFocus
116482# the redefines always applies to the item defined before
116483
116484cat >prog.cob <<'_ATEOF'
116485
116486       IDENTIFICATION   DIVISION.
116487       PROGRAM-ID.      prog.
116488       DATA             DIVISION.
116489       WORKING-STORAGE  SECTION.
116490       01 X             PIC X value '1'.
116491       01 X             PIC X value '2'.
116492       01 G             REDEFINES X PIC 9.
116493       PROCEDURE        DIVISION.
116494           IF G NOT = 2
116495              DISPLAY 'G IS ' G.
116496           STOP RUN.
116497_ATEOF
116498
116499
116500# syntax checked in syn_definition.at
116501{ set +x
116502$as_echo "$at_srcdir/run_extensions.at:3087: \$COMPILE -w prog.cob"
116503at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_extensions.at:3087"
116504( $at_check_trace; $COMPILE -w prog.cob
116505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116506at_status=$? at_failed=false
116507$at_check_filter
116508at_fn_diff_devnull "$at_stderr" || at_failed=:
116509at_fn_diff_devnull "$at_stdout" || at_failed=:
116510at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3087"
116511$at_failed && at_fn_log_failure
116512$at_traceon; }
116513
116514{ set +x
116515$as_echo "$at_srcdir/run_extensions.at:3088: \$COBCRUN_DIRECT ./prog"
116516at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3088"
116517( $at_check_trace; $COBCRUN_DIRECT ./prog
116518) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116519at_status=$? at_failed=false
116520$at_check_filter
116521at_fn_diff_devnull "$at_stderr" || at_failed=:
116522at_fn_diff_devnull "$at_stdout" || at_failed=:
116523at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3088"
116524$at_failed && at_fn_log_failure
116525$at_traceon; }
116526
116527  set +x
116528  $at_times_p && times >"$at_times_file"
116529) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116530read at_status <"$at_status_file"
116531#AT_STOP_1009
116532#AT_START_1010
116533at_fn_group_banner 1010 'run_extensions.at:3092' \
116534  "Obsolete 2002 keywords with COBOL2014" "          " 4
116535at_xfail=no
116536(
116537  $as_echo "1010. $at_setup_line: testing $at_desc ..."
116538  $at_traceon
116539
116540
116541
116542cat >prog.cob <<'_ATEOF'
116543
116544       IDENTIFICATION   DIVISION.
116545       PROGRAM-ID.      prog.
116546       DATA             DIVISION.
116547       WORKING-STORAGE  SECTION.
116548       01  TERMINAL     PIC XX VALUE "OK".
116549       01  SEND         PIC XX VALUE "OK".
116550       PROCEDURE        DIVISION.
116551           DISPLAY TERMINAL SEND.
116552           STOP RUN.
116553_ATEOF
116554
116555
116556{ set +x
116557$as_echo "$at_srcdir/run_extensions.at:3107: \$COMPILE -std=cobol2002 prog.cob"
116558at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "run_extensions.at:3107"
116559( $at_check_trace; $COMPILE -std=cobol2002 prog.cob
116560) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116561at_status=$? at_failed=false
116562$at_check_filter
116563echo >>"$at_stderr"; $as_echo "prog.cob:6: error: syntax error, unexpected TERMINAL
116564prog.cob:7: error: syntax error, unexpected SEND
116565prog.cob:9: error: syntax error, unexpected TERMINAL, expecting (
116566" | \
116567  $at_diff - "$at_stderr" || at_failed=:
116568at_fn_diff_devnull "$at_stdout" || at_failed=:
116569at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3107"
116570$at_failed && at_fn_log_failure
116571$at_traceon; }
116572
116573{ set +x
116574$as_echo "$at_srcdir/run_extensions.at:3112: \$COMPILE -std=cobol2014 prog.cob"
116575at_fn_check_prepare_dynamic "$COMPILE -std=cobol2014 prog.cob" "run_extensions.at:3112"
116576( $at_check_trace; $COMPILE -std=cobol2014 prog.cob
116577) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116578at_status=$? at_failed=false
116579$at_check_filter
116580at_fn_diff_devnull "$at_stderr" || at_failed=:
116581at_fn_diff_devnull "$at_stdout" || at_failed=:
116582at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3112"
116583$at_failed && at_fn_log_failure
116584$at_traceon; }
116585
116586{ set +x
116587$as_echo "$at_srcdir/run_extensions.at:3113: \$COBCRUN_DIRECT ./prog"
116588at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3113"
116589( $at_check_trace; $COBCRUN_DIRECT ./prog
116590) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116591at_status=$? at_failed=false
116592$at_check_filter
116593at_fn_diff_devnull "$at_stderr" || at_failed=:
116594echo >>"$at_stdout"; $as_echo "OKOK
116595" | \
116596  $at_diff - "$at_stdout" || at_failed=:
116597at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3113"
116598$at_failed && at_fn_log_failure
116599$at_traceon; }
116600
116601
116602  set +x
116603  $at_times_p && times >"$at_times_file"
116604) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116605read at_status <"$at_status_file"
116606#AT_STOP_1010
116607#AT_START_1011
116608at_fn_group_banner 1011 'run_extensions.at:3122' \
116609  "System routine with wrong number of parameters" " " 4
116610at_xfail=no
116611(
116612  $as_echo "1011. $at_setup_line: testing $at_desc ..."
116613  $at_traceon
116614
116615
116616
116617cat >prog.cob <<'_ATEOF'
116618
116619       IDENTIFICATION   DIVISION.
116620       PROGRAM-ID.      prog.
116621       DATA             DIVISION.
116622       WORKING-STORAGE  SECTION.
116623       01  N            PIC 9 USAGE BINARY.
116624       77  X            PIC X.
116625       PROCEDURE        DIVISION.
116626           CALL "C$NARG" USING N X
116627           END-CALL
116628           IF N NOT = 2
116629              DISPLAY "NOTOK " N
116630              END-DISPLAY
116631           END-IF
116632           STOP RUN.
116633_ATEOF
116634
116635
116636cat >wrong.cob <<'_ATEOF'
116637
116638       IDENTIFICATION   DIVISION.
116639       PROGRAM-ID.      wrong.
116640       DATA             DIVISION.
116641       WORKING-STORAGE  SECTION.
116642       77  X            PIC X.
116643       PROCEDURE        DIVISION.
116644           CALL "CBL_OR" USING X
116645           END-CALL
116646           STOP RUN.
116647_ATEOF
116648
116649
116650{ set +x
116651$as_echo "$at_srcdir/run_extensions.at:3154: \$COMPILE wrong.cob"
116652at_fn_check_prepare_dynamic "$COMPILE wrong.cob" "run_extensions.at:3154"
116653( $at_check_trace; $COMPILE wrong.cob
116654) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116655at_status=$? at_failed=false
116656$at_check_filter
116657echo >>"$at_stderr"; $as_echo "wrong.cob:8: error: wrong number of CALL parameters for 'CBL_OR', 1 given, 3 expected
116658" | \
116659  $at_diff - "$at_stderr" || at_failed=:
116660at_fn_diff_devnull "$at_stdout" || at_failed=:
116661at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3154"
116662$at_failed && at_fn_log_failure
116663$at_traceon; }
116664
116665{ set +x
116666$as_echo "$at_srcdir/run_extensions.at:3157: \$COMPILE prog.cob"
116667at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3157"
116668( $at_check_trace; $COMPILE prog.cob
116669) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116670at_status=$? at_failed=false
116671$at_check_filter
116672echo >>"$at_stderr"; $as_echo "prog.cob:9: warning: wrong number of CALL parameters for 'C\$NARG', 2 given, 1 expected
116673" | \
116674  $at_diff - "$at_stderr" || at_failed=:
116675at_fn_diff_devnull "$at_stdout" || at_failed=:
116676at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3157"
116677$at_failed && at_fn_log_failure
116678$at_traceon; }
116679
116680{ set +x
116681$as_echo "$at_srcdir/run_extensions.at:3160: \$COBCRUN_DIRECT ./prog 1 2"
116682at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1 2" "run_extensions.at:3160"
116683( $at_check_trace; $COBCRUN_DIRECT ./prog 1 2
116684) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116685at_status=$? at_failed=false
116686$at_check_filter
116687at_fn_diff_devnull "$at_stderr" || at_failed=:
116688at_fn_diff_devnull "$at_stdout" || at_failed=:
116689at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3160"
116690$at_failed && at_fn_log_failure
116691$at_traceon; }
116692
116693
116694  set +x
116695  $at_times_p && times >"$at_times_file"
116696) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116697read at_status <"$at_status_file"
116698#AT_STOP_1011
116699#AT_START_1012
116700at_fn_group_banner 1012 'run_extensions.at:3165' \
116701  "System routine C\$NARG" "                          " 4
116702at_xfail=no
116703(
116704  $as_echo "1012. $at_setup_line: testing $at_desc ..."
116705  $at_traceon
116706
116707
116708
116709cat >callee.cob <<'_ATEOF'
116710
116711       IDENTIFICATION   DIVISION.
116712       PROGRAM-ID.      callee.
116713       DATA             DIVISION.
116714       WORKING-STORAGE  SECTION.
116715       01  X            USAGE BINARY-LONG.
116716       LINKAGE SECTION.
116717       01  Y            PIC   X.
116718       PROCEDURE        DIVISION USING Y.
116719           CALL "C$NARG" USING X
116720           END-CALL
116721           IF X NOT = 1
116722              DISPLAY "NOTOK callee " X
116723              END-DISPLAY
116724           END-IF
116725           EXIT PROGRAM.
116726_ATEOF
116727
116728
116729cat >caller.cob <<'_ATEOF'
116730
116731       IDENTIFICATION   DIVISION.
116732       PROGRAM-ID.      caller.
116733       DATA             DIVISION.
116734       WORKING-STORAGE  SECTION.
116735       01  X            PIC X VALUE "X".
116736       01  N            PIC 9 USAGE BINARY.
116737       LINKAGE SECTION.
116738       77  Y            PIC X.
116739       77  Z            PIC X.
116740       PROCEDURE        DIVISION.
116741           CALL "C$NARG" USING N
116742           END-CALL
116743           IF N NOT = 2
116744              DISPLAY "NOTOK caller (1) " N
116745              END-DISPLAY
116746           END-IF
116747           CALL "callee" USING X
116748           END-CALL
116749           CALL "C$NARG" USING N
116750           END-CALL
116751           IF N NOT = 2
116752              DISPLAY "NOTOK caller (2) " N
116753              END-DISPLAY
116754           END-IF
116755           STOP RUN.
116756_ATEOF
116757
116758
116759cat >prog.cob <<'_ATEOF'
116760
116761       IDENTIFICATION   DIVISION.
116762       PROGRAM-ID.      prog.
116763       DATA             DIVISION.
116764       WORKING-STORAGE  SECTION.
116765       01  N            PIC 9 USAGE BINARY.
116766       LINKAGE SECTION.
116767       77  X            PIC X.
116768       77  Y            PIC X.
116769       77  Z            PIC X.
116770       PROCEDURE        DIVISION.
116771           CALL "C$NARG" USING N
116772           END-CALL
116773           DISPLAY N WITH NO ADVANCING
116774           END-DISPLAY
116775           STOP RUN.
116776_ATEOF
116777
116778
116779{ set +x
116780$as_echo "$at_srcdir/run_extensions.at:3232: \$COMPILE caller.cob"
116781at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3232"
116782( $at_check_trace; $COMPILE caller.cob
116783) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116784at_status=$? at_failed=false
116785$at_check_filter
116786at_fn_diff_devnull "$at_stderr" || at_failed=:
116787at_fn_diff_devnull "$at_stdout" || at_failed=:
116788at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3232"
116789$at_failed && at_fn_log_failure
116790$at_traceon; }
116791
116792{ set +x
116793$as_echo "$at_srcdir/run_extensions.at:3233: \$COMPILE_MODULE callee.cob"
116794at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3233"
116795( $at_check_trace; $COMPILE_MODULE callee.cob
116796) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116797at_status=$? at_failed=false
116798$at_check_filter
116799at_fn_diff_devnull "$at_stderr" || at_failed=:
116800at_fn_diff_devnull "$at_stdout" || at_failed=:
116801at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3233"
116802$at_failed && at_fn_log_failure
116803$at_traceon; }
116804
116805{ set +x
116806$as_echo "$at_srcdir/run_extensions.at:3234: \$COBCRUN_DIRECT ./caller 1 2"
116807at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller 1 2" "run_extensions.at:3234"
116808( $at_check_trace; $COBCRUN_DIRECT ./caller 1 2
116809) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116810at_status=$? at_failed=false
116811$at_check_filter
116812at_fn_diff_devnull "$at_stderr" || at_failed=:
116813at_fn_diff_devnull "$at_stdout" || at_failed=:
116814at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3234"
116815$at_failed && at_fn_log_failure
116816$at_traceon; }
116817
116818{ set +x
116819$as_echo "$at_srcdir/run_extensions.at:3235: \$COMPILE prog.cob"
116820at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3235"
116821( $at_check_trace; $COMPILE prog.cob
116822) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116823at_status=$? at_failed=false
116824$at_check_filter
116825at_fn_diff_devnull "$at_stderr" || at_failed=:
116826at_fn_diff_devnull "$at_stdout" || at_failed=:
116827at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3235"
116828$at_failed && at_fn_log_failure
116829$at_traceon; }
116830
116831{ set +x
116832$as_echo "$at_srcdir/run_extensions.at:3236: \$COBCRUN_DIRECT ./prog \"1 2\""
116833at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog \"1 2\"" "run_extensions.at:3236"
116834( $at_check_trace; $COBCRUN_DIRECT ./prog "1 2"
116835) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116836at_status=$? at_failed=false
116837$at_check_filter
116838at_fn_diff_devnull "$at_stderr" || at_failed=:
116839echo >>"$at_stdout"; $as_echo "1" | \
116840  $at_diff - "$at_stdout" || at_failed=:
116841at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3236"
116842$at_failed && at_fn_log_failure
116843$at_traceon; }
116844
116845{ set +x
116846$as_echo "$at_srcdir/run_extensions.at:3237: \$COBCRUN_DIRECT ./prog 1 2 3"
116847at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1 2 3" "run_extensions.at:3237"
116848( $at_check_trace; $COBCRUN_DIRECT ./prog 1 2 3
116849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116850at_status=$? at_failed=false
116851$at_check_filter
116852at_fn_diff_devnull "$at_stderr" || at_failed=:
116853echo >>"$at_stdout"; $as_echo "3" | \
116854  $at_diff - "$at_stdout" || at_failed=:
116855at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3237"
116856$at_failed && at_fn_log_failure
116857$at_traceon; }
116858
116859
116860  set +x
116861  $at_times_p && times >"$at_times_file"
116862) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116863read at_status <"$at_status_file"
116864#AT_STOP_1012
116865#AT_START_1013
116866at_fn_group_banner 1013 'run_extensions.at:3242' \
116867  "System routine C\$PARAMSIZE" "                     " 4
116868at_xfail=no
116869(
116870  $as_echo "1013. $at_setup_line: testing $at_desc ..."
116871  $at_traceon
116872
116873
116874
116875cat >callee.cob <<'_ATEOF'
116876
116877       IDENTIFICATION   DIVISION.
116878       PROGRAM-ID.      callee.
116879       DATA             DIVISION.
116880       WORKING-STORAGE  SECTION.
116881       01  X            USAGE BINARY-LONG.
116882       LINKAGE SECTION.
116883       01  Y            PIC   X ANY LENGTH.
116884       PROCEDURE        DIVISION USING Y.
116885           MOVE 1 TO X.
116886           CALL "C$PARAMSIZE" USING X
116887           END-CALL.
116888           IF RETURN-CODE NOT = 2
116889              DISPLAY "NOTOK "  RETURN-CODE
116890              END-DISPLAY
116891           END-IF.
116892           MOVE 0 TO RETURN-CODE.
116893           EXIT PROGRAM.
116894_ATEOF
116895
116896
116897cat >caller.cob <<'_ATEOF'
116898
116899       IDENTIFICATION   DIVISION.
116900       PROGRAM-ID.      caller.
116901       DATA             DIVISION.
116902       WORKING-STORAGE  SECTION.
116903       01  X            PIC XX VALUE "XY".
116904       PROCEDURE        DIVISION.
116905           CALL "callee" USING X
116906           END-CALL.
116907           STOP RUN.
116908_ATEOF
116909
116910
116911{ set +x
116912$as_echo "$at_srcdir/run_extensions.at:3277: \$COMPILE caller.cob"
116913at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3277"
116914( $at_check_trace; $COMPILE caller.cob
116915) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116916at_status=$? at_failed=false
116917$at_check_filter
116918at_fn_diff_devnull "$at_stderr" || at_failed=:
116919at_fn_diff_devnull "$at_stdout" || at_failed=:
116920at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3277"
116921$at_failed && at_fn_log_failure
116922$at_traceon; }
116923
116924{ set +x
116925$as_echo "$at_srcdir/run_extensions.at:3278: \$COMPILE_MODULE callee.cob"
116926at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3278"
116927( $at_check_trace; $COMPILE_MODULE callee.cob
116928) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116929at_status=$? at_failed=false
116930$at_check_filter
116931at_fn_diff_devnull "$at_stderr" || at_failed=:
116932at_fn_diff_devnull "$at_stdout" || at_failed=:
116933at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3278"
116934$at_failed && at_fn_log_failure
116935$at_traceon; }
116936
116937{ set +x
116938$as_echo "$at_srcdir/run_extensions.at:3279: \$COBCRUN_DIRECT ./caller"
116939at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:3279"
116940( $at_check_trace; $COBCRUN_DIRECT ./caller
116941) >>"$at_stdout" 2>>"$at_stderr" 5>&-
116942at_status=$? at_failed=false
116943$at_check_filter
116944at_fn_diff_devnull "$at_stderr" || at_failed=:
116945at_fn_diff_devnull "$at_stdout" || at_failed=:
116946at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3279"
116947$at_failed && at_fn_log_failure
116948$at_traceon; }
116949
116950
116951  set +x
116952  $at_times_p && times >"$at_times_file"
116953) 5>&1 2>&1 7>&- | eval $at_tee_pipe
116954read at_status <"$at_status_file"
116955#AT_STOP_1013
116956#AT_START_1014
116957at_fn_group_banner 1014 'run_extensions.at:3284' \
116958  "System routine C\$CALLEDBY" "                      " 4
116959at_xfail=no
116960(
116961  $as_echo "1014. $at_setup_line: testing $at_desc ..."
116962  $at_traceon
116963
116964
116965
116966cat >callee.cob <<'_ATEOF'
116967
116968       IDENTIFICATION   DIVISION.
116969       PROGRAM-ID.      callee.
116970       DATA             DIVISION.
116971       WORKING-STORAGE  SECTION.
116972       01  X            PIC X(6) VALUE "X".
116973       PROCEDURE        DIVISION.
116974           CALL "C$CALLEDBY" USING X
116975           END-CALL.
116976           IF RETURN-CODE = 1 AND
116977              X = "caller"
116978              DISPLAY "OK" NO ADVANCING
116979              END-DISPLAY
116980           END-IF.
116981           EXIT PROGRAM.
116982_ATEOF
116983
116984
116985cat >caller.cob <<'_ATEOF'
116986
116987       IDENTIFICATION   DIVISION.
116988       PROGRAM-ID.      caller.
116989       DATA             DIVISION.
116990       WORKING-STORAGE  SECTION.
116991       01  X            PIC X(6) VALUE "X".
116992       PROCEDURE        DIVISION.
116993           CALL "C$CALLEDBY" USING X
116994           END-CALL.
116995           IF RETURN-CODE = 0 AND
116996              X = SPACES
116997              DISPLAY "OK" NO ADVANCING
116998              END-DISPLAY
116999           END-IF.
117000           CALL "callee"
117001           END-CALL.
117002           STOP RUN.
117003_ATEOF
117004
117005
117006{ set +x
117007$as_echo "$at_srcdir/run_extensions.at:3323: \$COMPILE caller.cob"
117008at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3323"
117009( $at_check_trace; $COMPILE caller.cob
117010) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117011at_status=$? at_failed=false
117012$at_check_filter
117013at_fn_diff_devnull "$at_stderr" || at_failed=:
117014at_fn_diff_devnull "$at_stdout" || at_failed=:
117015at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3323"
117016$at_failed && at_fn_log_failure
117017$at_traceon; }
117018
117019{ set +x
117020$as_echo "$at_srcdir/run_extensions.at:3324: \$COMPILE_MODULE callee.cob"
117021at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3324"
117022( $at_check_trace; $COMPILE_MODULE callee.cob
117023) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117024at_status=$? at_failed=false
117025$at_check_filter
117026at_fn_diff_devnull "$at_stderr" || at_failed=:
117027at_fn_diff_devnull "$at_stdout" || at_failed=:
117028at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3324"
117029$at_failed && at_fn_log_failure
117030$at_traceon; }
117031
117032{ set +x
117033$as_echo "$at_srcdir/run_extensions.at:3325: \$COBCRUN_DIRECT ./caller"
117034at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:3325"
117035( $at_check_trace; $COBCRUN_DIRECT ./caller
117036) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117037at_status=$? at_failed=false
117038$at_check_filter
117039at_fn_diff_devnull "$at_stderr" || at_failed=:
117040echo >>"$at_stdout"; $as_echo "OKOK" | \
117041  $at_diff - "$at_stdout" || at_failed=:
117042at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3325"
117043$at_failed && at_fn_log_failure
117044$at_traceon; }
117045
117046
117047  set +x
117048  $at_times_p && times >"$at_times_file"
117049) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117050read at_status <"$at_status_file"
117051#AT_STOP_1014
117052#AT_START_1015
117053at_fn_group_banner 1015 'run_extensions.at:3330' \
117054  "System routine C\$JUSTIFY" "                       " 4
117055at_xfail=no
117056(
117057  $as_echo "1015. $at_setup_line: testing $at_desc ..."
117058  $at_traceon
117059
117060
117061
117062cat >prog.cob <<'_ATEOF'
117063
117064       IDENTIFICATION   DIVISION.
117065       PROGRAM-ID.      prog.
117066       DATA             DIVISION.
117067       WORKING-STORAGE  SECTION.
117068       01  X            PIC X(4) VALUE " OK ".
117069       PROCEDURE        DIVISION.
117070           CALL "C$JUSTIFY" USING X "L"
117071           END-CALL.
117072           IF X NOT = "OK  "
117073              DISPLAY X NO ADVANCING
117074              END-DISPLAY
117075           END-IF.
117076           STOP RUN.
117077_ATEOF
117078
117079
117080{ set +x
117081$as_echo "$at_srcdir/run_extensions.at:3349: \$COMPILE prog.cob"
117082at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3349"
117083( $at_check_trace; $COMPILE prog.cob
117084) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117085at_status=$? at_failed=false
117086$at_check_filter
117087at_fn_diff_devnull "$at_stderr" || at_failed=:
117088at_fn_diff_devnull "$at_stdout" || at_failed=:
117089at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3349"
117090$at_failed && at_fn_log_failure
117091$at_traceon; }
117092
117093{ set +x
117094$as_echo "$at_srcdir/run_extensions.at:3350: \$COBCRUN_DIRECT ./prog"
117095at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3350"
117096( $at_check_trace; $COBCRUN_DIRECT ./prog
117097) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117098at_status=$? at_failed=false
117099$at_check_filter
117100at_fn_diff_devnull "$at_stderr" || at_failed=:
117101at_fn_diff_devnull "$at_stdout" || at_failed=:
117102at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3350"
117103$at_failed && at_fn_log_failure
117104$at_traceon; }
117105
117106
117107  set +x
117108  $at_times_p && times >"$at_times_file"
117109) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117110read at_status <"$at_status_file"
117111#AT_STOP_1015
117112#AT_START_1016
117113at_fn_group_banner 1016 'run_extensions.at:3355' \
117114  "System routine C\$PRINTABLE" "                     " 4
117115at_xfail=no
117116(
117117  $as_echo "1016. $at_setup_line: testing $at_desc ..."
117118  $at_traceon
117119
117120
117121
117122cat >prog.cob <<'_ATEOF'
117123
117124       IDENTIFICATION   DIVISION.
117125       PROGRAM-ID.      prog.
117126       DATA             DIVISION.
117127       WORKING-STORAGE  SECTION.
117128       01  X.
117129           03  X1       PIC X.
117130           03  X234     PIC XXX.
117131       PROCEDURE        DIVISION.
117132           MOVE LOW-VALUE TO X1.
117133           MOVE "BCD"     TO X234.
117134           CALL "C$PRINTABLE" USING X
117135           END-CALL.
117136           IF X NOT = ".BCD"
117137              DISPLAY X NO ADVANCING
117138              END-DISPLAY
117139           END-IF.
117140           STOP RUN.
117141_ATEOF
117142
117143
117144{ set +x
117145$as_echo "$at_srcdir/run_extensions.at:3378: \$COMPILE prog.cob"
117146at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3378"
117147( $at_check_trace; $COMPILE prog.cob
117148) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117149at_status=$? at_failed=false
117150$at_check_filter
117151at_fn_diff_devnull "$at_stderr" || at_failed=:
117152at_fn_diff_devnull "$at_stdout" || at_failed=:
117153at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3378"
117154$at_failed && at_fn_log_failure
117155$at_traceon; }
117156
117157{ set +x
117158$as_echo "$at_srcdir/run_extensions.at:3379: \$COBCRUN_DIRECT ./prog"
117159at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3379"
117160( $at_check_trace; $COBCRUN_DIRECT ./prog
117161) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117162at_status=$? at_failed=false
117163$at_check_filter
117164at_fn_diff_devnull "$at_stderr" || at_failed=:
117165at_fn_diff_devnull "$at_stdout" || at_failed=:
117166at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3379"
117167$at_failed && at_fn_log_failure
117168$at_traceon; }
117169
117170
117171  set +x
117172  $at_times_p && times >"$at_times_file"
117173) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117174read at_status <"$at_status_file"
117175#AT_STOP_1016
117176#AT_START_1017
117177at_fn_group_banner 1017 'run_extensions.at:3384' \
117178  "System routine C\$MAKEDIR" "                       " 4
117179at_xfail=no
117180(
117181  $as_echo "1017. $at_setup_line: testing $at_desc ..."
117182  $at_traceon
117183
117184
117185
117186cat >prog.cob <<'_ATEOF'
117187
117188       IDENTIFICATION   DIVISION.
117189       PROGRAM-ID.      prog.
117190       DATA             DIVISION.
117191       WORKING-STORAGE  SECTION.
117192       PROCEDURE        DIVISION.
117193           CALL "C$MAKEDIR" USING "TMP"
117194           END-CALL.
117195           STOP RUN.
117196_ATEOF
117197
117198
117199{ set +x
117200$as_echo "$at_srcdir/run_extensions.at:3398: \$COMPILE prog.cob"
117201at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3398"
117202( $at_check_trace; $COMPILE prog.cob
117203) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117204at_status=$? at_failed=false
117205$at_check_filter
117206at_fn_diff_devnull "$at_stderr" || at_failed=:
117207at_fn_diff_devnull "$at_stdout" || at_failed=:
117208at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3398"
117209$at_failed && at_fn_log_failure
117210$at_traceon; }
117211
117212{ set +x
117213$as_echo "$at_srcdir/run_extensions.at:3399: \$COBCRUN_DIRECT ./prog"
117214at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3399"
117215( $at_check_trace; $COBCRUN_DIRECT ./prog
117216) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117217at_status=$? at_failed=false
117218$at_check_filter
117219at_fn_diff_devnull "$at_stderr" || at_failed=:
117220at_fn_diff_devnull "$at_stdout" || at_failed=:
117221at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3399"
117222$at_failed && at_fn_log_failure
117223$at_traceon; }
117224
117225{ set +x
117226$as_echo "$at_srcdir/run_extensions.at:3400: test -d \"TMP\" && rmdir \"TMP\""
117227at_fn_check_prepare_trace "run_extensions.at:3400"
117228( $at_check_trace; test -d "TMP" && rmdir "TMP"
117229) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117230at_status=$? at_failed=false
117231$at_check_filter
117232at_fn_diff_devnull "$at_stderr" || at_failed=:
117233at_fn_diff_devnull "$at_stdout" || at_failed=:
117234at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3400"
117235$at_failed && at_fn_log_failure
117236$at_traceon; }
117237
117238
117239  set +x
117240  $at_times_p && times >"$at_times_file"
117241) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117242read at_status <"$at_status_file"
117243#AT_STOP_1017
117244#AT_START_1018
117245at_fn_group_banner 1018 'run_extensions.at:3405' \
117246  "System routine C\$GETPID" "                        " 4
117247at_xfail=no
117248(
117249  $as_echo "1018. $at_setup_line: testing $at_desc ..."
117250  $at_traceon
117251
117252
117253
117254cat >prog.cob <<'_ATEOF'
117255
117256       IDENTIFICATION   DIVISION.
117257       PROGRAM-ID.      prog.
117258       DATA             DIVISION.
117259       WORKING-STORAGE  SECTION.
117260       PROCEDURE        DIVISION.
117261           CALL "C$GETPID"
117262           END-CALL.
117263           IF RETURN-CODE = 0
117264              DISPLAY "C$GETPID returned zero!"
117265              END-DISPLAY
117266           END-IF.
117267           MOVE 0 TO RETURN-CODE.
117268           STOP RUN.
117269_ATEOF
117270
117271
117272{ set +x
117273$as_echo "$at_srcdir/run_extensions.at:3424: \$COMPILE prog.cob"
117274at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3424"
117275( $at_check_trace; $COMPILE prog.cob
117276) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117277at_status=$? at_failed=false
117278$at_check_filter
117279at_fn_diff_devnull "$at_stderr" || at_failed=:
117280at_fn_diff_devnull "$at_stdout" || at_failed=:
117281at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3424"
117282$at_failed && at_fn_log_failure
117283$at_traceon; }
117284
117285{ set +x
117286$as_echo "$at_srcdir/run_extensions.at:3425: \$COBCRUN_DIRECT ./prog"
117287at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3425"
117288( $at_check_trace; $COBCRUN_DIRECT ./prog
117289) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117290at_status=$? at_failed=false
117291$at_check_filter
117292at_fn_diff_devnull "$at_stderr" || at_failed=:
117293at_fn_diff_devnull "$at_stdout" || at_failed=:
117294at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3425"
117295$at_failed && at_fn_log_failure
117296$at_traceon; }
117297
117298
117299  set +x
117300  $at_times_p && times >"$at_times_file"
117301) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117302read at_status <"$at_status_file"
117303#AT_STOP_1018
117304#AT_START_1019
117305at_fn_group_banner 1019 'run_extensions.at:3430' \
117306  "System routine C\$TOUPPER" "                       " 4
117307at_xfail=no
117308(
117309  $as_echo "1019. $at_setup_line: testing $at_desc ..."
117310  $at_traceon
117311
117312
117313
117314cat >prog.cob <<'_ATEOF'
117315
117316       IDENTIFICATION   DIVISION.
117317       PROGRAM-ID.      prog.
117318       DATA             DIVISION.
117319       WORKING-STORAGE  SECTION.
117320       01  X            PIC X(2) VALUE "ok".
117321       PROCEDURE        DIVISION.
117322           CALL "C$TOUPPER" USING X BY VALUE 2
117323           END-CALL.
117324           IF X NOT = "OK"
117325              DISPLAY X NO ADVANCING
117326              END-DISPLAY
117327           END-IF.
117328           STOP RUN.
117329_ATEOF
117330
117331
117332{ set +x
117333$as_echo "$at_srcdir/run_extensions.at:3449: \$COMPILE prog.cob"
117334at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3449"
117335( $at_check_trace; $COMPILE prog.cob
117336) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117337at_status=$? at_failed=false
117338$at_check_filter
117339at_fn_diff_devnull "$at_stderr" || at_failed=:
117340at_fn_diff_devnull "$at_stdout" || at_failed=:
117341at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3449"
117342$at_failed && at_fn_log_failure
117343$at_traceon; }
117344
117345{ set +x
117346$as_echo "$at_srcdir/run_extensions.at:3450: \$COBCRUN_DIRECT ./prog"
117347at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3450"
117348( $at_check_trace; $COBCRUN_DIRECT ./prog
117349) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117350at_status=$? at_failed=false
117351$at_check_filter
117352at_fn_diff_devnull "$at_stderr" || at_failed=:
117353at_fn_diff_devnull "$at_stdout" || at_failed=:
117354at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3450"
117355$at_failed && at_fn_log_failure
117356$at_traceon; }
117357
117358
117359  set +x
117360  $at_times_p && times >"$at_times_file"
117361) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117362read at_status <"$at_status_file"
117363#AT_STOP_1019
117364#AT_START_1020
117365at_fn_group_banner 1020 'run_extensions.at:3455' \
117366  "System routine C\$TOLOWER" "                       " 4
117367at_xfail=no
117368(
117369  $as_echo "1020. $at_setup_line: testing $at_desc ..."
117370  $at_traceon
117371
117372
117373
117374cat >prog.cob <<'_ATEOF'
117375
117376       IDENTIFICATION   DIVISION.
117377       PROGRAM-ID.      prog.
117378       DATA             DIVISION.
117379       WORKING-STORAGE  SECTION.
117380       01  X            PIC X(2) VALUE "OK".
117381       PROCEDURE        DIVISION.
117382           CALL "C$TOLOWER" USING X BY VALUE 2
117383           END-CALL.
117384           IF X NOT = "ok"
117385              DISPLAY X NO ADVANCING
117386              END-DISPLAY
117387           END-IF.
117388           STOP RUN.
117389_ATEOF
117390
117391
117392{ set +x
117393$as_echo "$at_srcdir/run_extensions.at:3474: \$COMPILE prog.cob"
117394at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3474"
117395( $at_check_trace; $COMPILE prog.cob
117396) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117397at_status=$? at_failed=false
117398$at_check_filter
117399at_fn_diff_devnull "$at_stderr" || at_failed=:
117400at_fn_diff_devnull "$at_stdout" || at_failed=:
117401at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3474"
117402$at_failed && at_fn_log_failure
117403$at_traceon; }
117404
117405{ set +x
117406$as_echo "$at_srcdir/run_extensions.at:3475: \$COBCRUN_DIRECT ./prog"
117407at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3475"
117408( $at_check_trace; $COBCRUN_DIRECT ./prog
117409) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117410at_status=$? at_failed=false
117411$at_check_filter
117412at_fn_diff_devnull "$at_stderr" || at_failed=:
117413at_fn_diff_devnull "$at_stdout" || at_failed=:
117414at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3475"
117415$at_failed && at_fn_log_failure
117416$at_traceon; }
117417
117418
117419  set +x
117420  $at_times_p && times >"$at_times_file"
117421) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117422read at_status <"$at_status_file"
117423#AT_STOP_1020
117424#AT_START_1021
117425at_fn_group_banner 1021 'run_extensions.at:3480' \
117426  "System routine CBL_OR" "                          " 4
117427at_xfail=no
117428(
117429  $as_echo "1021. $at_setup_line: testing $at_desc ..."
117430  $at_traceon
117431
117432
117433
117434cat >prog.cob <<'_ATEOF'
117435
117436       IDENTIFICATION   DIVISION.
117437       PROGRAM-ID.      prog.
117438       DATA             DIVISION.
117439       WORKING-STORAGE  SECTION.
117440       01  X            PIC X(4) VALUE "0000".
117441       01  Z            PIC X(4) VALUE X"01010101".
117442       PROCEDURE        DIVISION.
117443           CALL "CBL_OR" USING X Z
117444                BY VALUE LENGTH OF Z
117445           END-CALL.
117446           IF Z NOT = "1111"
117447              DISPLAY Z NO ADVANCING
117448              END-DISPLAY
117449           END-IF.
117450           STOP RUN.
117451_ATEOF
117452
117453
117454{ set +x
117455$as_echo "$at_srcdir/run_extensions.at:3501: \$COMPILE prog.cob"
117456at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3501"
117457( $at_check_trace; $COMPILE prog.cob
117458) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117459at_status=$? at_failed=false
117460$at_check_filter
117461at_fn_diff_devnull "$at_stderr" || at_failed=:
117462at_fn_diff_devnull "$at_stdout" || at_failed=:
117463at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3501"
117464$at_failed && at_fn_log_failure
117465$at_traceon; }
117466
117467{ set +x
117468$as_echo "$at_srcdir/run_extensions.at:3502: \$COBCRUN_DIRECT ./prog"
117469at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3502"
117470( $at_check_trace; $COBCRUN_DIRECT ./prog
117471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117472at_status=$? at_failed=false
117473$at_check_filter
117474at_fn_diff_devnull "$at_stderr" || at_failed=:
117475at_fn_diff_devnull "$at_stdout" || at_failed=:
117476at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3502"
117477$at_failed && at_fn_log_failure
117478$at_traceon; }
117479
117480
117481  set +x
117482  $at_times_p && times >"$at_times_file"
117483) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117484read at_status <"$at_status_file"
117485#AT_STOP_1021
117486#AT_START_1022
117487at_fn_group_banner 1022 'run_extensions.at:3507' \
117488  "System routine CBL_NOR" "                         " 4
117489at_xfail=no
117490(
117491  $as_echo "1022. $at_setup_line: testing $at_desc ..."
117492  $at_traceon
117493
117494
117495
117496cat >prog.cob <<'_ATEOF'
117497
117498       IDENTIFICATION   DIVISION.
117499       PROGRAM-ID.      prog.
117500       DATA             DIVISION.
117501       WORKING-STORAGE  SECTION.
117502       01  X            PIC X(4) VALUE X"03030303".
117503       01  Z            PIC X(4) VALUE X"05050505".
117504       PROCEDURE        DIVISION.
117505           CALL "CBL_NOR" USING X Z
117506                BY VALUE LENGTH OF Z
117507           END-CALL.
117508           IF Z NOT = X"F8F8F8F8"
117509              DISPLAY "NG" NO ADVANCING
117510              END-DISPLAY
117511           END-IF.
117512           STOP RUN.
117513_ATEOF
117514
117515
117516{ set +x
117517$as_echo "$at_srcdir/run_extensions.at:3528: \$COMPILE prog.cob"
117518at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3528"
117519( $at_check_trace; $COMPILE prog.cob
117520) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117521at_status=$? at_failed=false
117522$at_check_filter
117523at_fn_diff_devnull "$at_stderr" || at_failed=:
117524at_fn_diff_devnull "$at_stdout" || at_failed=:
117525at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3528"
117526$at_failed && at_fn_log_failure
117527$at_traceon; }
117528
117529{ set +x
117530$as_echo "$at_srcdir/run_extensions.at:3529: \$COBCRUN_DIRECT ./prog"
117531at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3529"
117532( $at_check_trace; $COBCRUN_DIRECT ./prog
117533) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117534at_status=$? at_failed=false
117535$at_check_filter
117536at_fn_diff_devnull "$at_stderr" || at_failed=:
117537at_fn_diff_devnull "$at_stdout" || at_failed=:
117538at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3529"
117539$at_failed && at_fn_log_failure
117540$at_traceon; }
117541
117542
117543  set +x
117544  $at_times_p && times >"$at_times_file"
117545) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117546read at_status <"$at_status_file"
117547#AT_STOP_1022
117548#AT_START_1023
117549at_fn_group_banner 1023 'run_extensions.at:3534' \
117550  "System routine CBL_AND" "                         " 4
117551at_xfail=no
117552(
117553  $as_echo "1023. $at_setup_line: testing $at_desc ..."
117554  $at_traceon
117555
117556
117557
117558cat >prog.cob <<'_ATEOF'
117559
117560       IDENTIFICATION   DIVISION.
117561       PROGRAM-ID.      prog.
117562       DATA             DIVISION.
117563       WORKING-STORAGE  SECTION.
117564       01  X            PIC X(4) VALUE "3333".
117565       01  Z            PIC X(4) VALUE "5555".
117566       PROCEDURE        DIVISION.
117567           CALL "CBL_AND" USING X Z
117568                BY VALUE LENGTH OF Z
117569           END-CALL.
117570           IF Z NOT = "1111"
117571              DISPLAY Z NO ADVANCING
117572              END-DISPLAY
117573           END-IF.
117574           STOP RUN.
117575_ATEOF
117576
117577
117578{ set +x
117579$as_echo "$at_srcdir/run_extensions.at:3555: \$COMPILE prog.cob"
117580at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3555"
117581( $at_check_trace; $COMPILE prog.cob
117582) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117583at_status=$? at_failed=false
117584$at_check_filter
117585at_fn_diff_devnull "$at_stderr" || at_failed=:
117586at_fn_diff_devnull "$at_stdout" || at_failed=:
117587at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3555"
117588$at_failed && at_fn_log_failure
117589$at_traceon; }
117590
117591{ set +x
117592$as_echo "$at_srcdir/run_extensions.at:3556: \$COBCRUN_DIRECT ./prog"
117593at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3556"
117594( $at_check_trace; $COBCRUN_DIRECT ./prog
117595) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117596at_status=$? at_failed=false
117597$at_check_filter
117598at_fn_diff_devnull "$at_stderr" || at_failed=:
117599at_fn_diff_devnull "$at_stdout" || at_failed=:
117600at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3556"
117601$at_failed && at_fn_log_failure
117602$at_traceon; }
117603
117604
117605  set +x
117606  $at_times_p && times >"$at_times_file"
117607) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117608read at_status <"$at_status_file"
117609#AT_STOP_1023
117610#AT_START_1024
117611at_fn_group_banner 1024 'run_extensions.at:3561' \
117612  "System routine CBL_XOR" "                         " 4
117613at_xfail=no
117614(
117615  $as_echo "1024. $at_setup_line: testing $at_desc ..."
117616  $at_traceon
117617
117618
117619
117620cat >prog.cob <<'_ATEOF'
117621
117622       IDENTIFICATION   DIVISION.
117623       PROGRAM-ID.      prog.
117624       DATA             DIVISION.
117625       WORKING-STORAGE  SECTION.
117626       01  X            PIC X(4) VALUE "3333".
117627       01  Z            PIC X(4) VALUE X"02020202".
117628       PROCEDURE        DIVISION.
117629           CALL "CBL_XOR" USING X Z
117630                BY VALUE LENGTH OF Z
117631           END-CALL.
117632           IF Z NOT = "1111"
117633              DISPLAY Z NO ADVANCING
117634              END-DISPLAY
117635           END-IF.
117636           STOP RUN.
117637_ATEOF
117638
117639
117640{ set +x
117641$as_echo "$at_srcdir/run_extensions.at:3582: \$COMPILE prog.cob"
117642at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3582"
117643( $at_check_trace; $COMPILE prog.cob
117644) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117645at_status=$? at_failed=false
117646$at_check_filter
117647at_fn_diff_devnull "$at_stderr" || at_failed=:
117648at_fn_diff_devnull "$at_stdout" || at_failed=:
117649at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3582"
117650$at_failed && at_fn_log_failure
117651$at_traceon; }
117652
117653{ set +x
117654$as_echo "$at_srcdir/run_extensions.at:3583: \$COBCRUN_DIRECT ./prog"
117655at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3583"
117656( $at_check_trace; $COBCRUN_DIRECT ./prog
117657) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117658at_status=$? at_failed=false
117659$at_check_filter
117660at_fn_diff_devnull "$at_stderr" || at_failed=:
117661at_fn_diff_devnull "$at_stdout" || at_failed=:
117662at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3583"
117663$at_failed && at_fn_log_failure
117664$at_traceon; }
117665
117666
117667  set +x
117668  $at_times_p && times >"$at_times_file"
117669) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117670read at_status <"$at_status_file"
117671#AT_STOP_1024
117672#AT_START_1025
117673at_fn_group_banner 1025 'run_extensions.at:3588' \
117674  "System routine CBL_IMP" "                         " 4
117675at_xfail=no
117676(
117677  $as_echo "1025. $at_setup_line: testing $at_desc ..."
117678  $at_traceon
117679
117680
117681
117682cat >prog.cob <<'_ATEOF'
117683
117684       IDENTIFICATION   DIVISION.
117685       PROGRAM-ID.      prog.
117686       DATA             DIVISION.
117687       WORKING-STORAGE  SECTION.
117688       01  X            PIC X(4) VALUE HIGH-VALUE.
117689       01  Z            PIC X(4) VALUE "1111".
117690       PROCEDURE        DIVISION.
117691           CALL "CBL_IMP" USING X Z
117692                BY VALUE LENGTH OF Z
117693           END-CALL.
117694           IF Z NOT = "1111"
117695              DISPLAY Z NO ADVANCING
117696              END-DISPLAY
117697           END-IF.
117698           STOP RUN.
117699_ATEOF
117700
117701
117702{ set +x
117703$as_echo "$at_srcdir/run_extensions.at:3609: \$COMPILE prog.cob"
117704at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3609"
117705( $at_check_trace; $COMPILE prog.cob
117706) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117707at_status=$? at_failed=false
117708$at_check_filter
117709at_fn_diff_devnull "$at_stderr" || at_failed=:
117710at_fn_diff_devnull "$at_stdout" || at_failed=:
117711at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3609"
117712$at_failed && at_fn_log_failure
117713$at_traceon; }
117714
117715{ set +x
117716$as_echo "$at_srcdir/run_extensions.at:3610: \$COBCRUN_DIRECT ./prog"
117717at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3610"
117718( $at_check_trace; $COBCRUN_DIRECT ./prog
117719) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117720at_status=$? at_failed=false
117721$at_check_filter
117722at_fn_diff_devnull "$at_stderr" || at_failed=:
117723at_fn_diff_devnull "$at_stdout" || at_failed=:
117724at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3610"
117725$at_failed && at_fn_log_failure
117726$at_traceon; }
117727
117728
117729  set +x
117730  $at_times_p && times >"$at_times_file"
117731) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117732read at_status <"$at_status_file"
117733#AT_STOP_1025
117734#AT_START_1026
117735at_fn_group_banner 1026 'run_extensions.at:3615' \
117736  "System routine CBL_NIMP" "                        " 4
117737at_xfail=no
117738(
117739  $as_echo "1026. $at_setup_line: testing $at_desc ..."
117740  $at_traceon
117741
117742
117743
117744cat >prog.cob <<'_ATEOF'
117745
117746       IDENTIFICATION   DIVISION.
117747       PROGRAM-ID.      prog.
117748       DATA             DIVISION.
117749       WORKING-STORAGE  SECTION.
117750       01  X            PIC X(4) VALUE "1111".
117751       01  Z            PIC X(4) VALUE LOW-VALUE.
117752       PROCEDURE        DIVISION.
117753           CALL "CBL_NIMP" USING X Z
117754                BY VALUE LENGTH OF Z
117755           END-CALL.
117756           IF Z NOT = "1111"
117757              DISPLAY Z NO ADVANCING
117758              END-DISPLAY
117759           END-IF.
117760           STOP RUN.
117761_ATEOF
117762
117763
117764{ set +x
117765$as_echo "$at_srcdir/run_extensions.at:3636: \$COMPILE prog.cob"
117766at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3636"
117767( $at_check_trace; $COMPILE prog.cob
117768) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117769at_status=$? at_failed=false
117770$at_check_filter
117771at_fn_diff_devnull "$at_stderr" || at_failed=:
117772at_fn_diff_devnull "$at_stdout" || at_failed=:
117773at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3636"
117774$at_failed && at_fn_log_failure
117775$at_traceon; }
117776
117777{ set +x
117778$as_echo "$at_srcdir/run_extensions.at:3637: \$COBCRUN_DIRECT ./prog"
117779at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3637"
117780( $at_check_trace; $COBCRUN_DIRECT ./prog
117781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117782at_status=$? at_failed=false
117783$at_check_filter
117784at_fn_diff_devnull "$at_stderr" || at_failed=:
117785at_fn_diff_devnull "$at_stdout" || at_failed=:
117786at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3637"
117787$at_failed && at_fn_log_failure
117788$at_traceon; }
117789
117790
117791  set +x
117792  $at_times_p && times >"$at_times_file"
117793) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117794read at_status <"$at_status_file"
117795#AT_STOP_1026
117796#AT_START_1027
117797at_fn_group_banner 1027 'run_extensions.at:3642' \
117798  "System routine CBL_NOT" "                         " 4
117799at_xfail=no
117800(
117801  $as_echo "1027. $at_setup_line: testing $at_desc ..."
117802  $at_traceon
117803
117804
117805
117806cat >prog.cob <<'_ATEOF'
117807
117808       IDENTIFICATION   DIVISION.
117809       PROGRAM-ID.      prog.
117810       DATA             DIVISION.
117811       WORKING-STORAGE  SECTION.
117812       01  X            PIC X(4) VALUE HIGH-VALUE.
117813       PROCEDURE        DIVISION.
117814           CALL "CBL_NOT" USING X
117815                BY VALUE LENGTH OF X
117816           END-CALL.
117817           IF X NOT = LOW-VALUE
117818              DISPLAY "NG" NO ADVANCING
117819              END-DISPLAY
117820           END-IF.
117821           STOP RUN.
117822_ATEOF
117823
117824
117825{ set +x
117826$as_echo "$at_srcdir/run_extensions.at:3662: \$COMPILE prog.cob"
117827at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3662"
117828( $at_check_trace; $COMPILE prog.cob
117829) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117830at_status=$? at_failed=false
117831$at_check_filter
117832at_fn_diff_devnull "$at_stderr" || at_failed=:
117833at_fn_diff_devnull "$at_stdout" || at_failed=:
117834at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3662"
117835$at_failed && at_fn_log_failure
117836$at_traceon; }
117837
117838{ set +x
117839$as_echo "$at_srcdir/run_extensions.at:3663: \$COBCRUN_DIRECT ./prog"
117840at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3663"
117841( $at_check_trace; $COBCRUN_DIRECT ./prog
117842) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117843at_status=$? at_failed=false
117844$at_check_filter
117845at_fn_diff_devnull "$at_stderr" || at_failed=:
117846at_fn_diff_devnull "$at_stdout" || at_failed=:
117847at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3663"
117848$at_failed && at_fn_log_failure
117849$at_traceon; }
117850
117851
117852  set +x
117853  $at_times_p && times >"$at_times_file"
117854) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117855read at_status <"$at_status_file"
117856#AT_STOP_1027
117857#AT_START_1028
117858at_fn_group_banner 1028 'run_extensions.at:3668' \
117859  "System routine CBL_EQ" "                          " 4
117860at_xfail=no
117861(
117862  $as_echo "1028. $at_setup_line: testing $at_desc ..."
117863  $at_traceon
117864
117865
117866
117867cat >prog.cob <<'_ATEOF'
117868
117869       IDENTIFICATION   DIVISION.
117870       PROGRAM-ID.      prog.
117871       DATA             DIVISION.
117872       WORKING-STORAGE  SECTION.
117873       01  X            PIC X(4) VALUE HIGH-VALUE.
117874       01  Z            PIC X(4) VALUE "1111".
117875       PROCEDURE        DIVISION.
117876           CALL "CBL_EQ" USING X Z
117877                BY VALUE LENGTH OF Z
117878           END-CALL.
117879           IF Z NOT = "1111"
117880              DISPLAY Z NO ADVANCING
117881              END-DISPLAY
117882           END-IF.
117883           STOP RUN.
117884_ATEOF
117885
117886
117887{ set +x
117888$as_echo "$at_srcdir/run_extensions.at:3689: \$COMPILE prog.cob"
117889at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3689"
117890( $at_check_trace; $COMPILE prog.cob
117891) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117892at_status=$? at_failed=false
117893$at_check_filter
117894at_fn_diff_devnull "$at_stderr" || at_failed=:
117895at_fn_diff_devnull "$at_stdout" || at_failed=:
117896at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3689"
117897$at_failed && at_fn_log_failure
117898$at_traceon; }
117899
117900{ set +x
117901$as_echo "$at_srcdir/run_extensions.at:3690: \$COBCRUN_DIRECT ./prog"
117902at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3690"
117903( $at_check_trace; $COBCRUN_DIRECT ./prog
117904) >>"$at_stdout" 2>>"$at_stderr" 5>&-
117905at_status=$? at_failed=false
117906$at_check_filter
117907at_fn_diff_devnull "$at_stderr" || at_failed=:
117908at_fn_diff_devnull "$at_stdout" || at_failed=:
117909at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3690"
117910$at_failed && at_fn_log_failure
117911$at_traceon; }
117912
117913
117914  set +x
117915  $at_times_p && times >"$at_times_file"
117916) 5>&1 2>&1 7>&- | eval $at_tee_pipe
117917read at_status <"$at_status_file"
117918#AT_STOP_1028
117919#AT_START_1029
117920at_fn_group_banner 1029 'run_extensions.at:3695' \
117921  "System routine CBL_GC_GETOPT" "                   " 4
117922at_xfail=no
117923(
117924  $as_echo "1029. $at_setup_line: testing $at_desc ..."
117925  $at_traceon
117926
117927
117928
117929cat >prog.cob <<'_ATEOF'
117930
117931        IDENTIFICATION DIVISION.
117932        PROGRAM-ID. prog.
117933      *> check combination of long and short options
117934        DATA DIVISION.
117935        WORKING-STORAGE SECTION.
117936           01 LO.
117937                05 OPTIONRECORD OCCURS 2 TIMES.
117938                    10 ONAME        PIC X(25).
117939                    10 HAS-VALUE    PIC 9.
117940                    10 VALPOINT     POINTER     VALUE NULL.
117941                    10 VAL          PIC X(4).
117942
117943            01 SO             PIC X(256).
117944            01 LONGIND        PIC 99.
117945            01 LONG-ONLY      PIC 9 VALUE 1.
117946            01 RETURN-CHAR    PIC X(4).
117947            01 OPT-VAL        PIC X(10).
117948            01 RET-DISP       PIC S9 VALUE 0.
117949
117950            01 COUNTER        PIC 9 VALUE 0.
117951        PROCEDURE DIVISION.
117952            MOVE "jkl"     TO SO.
117953
117954            MOVE "version" TO ONAME     (1).
117955            MOVE 0         TO HAS-VALUE (1).
117956            MOVE "v"       TO VAL       (1).
117957
117958            MOVE "verbose" TO ONAME     (2).
117959            MOVE 0         TO HAS-VALUE (2).
117960            MOVE "V"       TO VAL       (2).
117961
117962            PERFORM WITH TEST AFTER
117963                    VARYING COUNTER FROM 0 BY 1
117964                    UNTIL RETURN-CODE = -1
117965               CALL 'CBL_GC_GETOPT' USING
117966                  BY REFERENCE SO LO LONGIND
117967                  BY VALUE     LONG-ONLY
117968                  BY REFERENCE RETURN-CHAR OPT-VAL
117969               END-CALL
117970
117971               EVALUATE COUNTER
117972                  WHEN 0
117973                     IF RETURN-CHAR NOT = 'v' THEN
117974                        DISPLAY '0-ERROR: ' RETURN-CHAR END-DISPLAY
117975                     END-IF
117976                  WHEN 1
117977                     IF RETURN-CHAR NOT = 'V' THEN
117978                        DISPLAY '1-ERROR: ' RETURN-CHAR END-DISPLAY
117979                     END-IF
117980                  WHEN 2
117981                     IF RETURN-CHAR NOT = 'j' THEN
117982                        DISPLAY '2-ERROR: ' RETURN-CHAR END-DISPLAY
117983                     END-IF
117984                  WHEN 3
117985                     IF RETURN-CHAR NOT = 'k' THEN
117986                        DISPLAY '3-ERROR: ' RETURN-CHAR END-DISPLAY
117987                     END-IF
117988                  WHEN 4
117989                     IF RETURN-CHAR NOT = 'l' THEN
117990                        DISPLAY '4-ERROR: ' RETURN-CHAR END-DISPLAY
117991                     END-IF
117992                  WHEN 5
117993                     IF RETURN-CODE NOT = -1 THEN
117994                        MOVE RETURN-CODE TO RET-DISP
117995                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
117996                        END-DISPLAY
117997                     END-IF
117998                     EXIT PERFORM
117999               END-EVALUATE
118000            END-PERFORM.
118001
118002            MOVE 0 TO RETURN-CODE.
118003
118004            IF COUNTER NOT = 5 THEN
118005               MOVE RETURN-CODE TO RET-DISP
118006               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
118007               END-DISPLAY
118008            END-IF.
118009
118010            STOP RUN.
118011_ATEOF
118012
118013
118014cat >prog2.cob <<'_ATEOF'
118015
118016        IDENTIFICATION DIVISION.
118017        PROGRAM-ID. prog2.
118018      *> check if partial options work correct
118019        DATA DIVISION.
118020        WORKING-STORAGE SECTION.
118021      *> Check with wrong record count
118022
118023
118024            01 LO.
118025                05 OPTIONRECORD OCCURS 3 TIMES.
118026                    10 ONAME        PIC X(25).
118027                    10 HAS-VALUE    PIC 9.
118028                    10 VALPOINT     POINTER     VALUE NULL.
118029                    10 VAL          PIC X(4).
118030
118031            78 SO             VALUE "jkl".
118032            01 LONGIND        PIC 99.
118033            01 LONG-ONLY      PIC 9 VALUE 1.
118034            01 RETURN-CHAR    PIC X(4).
118035            01 OPT-VAL        PIC X(10).
118036            01 RET-DISP       PIC S9 VALUE 0.
118037
118038            01 COUNTER        PIC 9 VALUE 0.
118039        PROCEDURE DIVISION.
118040            MOVE "version" TO ONAME     (1).
118041            MOVE 0         TO HAS-VALUE (1).
118042            MOVE "v"       TO VAL       (1).
118043
118044            MOVE "verbose" TO ONAME     (2).
118045            MOVE 0         TO HAS-VALUE (2).
118046            MOVE "V"       TO VAL       (2).
118047
118048            PERFORM WITH TEST AFTER
118049                    VARYING COUNTER FROM 0 BY 1
118050                    UNTIL RETURN-CODE = -1
118051               CALL 'CBL_GC_GETOPT' USING
118052                  BY REFERENCE SO LO LONGIND
118053                  BY VALUE     LONG-ONLY
118054                  BY REFERENCE RETURN-CHAR OPT-VAL
118055               END-CALL
118056
118057               EVALUATE COUNTER
118058                  WHEN 0
118059                     IF RETURN-CHAR NOT = '?' THEN
118060                        DISPLAY '0-ERROR: ' RETURN-CHAR END-DISPLAY
118061                     END-IF
118062                  WHEN 1
118063                     IF RETURN-CHAR NOT = 'v' THEN
118064                        DISPLAY '1-ERROR: ' RETURN-CHAR END-DISPLAY
118065                     END-IF
118066                  WHEN 2
118067                     IF RETURN-CODE NOT = -1 THEN
118068                        MOVE RETURN-CODE TO RET-DISP
118069                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
118070                        END-DISPLAY
118071                     END-IF
118072                     EXIT PERFORM
118073               END-EVALUATE
118074            END-PERFORM.
118075
118076            MOVE 0 TO RETURN-CODE.
118077
118078            IF COUNTER NOT = 2 THEN
118079               MOVE RETURN-CODE TO RET-DISP
118080               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
118081               END-DISPLAY
118082            END-IF.
118083
118084            STOP RUN.
118085_ATEOF
118086
118087
118088cat >prog3.cob <<'_ATEOF'
118089
118090        IDENTIFICATION DIVISION.
118091        PROGRAM-ID. prog3.
118092      *> check for optional and mandatory parameters
118093        DATA DIVISION.
118094        WORKING-STORAGE SECTION.
118095            01 SO PIC X(128).
118096            01 LO.
118097                05 OPTIONRECORD OCCURS 3 TIMES.
118098                    10 ONAME        PIC X(25).
118099                    10 HAS-VALUE    PIC 9.
118100                    10 VALPOINT     POINTER     VALUE NULL.
118101                    10 VAL          PIC X(4).
118102            01 LONGIND        PIC 99.
118103            01 LONG-ONLY      PIC 9 VALUE 0.
118104            01 RETURN-CHAR    PIC X(4).
118105            01 OPT-VAL        PIC X(10).
118106            01 RET-DISP       PIC S9 VALUE 0.
118107
118108            01 COUNTER        PIC 9 VALUE 0.
118109        PROCEDURE DIVISION.
118110            MOVE "j:k::l"  TO SO.
118111
118112            MOVE "version" TO ONAME     (1).
118113            MOVE 1         TO HAS-VALUE (1).
118114            MOVE "v"       TO VAL       (1).
118115
118116            MOVE "verbose" TO ONAME     (2).
118117            MOVE 2         TO HAS-VALUE (2).
118118            MOVE "V"       TO VAL       (2).
118119
118120            MOVE "usage"   TO ONAME     (3).
118121            MOVE 0         TO HAS-VALUE (3).
118122            MOVE "u"       TO VAL       (3).
118123
118124            PERFORM WITH TEST AFTER
118125                    VARYING COUNTER FROM 0 BY 1
118126                    UNTIL RETURN-CODE = -1
118127               CALL 'CBL_GC_GETOPT' USING
118128                  BY REFERENCE SO LO LONGIND
118129                  BY VALUE     LONG-ONLY
118130                  BY REFERENCE RETURN-CHAR OPT-VAL
118131               END-CALL
118132
118133               EVALUATE COUNTER
118134                  WHEN 0
118135                     IF OPT-VAL(1:4) NOT = 'lang' THEN
118136                        DISPLAY '0-ERROR: ' OPT-VAL END-DISPLAY
118137                     END-IF
118138                  WHEN 1
118139                     IF (OPT-VAL(1:1) NOT = 'k' OR
118140                         RETURN-CHAR  NOT = 'V' OR
118141                         OPT-VAL(1:4)     = 'kang')  THEN
118142                        DISPLAY '1-ERROR: ' OPT-VAL ' ' RETURN-CHAR
118143                        END-DISPLAY
118144                     END-IF
118145                  WHEN 2
118146                     IF RETURN-CHAR NOT = 'u' THEN
118147                        DISPLAY '2-ERROR: ' RETURN-CHAR END-DISPLAY
118148                     END-IF
118149                  WHEN 3
118150                     IF OPT-VAL(1:1) NOT = '5' OR
118151                        RETURN-CHAR  NOT = 'j' THEN
118152                        DISPLAY '3-ERROR: ' OPT-VAL ' ' RETURN-CHAR
118153                        END-DISPLAY
118154                     END-IF
118155                  WHEN 4
118156                     IF OPT-VAL(1:1) NOT = '6' OR
118157                        RETURN-CHAR  NOT = 'k' THEN
118158                        DISPLAY '4-ERROR: ' OPT-VAL ' ' RETURN-CHAR
118159                        END-DISPLAY
118160                     END-IF
118161                  WHEN 5
118162                     IF RETURN-CHAR NOT = 'l' THEN
118163                        DISPLAY '5-ERROR: ' RETURN-CHAR END-DISPLAY
118164                     END-IF
118165                  WHEN 6
118166                     IF RETURN-CODE NOT = -1 THEN
118167                        MOVE RETURN-CODE TO RET-DISP
118168                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
118169                        END-DISPLAY
118170                     END-IF
118171                     EXIT PERFORM
118172               END-EVALUATE
118173            END-PERFORM.
118174
118175            MOVE 0 TO RETURN-CODE.
118176
118177            IF COUNTER NOT = 6 THEN
118178               MOVE RETURN-CODE TO RET-DISP
118179               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
118180               END-DISPLAY
118181            END-IF.
118182
118183            STOP RUN.
118184_ATEOF
118185
118186
118187cat >prog4.cob <<'_ATEOF'
118188
118189        IDENTIFICATION DIVISION.
118190        PROGRAM-ID. prog4.
118191      *> check use of value pointer and trimming of opt-val
118192        DATA DIVISION.
118193        WORKING-STORAGE SECTION.
118194            01 SO PIC X(12).
118195            01 LO.
118196                05 OPTIONRECORD OCCURS 3 TIMES.
118197                    10 ONAME        PIC X(25).
118198                    10 HAS-VALUE    PIC 9.
118199                    10 VALPOINT     POINTER     VALUE NULL.
118200                    10 VAL          PIC X(4).
118201            01 LONGIND          PIC 99.
118202            01 LONG-ONLY        PIC 9 VALUE 1.
118203            01 RETURN-CHAR      PIC X(4).
118204            01 OPT-VAL          PIC X(10).
118205            01 RET-DISP         PIC S999 VALUE 0.
118206
118207            01 COUNTER          PIC 9 VALUE 0.
118208
118209            01 FLAG-VAL         PIC X(4).
118210        procedure division.
118211            MOVE "jkl"       TO SO.
118212
118213            MOVE "static"    TO ONAME     (1).
118214            MOVE 0           TO HAS-VALUE (1).
118215            SET  VALPOINT(1) TO ADDRESS OF FLAG-VAL.
118216            MOVE '1'         TO VAL       (1).
118217
118218            MOVE "dynamic"   TO ONAME     (2).
118219            MOVE 0           TO HAS-VALUE (2).
118220            SET  VALPOINT(2) TO ADDRESS OF FLAG-VAL.
118221            MOVE '0'         TO VAL       (2).
118222
118223            MOVE "usage"     TO ONAME     (3).
118224            MOVE 1           TO HAS-VALUE (3).
118225            MOVE 'u'         TO VAL       (3).
118226
118227            PERFORM WITH TEST AFTER
118228                    VARYING COUNTER FROM 0 BY 1
118229                    UNTIL RETURN-CODE = -1
118230               CALL 'CBL_GC_GETOPT' USING
118231                  BY REFERENCE SO LO LONGIND
118232                  BY VALUE     LONG-ONLY
118233                  BY REFERENCE RETURN-CHAR OPT-VAL
118234               END-CALL
118235
118236               EVALUATE COUNTER
118237                  WHEN 0
118238                     IF RETURN-CODE NOT = 0 OR
118239                        FLAG-VAL    NOT = '1' THEN
118240                        DISPLAY '0-ERROR: ' RET-DISP ' ' FLAG-VAL
118241                        END-DISPLAY
118242                     END-IF
118243                  WHEN 1
118244                     IF RETURN-CODE NOT = 0 OR
118245                        FLAG-VAL    NOT = '0' THEN
118246                        DISPLAY '1-ERROR: ' RET-DISP ' ' FLAG-VAL
118247                        END-DISPLAY
118248                     END-IF
118249                  WHEN 2
118250                     IF RETURN-CHAR NOT = 'u' OR
118251                        RETURN-CODE NOT = 2 THEN
118252                        DISPLAY '2-ERROR: ' RET-DISP ' ' FLAG-VAL
118253                        END-DISPLAY
118254                     END-IF
118255                  WHEN 3
118256                     IF RETURN-CODE NOT = -1 THEN
118257                        MOVE RETURN-CODE TO RET-DISP
118258                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
118259                        END-DISPLAY
118260                     END-IF
118261                     EXIT PERFORM
118262               END-EVALUATE
118263            END-PERFORM.
118264
118265            MOVE 0 TO RETURN-CODE.
118266
118267            IF COUNTER NOT = 3 THEN
118268               MOVE RETURN-CODE TO RET-DISP
118269               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
118270               END-DISPLAY
118271            END-IF.
118272
118273            STOP RUN.
118274_ATEOF
118275
118276
118277cat >prog5.cob <<'_ATEOF'
118278
118279        IDENTIFICATION DIVISION.
118280        PROGRAM-ID. prog5.
118281      *> check for wrong longoption structure
118282        DATA DIVISION.
118283        WORKING-STORAGE SECTION.
118284            01 SO PIC X.
118285            01 LO.
118286                05 OPTIONRECORD OCCURS 2 TIMES.
118287                    10 ONAME        PIC X(45).
118288                    10 HAS-VALUE    PIC 9.
118289                    10 VALPOINT     POINTER     VALUE NULL.
118290                    10 VAL          PIC X(4).
118291            01 LONGIND       PIC 99.
118292            01 LONG-ONLY     PIC 9 VALUE 1.
118293            01 RETURN-CHAR   PIC X(4).
118294            01 OPT-VAL       PIC X(10).
118295            01 RET-DISP      PIC S999 VALUE 0.
118296
118297            01 COUNTER       PIC 9 VALUE 0.
118298
118299            01 FLAG-VAL      PIC 9.
118300        PROCEDURE DIVISION.
118301            MOVE "super-long-option-with-more-than-25-bytes"
118302              TO ONAME(1).
118303            MOVE 0   TO HAS-VALUE(1).
118304            MOVE '1' TO VAL(1).
118305
118306            MOVE "stupid-long-option-with-more-than-25-bytes"
118307              TO ONAME(2).
118308            MOVE 0   TO HAS-VALUE(2).
118309            MOVE '0' TO VAL(2).
118310
118311            PERFORM WITH TEST AFTER
118312                    VARYING COUNTER FROM 0 BY 1
118313                    UNTIL RETURN-CODE = -1
118314               CALL 'CBL_GC_GETOPT' USING
118315                  BY REFERENCE SO LO LONGIND
118316                  BY VALUE     LONG-ONLY
118317                  BY REFERENCE RETURN-CHAR OPT-VAL
118318               END-CALL
118319
118320               EVALUATE COUNTER
118321                  WHEN 0
118322                  WHEN 1
118323                  WHEN 2
118324                     CONTINUE
118325
118326      *>       MOVE RETURN-CODE TO RET-DISP
118327
118328      *>       IF COUNTER = 0 AND RETURN-CODE NOT = 1 THEN
118329      *>          DISPLAY 'RETURN VALUE: ' RET-DISP ' ' FLAG-VAL
118330      *>       END-IF
118331                  WHEN 3
118332                     IF RETURN-CODE NOT = -1 THEN
118333                        MOVE RETURN-CODE TO RET-DISP
118334                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
118335                        END-DISPLAY
118336                     END-IF
118337                     EXIT PERFORM
118338               END-EVALUATE
118339            END-PERFORM.
118340
118341            MOVE 0 TO RETURN-CODE.
118342
118343            IF COUNTER NOT = 3 THEN
118344               MOVE RETURN-CODE TO RET-DISP
118345               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
118346               END-DISPLAY
118347            END-IF.
118348
118349            STOP RUN.
118350_ATEOF
118351
118352
118353{ set +x
118354$as_echo "$at_srcdir/run_extensions.at:4112: \$COMPILE prog.cob"
118355at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4112"
118356( $at_check_trace; $COMPILE prog.cob
118357) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118358at_status=$? at_failed=false
118359$at_check_filter
118360at_fn_diff_devnull "$at_stderr" || at_failed=:
118361at_fn_diff_devnull "$at_stdout" || at_failed=:
118362at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4112"
118363$at_failed && at_fn_log_failure
118364$at_traceon; }
118365
118366{ set +x
118367$as_echo "$at_srcdir/run_extensions.at:4113: \$COBCRUN_DIRECT ./prog --version --verbose -jkl"
118368at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog --version --verbose -jkl" "run_extensions.at:4113"
118369( $at_check_trace; $COBCRUN_DIRECT ./prog --version --verbose -jkl
118370) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118371at_status=$? at_failed=false
118372$at_check_filter
118373at_fn_diff_devnull "$at_stderr" || at_failed=:
118374at_fn_diff_devnull "$at_stdout" || at_failed=:
118375at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4113"
118376$at_failed && at_fn_log_failure
118377$at_traceon; }
118378
118379{ set +x
118380$as_echo "$at_srcdir/run_extensions.at:4114: \$COMPILE_MODULE prog2.cob"
118381at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_extensions.at:4114"
118382( $at_check_trace; $COMPILE_MODULE prog2.cob
118383) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118384at_status=$? at_failed=false
118385$at_check_filter
118386at_fn_diff_devnull "$at_stderr" || at_failed=:
118387at_fn_diff_devnull "$at_stdout" || at_failed=:
118388at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4114"
118389$at_failed && at_fn_log_failure
118390$at_traceon; }
118391
118392{ set +x
118393$as_echo "$at_srcdir/run_extensions.at:4115: \$COBCRUN prog2 --ver --vers"
118394at_fn_check_prepare_dynamic "$COBCRUN prog2 --ver --vers" "run_extensions.at:4115"
118395( $at_check_trace; $COBCRUN prog2 --ver --vers
118396) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118397at_status=$? at_failed=false
118398$at_check_filter
118399echo >>"$at_stderr"; $as_echo "prog2: option '--ver' is ambiguous; possibilities: '--version' '--verbose'
118400" | \
118401  $at_diff - "$at_stderr" || at_failed=:
118402at_fn_diff_devnull "$at_stdout" || at_failed=:
118403at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4115"
118404$at_failed && at_fn_log_failure
118405$at_traceon; }
118406
118407{ set +x
118408$as_echo "$at_srcdir/run_extensions.at:4118: \$COMPILE prog3.cob"
118409at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_extensions.at:4118"
118410( $at_check_trace; $COMPILE prog3.cob
118411) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118412at_status=$? at_failed=false
118413$at_check_filter
118414at_fn_diff_devnull "$at_stderr" || at_failed=:
118415at_fn_diff_devnull "$at_stdout" || at_failed=:
118416at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4118"
118417$at_failed && at_fn_log_failure
118418$at_traceon; }
118419
118420{ set +x
118421$as_echo "$at_srcdir/run_extensions.at:4119: \$COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l"
118422at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l" "run_extensions.at:4119"
118423( $at_check_trace; $COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l
118424) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118425at_status=$? at_failed=false
118426$at_check_filter
118427at_fn_diff_devnull "$at_stderr" || at_failed=:
118428at_fn_diff_devnull "$at_stdout" || at_failed=:
118429at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4119"
118430$at_failed && at_fn_log_failure
118431$at_traceon; }
118432
118433{ set +x
118434$as_echo "$at_srcdir/run_extensions.at:4120: \$COMPILE prog4.cob --free"
118435at_fn_check_prepare_dynamic "$COMPILE prog4.cob --free" "run_extensions.at:4120"
118436( $at_check_trace; $COMPILE prog4.cob --free
118437) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118438at_status=$? at_failed=false
118439$at_check_filter
118440at_fn_diff_devnull "$at_stderr" || at_failed=:
118441at_fn_diff_devnull "$at_stdout" || at_failed=:
118442at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4120"
118443$at_failed && at_fn_log_failure
118444$at_traceon; }
118445
118446{ set +x
118447$as_echo "$at_srcdir/run_extensions.at:4121: \$COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext"
118448at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext" "run_extensions.at:4121"
118449( $at_check_trace; $COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext
118450) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118451at_status=$? at_failed=false
118452$at_check_filter
118453at_fn_diff_devnull "$at_stderr" || at_failed=:
118454at_fn_diff_devnull "$at_stdout" || at_failed=:
118455at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4121"
118456$at_failed && at_fn_log_failure
118457$at_traceon; }
118458
118459# Again a long and system specific error message which we ignore.
118460# Return code 1 is sufficient as proof of hard return (as wanted).
118461{ set +x
118462$as_echo "$at_srcdir/run_extensions.at:4124: \$COMPILE prog5.cob"
118463at_fn_check_prepare_dynamic "$COMPILE prog5.cob" "run_extensions.at:4124"
118464( $at_check_trace; $COMPILE prog5.cob
118465) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118466at_status=$? at_failed=false
118467$at_check_filter
118468at_fn_diff_devnull "$at_stderr" || at_failed=:
118469at_fn_diff_devnull "$at_stdout" || at_failed=:
118470at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4124"
118471$at_failed && at_fn_log_failure
118472$at_traceon; }
118473
118474{ set +x
118475$as_echo "$at_srcdir/run_extensions.at:4125: \$COBCRUN_DIRECT ./prog5 --static"
118476at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog5 --static" "run_extensions.at:4125"
118477( $at_check_trace; $COBCRUN_DIRECT ./prog5 --static
118478) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118479at_status=$? at_failed=false
118480$at_check_filter
118481echo >>"$at_stderr"; $as_echo "libcob: prog5.cob:37: error: Call to CBL_GC_GETOPT with wrong longoption size.
118482" | \
118483  $at_diff - "$at_stderr" || at_failed=:
118484at_fn_diff_devnull "$at_stdout" || at_failed=:
118485at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4125"
118486$at_failed && at_fn_log_failure
118487$at_traceon; }
118488
118489
118490  set +x
118491  $at_times_p && times >"$at_times_file"
118492) 5>&1 2>&1 7>&- | eval $at_tee_pipe
118493read at_status <"$at_status_file"
118494#AT_STOP_1029
118495#AT_START_1030
118496at_fn_group_banner 1030 'run_extensions.at:4132' \
118497  "System routine CBL_GC_FORK" "                     " 4
118498at_xfail=no
118499(
118500  $as_echo "1030. $at_setup_line: testing $at_desc ..."
118501  $at_traceon
118502
118503
118504
118505cat >prog.cob <<'_ATEOF'
118506
118507       IDENTIFICATION DIVISION.
118508       PROGRAM-ID. prog.
118509       DATA DIVISION.
118510       WORKING-STORAGE SECTION.
118511       77 CHILD-PID   USAGE BINARY-LONG.
118512       77 PARENT-PID  USAGE BINARY-LONG.
118513       PROCEDURE DIVISION.
118514
118515           CALL "C$GETPID" RETURNING PARENT-PID
118516           CALL "CBL_GC_FORK" END-CALL
118517           EVALUATE RETURN-CODE
118518              WHEN ZERO
118519                 PERFORM CHILD-CODE
118520              WHEN -1
118521                 STOP RUN RETURNING 77 *> skip test
118522              WHEN OTHER
118523                 PERFORM PARENT-CODE
118524           END-EVALUATE
118525
118526           STOP RUN.
118527
118528       CHILD-CODE.
118529           CALL "C$SLEEP"  USING 1.
118530           DISPLAY "Hello, I am the child".
118531           CALL "C$GETPID" RETURNING CHILD-PID.
118532           IF CHILD-PID = PARENT-PID
118533              DISPLAY "CHILD: parent and child have same PID: "
118534                      "'" CHILD-PID "'" UPON SYSERR
118535              END-DISPLAY
118536           END-IF.
118537           MOVE 0 TO RETURN-CODE.
118538
118539       PARENT-CODE.
118540           DISPLAY "Hello, I am the parent".
118541           CALL "C$SLEEP"  USING 4.
118542           DISPLAY "Parent again".
118543           IF RETURN-CODE = PARENT-PID
118544              DISPLAY "PARENT: parent and child have same PID: "
118545                      "'" PARENT-PID "'" UPON SYSERR
118546              END-DISPLAY
118547           END-IF.
118548           CALL "C$GETPID".
118549           IF RETURN-CODE NOT = PARENT-PID
118550              DISPLAY "PARENT: parent PID has changed: "
118551                      "'" PARENT-PID "' -> '" RETURN-CODE "'"
118552                      UPON SYSERR
118553              END-DISPLAY
118554           END-IF.
118555           MOVE 0 TO RETURN-CODE.
118556_ATEOF
118557
118558
118559{ set +x
118560$as_echo "$at_srcdir/run_extensions.at:4187: \$COMPILE prog.cob"
118561at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4187"
118562( $at_check_trace; $COMPILE prog.cob
118563) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118564at_status=$? at_failed=false
118565$at_check_filter
118566at_fn_diff_devnull "$at_stderr" || at_failed=:
118567at_fn_diff_devnull "$at_stdout" || at_failed=:
118568at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4187"
118569$at_failed && at_fn_log_failure
118570$at_traceon; }
118571
118572
118573{ set +x
118574$as_echo "$at_srcdir/run_extensions.at:4189: \$COBCRUN_DIRECT ./prog"
118575at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4189"
118576( $at_check_trace; $COBCRUN_DIRECT ./prog
118577) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118578at_status=$? at_failed=false
118579$at_check_filter
118580at_fn_diff_devnull "$at_stderr" || at_failed=:
118581echo >>"$at_stdout"; $as_echo "Hello, I am the parent
118582Hello, I am the child
118583Parent again
118584" | \
118585  $at_diff - "$at_stdout" || at_failed=:
118586at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4189"
118587$at_failed && at_fn_log_failure
118588$at_traceon; }
118589
118590
118591  set +x
118592  $at_times_p && times >"$at_times_file"
118593) 5>&1 2>&1 7>&- | eval $at_tee_pipe
118594read at_status <"$at_status_file"
118595#AT_STOP_1030
118596#AT_START_1031
118597at_fn_group_banner 1031 'run_extensions.at:4200' \
118598  "System routine CBL_GC_WAITPID" "                  " 4
118599at_xfail=no
118600(
118601  $as_echo "1031. $at_setup_line: testing $at_desc ..."
118602  $at_traceon
118603
118604
118605
118606cat >prog.cob <<'_ATEOF'
118607
118608       IDENTIFICATION DIVISION.
118609       PROGRAM-ID. prog.
118610       DATA DIVISION.
118611       WORKING-STORAGE SECTION.
118612       01 CHILD-PID   PIC S9(9) BINARY.
118613       01 WAIT-STS    PIC S9(9) BINARY VALUE -3.
118614       PROCEDURE DIVISION.
118615
118616           CALL "CBL_GC_FORK" RETURNING CHILD-PID.
118617           EVALUATE CHILD-PID
118618              WHEN ZERO
118619                 PERFORM CHILD-CODE
118620              WHEN -1
118621                 STOP RUN RETURNING 77 *> skip test
118622              WHEN OTHER
118623                 PERFORM PARENT-CODE
118624           END-EVALUATE.
118625
118626           STOP RUN.
118627
118628       CHILD-CODE.
118629           CALL "C$SLEEP" USING 1.
118630           DISPLAY "Hello, I am the child".
118631           MOVE 2 TO RETURN-CODE.
118632
118633       PARENT-CODE.
118634           DISPLAY "Hello, I am the parent".
118635           CALL "CBL_GC_WAITPID" USING CHILD-PID
118636              RETURNING WAIT-STS
118637           END-CALL
118638           MOVE 0 TO RETURN-CODE
118639           IF WAIT-STS = -1
118640              STOP RUN RETURNING 77 *> skip test
118641           END-IF
118642           DISPLAY "Child ended status " WAIT-STS
118643           END-DISPLAY.
118644_ATEOF
118645
118646
118647{ set +x
118648$as_echo "$at_srcdir/run_extensions.at:4242: \$COMPILE prog.cob"
118649at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4242"
118650( $at_check_trace; $COMPILE prog.cob
118651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118652at_status=$? at_failed=false
118653$at_check_filter
118654at_fn_diff_devnull "$at_stderr" || at_failed=:
118655at_fn_diff_devnull "$at_stdout" || at_failed=:
118656at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4242"
118657$at_failed && at_fn_log_failure
118658$at_traceon; }
118659
118660
118661{ set +x
118662$as_echo "$at_srcdir/run_extensions.at:4244: \$COBCRUN_DIRECT ./prog"
118663at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4244"
118664( $at_check_trace; $COBCRUN_DIRECT ./prog
118665) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118666at_status=$? at_failed=false
118667$at_check_filter
118668at_fn_diff_devnull "$at_stderr" || at_failed=:
118669echo >>"$at_stdout"; $as_echo "Hello, I am the parent
118670Hello, I am the child
118671Child ended status +000000002
118672" | \
118673  $at_diff - "$at_stdout" || at_failed=:
118674at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4244"
118675$at_failed && at_fn_log_failure
118676$at_traceon; }
118677
118678
118679  set +x
118680  $at_times_p && times >"$at_times_file"
118681) 5>&1 2>&1 7>&- | eval $at_tee_pipe
118682read at_status <"$at_status_file"
118683#AT_STOP_1031
118684#AT_START_1032
118685at_fn_group_banner 1032 'run_extensions.at:4252' \
118686  "System routine CBL_GC_HOSTED" "                   " 4
118687at_xfail=no
118688(
118689  $as_echo "1032. $at_setup_line: testing $at_desc ..."
118690  $at_traceon
118691
118692
118693
118694cat >test_errno.c <<'_ATEOF'
118695
118696#include <errno.h>
118697#include <stdio.h>
118698
118699#include <libcob.h>
118700
118701COB_EXT_EXPORT int
118702test_errno(void)
118703{
118704    FILE *fail;
118705    fail = fopen("file-not-to-be-found", "r");
118706    if (errno != 2) {
118707        printf("BAD ERRNO %d", errno);
118708    } else {
118709        if (fail) fclose(fail);
118710    }
118711    return 0;
118712}
118713_ATEOF
118714
118715
118716cat >test_stdio.c <<'_ATEOF'
118717
118718#include <stdio.h>
118719
118720#include <libcob.h>
118721COB_EXT_EXPORT int
118722test_stdio(FILE *si, FILE *so, FILE *se)
118723{
118724    if (feof(si)) {
118725        fprintf(se, "BAD STDIN EOF\n");
118726    }
118727    fprintf(so, "OUT");
118728    return fprintf(se, "ERR");
118729}
118730_ATEOF
118731
118732cat >prog.cob <<'_ATEOF'
118733
118734       IDENTIFICATION DIVISION.
118735       PROGRAM-ID. prog.
118736       DATA DIVISION.
118737       WORKING-STORAGE SECTION.
118738       01 STDIN    USAGE POINTER.
118739       01 STDOUT   USAGE POINTER.
118740       01 STDERR   USAGE POINTER.
118741       01 CELL     USAGE BINARY-LONG.
118742       01 ARGC     USAGE BINARY-LONG.
118743       01 ARGV     USAGE POINTER.
118744       01 ERRPTR   USAGE POINTER.
118745       01 ERRNO    USAGE BINARY-LONG BASED.
118746       01 CERRNO   USAGE BINARY-LONG EXTERNAL AS "errno".
118747       01 TZNAME   USAGE POINTER.
118748       01 TZNAMES  USAGE POINTER BASED.
118749          05 TZS      USAGE POINTER OCCURS 2 TIMES.
118750       01 TIMEZONE USAGE BINARY-C-LONG.
118751       01 DAYLIGHT USAGE BINARY-LONG.
118752       01 EXTPTR   USAGE POINTER. *> only for the check, otherwise unused
118753
118754       PROCEDURE DIVISION.
118755           CALL "CBL_GC_HOSTED" USING STDIN "stdin"
118756           CALL "CBL_GC_HOSTED" USING STDOUT "stdout"
118757           CALL "CBL_GC_HOSTED" USING STDERR "stderr"
118758      *> verify working alias with old name "CBL_OC_HOSTED"
118759           CALL "CBL_OC_HOSTED" USING ARGC "argc"
118760           CALL "CBL_OC_HOSTED" USING ARGV "argv"
118761           CALL "CBL_GC_HOSTED" USING CELL "cell"
118762           CALL "CBL_GC_HOSTED" USING ERRPTR "errno"
118763           CALL "CBL_GC_HOSTED" USING ARGC "arg"
118764           CALL "CBL_GC_HOSTED" USING NULL "argc"
118765           SET ADDRESS OF ERRNO TO ERRPTR
118766           CALL "CBL_GC_HOSTED" USING TZNAME "tzname"
118767           CALL "CBL_GC_HOSTED" USING TIMEZONE "timezone"
118768           CALL "CBL_GC_HOSTED" USING DAYLIGHT "daylight"
118769
118770      *> prog.cob must be compiled with same C runtime as libcob to match...
118771           IF ERRPTR NOT EQUAL ADDRESS OF CERRNO
118772              DISPLAY "ADDRESS OF ERRNO VARIABLES DON'T MATCH"
118773              SET EXTPTR TO ADDRESS OF CERRNO
118774              DISPLAY "HOSTED: "   ERRPTR ", "
118775                      "EXTERNAL: " EXTPTR
118776              END-DISPLAY
118777           END-IF
118778
118779      *> test_errno.c must be compiled with same C runtime as libcob to match...
118780           CALL "test_errno"
118781           IF ERRNO NOT EQUAL 2 THEN
118782              DISPLAY "BAD HOSTED ERRNO " ERRNO
118783              IF CERRNO NOT EQUAL 2 THEN
118784                 DISPLAY "BAD EXTERNAL ERRNO " CERRNO
118785              END-IF
118786           END-IF
118787
118788           IF ARGC NOT EQUAL 2 THEN
118789              DISPLAY "BAD ARGC " ARGC
118790           END-IF
118791           IF ARGV EQUAL NULL THEN
118792              DISPLAY "BAD ARGV"
118793           END-IF
118794
118795           IF CELL LESS THAN 0 OR GREATER THAN 8 THEN
118796              DISPLAY "UNK CELL " CELL
118797           END-IF
118798
118799           SET ENVIRONMENT "TZ" TO "PST8PDT"
118800           CALL "tzset" RETURNING OMITTED
118801              ON EXCEPTION CONTINUE
118802           END-CALL
118803           IF TZNAME NOT EQUAL NULL THEN
118804              SET ADDRESS OF TZNAMES TO TZNAME
118805              IF TZS(1) EQUAL NULL THEN
118806                 DISPLAY "BAD TZNAME" END-DISPLAY
118807              END-IF
118808           END-IF
118809
118810      *> Test assumes return-code will be 3, chars output by last fprintf
118811      *> test_stdio.c must be compiled with same C runtime as libcob to match...
118812           CALL "test_stdio" USING BY VALUE STDIN STDOUT STDERR
118813           END-CALL
118814
118815           STOP RUN.
118816_ATEOF
118817
118818
118819{ set +x
118820$as_echo "$at_srcdir/run_extensions.at:4374: \$COMPILE_MODULE test_errno.c"
118821at_fn_check_prepare_dynamic "$COMPILE_MODULE test_errno.c" "run_extensions.at:4374"
118822( $at_check_trace; $COMPILE_MODULE test_errno.c
118823) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118824at_status=$? at_failed=false
118825$at_check_filter
118826at_fn_diff_devnull "$at_stderr" || at_failed=:
118827at_fn_diff_devnull "$at_stdout" || at_failed=:
118828at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4374"
118829$at_failed && at_fn_log_failure
118830$at_traceon; }
118831
118832{ set +x
118833$as_echo "$at_srcdir/run_extensions.at:4375: \$COMPILE_MODULE test_stdio.c"
118834at_fn_check_prepare_dynamic "$COMPILE_MODULE test_stdio.c" "run_extensions.at:4375"
118835( $at_check_trace; $COMPILE_MODULE test_stdio.c
118836) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118837at_status=$? at_failed=false
118838$at_check_filter
118839at_fn_diff_devnull "$at_stderr" || at_failed=:
118840at_fn_diff_devnull "$at_stdout" || at_failed=:
118841at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4375"
118842$at_failed && at_fn_log_failure
118843$at_traceon; }
118844
118845{ set +x
118846$as_echo "$at_srcdir/run_extensions.at:4376: \$COMPILE prog.cob"
118847at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4376"
118848( $at_check_trace; $COMPILE prog.cob
118849) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118850at_status=$? at_failed=false
118851$at_check_filter
118852at_fn_diff_devnull "$at_stderr" || at_failed=:
118853at_fn_diff_devnull "$at_stdout" || at_failed=:
118854at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4376"
118855$at_failed && at_fn_log_failure
118856$at_traceon; }
118857
118858{ set +x
118859$as_echo "$at_srcdir/run_extensions.at:4377: \$COBCRUN_DIRECT ./prog 1ARG"
118860at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1ARG" "run_extensions.at:4377"
118861( $at_check_trace; $COBCRUN_DIRECT ./prog 1ARG
118862) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118863at_status=$? at_failed=false
118864$at_check_filter
118865echo >>"$at_stderr"; $as_echo "ERR" | \
118866  $at_diff - "$at_stderr" || at_failed=:
118867echo >>"$at_stdout"; $as_echo "OUT" | \
118868  $at_diff - "$at_stdout" || at_failed=:
118869at_fn_check_status 3 $at_status "$at_srcdir/run_extensions.at:4377"
118870$at_failed && at_fn_log_failure
118871$at_traceon; }
118872
118873
118874  set +x
118875  $at_times_p && times >"$at_times_file"
118876) 5>&1 2>&1 7>&- | eval $at_tee_pipe
118877read at_status <"$at_status_file"
118878#AT_STOP_1032
118879#AT_START_1033
118880at_fn_group_banner 1033 'run_extensions.at:4382' \
118881  "System routine SYSTEM, parameter handling" "      " 4
118882at_xfail=no
118883(
118884  $as_echo "1033. $at_setup_line: testing $at_desc ..."
118885  $at_traceon
118886
118887
118888
118889cat >prog.cob <<'_ATEOF'
118890
118891       IDENTIFICATION DIVISION.
118892       PROGRAM-ID. prog.
118893
118894       DATA DIVISION.
118895       WORKING-STORAGE SECTION.
118896      *
118897       77  test-no                    PIC 9 VALUE 0.
118898       77  chaining-param             PIC X(20).
118899       77  chaining-param-2           PIC X(20).
118900      *
118901       PROCEDURE DIVISION CHAINING chaining-param, chaining-param-2.
118902      *
118903       main.
118904           EVALUATE chaining-param ALSO chaining-param-2
118905              WHEN SPACES  ALSO SPACES
118906                 DISPLAY "started without options - closing"
118907              WHEN "1"     ALSO SPACES
118908              WHEN '"1"'   ALSO SPACES
118909              WHEN "a v"   ALSO SPACES
118910              WHEN '"a v"' ALSO SPACES
118911                 DISPLAY "  called with -"
118912                         function trim (chaining-param) "-"
118913              WHEN "a"    ALSO "v"
118914                 DISPLAY "  called with -"
118915                         FUNCTION TRIM (chaining-param) "-"
118916                         " and with -"
118917                         FUNCTION TRIM (chaining-param-2) "-"
118918              WHEN "start" ALSO SPACES
118919                 MOVE 'prog 1'         TO chaining-param
118920                 PERFORM callme
118921                 MOVE 'prog "1"'       TO chaining-param
118922                 PERFORM callme
118923                 MOVE '"prog" 1'       TO chaining-param
118924                 PERFORM callme
118925                 MOVE '"prog" "1"'     TO chaining-param
118926                 PERFORM callme
118927                 MOVE 'prog a v'       TO chaining-param
118928                 PERFORM callme
118929                 MOVE 'prog "a v"'     TO chaining-param
118930                 PERFORM callme
118931                 MOVE '"prog" a v'     TO chaining-param
118932                 PERFORM callme
118933                 MOVE '"prog" "a v"'   TO chaining-param
118934                 PERFORM callme
118935                 MOVE '"prog" "a" "v"' TO chaining-param
118936                 PERFORM callme
118937                 DISPLAY "tests finished"
118938              WHEN OTHER
118939                 DISPLAY "called with unexpected -"
118940                         FUNCTION TRIM (chaining-param) "-"
118941           END-EVALUATE
118942           STOP RUN.
118943      *
118944       callme.
118945           ADD  1 TO test-no.
118946           DISPLAY "Test #" test-no ":"
118947           DISPLAY "  CALL 'SYSTEM' with "
118948                   FUNCTION TRIM (chaining-param) ":"
118949           CALL "SYSTEM" USING FUNCTION TRIM (chaining-param)
118950           DISPLAY "  --> return of the given CALL 'SYSTEM': "
118951                   return-code.
118952_ATEOF
118953
118954
118955{ set +x
118956$as_echo "$at_srcdir/run_extensions.at:4449: \$COMPILE prog.cob"
118957at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4449"
118958( $at_check_trace; $COMPILE prog.cob
118959) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118960at_status=$? at_failed=false
118961$at_check_filter
118962at_fn_diff_devnull "$at_stderr" || at_failed=:
118963at_fn_diff_devnull "$at_stdout" || at_failed=:
118964at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4449"
118965$at_failed && at_fn_log_failure
118966$at_traceon; }
118967
118968{ set +x
118969$as_echo "$at_srcdir/run_extensions.at:4450: PATH=.:\$PATH \$COBCRUN_DIRECT prog \"start\""
118970at_fn_check_prepare_dynamic "PATH=.:$PATH $COBCRUN_DIRECT prog \"start\"" "run_extensions.at:4450"
118971( $at_check_trace; PATH=.:$PATH $COBCRUN_DIRECT prog "start"
118972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
118973at_status=$? at_failed=false
118974$at_check_filter
118975at_fn_diff_devnull "$at_stderr" || at_failed=:
118976echo >>"$at_stdout"; $as_echo "Test #1:
118977  CALL 'SYSTEM' with prog 1:
118978  called with -1-
118979  --> return of the given CALL 'SYSTEM': +000000000
118980Test #2:
118981  CALL 'SYSTEM' with prog \"1\":
118982  called with -1-
118983  --> return of the given CALL 'SYSTEM': +000000000
118984Test #3:
118985  CALL 'SYSTEM' with \"prog\" 1:
118986  called with -1-
118987  --> return of the given CALL 'SYSTEM': +000000000
118988Test #4:
118989  CALL 'SYSTEM' with \"prog\" \"1\":
118990  called with -1-
118991  --> return of the given CALL 'SYSTEM': +000000000
118992Test #5:
118993  CALL 'SYSTEM' with prog a v:
118994  called with -a- and with -v-
118995  --> return of the given CALL 'SYSTEM': +000000000
118996Test #6:
118997  CALL 'SYSTEM' with prog \"a v\":
118998  called with -a v-
118999  --> return of the given CALL 'SYSTEM': +000000000
119000Test #7:
119001  CALL 'SYSTEM' with \"prog\" a v:
119002  called with -a- and with -v-
119003  --> return of the given CALL 'SYSTEM': +000000000
119004Test #8:
119005  CALL 'SYSTEM' with \"prog\" \"a v\":
119006  called with -a v-
119007  --> return of the given CALL 'SYSTEM': +000000000
119008Test #9:
119009  CALL 'SYSTEM' with \"prog\" \"a\" \"v\":
119010  called with -a- and with -v-
119011  --> return of the given CALL 'SYSTEM': +000000000
119012tests finished
119013" | \
119014  $at_diff - "$at_stdout" || at_failed=:
119015at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4450"
119016$at_failed && at_fn_log_failure
119017$at_traceon; }
119018
119019
119020  set +x
119021  $at_times_p && times >"$at_times_file"
119022) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119023read at_status <"$at_status_file"
119024#AT_STOP_1033
119025#AT_START_1034
119026at_fn_group_banner 1034 'run_extensions.at:4493' \
119027  "System routine CBL_ERROR_PROC (1)" "              " 4
119028at_xfail=no
119029(
119030  $as_echo "1034. $at_setup_line: testing $at_desc ..."
119031  $at_traceon
119032
119033
119034
119035# tests that error handlers work (later for ACU: test for re-ordered)
119036# including multiple error handlers
119037
119038cat >prog.cob <<'_ATEOF'
119039
119040       IDENTIFICATION DIVISION.
119041       PROGRAM-ID. DemoErrProc IS RECURSIVE.
119042       ENVIRONMENT DIVISION.
119043       DATA DIVISION.
119044       WORKING-STORAGE SECTION.
119045       77  Err-Proc-Address            USAGE PROGRAM-POINTER.
119046       77  Err-Message-Len             PIC 9(04) USAGE COMP-5.
119047       LINKAGE SECTION.
119048       77  Err-Message-From-Runtime    PIC X(1023).
119049       PROCEDURE DIVISION.
119050       S1.
119051           DISPLAY 'Program is starting'
119052      *>   Do this for the ACU test, where second call moves top front
119053      *>   SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
119054      *>   CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119055           SET Err-Proc-Address TO ENTRY 'ErrProc'
119056           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119057           SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
119058           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119059      *>   Ensure susbequent CALLs with the same one are ignored (MF!)
119060           SET Err-Proc-Address TO ENTRY 'ErrProc'
119061           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119062           SET Err-Proc-Address TO NULL
119063           CALL 'Tilt' *> THIS DOESN'T EXIST!!!!
119064           DISPLAY 'Program is stopping'
119065           STOP RUN
119066           .
119067       ENTRY 'ErrProc-internal' USING Err-Message-From-Runtime.
119068           DISPLAY 'Error (interal): ' FUNCTION EXCEPTION-LOCATION  '-'
119069           DISPLAY '                 ' FUNCTION EXCEPTION-STATEMENT '-'
119070           DISPLAY '                 ' FUNCTION EXCEPTION-STATUS    '-'
119071           *> NOTE: the error message is *EXPLICIT* specified to end with x'00'
119072           MOVE 0 TO Err-Message-Len
119073           INSPECT Err-Message-From-Runtime
119074              TALLYING Err-Message-Len FOR CHARACTERS BEFORE x'00'
119075           DISPLAY 'Error-Message:   ' Err-Message-From-Runtime
119076                                       (1:Err-Message-Len)
119077           DISPLAY '-*- Returning to Next Error Routine -*-'
119078           MOVE    1         TO RETURN-CODE
119079           EXIT PROGRAM
119080           .
119081       END PROGRAM DemoErrProc.
119082
119083       IDENTIFICATION DIVISION.
119084       PROGRAM-ID. ErrProc.
119085       PROCEDURE DIVISION.
119086       000-Main.
119087           DISPLAY 'Error: ' FUNCTION EXCEPTION-LOCATION  '-'
119088           DISPLAY '       ' FUNCTION EXCEPTION-STATEMENT '-'
119089           DISPLAY '       ' FUNCTION EXCEPTION-STATUS    '-'
119090           DISPLAY '-*- Returning to Standard Error Routine -*-'
119091           MOVE    1         TO RETURN-CODE
119092           EXIT PROGRAM
119093           .
119094       END PROGRAM ErrProc.
119095_ATEOF
119096
119097{ set +x
119098$as_echo "$at_srcdir/run_extensions.at:4557: \$COMPILE prog.cob"
119099at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4557"
119100( $at_check_trace; $COMPILE prog.cob
119101) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119102at_status=$? at_failed=false
119103$at_check_filter
119104at_fn_diff_devnull "$at_stderr" || at_failed=:
119105at_fn_diff_devnull "$at_stdout" || at_failed=:
119106at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4557"
119107$at_failed && at_fn_log_failure
119108$at_traceon; }
119109
119110{ set +x
119111$as_echo "$at_srcdir/run_extensions.at:4558: \$COBCRUN_DIRECT ./prog"
119112at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4558"
119113( $at_check_trace; $COBCRUN_DIRECT ./prog
119114) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119115at_status=$? at_failed=false
119116$at_check_filter
119117echo >>"$at_stderr"; $as_echo "libcob: prog.cob:25: error: module 'Tilt' not found
119118" | \
119119  $at_diff - "$at_stderr" || at_failed=:
119120echo >>"$at_stdout"; $as_echo "Program is starting
119121Error (interal): DemoErrProc; S1; 25-
119122                 CALL                           -
119123                 EC-PROGRAM-NOT-FOUND           -
119124Error-Message:   prog.cob:25: module 'Tilt' not found
119125-*- Returning to Next Error Routine -*-
119126Error: DemoErrProc; S1; 25-
119127       CALL                           -
119128       EC-PROGRAM-NOT-FOUND           -
119129-*- Returning to Standard Error Routine -*-
119130" | \
119131  $at_diff - "$at_stdout" || at_failed=:
119132at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4558"
119133$at_failed && at_fn_log_failure
119134$at_traceon; }
119135
119136
119137{ set +x
119138$as_echo "$at_srcdir/run_extensions.at:4573: \$COBC -x -o prog_noloc prog.cob"
119139at_fn_check_prepare_dynamic "$COBC -x -o prog_noloc prog.cob" "run_extensions.at:4573"
119140( $at_check_trace; $COBC -x -o prog_noloc prog.cob
119141) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119142at_status=$? at_failed=false
119143$at_check_filter
119144at_fn_diff_devnull "$at_stderr" || at_failed=:
119145at_fn_diff_devnull "$at_stdout" || at_failed=:
119146at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4573"
119147$at_failed && at_fn_log_failure
119148$at_traceon; }
119149
119150{ set +x
119151$as_echo "$at_srcdir/run_extensions.at:4574: \$COBCRUN_DIRECT ./prog_noloc"
119152at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_noloc" "run_extensions.at:4574"
119153( $at_check_trace; $COBCRUN_DIRECT ./prog_noloc
119154) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119155at_status=$? at_failed=false
119156$at_check_filter
119157echo >>"$at_stderr"; $as_echo "libcob: error: module 'Tilt' not found
119158" | \
119159  $at_diff - "$at_stderr" || at_failed=:
119160echo >>"$at_stdout"; $as_echo "Program is starting
119161Error (interal):  -
119162                                                -
119163                 EC-PROGRAM-NOT-FOUND           -
119164Error-Message:   module 'Tilt' not found
119165-*- Returning to Next Error Routine -*-
119166Error:  -
119167                                      -
119168       EC-PROGRAM-NOT-FOUND           -
119169-*- Returning to Standard Error Routine -*-
119170" | \
119171  $at_diff - "$at_stdout" || at_failed=:
119172at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4574"
119173$at_failed && at_fn_log_failure
119174$at_traceon; }
119175
119176
119177  set +x
119178  $at_times_p && times >"$at_times_file"
119179) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119180read at_status <"$at_status_file"
119181#AT_STOP_1034
119182#AT_START_1035
119183at_fn_group_banner 1035 'run_extensions.at:4592' \
119184  "System routine CBL_ERROR_PROC (2)" "              " 4
119185at_xfail=no
119186(
119187  $as_echo "1035. $at_setup_line: testing $at_desc ..."
119188  $at_traceon
119189
119190
119191
119192# tests that error handlers can stop the processing,
119193# including the internal error handler
119194# and that the MF "LOCAL-STORAGE implies RECURSIVE" works
119195
119196cat >prog.cob <<'_ATEOF'
119197
119198       IDENTIFICATION DIVISION.
119199       PROGRAM-ID. DemoErrProc.
119200       ENVIRONMENT DIVISION.
119201       DATA DIVISION.
119202       WORKING-STORAGE SECTION.
119203       77  Err-Proc-Address            USAGE PROGRAM-POINTER.
119204       77  Err-Message-Len             PIC 9(04) USAGE COMP-5.
119205       LOCAL-STORAGE SECTION.  *> can even be empty...
119206       LINKAGE SECTION.
119207       77  Err-Message-From-Runtime    PIC X(1023).
119208       PROCEDURE DIVISION.
119209       S1.
119210           DISPLAY 'Program is starting'
119211           SET Err-Proc-Address TO ENTRY 'ErrProc'
119212           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119213           SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
119214           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
119215           SET Err-Proc-Address TO NULL
119216           CALL 'Tilt' *> THIS DOESN'T EXIST!!!!
119217           DISPLAY 'Program is stopping'
119218           STOP RUN
119219           .
119220       ENTRY 'ErrProc-internal' USING Err-Message-From-Runtime.
119221           DISPLAY 'Error (interal): ' FUNCTION EXCEPTION-LOCATION  '-'
119222           DISPLAY '                 ' FUNCTION EXCEPTION-STATEMENT '-'
119223           DISPLAY '                 ' FUNCTION EXCEPTION-STATUS    '-'
119224           *> NOTE: the error message is *EXPLICIT* specified to end with x'00'
119225           MOVE 0 TO Err-Message-Len
119226           INSPECT Err-Message-From-Runtime
119227              TALLYING Err-Message-Len FOR CHARACTERS BEFORE x'00'
119228           DISPLAY 'Error-Message:   ' Err-Message-From-Runtime
119229                                       (1:Err-Message-Len)
119230           DISPLAY '-*- Stop error routines here -*-'
119231           MOVE    0         TO RETURN-CODE
119232           EXIT PROGRAM
119233           .
119234       END PROGRAM DemoErrProc.
119235
119236       IDENTIFICATION DIVISION.
119237       PROGRAM-ID. ErrProc.
119238       PROCEDURE DIVISION.
119239       000-Main.
119240           DISPLAY 'Error: ' FUNCTION EXCEPTION-LOCATION  '-'
119241           DISPLAY '       ' FUNCTION EXCEPTION-STATEMENT '-'
119242           DISPLAY '       ' FUNCTION EXCEPTION-STATUS    '-'
119243           DISPLAY '-*- Returning to Standard Error Routine -*-'
119244           MOVE    1         TO RETURN-CODE
119245           EXIT PROGRAM
119246           .
119247       END PROGRAM ErrProc.
119248_ATEOF
119249
119250{ set +x
119251$as_echo "$at_srcdir/run_extensions.at:4652: \$COMPILE -std=mf prog.cob"
119252at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:4652"
119253( $at_check_trace; $COMPILE -std=mf prog.cob
119254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119255at_status=$? at_failed=false
119256$at_check_filter
119257at_fn_diff_devnull "$at_stderr" || at_failed=:
119258at_fn_diff_devnull "$at_stdout" || at_failed=:
119259at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4652"
119260$at_failed && at_fn_log_failure
119261$at_traceon; }
119262
119263{ set +x
119264$as_echo "$at_srcdir/run_extensions.at:4653: \$COBCRUN_DIRECT ./prog"
119265at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4653"
119266( $at_check_trace; $COBCRUN_DIRECT ./prog
119267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119268at_status=$? at_failed=false
119269$at_check_filter
119270at_fn_diff_devnull "$at_stderr" || at_failed=:
119271echo >>"$at_stdout"; $as_echo "Program is starting
119272Error (interal): DemoErrProc; S1; 20-
119273                 CALL                           -
119274                 EC-PROGRAM-NOT-FOUND           -
119275Error-Message:   prog.cob:20: module 'Tilt' not found
119276-*- Stop error routines here -*-
119277" | \
119278  $at_diff - "$at_stdout" || at_failed=:
119279at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4653"
119280$at_failed && at_fn_log_failure
119281$at_traceon; }
119282
119283
119284# to be done
119285#AT_CHECK([$COMPILE -o prog_noloc prog.cob], [0], [], [])
119286#AT_CHECK([$COBCRUN_DIRECT ./prog_noloc], [1],
119287#[Program is starting
119288#],
119289#[libcob: error: recursive CALL from 'DemoErrProc' to 'DemoErrProc' which is NOT RECURSIVE
119290#])
119291
119292  set +x
119293  $at_times_p && times >"$at_times_file"
119294) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119295read at_status <"$at_status_file"
119296#AT_STOP_1035
119297#AT_START_1036
119298at_fn_group_banner 1036 'run_extensions.at:4673' \
119299  "DISPLAY DIRECTIVE and \$DISPLAY" "                 " 4
119300at_xfail=no
119301(
119302  $as_echo "1036. $at_setup_line: testing $at_desc ..."
119303  $at_traceon
119304
119305
119306
119307# note: as we do support inline comments here we do not
119308#       allow the * to be part of a non-literal output
119309
119310cat >prog.cob <<'_ATEOF'
119311
119312       IDENTIFICATION   DIVISION.
119313       PROGRAM-ID.      prog.
119314       DATA             DIVISION.
119315       WORKING-STORAGE  SECTION.
119316       01 var1          pic x.
119317       $DISPLAY  MF compile time text # A.0-B;C *> without comment
119318       01 var2          pic x.
119319       >> DISPLAY some.text-here
119320       01 var3          pic x.
119321       PROCEDURE        DIVISION.
119322       >> DISPLAY   other  text #2  *> comment
119323       >> DISPLAY  "literal text...  *> no comment"
119324       $DISPLAY  "MF compile time text"
119325           GOBACK.
119326_ATEOF
119327
119328
119329{ set +x
119330$as_echo "$at_srcdir/run_extensions.at:4696: \$COMPILE prog.cob"
119331at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4696"
119332( $at_check_trace; $COMPILE prog.cob
119333) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119334at_status=$? at_failed=false
119335$at_check_filter
119336at_fn_diff_devnull "$at_stderr" || at_failed=:
119337echo >>"$at_stdout"; $as_echo "MF compile time text # A.0-B;C
119338some.text-here
119339other  text #2
119340literal text...  *> no comment
119341MF compile time text
119342" | \
119343  $at_diff - "$at_stdout" || at_failed=:
119344at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4696"
119345$at_failed && at_fn_log_failure
119346$at_traceon; }
119347
119348  set +x
119349  $at_times_p && times >"$at_times_file"
119350) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119351read at_status <"$at_status_file"
119352#AT_STOP_1036
119353#AT_START_1037
119354at_fn_group_banner 1037 'run_extensions.at:4706' \
119355  "Conditional / define directives (1)" "            " 4
119356at_xfail=no
119357(
119358  $as_echo "1037. $at_setup_line: testing $at_desc ..."
119359  $at_traceon
119360
119361
119362
119363cat >prog.cob <<'_ATEOF'
119364
119365       IDENTIFICATION   DIVISION.
119366       PROGRAM-ID.      prog.
119367       DATA             DIVISION.
119368       WORKING-STORAGE  SECTION.
119369       PROCEDURE        DIVISION.
119370       >>IF ACTIVATE NOT DEFINED
119371           DISPLAY "OK" NO ADVANCING
119372           END-DISPLAY
119373       >>ELSE
119374           DISPLAY "NOTOK" NO ADVANCING
119375           END-DISPLAY
119376       >>END-IF
119377           STOP RUN.
119378_ATEOF
119379
119380
119381{ set +x
119382$as_echo "$at_srcdir/run_extensions.at:4725: \$COMPILE prog.cob"
119383at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4725"
119384( $at_check_trace; $COMPILE prog.cob
119385) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119386at_status=$? at_failed=false
119387$at_check_filter
119388at_fn_diff_devnull "$at_stderr" || at_failed=:
119389at_fn_diff_devnull "$at_stdout" || at_failed=:
119390at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4725"
119391$at_failed && at_fn_log_failure
119392$at_traceon; }
119393
119394{ set +x
119395$as_echo "$at_srcdir/run_extensions.at:4726: \$COBCRUN_DIRECT ./prog"
119396at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4726"
119397( $at_check_trace; $COBCRUN_DIRECT ./prog
119398) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119399at_status=$? at_failed=false
119400$at_check_filter
119401at_fn_diff_devnull "$at_stderr" || at_failed=:
119402echo >>"$at_stdout"; $as_echo "OK" | \
119403  $at_diff - "$at_stdout" || at_failed=:
119404at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4726"
119405$at_failed && at_fn_log_failure
119406$at_traceon; }
119407
119408
119409  set +x
119410  $at_times_p && times >"$at_times_file"
119411) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119412read at_status <"$at_status_file"
119413#AT_STOP_1037
119414#AT_START_1038
119415at_fn_group_banner 1038 'run_extensions.at:4731' \
119416  "Conditional / define directives (2)" "            " 4
119417at_xfail=no
119418(
119419  $as_echo "1038. $at_setup_line: testing $at_desc ..."
119420  $at_traceon
119421
119422
119423
119424cat >prog.cob <<'_ATEOF'
119425
119426       IDENTIFICATION   DIVISION.
119427       PROGRAM-ID.      prog.
119428       DATA             DIVISION.
119429       WORKING-STORAGE  SECTION.
119430       PROCEDURE        DIVISION.
119431       >>IF ACTIVATE DEFINED
119432           DISPLAY "OK" NO ADVANCING
119433           END-DISPLAY
119434       >>ELSE
119435           DISPLAY "NOTOK" NO ADVANCING
119436           END-DISPLAY
119437       >>END-IF
119438           STOP RUN.
119439_ATEOF
119440
119441
119442{ set +x
119443$as_echo "$at_srcdir/run_extensions.at:4750: \$COMPILE -DACTIVATE prog.cob"
119444at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE prog.cob" "run_extensions.at:4750"
119445( $at_check_trace; $COMPILE -DACTIVATE prog.cob
119446) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119447at_status=$? at_failed=false
119448$at_check_filter
119449at_fn_diff_devnull "$at_stderr" || at_failed=:
119450at_fn_diff_devnull "$at_stdout" || at_failed=:
119451at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4750"
119452$at_failed && at_fn_log_failure
119453$at_traceon; }
119454
119455{ set +x
119456$as_echo "$at_srcdir/run_extensions.at:4751: \$COBCRUN_DIRECT ./prog"
119457at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4751"
119458( $at_check_trace; $COBCRUN_DIRECT ./prog
119459) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119460at_status=$? at_failed=false
119461$at_check_filter
119462at_fn_diff_devnull "$at_stderr" || at_failed=:
119463echo >>"$at_stdout"; $as_echo "OK" | \
119464  $at_diff - "$at_stdout" || at_failed=:
119465at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4751"
119466$at_failed && at_fn_log_failure
119467$at_traceon; }
119468
119469
119470  set +x
119471  $at_times_p && times >"$at_times_file"
119472) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119473read at_status <"$at_status_file"
119474#AT_STOP_1038
119475#AT_START_1039
119476at_fn_group_banner 1039 'run_extensions.at:4756' \
119477  "Conditional / define directives (3)" "            " 4
119478at_xfail=no
119479(
119480  $as_echo "1039. $at_setup_line: testing $at_desc ..."
119481  $at_traceon
119482
119483
119484
119485cat >prog.cob <<'_ATEOF'
119486
119487       IDENTIFICATION   DIVISION.
119488       PROGRAM-ID.      prog.
119489       DATA             DIVISION.
119490       WORKING-STORAGE  SECTION.
119491       PROCEDURE        DIVISION.
119492       >>IF ACTIVATE DEFINED
119493           DISPLAY "NOTOK" NO ADVANCING
119494           END-DISPLAY
119495       >>ELIF ACTIVATE2 DEFINED
119496           DISPLAY "OK" NO ADVANCING
119497           END-DISPLAY
119498       >>ELSE
119499           DISPLAY "NOTOK" NO ADVANCING
119500           END-DISPLAY
119501       >>END-IF
119502           STOP RUN.
119503_ATEOF
119504
119505
119506{ set +x
119507$as_echo "$at_srcdir/run_extensions.at:4778: \$COMPILE -DACTIVATE2 prog.cob"
119508at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE2 prog.cob" "run_extensions.at:4778"
119509( $at_check_trace; $COMPILE -DACTIVATE2 prog.cob
119510) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119511at_status=$? at_failed=false
119512$at_check_filter
119513at_fn_diff_devnull "$at_stderr" || at_failed=:
119514at_fn_diff_devnull "$at_stdout" || at_failed=:
119515at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4778"
119516$at_failed && at_fn_log_failure
119517$at_traceon; }
119518
119519{ set +x
119520$as_echo "$at_srcdir/run_extensions.at:4779: \$COBCRUN_DIRECT ./prog"
119521at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4779"
119522( $at_check_trace; $COBCRUN_DIRECT ./prog
119523) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119524at_status=$? at_failed=false
119525$at_check_filter
119526at_fn_diff_devnull "$at_stderr" || at_failed=:
119527echo >>"$at_stdout"; $as_echo "OK" | \
119528  $at_diff - "$at_stdout" || at_failed=:
119529at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4779"
119530$at_failed && at_fn_log_failure
119531$at_traceon; }
119532
119533
119534  set +x
119535  $at_times_p && times >"$at_times_file"
119536) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119537read at_status <"$at_status_file"
119538#AT_STOP_1039
119539#AT_START_1040
119540at_fn_group_banner 1040 'run_extensions.at:4784' \
119541  "Conditional / define directives (4)" "            " 4
119542at_xfail=no
119543(
119544  $as_echo "1040. $at_setup_line: testing $at_desc ..."
119545  $at_traceon
119546
119547
119548
119549cat >prog.cob <<'_ATEOF'
119550
119551       IDENTIFICATION   DIVISION.
119552       PROGRAM-ID.      prog.
119553       DATA             DIVISION.
119554       WORKING-STORAGE  SECTION.
119555       PROCEDURE        DIVISION.
119556       >>IF ACTIVATE DEFINED
119557           DISPLAY "NOTOK" NO ADVANCING
119558           END-DISPLAY
119559       >>ELIF ACTIVATE2 DEFINED
119560       >>ELSE
119561           DISPLAY "NOTOK" NO ADVANCING
119562           END-DISPLAY
119563       >>END-IF
119564           STOP RUN.
119565_ATEOF
119566
119567
119568{ set +x
119569$as_echo "$at_srcdir/run_extensions.at:4804: \$COMPILE -DACTIVATE2 prog.cob"
119570at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE2 prog.cob" "run_extensions.at:4804"
119571( $at_check_trace; $COMPILE -DACTIVATE2 prog.cob
119572) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119573at_status=$? at_failed=false
119574$at_check_filter
119575at_fn_diff_devnull "$at_stderr" || at_failed=:
119576at_fn_diff_devnull "$at_stdout" || at_failed=:
119577at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4804"
119578$at_failed && at_fn_log_failure
119579$at_traceon; }
119580
119581{ set +x
119582$as_echo "$at_srcdir/run_extensions.at:4805: \$COBCRUN_DIRECT ./prog"
119583at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4805"
119584( $at_check_trace; $COBCRUN_DIRECT ./prog
119585) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119586at_status=$? at_failed=false
119587$at_check_filter
119588at_fn_diff_devnull "$at_stderr" || at_failed=:
119589at_fn_diff_devnull "$at_stdout" || at_failed=:
119590at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4805"
119591$at_failed && at_fn_log_failure
119592$at_traceon; }
119593
119594
119595  set +x
119596  $at_times_p && times >"$at_times_file"
119597) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119598read at_status <"$at_status_file"
119599#AT_STOP_1040
119600#AT_START_1041
119601at_fn_group_banner 1041 'run_extensions.at:4810' \
119602  "Variable format" "                                " 4
119603at_xfail=no
119604(
119605  $as_echo "1041. $at_setup_line: testing $at_desc ..."
119606  $at_traceon
119607
119608
119609
119610cat >prog.cob <<'_ATEOF'
119611
119612       >>SOURCE FORMAT VARIABLE
119613000010 IDENTIFICATION DIVISION.
119614000020 PROGRAM-ID. prog.
119615000030* blah blah blah
119616000040 PROCEDURE DIVISION.
119617000050                                                                  DISPLAY "Hello!"
119618000060     .
119619000070 END PROGRAM prog.
119620_ATEOF
119621
119622
119623{ set +x
119624$as_echo "$at_srcdir/run_extensions.at:4824: \$COMPILE prog.cob"
119625at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4824"
119626( $at_check_trace; $COMPILE prog.cob
119627) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119628at_status=$? at_failed=false
119629$at_check_filter
119630at_fn_diff_devnull "$at_stderr" || at_failed=:
119631at_fn_diff_devnull "$at_stdout" || at_failed=:
119632at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4824"
119633$at_failed && at_fn_log_failure
119634$at_traceon; }
119635
119636{ set +x
119637$as_echo "$at_srcdir/run_extensions.at:4825: \$COBCRUN_DIRECT ./prog"
119638at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4825"
119639( $at_check_trace; $COBCRUN_DIRECT ./prog
119640) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119641at_status=$? at_failed=false
119642$at_check_filter
119643at_fn_diff_devnull "$at_stderr" || at_failed=:
119644echo >>"$at_stdout"; $as_echo "Hello!
119645" | \
119646  $at_diff - "$at_stdout" || at_failed=:
119647at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4825"
119648$at_failed && at_fn_log_failure
119649$at_traceon; }
119650
119651
119652  set +x
119653  $at_times_p && times >"$at_times_file"
119654) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119655read at_status <"$at_status_file"
119656#AT_STOP_1041
119657#AT_START_1042
119658at_fn_group_banner 1042 'run_extensions.at:4832' \
119659  "Binary COMP-1 (1)" "                              " 4
119660at_xfail=no
119661(
119662  $as_echo "1042. $at_setup_line: testing $at_desc ..."
119663  $at_traceon
119664
119665
119666
119667cat >prog.cob <<'_ATEOF'
119668
119669       IDENTIFICATION  DIVISION.
119670       PROGRAM-ID.     prog.
119671
119672       DATA            DIVISION.
119673       WORKING-STORAGE SECTION.
119674       01  comp1       COMP-1.
119675       01  num         PIC 9.9.
119676
119677       PROCEDURE       DIVISION.
119678           COMPUTE comp1 = 7 / 2
119679           MOVE comp1 TO num
119680           DISPLAY num
119681           .
119682_ATEOF
119683
119684
119685{ set +x
119686$as_echo "$at_srcdir/run_extensions.at:4851: \$COMPILE -fbinary-comp-1 prog.cob"
119687at_fn_check_prepare_dynamic "$COMPILE -fbinary-comp-1 prog.cob" "run_extensions.at:4851"
119688( $at_check_trace; $COMPILE -fbinary-comp-1 prog.cob
119689) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119690at_status=$? at_failed=false
119691$at_check_filter
119692at_fn_diff_devnull "$at_stderr" || at_failed=:
119693at_fn_diff_devnull "$at_stdout" || at_failed=:
119694at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4851"
119695$at_failed && at_fn_log_failure
119696$at_traceon; }
119697
119698{ set +x
119699$as_echo "$at_srcdir/run_extensions.at:4852: \$COBCRUN_DIRECT ./prog"
119700at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4852"
119701( $at_check_trace; $COBCRUN_DIRECT ./prog
119702) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119703at_status=$? at_failed=false
119704$at_check_filter
119705at_fn_diff_devnull "$at_stderr" || at_failed=:
119706echo >>"$at_stdout"; $as_echo "3.0
119707" | \
119708  $at_diff - "$at_stdout" || at_failed=:
119709at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4852"
119710$at_failed && at_fn_log_failure
119711$at_traceon; }
119712
119713{ set +x
119714$as_echo "$at_srcdir/run_extensions.at:4855: \$COMPILE -fno-binary-comp-1 prog.cob"
119715at_fn_check_prepare_dynamic "$COMPILE -fno-binary-comp-1 prog.cob" "run_extensions.at:4855"
119716( $at_check_trace; $COMPILE -fno-binary-comp-1 prog.cob
119717) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119718at_status=$? at_failed=false
119719$at_check_filter
119720at_fn_diff_devnull "$at_stderr" || at_failed=:
119721at_fn_diff_devnull "$at_stdout" || at_failed=:
119722at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4855"
119723$at_failed && at_fn_log_failure
119724$at_traceon; }
119725
119726{ set +x
119727$as_echo "$at_srcdir/run_extensions.at:4856: \$COBCRUN_DIRECT ./prog"
119728at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4856"
119729( $at_check_trace; $COBCRUN_DIRECT ./prog
119730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119731at_status=$? at_failed=false
119732$at_check_filter
119733at_fn_diff_devnull "$at_stderr" || at_failed=:
119734echo >>"$at_stdout"; $as_echo "3.5
119735" | \
119736  $at_diff - "$at_stdout" || at_failed=:
119737at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4856"
119738$at_failed && at_fn_log_failure
119739$at_traceon; }
119740
119741
119742  set +x
119743  $at_times_p && times >"$at_times_file"
119744) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119745read at_status <"$at_status_file"
119746#AT_STOP_1042
119747#AT_START_1043
119748at_fn_group_banner 1043 'run_extensions.at:4863' \
119749  "Binary COMP-1 (2)" "                              " 4
119750at_xfail=no
119751(
119752  $as_echo "1043. $at_setup_line: testing $at_desc ..."
119753  $at_traceon
119754
119755
119756
119757cat >prog.cob <<'_ATEOF'
119758
119759       >>IF BINARY-COMP-1 IS DEFINED
119760           $SET COMP-1(BINARY)
119761       >>ELSE
119762           $SET COMP1 "float"
119763       >>END-IF
119764       IDENTIFICATION  DIVISION.
119765       PROGRAM-ID.     prog.
119766
119767       DATA            DIVISION.
119768       WORKING-STORAGE SECTION.
119769       01  comp1       COMP-1.
119770       01  num         PIC 9.9.
119771
119772       PROCEDURE       DIVISION.
119773           COMPUTE comp1 = 7 / 2
119774           MOVE comp1 TO num
119775           DISPLAY num
119776           .
119777_ATEOF
119778
119779
119780{ set +x
119781$as_echo "$at_srcdir/run_extensions.at:4887: \$COMPILE -DBINARY-COMP-1 prog.cob"
119782at_fn_check_prepare_dynamic "$COMPILE -DBINARY-COMP-1 prog.cob" "run_extensions.at:4887"
119783( $at_check_trace; $COMPILE -DBINARY-COMP-1 prog.cob
119784) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119785at_status=$? at_failed=false
119786$at_check_filter
119787at_fn_diff_devnull "$at_stderr" || at_failed=:
119788at_fn_diff_devnull "$at_stdout" || at_failed=:
119789at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4887"
119790$at_failed && at_fn_log_failure
119791$at_traceon; }
119792
119793{ set +x
119794$as_echo "$at_srcdir/run_extensions.at:4888: \$COBCRUN_DIRECT ./prog"
119795at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4888"
119796( $at_check_trace; $COBCRUN_DIRECT ./prog
119797) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119798at_status=$? at_failed=false
119799$at_check_filter
119800at_fn_diff_devnull "$at_stderr" || at_failed=:
119801echo >>"$at_stdout"; $as_echo "3.0
119802" | \
119803  $at_diff - "$at_stdout" || at_failed=:
119804at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4888"
119805$at_failed && at_fn_log_failure
119806$at_traceon; }
119807
119808{ set +x
119809$as_echo "$at_srcdir/run_extensions.at:4891: \$COMPILE prog.cob"
119810at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4891"
119811( $at_check_trace; $COMPILE prog.cob
119812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119813at_status=$? at_failed=false
119814$at_check_filter
119815at_fn_diff_devnull "$at_stderr" || at_failed=:
119816at_fn_diff_devnull "$at_stdout" || at_failed=:
119817at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4891"
119818$at_failed && at_fn_log_failure
119819$at_traceon; }
119820
119821{ set +x
119822$as_echo "$at_srcdir/run_extensions.at:4892: \$COBCRUN_DIRECT ./prog"
119823at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4892"
119824( $at_check_trace; $COBCRUN_DIRECT ./prog
119825) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119826at_status=$? at_failed=false
119827$at_check_filter
119828at_fn_diff_devnull "$at_stderr" || at_failed=:
119829echo >>"$at_stdout"; $as_echo "3.5
119830" | \
119831  $at_diff - "$at_stdout" || at_failed=:
119832at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4892"
119833$at_failed && at_fn_log_failure
119834$at_traceon; }
119835
119836
119837  set +x
119838  $at_times_p && times >"$at_times_file"
119839) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119840read at_status <"$at_status_file"
119841#AT_STOP_1043
119842#AT_START_1044
119843at_fn_group_banner 1044 'run_extensions.at:4899' \
119844  "EXHIBIT statement" "                              " 4
119845at_xfail=no
119846(
119847  $as_echo "1044. $at_setup_line: testing $at_desc ..."
119848  $at_traceon
119849
119850
119851
119852cat >prog.cob <<'_ATEOF'
119853
119854       IDENTIFICATION   DIVISION.
119855       PROGRAM-ID.      prog.
119856       DATA             DIVISION.
119857       WORKING-STORAGE  SECTION.
119858       77 VAR-1         PIC X(8).
119859       77 VAR-2         PIC 999.
119860       PROCEDURE        DIVISION.
119861           EXHIBIT CHANGED VAR-1 'X'
119862           MOVE ALL 'X' TO VAR-1
119863           MOVE 123 TO VAR-1
119864           EXHIBIT NAMED VAR-1 VAR-2 'Y'
119865           EXHIBIT VAR-2
119866           EXHIBIT RETURN-CODE TALLY
119867           STOP RUN.
119868_ATEOF
119869
119870
119871{ set +x
119872$as_echo "$at_srcdir/run_extensions.at:4919: \$COMPILE -Wno-strict-typing -Wno-pending prog.cob"
119873at_fn_check_prepare_dynamic "$COMPILE -Wno-strict-typing -Wno-pending prog.cob" "run_extensions.at:4919"
119874( $at_check_trace; $COMPILE -Wno-strict-typing -Wno-pending prog.cob
119875) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119876at_status=$? at_failed=false
119877$at_check_filter
119878at_fn_diff_devnull "$at_stderr" || at_failed=:
119879at_fn_diff_devnull "$at_stdout" || at_failed=:
119880at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4919"
119881$at_failed && at_fn_log_failure
119882$at_traceon; }
119883
119884{ set +x
119885$as_echo "$at_srcdir/run_extensions.at:4920: \$COBCRUN_DIRECT ./prog"
119886at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4920"
119887( $at_check_trace; $COBCRUN_DIRECT ./prog
119888) >>"$at_stdout" 2>>"$at_stderr" 5>&-
119889at_status=$? at_failed=false
119890$at_check_filter
119891at_fn_diff_devnull "$at_stderr" || at_failed=:
119892echo >>"$at_stdout"; $as_echo "         X
119893VAR-1 = 123      VAR-2 = 000 Y
119894VAR-2 = 000
119895RETURN-CODE = +000000000 TALLY = 00000
119896" | \
119897  $at_diff - "$at_stdout" || at_failed=:
119898at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4920"
119899$at_failed && at_fn_log_failure
119900$at_traceon; }
119901
119902
119903  set +x
119904  $at_times_p && times >"$at_times_file"
119905) 5>&1 2>&1 7>&- | eval $at_tee_pipe
119906read at_status <"$at_status_file"
119907#AT_STOP_1044
119908#AT_START_1045
119909at_fn_group_banner 1045 'run_ml.at:19' \
119910  "XML GENERATE general" "                           " 4
119911at_xfail=no
119912(
119913  $as_echo "1045. $at_setup_line: testing $at_desc ..."
119914  $at_traceon
119915
119916
119917
119918$as_echo "run_ml.at:22" >"$at_check_line_file"
119919(test "$COB_HAS_XML2" = "no") \
119920  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:22"
119921
119922cat >prog.cob <<'_ATEOF'
119923
119924       IDENTIFICATION       DIVISION.
119925       PROGRAM-ID.          prog.
119926
119927       DATA                 DIVISION.
119928       WORKING-STORAGE      SECTION.
119929       01  namespace-str    PIC X(100)
119930                            VALUE 'http://www.w3.org/1999/xhtml'.
119931       01  prefix-str       PIC X(100) VALUE 'pre'.
119932
119933       01  out              PIC X(200).
119934       01  rec.
119935           03  a            PIC X(3) VALUE 'A'.
119936           03  b            PIC X(3) VALUE ALL 'B'.
119937           03  c.
119938               05  d        PIC X(3) VALUE SPACES.
119939
119940       01  0SpecialTAGName  PIC X(3) VALUE "abc".
119941
119942       01  employee.
119943           05 id            PIC 9(1)  value 1.
119944           05 name          PIC X(10) value "Someone".
119945           05 dept          PIC X(10) value "Marketing".
119946
119947       PROCEDURE            DIVISION.
119948           XML GENERATE out
119949               FROM rec
119950               WITH XML-DECLARATION
119951               NAME OF a IS 'alpha', d IS 'ABCDEF';
119952               TYPE OF a IS ATTRIBUTE
119953               SUPPRESS WHEN SPACES
119954           IF out <> '<?xml version="1.0"?>' & X'0A'
119955                   & '<rec alpha="A"><b>BBB</b></rec>'
119956               DISPLAY 'Test 1 failed: ' FUNCTION TRIM (out)
119957           END-IF
119958
119959           XML GENERATE out FROM d
119960           IF out <> '<d> </d>'
119961               DISPLAY 'Test 2 failed: ' FUNCTION TRIM (out)
119962           END-IF
119963
119964           XML GENERATE out FROM c, WITH ATTRIBUTES.
119965           IF out <> '<c d=" "/>'
119966               DISPLAY 'Test 3 failed: ' FUNCTION TRIM (out)
119967           END-IF
119968
119969           MOVE ALL 'A' TO a
119970           MOVE ALL 'C' TO c
119971           XML GENERATE out FROM rec, TYPE OF a IS CONTENT,
119972               b IS CONTENT, d IS CONTENT
119973           IF out <> '<rec>AAABBB<c>CCC</c></rec>'
119974               DISPLAY 'Test 4 failed: ' FUNCTION TRIM (out)
119975           END-IF
119976
119977           XML GENERATE out FROM rec, TYPE OF a IS CONTENT, d IS CONTENT
119978           IF out <> '<rec>AAA<b>BBB</b><c>CCC</c></rec>'
119979               DISPLAY 'Test 5 failed: ' FUNCTION TRIM (out)
119980           END-IF
119981
119982           XML GENERATE out FROM c, NAMESPACE namespace-str,
119983               NAMESPACE-PREFIX prefix-str
119984           IF out <> '<pre:c xmlns:pre="http://www.w3.org/1999/xhtml">'-
119985                   '<pre:d>CCC</pre:d></pre:c>'
119986               DISPLAY 'Test 6 failed: ' FUNCTION TRIM (out)
119987                   " " XML-CODE
119988           END-IF
119989
119990           MOVE SPACES TO namespace-str, prefix-str
119991           XML GENERATE out FROM c, NAMESPACE namespace-str,
119992               NAMESPACE-PREFIX prefix-str
119993           IF out <> '<c><d>CCC</d></c>'
119994               DISPLAY 'Test 7 failed: ' FUNCTION TRIM (out)
119995           END-IF
119996
119997           MOVE ALL "&" TO d
119998           XML GENERATE out FROM d
119999           IF out <> '<d>&amp;&amp;&amp;</d>'
120000               DISPLAY 'Test 8 failed: ' FUNCTION TRIM (out)
120001           END-IF
120002
120003           *> Test the case of the id in the DATA DIVISION is preserved.
120004           XML GENERATE out FROM 0specialtagname
120005           IF out <> '<_0SpecialTAGName>abc</_0SpecialTAGName>'
120006               DISPLAY 'Test 9 failed: ' FUNCTION TRIM (out)
120007           END-IF
120008           .
120009
120010           *> Another test with mixed attributes and values
120011           XML GENERATE out FROM EMPLOYEE TYPE OF ID IS ATTRIBUTE
120012           IF out <> '<employee id="1">'-
120013                     '<name>Someone</name>'-
120014                     '<dept>Marketing</dept>'-
120015                     '</employee>'
120016               DISPLAY 'Test 10 failed: ' FUNCTION TRIM (out)
120017           END-IF
120018           .
120019_ATEOF
120020
120021
120022{ set +x
120023$as_echo "$at_srcdir/run_ml.at:122: \$COMPILE -fnot-reserved=ID prog.cob"
120024at_fn_check_prepare_dynamic "$COMPILE -fnot-reserved=ID prog.cob" "run_ml.at:122"
120025( $at_check_trace; $COMPILE -fnot-reserved=ID prog.cob
120026) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120027at_status=$? at_failed=false
120028$at_check_filter
120029at_fn_diff_devnull "$at_stderr" || at_failed=:
120030at_fn_diff_devnull "$at_stdout" || at_failed=:
120031at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:122"
120032$at_failed && at_fn_log_failure
120033$at_traceon; }
120034
120035{ set +x
120036$as_echo "$at_srcdir/run_ml.at:123: \$COBCRUN_DIRECT ./prog"
120037at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:123"
120038( $at_check_trace; $COBCRUN_DIRECT ./prog
120039) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120040at_status=$? at_failed=false
120041$at_check_filter
120042at_fn_diff_devnull "$at_stderr" || at_failed=:
120043at_fn_diff_devnull "$at_stdout" || at_failed=:
120044at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:123"
120045$at_failed && at_fn_log_failure
120046$at_traceon; }
120047
120048  set +x
120049  $at_times_p && times >"$at_times_file"
120050) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120051read at_status <"$at_status_file"
120052#AT_STOP_1045
120053#AT_START_1046
120054at_fn_group_banner 1046 'run_ml.at:127' \
120055  "XML GENERATE SUPPRESS" "                          " 4
120056at_xfail=no
120057(
120058  $as_echo "1046. $at_setup_line: testing $at_desc ..."
120059  $at_traceon
120060
120061
120062
120063$as_echo "run_ml.at:130" >"$at_check_line_file"
120064(test "$COB_HAS_XML2" = "no") \
120065  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:130"
120066
120067cat >prog.cob <<'_ATEOF'
120068
120069       IDENTIFICATION       DIVISION.
120070       PROGRAM-ID.          prog.
120071
120072       DATA                 DIVISION.
120073       WORKING-STORAGE      SECTION.
120074       01  a.
120075           03  b            PIC X(3) VALUE SPACES.
120076           03  c            PIC X(3) VALUE SPACES.
120077
120078       01  p.
120079           03  q            PIC 9(3) VALUE ZERO.
120080           03  r            PIC X(3) VALUE "abc".
120081
120082       01  x.
120083           03  y.
120084               05  z        PIC X VALUE SPACE.
120085
120086       01  out              PIC X(100).
120087
120088       PROCEDURE            DIVISION.
120089           XML GENERATE out FROM a SUPPRESS WHEN SPACES
120090           IF out <> '<a/>'
120091               DISPLAY 'Test 1 failed: ' out
120092           END-IF
120093
120094           XML GENERATE out FROM a SUPPRESS b WHEN SPACES
120095           IF out <> '<a><c> </c></a>'
120096               DISPLAY 'Test 2 failed: ' out
120097           END-IF
120098
120099           XML GENERATE out FROM a SUPPRESS EVERY NONNUMERIC WHEN SPACES
120100           IF out <> '<a/>'
120101               DISPLAY 'Test 3 failed: ' out
120102           END-IF
120103
120104           XML GENERATE out FROM p
120105               WITH ATTRIBUTES
120106               SUPPRESS EVERY ATTRIBUTE WHEN ZERO
120107           IF out <> '<p r="abc"/>'
120108               DISPLAY 'Test 4 failed: ' out
120109           END-IF
120110
120111           XML GENERATE out FROM a
120112               SUPPRESS c WHEN LOW-VALUES, c WHEN SPACES,
120113                    c WHEN LOW-VALUES,
120114                    EVERY ELEMENT WHEN SPACES
120115           IF out <> '<a><c> </c></a>'
120116               DISPLAY 'Test 5 failed: ' out
120117           END-IF
120118
120119           MOVE HIGH-VALUES TO b
120120           MOVE LOW-VALUES TO c
120121           XML GENERATE out FROM a
120122               SUPPRESS EVERY ELEMENT WHEN HIGH-VALUES OR LOW-VALUES
120123                   OR ZEROES OR SPACES
120124           IF out <> '<a/>'
120125               DISPLAY 'Test 6 failed: ' out
120126           END-IF
120127
120128           XML GENERATE out FROM x SUPPRESS z WHEN SPACE
120129           IF out <> '<x/>'
120130               DISPLAY 'Test 7 failed: ' out
120131           END-IF
120132           .
120133_ATEOF
120134
120135
120136{ set +x
120137$as_echo "$at_srcdir/run_ml.at:199: \$COMPILE prog.cob"
120138at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:199"
120139( $at_check_trace; $COMPILE prog.cob
120140) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120141at_status=$? at_failed=false
120142$at_check_filter
120143at_fn_diff_devnull "$at_stderr" || at_failed=:
120144at_fn_diff_devnull "$at_stdout" || at_failed=:
120145at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:199"
120146$at_failed && at_fn_log_failure
120147$at_traceon; }
120148
120149{ set +x
120150$as_echo "$at_srcdir/run_ml.at:200: \$COBCRUN_DIRECT ./prog"
120151at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:200"
120152( $at_check_trace; $COBCRUN_DIRECT ./prog
120153) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120154at_status=$? at_failed=false
120155$at_check_filter
120156at_fn_diff_devnull "$at_stderr" || at_failed=:
120157at_fn_diff_devnull "$at_stdout" || at_failed=:
120158at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:200"
120159$at_failed && at_fn_log_failure
120160$at_traceon; }
120161
120162  set +x
120163  $at_times_p && times >"$at_times_file"
120164) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120165read at_status <"$at_status_file"
120166#AT_STOP_1046
120167#AT_START_1047
120168at_fn_group_banner 1047 'run_ml.at:204' \
120169  "XML GENERATE exceptions" "                        " 4
120170at_xfail=no
120171(
120172  $as_echo "1047. $at_setup_line: testing $at_desc ..."
120173  $at_traceon
120174
120175
120176
120177$as_echo "run_ml.at:207" >"$at_check_line_file"
120178(test "$COB_HAS_XML2" = "no") \
120179  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:207"
120180
120181cat >prog.cob <<'_ATEOF'
120182
120183       IDENTIFICATION DIVISION.
120184       PROGRAM-ID. prog.
120185
120186       DATA DIVISION.
120187       WORKING-STORAGE SECTION.
120188       01  normal-str PIC X(200).
120189
120190       01  valid-rec.
120191           03  a PIC XX VALUE "aa".
120192           03  b PIC XX VALUE "bb".
120193       01  short-str PIC X(5).
120194       01  xml-len   PIC 99.
120195
120196       01  valid-namespace CONSTANT "http://www.w3.org/1999/xhtml".
120197       01  invalid-namespace CONSTANT X"00".
120198       01  invalid-prefix PIC XXX VALUE "#<>".
120199       01  invalid-content PIC X(3) VALUE X"8AFF00".
120200       01  count-in-too-small PIC 9.
120201
120202       PROCEDURE DIVISION.
120203           XML GENERATE short-str FROM valid-rec
120204               COUNT IN xml-len
120205           IF short-str <> "<vali"
120206                   OR xml-len <> 42
120207                   OR XML-CODE <> 400
120208               DISPLAY "Failed 1: " short-str " " xml-len " " XML-CODE
120209           END-IF
120210
120211           XML GENERATE normal-str FROM valid-rec
120212               NAMESPACE invalid-namespace
120213           IF XML-CODE <> 416
120214               DISPLAY "Failed 2: " FUNCTION TRIM (normal-str)
120215                   " " XML-CODE
120216           END-IF
120217
120218           XML GENERATE normal-str FROM invalid-content
120219           IF normal-str <> '<hex.invalid-content>8aff00</hex.'-
120220                            'invalid-content>'
120221                   OR XML-CODE <> 417
120222               DISPLAY "Failed 3: " FUNCTION TRIM (normal-str)
120223                   " " XML-CODE
120224           END-IF
120225
120226           XML GENERATE normal-str FROM valid-rec
120227               NAMESPACE "http://www.w3.org/1999/xhtml"
120228               NAMESPACE-PREFIX invalid-prefix
120229           IF XML-CODE <> 419
120230               DISPLAY "Failed 4: " FUNCTION TRIM (normal-str)
120231                   " " XML-CODE
120232           END-IF
120233
120234           XML GENERATE normal-str FROM valid-rec
120235                ON EXCEPTION
120236                    DISPLAY "Failed 5: EXCEPTION "
120237                        FUNCTION TRIM (normal-str)
120238                        " " XML-CODE
120239                    END-DISPLAY
120240                    *> The END-DISPLAY is important! Otherwise the DISPLAY will
120241                    *> take the NOT ON EXCEPTION.
120242
120243                NOT ON EXCEPTION
120244                    IF XML-CODE <> 0
120245                        DISPLAY "Failed 5: NOT EXCEPTION "
120246                            FUNCTION TRIM (normal-str)
120247                            " " XML-CODE
120248                    END-IF
120249           END-XML
120250
120251           XML GENERATE short-str FROM valid-rec
120252                NOT EXCEPTION
120253                    DISPLAY "Failed 6: NOT EXCEPTION "
120254                        FUNCTION TRIM (normal-str)
120255                        " " XML-CODE
120256                    END-DISPLAY
120257
120258                EXCEPTION
120259                    IF XML-CODE <> 400
120260                        DISPLAY "Failed 6: ON EXCEPTION "
120261                            FUNCTION TRIM (normal-str)
120262                            " " XML-CODE
120263                    END-IF
120264           END-XML
120265           .
120266_ATEOF
120267
120268
120269{ set +x
120270$as_echo "$at_srcdir/run_ml.at:295: \$COMPILE prog.cob"
120271at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:295"
120272( $at_check_trace; $COMPILE prog.cob
120273) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120274at_status=$? at_failed=false
120275$at_check_filter
120276at_fn_diff_devnull "$at_stderr" || at_failed=:
120277at_fn_diff_devnull "$at_stdout" || at_failed=:
120278at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:295"
120279$at_failed && at_fn_log_failure
120280$at_traceon; }
120281
120282{ set +x
120283$as_echo "$at_srcdir/run_ml.at:296: \$COBCRUN_DIRECT ./prog"
120284at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:296"
120285( $at_check_trace; $COBCRUN_DIRECT ./prog
120286) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120287at_status=$? at_failed=false
120288$at_check_filter
120289at_fn_diff_devnull "$at_stderr" || at_failed=:
120290at_fn_diff_devnull "$at_stdout" || at_failed=:
120291at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:296"
120292$at_failed && at_fn_log_failure
120293$at_traceon; }
120294
120295  set +x
120296  $at_times_p && times >"$at_times_file"
120297) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120298read at_status <"$at_status_file"
120299#AT_STOP_1047
120300#AT_START_1048
120301at_fn_group_banner 1048 'run_ml.at:300' \
120302  "XML GENERATE record selection" "                  " 4
120303at_xfail=no
120304(
120305  $as_echo "1048. $at_setup_line: testing $at_desc ..."
120306  $at_traceon
120307
120308
120309
120310$as_echo "run_ml.at:303" >"$at_check_line_file"
120311(test "$COB_HAS_XML2" = "no") \
120312  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:303"
120313
120314# TO-DO: Add support for generating OCCURS items.
120315
120316cat >prog.cob <<'_ATEOF'
120317
120318       IDENTIFICATION DIVISION.
120319       PROGRAM-ID. prog.
120320
120321       DATA DIVISION.
120322       WORKING-STORAGE SECTION.
120323       01  a.
120324           03  b.
120325               05 c1 PIC X(3) VALUE "abc".
120326               05 c2 PIC 9(3) VALUE 0.
120327           03  d REDEFINES b.
120328               05  e PIC X(6).
120329           03  f PIC X OCCURS 3 VALUE "f".
120330
120331       66  h RENAMES c1 THRU c2.
120332
120333       01  out PIC X(60).
120334
120335       PROCEDURE DIVISION.
120336           *> XML GENERATE out FROM a
120337           *> IF out <> '<a><b><c1>abc</c1><c2>0</c2></b><f>f</f><f>f</f>'-
120338           *>          '<f>f</f></a>'
120339           *>    DISPLAY "Failed 1: " FUNCTION TRIM (out)
120340           *> END-IF
120341
120342           XML GENERATE out FROM d
120343           IF out <> '<d><e>abc000</e></d>'
120344               DISPLAY "Failed 2: " FUNCTION TRIM (out)
120345           END-IF
120346           .
120347       END PROGRAM prog.
120348_ATEOF
120349
120350{ set +x
120351$as_echo "$at_srcdir/run_ml.at:339: \$COMPILE prog.cob"
120352at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:339"
120353( $at_check_trace; $COMPILE prog.cob
120354) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120355at_status=$? at_failed=false
120356$at_check_filter
120357at_fn_diff_devnull "$at_stderr" || at_failed=:
120358at_fn_diff_devnull "$at_stdout" || at_failed=:
120359at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:339"
120360$at_failed && at_fn_log_failure
120361$at_traceon; }
120362
120363{ set +x
120364$as_echo "$at_srcdir/run_ml.at:340: \$COBCRUN_DIRECT ./prog"
120365at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:340"
120366( $at_check_trace; $COBCRUN_DIRECT ./prog
120367) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120368at_status=$? at_failed=false
120369$at_check_filter
120370at_fn_diff_devnull "$at_stderr" || at_failed=:
120371at_fn_diff_devnull "$at_stdout" || at_failed=:
120372at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:340"
120373$at_failed && at_fn_log_failure
120374$at_traceon; }
120375
120376  set +x
120377  $at_times_p && times >"$at_times_file"
120378) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120379read at_status <"$at_status_file"
120380#AT_STOP_1048
120381#AT_START_1049
120382at_fn_group_banner 1049 'run_ml.at:344' \
120383  "XML GENERATE trimming" "                          " 4
120384at_xfail=no
120385(
120386  $as_echo "1049. $at_setup_line: testing $at_desc ..."
120387  $at_traceon
120388
120389
120390
120391$as_echo "run_ml.at:347" >"$at_check_line_file"
120392(test "$COB_HAS_XML2" = "no") \
120393  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:347"
120394
120395# TO-DO: Add support for IBM/COBOL 2002 edited floating point (e.g. PIC 9(3)E+99).
120396
120397cat >prog.cob <<'_ATEOF'
120398
120399       IDENTIFICATION DIVISION.
120400       PROGRAM-ID. prog.
120401
120402       DATA DIVISION.
120403       WORKING-STORAGE SECTION.
120404       01  str                     PIC X(3) VALUE "ab".
120405       01  num-edited              PIC 99.99 VALUE "01.00".
120406       01  leading-zeroes          PIC 9(5) VALUE 5.
120407       01  decimal-num             PIC 99V999 PACKED-DECIMAL VALUE 0.12.
120408       01  signed-decimal-num      PIC S999 COMP-X VALUE -1.
120409       01  comp-5-item             PIC 9(10) COMP-5 VALUE 5.
120410       01  index-item              INDEX.
120411       01  float-short-item        FLOAT-SHORT VALUE 100.
120412       01  float-long-item         FLOAT-LONG VALUE 123.0E-10.
120413       01  just-item               PIC X(10) JUST.
120414       01  integer-with-p          PIC 999PPP VALUE 10000.
120415       01  decimal-with-p          PIC VPP99 VALUE 0.0004.
120416
120417       01  out                     PIC X(300).
120418
120419       PROCEDURE DIVISION.
120420           XML GENERATE out FROM str
120421           IF out <> '<str>ab</str>'
120422               DISPLAY "Failed 1: " FUNCTION TRIM (out)
120423           END-IF
120424
120425           XML GENERATE out FROM num-edited
120426           IF out <> '<num-edited>01.00</num-edited>'
120427               DISPLAY "Failed 2: " FUNCTION TRIM (out)
120428           END-IF
120429
120430           XML GENERATE out FROM leading-zeroes
120431           IF out <> '<leading-zeroes>5</leading-zeroes>'
120432               DISPLAY "Failed 3: " FUNCTION TRIM (out)
120433           END-IF
120434
120435           XML GENERATE out FROM decimal-num
120436           IF out <> '<decimal-num>0.120</decimal-num>'
120437               DISPLAY "Failed 4: " FUNCTION TRIM (out)
120438           END-IF
120439
120440           XML GENERATE out FROM signed-decimal-num
120441           IF out <> '<signed-decimal-num>-1</signed-decimal-num>'
120442               DISPLAY "Failed 5: " FUNCTION TRIM (out)
120443           END-IF
120444
120445           XML GENERATE out FROM comp-5-item
120446           IF out <> '<comp-5-item>5</comp-5-item>'
120447               DISPLAY "Failed 6: " FUNCTION TRIM (out)
120448           END-IF
120449
120450           SET index-item TO 500
120451           XML GENERATE out FROM index-item
120452           IF out <> '<index-item>500</index-item>'
120453               DISPLAY "Failed 7: " FUNCTION TRIM (out)
120454           END-IF
120455
120456           *> XML GENERATE out FROM float-short-item
120457           *> IF out <> '<float-short-item>1E+02</float-short-item>'
120458           *>     DISPLAY "Failed 8: " FUNCTION TRIM (out)
120459           *> END-IF
120460
120461           *> XML GENERATE out FROM float-long-item
120462           *> IF out <> '<float-long-item>123E-10</float-long-item>'
120463           *>     DISPLAY "Failed 9: " FUNCTION TRIM (out)
120464           *> END-IF
120465
120466           MOVE "blah " TO just-item
120467           XML GENERATE out FROM just-item
120468           IF out <> '<just-item>blah </just-item>'
120469               DISPLAY "Failed 10: " FUNCTION TRIM (out)
120470           END-IF
120471
120472           XML GENERATE out FROM integer-with-p
120473           IF out <> '<integer-with-p>10000</integer-with-p>'
120474               DISPLAY "Failed 11: " FUNCTION TRIM (out)
120475           END-IF
120476
120477           XML GENERATE out FROM decimal-with-p
120478           IF out <> '<decimal-with-p>0.0004</decimal-with-p>'
120479               DISPLAY "Failed 12: " FUNCTION TRIM (out)
120480           END-IF
120481           .
120482_ATEOF
120483
120484{ set +x
120485$as_echo "$at_srcdir/run_ml.at:436: \$COMPILE prog.cob"
120486at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:436"
120487( $at_check_trace; $COMPILE prog.cob
120488) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120489at_status=$? at_failed=false
120490$at_check_filter
120491at_fn_diff_devnull "$at_stderr" || at_failed=:
120492at_fn_diff_devnull "$at_stdout" || at_failed=:
120493at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:436"
120494$at_failed && at_fn_log_failure
120495$at_traceon; }
120496
120497{ set +x
120498$as_echo "$at_srcdir/run_ml.at:437: \$COBCRUN_DIRECT ./prog"
120499at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:437"
120500( $at_check_trace; $COBCRUN_DIRECT ./prog
120501) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120502at_status=$? at_failed=false
120503$at_check_filter
120504at_fn_diff_devnull "$at_stderr" || at_failed=:
120505at_fn_diff_devnull "$at_stdout" || at_failed=:
120506at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:437"
120507$at_failed && at_fn_log_failure
120508$at_traceon; }
120509
120510  set +x
120511  $at_times_p && times >"$at_times_file"
120512) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120513read at_status <"$at_status_file"
120514#AT_STOP_1049
120515#AT_START_1050
120516at_fn_group_banner 1050 'run_ml.at:441' \
120517  "XML DPC-IN-DATA directive" "                      " 4
120518at_xfail=no
120519(
120520  $as_echo "1050. $at_setup_line: testing $at_desc ..."
120521  $at_traceon
120522
120523
120524
120525$as_echo "run_ml.at:444" >"$at_check_line_file"
120526(test "$COB_HAS_XML2" = "no") \
120527  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:444"
120528
120529cat >prog.cob <<'_ATEOF'
120530
120531      $SET DPC-IN-DATA "JSON"
120532       IDENTIFICATION DIVISION.
120533       PROGRAM-ID. prog.
120534
120535       ENVIRONMENT DIVISION.
120536       CONFIGURATION SECTION.
120537       SPECIAL-NAMES.
120538           DECIMAL-POINT IS COMMA.
120539
120540       DATA DIVISION.
120541       WORKING-STORAGE SECTION.
120542       01  num PIC 9V9 VALUE 1,1.
120543       01  out PIC X(100).
120544
120545       PROCEDURE DIVISION.
120546           XML GENERATE out FROM num
120547           IF out <> '<num>1.1</num>'
120548              DISPLAY "Failed: " FUNCTION TRIM (out).
120549_ATEOF
120550
120551
120552{ set +x
120553$as_echo "$at_srcdir/run_ml.at:467: \$COMPILE prog.cob"
120554at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:467"
120555( $at_check_trace; $COMPILE prog.cob
120556) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120557at_status=$? at_failed=false
120558$at_check_filter
120559at_fn_diff_devnull "$at_stderr" || at_failed=:
120560at_fn_diff_devnull "$at_stdout" || at_failed=:
120561at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:467"
120562$at_failed && at_fn_log_failure
120563$at_traceon; }
120564
120565{ set +x
120566$as_echo "$at_srcdir/run_ml.at:468: \$COBCRUN_DIRECT ./prog"
120567at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:468"
120568( $at_check_trace; $COBCRUN_DIRECT ./prog
120569) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120570at_status=$? at_failed=false
120571$at_check_filter
120572at_fn_diff_devnull "$at_stderr" || at_failed=:
120573at_fn_diff_devnull "$at_stdout" || at_failed=:
120574at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:468"
120575$at_failed && at_fn_log_failure
120576$at_traceon; }
120577
120578  set +x
120579  $at_times_p && times >"$at_times_file"
120580) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120581read at_status <"$at_status_file"
120582#AT_STOP_1050
120583#AT_START_1051
120584at_fn_group_banner 1051 'run_ml.at:472' \
120585  "XML dpc-in-data config option" "                  " 4
120586at_xfail=no
120587(
120588  $as_echo "1051. $at_setup_line: testing $at_desc ..."
120589  $at_traceon
120590
120591
120592
120593$as_echo "run_ml.at:475" >"$at_check_line_file"
120594(test "$COB_HAS_XML2" = "no") \
120595  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:475"
120596
120597cat >prog.cob <<'_ATEOF'
120598
120599       IDENTIFICATION DIVISION.
120600       PROGRAM-ID. prog.
120601
120602       ENVIRONMENT DIVISION.
120603       CONFIGURATION SECTION.
120604       SPECIAL-NAMES.
120605           DECIMAL-POINT IS COMMA.
120606
120607       DATA DIVISION.
120608       WORKING-STORAGE SECTION.
120609       01  num PIC 9V9 VALUE 1,1.
120610       01  out PIC X(100).
120611
120612       PROCEDURE DIVISION.
120613           XML GENERATE out FROM num
120614           DISPLAY FUNCTION TRIM(out)
120615           .
120616_ATEOF
120617
120618
120619{ set +x
120620$as_echo "$at_srcdir/run_ml.at:497: \$COMPILE -fdpc-in-data=none prog.cob"
120621at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=none prog.cob" "run_ml.at:497"
120622( $at_check_trace; $COMPILE -fdpc-in-data=none prog.cob
120623) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120624at_status=$? at_failed=false
120625$at_check_filter
120626at_fn_diff_devnull "$at_stderr" || at_failed=:
120627at_fn_diff_devnull "$at_stdout" || at_failed=:
120628at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:497"
120629$at_failed && at_fn_log_failure
120630$at_traceon; }
120631
120632{ set +x
120633$as_echo "$at_srcdir/run_ml.at:498: \$COBCRUN_DIRECT ./prog"
120634at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:498"
120635( $at_check_trace; $COBCRUN_DIRECT ./prog
120636) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120637at_status=$? at_failed=false
120638$at_check_filter
120639at_fn_diff_devnull "$at_stderr" || at_failed=:
120640echo >>"$at_stdout"; $as_echo "<num>1.1</num>
120641" | \
120642  $at_diff - "$at_stdout" || at_failed=:
120643at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:498"
120644$at_failed && at_fn_log_failure
120645$at_traceon; }
120646
120647{ set +x
120648$as_echo "$at_srcdir/run_ml.at:501: \$COMPILE -fdpc-in-data=xml prog.cob"
120649at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=xml prog.cob" "run_ml.at:501"
120650( $at_check_trace; $COMPILE -fdpc-in-data=xml prog.cob
120651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120652at_status=$? at_failed=false
120653$at_check_filter
120654at_fn_diff_devnull "$at_stderr" || at_failed=:
120655at_fn_diff_devnull "$at_stdout" || at_failed=:
120656at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:501"
120657$at_failed && at_fn_log_failure
120658$at_traceon; }
120659
120660{ set +x
120661$as_echo "$at_srcdir/run_ml.at:502: \$COBCRUN_DIRECT ./prog"
120662at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:502"
120663( $at_check_trace; $COBCRUN_DIRECT ./prog
120664) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120665at_status=$? at_failed=false
120666$at_check_filter
120667at_fn_diff_devnull "$at_stderr" || at_failed=:
120668echo >>"$at_stdout"; $as_echo "<num>1,1</num>
120669" | \
120670  $at_diff - "$at_stdout" || at_failed=:
120671at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:502"
120672$at_failed && at_fn_log_failure
120673$at_traceon; }
120674
120675{ set +x
120676$as_echo "$at_srcdir/run_ml.at:505: \$COMPILE  -fdpc-in-data=json prog.cob"
120677at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=json prog.cob" "run_ml.at:505"
120678( $at_check_trace; $COMPILE  -fdpc-in-data=json prog.cob
120679) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120680at_status=$? at_failed=false
120681$at_check_filter
120682at_fn_diff_devnull "$at_stderr" || at_failed=:
120683at_fn_diff_devnull "$at_stdout" || at_failed=:
120684at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:505"
120685$at_failed && at_fn_log_failure
120686$at_traceon; }
120687
120688{ set +x
120689$as_echo "$at_srcdir/run_ml.at:506: \$COBCRUN_DIRECT ./prog"
120690at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:506"
120691( $at_check_trace; $COBCRUN_DIRECT ./prog
120692) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120693at_status=$? at_failed=false
120694$at_check_filter
120695at_fn_diff_devnull "$at_stderr" || at_failed=:
120696echo >>"$at_stdout"; $as_echo "<num>1.1</num>
120697" | \
120698  $at_diff - "$at_stdout" || at_failed=:
120699at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:506"
120700$at_failed && at_fn_log_failure
120701$at_traceon; }
120702
120703{ set +x
120704$as_echo "$at_srcdir/run_ml.at:509: \$COMPILE  -fdpc-in-data=all prog.cob"
120705at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=all prog.cob" "run_ml.at:509"
120706( $at_check_trace; $COMPILE  -fdpc-in-data=all prog.cob
120707) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120708at_status=$? at_failed=false
120709$at_check_filter
120710at_fn_diff_devnull "$at_stderr" || at_failed=:
120711at_fn_diff_devnull "$at_stdout" || at_failed=:
120712at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:509"
120713$at_failed && at_fn_log_failure
120714$at_traceon; }
120715
120716{ set +x
120717$as_echo "$at_srcdir/run_ml.at:510: \$COBCRUN_DIRECT ./prog"
120718at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:510"
120719( $at_check_trace; $COBCRUN_DIRECT ./prog
120720) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120721at_status=$? at_failed=false
120722$at_check_filter
120723at_fn_diff_devnull "$at_stderr" || at_failed=:
120724echo >>"$at_stdout"; $as_echo "<num>1,1</num>
120725" | \
120726  $at_diff - "$at_stdout" || at_failed=:
120727at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:510"
120728$at_failed && at_fn_log_failure
120729$at_traceon; }
120730
120731  set +x
120732  $at_times_p && times >"$at_times_file"
120733) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120734read at_status <"$at_status_file"
120735#AT_STOP_1051
120736#AT_START_1052
120737at_fn_group_banner 1052 'run_ml.at:516' \
120738  "JSON GENERATE general" "                          " 4
120739at_xfail=no
120740(
120741  $as_echo "1052. $at_setup_line: testing $at_desc ..."
120742  $at_traceon
120743
120744
120745
120746$as_echo "run_ml.at:519" >"$at_check_line_file"
120747(test "$COB_HAS_JSON" = "no") \
120748  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:519"
120749
120750cat >prog.cob <<'_ATEOF'
120751
120752       IDENTIFICATION       DIVISION.
120753       PROGRAM-ID.          prog.
120754
120755       DATA                 DIVISION.
120756       WORKING-STORAGE      SECTION.
120757       01  out              PIC X(200).
120758       01  rec.
120759           03  a            PIC X(3) VALUE 'A'.
120760           03  b            PIC X(3) VALUE ALL 'B'.
120761           03  c.
120762               05  d        PIC X(3) VALUE SPACES.
120763
120764       PROCEDURE            DIVISION.
120765           JSON GENERATE out
120766               FROM rec
120767               NAME OF a IS 'alpha', d IS 'ABCDEF'
120768               SUPPRESS c
120769           IF out <> '{"rec":{"alpha":"A","b":"BBB"}}'
120770               DISPLAY 'Test 1 failed: ' FUNCTION TRIM (out)
120771           END-IF
120772           JSON GENERATE out
120773               FROM rec
120774               NAME OF a IS 'alpha', rec IS OMITTED
120775               SUPPRESS c
120776           IF out <> '{"alpha":"A","b":"BBB"}'
120777               DISPLAY 'Test 2 failed: ' FUNCTION TRIM (out)
120778           END-IF
120779
120780           JSON GENERATE out FROM d
120781           IF out <> '{"d":" "}'
120782               DISPLAY 'Test 3 failed: ' FUNCTION TRIM (out)
120783           END-IF
120784
120785           JSON GENERATE out FROM c
120786           IF out <> '{"c":{"d":" "}}'
120787               DISPLAY 'Test 4 failed: ' FUNCTION TRIM (out)
120788           END-IF
120789
120790           MOVE ALL QUOTES TO d
120791           JSON GENERATE out FROM d
120792           IF out <> '{"d":"\"\"\""}'
120793               DISPLAY 'Test 5 failed: ' FUNCTION TRIM (out)
120794           END-IF
120795           .
120796_ATEOF
120797
120798
120799{ set +x
120800$as_echo "$at_srcdir/run_ml.at:568: \$COMPILE prog.cob"
120801at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:568"
120802( $at_check_trace; $COMPILE prog.cob
120803) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120804at_status=$? at_failed=false
120805$at_check_filter
120806at_fn_diff_devnull "$at_stderr" || at_failed=:
120807at_fn_diff_devnull "$at_stdout" || at_failed=:
120808at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:568"
120809$at_failed && at_fn_log_failure
120810$at_traceon; }
120811
120812{ set +x
120813$as_echo "$at_srcdir/run_ml.at:569: \$COBCRUN_DIRECT ./prog"
120814at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:569"
120815( $at_check_trace; $COBCRUN_DIRECT ./prog
120816) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120817at_status=$? at_failed=false
120818$at_check_filter
120819at_fn_diff_devnull "$at_stderr" || at_failed=:
120820at_fn_diff_devnull "$at_stdout" || at_failed=:
120821at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:569"
120822$at_failed && at_fn_log_failure
120823$at_traceon; }
120824
120825  set +x
120826  $at_times_p && times >"$at_times_file"
120827) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120828read at_status <"$at_status_file"
120829#AT_STOP_1052
120830#AT_START_1053
120831at_fn_group_banner 1053 'run_ml.at:573' \
120832  "JSON GENERATE SUPPRESS" "                         " 4
120833at_xfail=no
120834(
120835  $as_echo "1053. $at_setup_line: testing $at_desc ..."
120836  $at_traceon
120837
120838
120839
120840$as_echo "run_ml.at:576" >"$at_check_line_file"
120841(test "$COB_HAS_JSON" = "no") \
120842  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:576"
120843
120844cat >prog.cob <<'_ATEOF'
120845
120846       IDENTIFICATION       DIVISION.
120847       PROGRAM-ID.          prog.
120848
120849       DATA                 DIVISION.
120850       WORKING-STORAGE      SECTION.
120851       01  a.
120852           03  b            PIC X(3) VALUE SPACES.
120853           03  c            PIC X(3) VALUE SPACES.
120854
120855       01  x.
120856           03  y.
120857               05  z        PIC X VALUE SPACE.
120858
120859       01  out              PIC X(100).
120860
120861       PROCEDURE            DIVISION.
120862           JSON GENERATE out FROM a SUPPRESS b
120863           IF out <> '{"a":{"c":" "}}'
120864               DISPLAY 'Test 1 failed: ' out
120865           END-IF
120866
120867           JSON GENERATE out FROM x SUPPRESS z
120868           IF out <> '{"x":{}}'
120869               DISPLAY 'Test 2 failed: ' out
120870           END-IF
120871           .
120872_ATEOF
120873
120874
120875{ set +x
120876$as_echo "$at_srcdir/run_ml.at:607: \$COMPILE prog.cob"
120877at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:607"
120878( $at_check_trace; $COMPILE prog.cob
120879) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120880at_status=$? at_failed=false
120881$at_check_filter
120882at_fn_diff_devnull "$at_stderr" || at_failed=:
120883at_fn_diff_devnull "$at_stdout" || at_failed=:
120884at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:607"
120885$at_failed && at_fn_log_failure
120886$at_traceon; }
120887
120888{ set +x
120889$as_echo "$at_srcdir/run_ml.at:608: \$COBCRUN_DIRECT ./prog"
120890at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:608"
120891( $at_check_trace; $COBCRUN_DIRECT ./prog
120892) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120893at_status=$? at_failed=false
120894$at_check_filter
120895at_fn_diff_devnull "$at_stderr" || at_failed=:
120896at_fn_diff_devnull "$at_stdout" || at_failed=:
120897at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:608"
120898$at_failed && at_fn_log_failure
120899$at_traceon; }
120900
120901  set +x
120902  $at_times_p && times >"$at_times_file"
120903) 5>&1 2>&1 7>&- | eval $at_tee_pipe
120904read at_status <"$at_status_file"
120905#AT_STOP_1053
120906#AT_START_1054
120907at_fn_group_banner 1054 'run_ml.at:612' \
120908  "JSON GENERATE exceptions" "                       " 4
120909at_xfail=no
120910(
120911  $as_echo "1054. $at_setup_line: testing $at_desc ..."
120912  $at_traceon
120913
120914
120915
120916$as_echo "run_ml.at:615" >"$at_check_line_file"
120917(test "$COB_HAS_JSON" = "no") \
120918  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:615"
120919
120920cat >prog.cob <<'_ATEOF'
120921
120922       IDENTIFICATION DIVISION.
120923       PROGRAM-ID. prog.
120924
120925       DATA DIVISION.
120926       WORKING-STORAGE SECTION.
120927       01  normal-str PIC X(200).
120928
120929       01  valid-rec.
120930           03  a PIC XX VALUE "aa".
120931           03  b PIC XX VALUE "bb".
120932       01  short-str PIC X(5).
120933       01  json-len   PIC 99.
120934
120935       PROCEDURE DIVISION.
120936           JSON GENERATE short-str FROM valid-rec
120937               COUNT IN json-len
120938           IF short-str <> '{"val'
120939                   OR json-len <> 33
120940                   OR JSON-CODE <> 1
120941               DISPLAY "Failed 1: " short-str " " json-len " " JSON-CODE
120942           END-IF
120943
120944           JSON GENERATE normal-str FROM valid-rec
120945                ON EXCEPTION
120946                    DISPLAY "Failed 2: EXCEPTION "
120947                        FUNCTION TRIM (normal-str)
120948                        " " JSON-CODE
120949                    END-DISPLAY
120950
120951                NOT ON EXCEPTION
120952                    IF JSON-CODE <> 0
120953                        DISPLAY "Failed 2: NOT EXCEPTION "
120954                            FUNCTION TRIM (normal-str)
120955                            " " JSON-CODE
120956                    END-IF
120957           END-JSON
120958
120959           JSON GENERATE short-str FROM valid-rec
120960                NOT EXCEPTION
120961                    DISPLAY "Failed 3: NOT EXCEPTION "
120962                        FUNCTION TRIM (normal-str)
120963                        " " JSON-CODE
120964                    END-DISPLAY
120965
120966                EXCEPTION
120967                    IF JSON-CODE <> 1
120968                        DISPLAY "Failed 3: ON EXCEPTION "
120969                            FUNCTION TRIM (normal-str)
120970                            " " JSON-CODE
120971                    END-IF
120972           END-JSON
120973           .
120974_ATEOF
120975
120976
120977{ set +x
120978$as_echo "$at_srcdir/run_ml.at:672: \$COMPILE prog.cob"
120979at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:672"
120980( $at_check_trace; $COMPILE prog.cob
120981) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120982at_status=$? at_failed=false
120983$at_check_filter
120984at_fn_diff_devnull "$at_stderr" || at_failed=:
120985at_fn_diff_devnull "$at_stdout" || at_failed=:
120986at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:672"
120987$at_failed && at_fn_log_failure
120988$at_traceon; }
120989
120990{ set +x
120991$as_echo "$at_srcdir/run_ml.at:673: \$COBCRUN_DIRECT ./prog"
120992at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:673"
120993( $at_check_trace; $COBCRUN_DIRECT ./prog
120994) >>"$at_stdout" 2>>"$at_stderr" 5>&-
120995at_status=$? at_failed=false
120996$at_check_filter
120997at_fn_diff_devnull "$at_stderr" || at_failed=:
120998at_fn_diff_devnull "$at_stdout" || at_failed=:
120999at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:673"
121000$at_failed && at_fn_log_failure
121001$at_traceon; }
121002
121003  set +x
121004  $at_times_p && times >"$at_times_file"
121005) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121006read at_status <"$at_status_file"
121007#AT_STOP_1054
121008#AT_START_1055
121009at_fn_group_banner 1055 'run_ml.at:677' \
121010  "JSON GENERATE record selection" "                 " 4
121011at_xfail=no
121012(
121013  $as_echo "1055. $at_setup_line: testing $at_desc ..."
121014  $at_traceon
121015
121016
121017
121018$as_echo "run_ml.at:680" >"$at_check_line_file"
121019(test "$COB_HAS_JSON" = "no") \
121020  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:680"
121021
121022# TO-DO: Add support for generating OCCURS items.
121023
121024cat >prog.cob <<'_ATEOF'
121025
121026       IDENTIFICATION DIVISION.
121027       PROGRAM-ID. prog.
121028
121029       DATA DIVISION.
121030       WORKING-STORAGE SECTION.
121031       01  a.
121032           03  b.
121033               05 c1 PIC X(3) VALUE "abc".
121034               05 c2 PIC 9(3) VALUE 0.
121035           03  d REDEFINES b.
121036               05  e PIC X(6).
121037           03  f PIC X OCCURS 3 VALUE "f".
121038
121039       66  h RENAMES c1 THRU c2.
121040
121041       01  out PIC X(60).
121042
121043       PROCEDURE DIVISION.
121044           *> JSON GENERATE out FROM a
121045           *> IF out <> '<a><b><c1>abc</c1><c2>0</c2></b><f>f</f><f>f</f>'-
121046           *>          '<f>f</f></a>'
121047           *>    DISPLAY "Failed 1: " FUNCTION TRIM (out)
121048           *> END-IF
121049
121050           JSON GENERATE out FROM d
121051           IF out <> '{"d":{"e":"abc000"}}'
121052               DISPLAY "Failed 2: " FUNCTION TRIM (out)
121053           END-IF
121054           .
121055       END PROGRAM prog.
121056_ATEOF
121057
121058{ set +x
121059$as_echo "$at_srcdir/run_ml.at:716: \$COMPILE prog.cob"
121060at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:716"
121061( $at_check_trace; $COMPILE prog.cob
121062) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121063at_status=$? at_failed=false
121064$at_check_filter
121065at_fn_diff_devnull "$at_stderr" || at_failed=:
121066at_fn_diff_devnull "$at_stdout" || at_failed=:
121067at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:716"
121068$at_failed && at_fn_log_failure
121069$at_traceon; }
121070
121071{ set +x
121072$as_echo "$at_srcdir/run_ml.at:717: \$COBCRUN_DIRECT ./prog"
121073at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:717"
121074( $at_check_trace; $COBCRUN_DIRECT ./prog
121075) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121076at_status=$? at_failed=false
121077$at_check_filter
121078at_fn_diff_devnull "$at_stderr" || at_failed=:
121079at_fn_diff_devnull "$at_stdout" || at_failed=:
121080at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:717"
121081$at_failed && at_fn_log_failure
121082$at_traceon; }
121083
121084  set +x
121085  $at_times_p && times >"$at_times_file"
121086) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121087read at_status <"$at_status_file"
121088#AT_STOP_1055
121089#AT_START_1056
121090at_fn_group_banner 1056 'run_ml.at:721' \
121091  "JSON GENERATE trimming" "                         " 4
121092at_xfail=no
121093(
121094  $as_echo "1056. $at_setup_line: testing $at_desc ..."
121095  $at_traceon
121096
121097
121098
121099$as_echo "run_ml.at:724" >"$at_check_line_file"
121100(test "$COB_HAS_JSON" = "no") \
121101  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:724"
121102
121103# TO-DO: Add support for IBM/COBOL 2002 edited floating point (e.g. PIC 9(3)E+99).
121104
121105cat >prog.cob <<'_ATEOF'
121106
121107       IDENTIFICATION DIVISION.
121108       PROGRAM-ID. prog.
121109
121110       DATA DIVISION.
121111       WORKING-STORAGE SECTION.
121112       01  str                     PIC X(3) VALUE "ab".
121113       01  num-edited              PIC 99.99 VALUE "01.00".
121114       01  leading-zeroes          PIC 9(5) VALUE 5.
121115       01  decimal-nums.
121116           03  decimal-num         PIC 99V999 PACKED-DECIMAL VALUE 0.12.
121117           03  decimal-num-2       PIC 99V9 VALUE 0.1.
121118       01  signed-decimal-num      PIC S999 COMP-X VALUE -1.
121119       01  comp-5-item             PIC 9(10) COMP-5 VALUE 5.
121120       01  index-item              INDEX.
121121       01  float-short-item        FLOAT-SHORT VALUE 100.
121122       01  float-long-item         FLOAT-LONG VALUE 123.0E-10.
121123       01  just-item               PIC X(10) JUST.
121124       01  integer-with-p          PIC 999PPP VALUE 10000.
121125       01  decimal-with-p          PIC VPP99 VALUE 0.0004.
121126
121127       01  out                     PIC X(300).
121128
121129       PROCEDURE DIVISION.
121130           JSON GENERATE out FROM str
121131           IF out <> '{"str":"ab"}'
121132               DISPLAY "Failed 1: " FUNCTION TRIM (out)
121133           END-IF
121134
121135           JSON GENERATE out FROM num-edited
121136           IF out <> '{"num-edited":"01.00"}'
121137               DISPLAY "Failed 2: " FUNCTION TRIM (out)
121138           END-IF
121139
121140           JSON GENERATE out FROM leading-zeroes
121141           IF out <> '{"leading-zeroes":5}'
121142               DISPLAY "Failed 3: " FUNCTION TRIM (out)
121143           END-IF
121144
121145           JSON GENERATE out FROM decimal-nums
121146           IF out <> '{"decimal-nums":{"decimal-num":0.120,'-
121147                     '"decimal-num-2":0.1}}'
121148               DISPLAY "Failed 4: " FUNCTION TRIM (out)
121149           END-IF
121150
121151           JSON GENERATE out FROM signed-decimal-num
121152           IF out <> '{"signed-decimal-num":-1}'
121153               DISPLAY "Failed 5: " FUNCTION TRIM (out)
121154           END-IF
121155
121156           JSON GENERATE out FROM comp-5-item
121157           IF out <> '{"comp-5-item":5}'
121158               DISPLAY "Failed 6: " FUNCTION TRIM (out)
121159           END-IF
121160
121161           SET index-item TO 500
121162           JSON GENERATE out FROM index-item
121163           IF out <> '{"index-item":500}'
121164               DISPLAY "Failed 7: " FUNCTION TRIM (out)
121165           END-IF
121166
121167           *> JSON GENERATE out FROM float-short-item
121168           *> IF out <> '{"float-short-item":1E+02}'
121169           *>     DISPLAY "Failed 8: " FUNCTION TRIM (out)
121170           *> END-IF
121171
121172           *> JSON GENERATE out FROM float-long-item
121173           *> IF out <> '{"float-long-item":123E-10}'
121174           *>     DISPLAY "Failed 9: " FUNCTION TRIM (out)
121175           *> END-IF
121176
121177           MOVE "blah " TO just-item
121178           JSON GENERATE out FROM just-item
121179           IF out <> '{"just-item":"blah "}'
121180               DISPLAY "Failed 10: " FUNCTION TRIM (out)
121181           END-IF
121182
121183           JSON GENERATE out FROM integer-with-p
121184           IF out <> '{"integer-with-p":10000}'
121185               DISPLAY "Failed 11: " FUNCTION TRIM (out)
121186           END-IF
121187
121188           JSON GENERATE out FROM decimal-with-p
121189           IF out <> '{"decimal-with-p":0.0004}'
121190               DISPLAY "Failed 12: " FUNCTION TRIM (out)
121191           END-IF
121192           .
121193_ATEOF
121194
121195{ set +x
121196$as_echo "$at_srcdir/run_ml.at:816: \$COMPILE prog.cob"
121197at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:816"
121198( $at_check_trace; $COMPILE prog.cob
121199) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121200at_status=$? at_failed=false
121201$at_check_filter
121202at_fn_diff_devnull "$at_stderr" || at_failed=:
121203at_fn_diff_devnull "$at_stdout" || at_failed=:
121204at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:816"
121205$at_failed && at_fn_log_failure
121206$at_traceon; }
121207
121208{ set +x
121209$as_echo "$at_srcdir/run_ml.at:817: \$COBCRUN_DIRECT ./prog"
121210at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:817"
121211( $at_check_trace; $COBCRUN_DIRECT ./prog
121212) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121213at_status=$? at_failed=false
121214$at_check_filter
121215at_fn_diff_devnull "$at_stderr" || at_failed=:
121216at_fn_diff_devnull "$at_stdout" || at_failed=:
121217at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:817"
121218$at_failed && at_fn_log_failure
121219$at_traceon; }
121220
121221  set +x
121222  $at_times_p && times >"$at_times_file"
121223) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121224read at_status <"$at_status_file"
121225#AT_STOP_1056
121226#AT_START_1057
121227at_fn_group_banner 1057 'run_ml.at:821' \
121228  "JSON DPC-IN-DATA directive" "                     " 4
121229at_xfail=no
121230(
121231  $as_echo "1057. $at_setup_line: testing $at_desc ..."
121232  $at_traceon
121233
121234
121235
121236$as_echo "run_ml.at:824" >"$at_check_line_file"
121237(test "$COB_HAS_JSON" = "no") \
121238  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:824"
121239
121240cat >prog.cob <<'_ATEOF'
121241
121242      $SET DPC-IN-DATA "JSON"
121243       IDENTIFICATION DIVISION.
121244       PROGRAM-ID. prog.
121245
121246       ENVIRONMENT DIVISION.
121247       CONFIGURATION SECTION.
121248       SPECIAL-NAMES.
121249           DECIMAL-POINT IS COMMA.
121250
121251       DATA DIVISION.
121252       WORKING-STORAGE SECTION.
121253       01  num PIC 9V9 VALUE 1,1.
121254       01  out PIC X(100).
121255
121256       PROCEDURE DIVISION.
121257           JSON GENERATE out FROM num
121258           IF out <> '{"num":1,1}'
121259              DISPLAY "Failed: " FUNCTION TRIM (out).
121260_ATEOF
121261
121262
121263{ set +x
121264$as_echo "$at_srcdir/run_ml.at:847: \$COMPILE prog.cob"
121265at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:847"
121266( $at_check_trace; $COMPILE prog.cob
121267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121268at_status=$? at_failed=false
121269$at_check_filter
121270at_fn_diff_devnull "$at_stderr" || at_failed=:
121271at_fn_diff_devnull "$at_stdout" || at_failed=:
121272at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:847"
121273$at_failed && at_fn_log_failure
121274$at_traceon; }
121275
121276{ set +x
121277$as_echo "$at_srcdir/run_ml.at:848: \$COBCRUN_DIRECT ./prog"
121278at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:848"
121279( $at_check_trace; $COBCRUN_DIRECT ./prog
121280) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121281at_status=$? at_failed=false
121282$at_check_filter
121283at_fn_diff_devnull "$at_stderr" || at_failed=:
121284at_fn_diff_devnull "$at_stdout" || at_failed=:
121285at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:848"
121286$at_failed && at_fn_log_failure
121287$at_traceon; }
121288
121289  set +x
121290  $at_times_p && times >"$at_times_file"
121291) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121292read at_status <"$at_status_file"
121293#AT_STOP_1057
121294#AT_START_1058
121295at_fn_group_banner 1058 'run_ml.at:852' \
121296  "JSON dpc-in-data config option" "                 " 4
121297at_xfail=no
121298(
121299  $as_echo "1058. $at_setup_line: testing $at_desc ..."
121300  $at_traceon
121301
121302
121303
121304$as_echo "run_ml.at:855" >"$at_check_line_file"
121305(test "$COB_HAS_JSON" = "no") \
121306  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:855"
121307
121308cat >prog.cob <<'_ATEOF'
121309
121310       IDENTIFICATION DIVISION.
121311       PROGRAM-ID. prog.
121312
121313       ENVIRONMENT DIVISION.
121314       CONFIGURATION SECTION.
121315       SPECIAL-NAMES.
121316           DECIMAL-POINT IS COMMA.
121317
121318       DATA DIVISION.
121319       WORKING-STORAGE SECTION.
121320       01  num PIC 9V9 VALUE 1,1.
121321       01  out PIC X(100).
121322
121323       PROCEDURE DIVISION.
121324           JSON GENERATE out FROM num
121325           DISPLAY FUNCTION TRIM(out)
121326           .
121327_ATEOF
121328
121329
121330{ set +x
121331$as_echo "$at_srcdir/run_ml.at:877: \$COMPILE -fdpc-in-data=none prog.cob"
121332at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=none prog.cob" "run_ml.at:877"
121333( $at_check_trace; $COMPILE -fdpc-in-data=none prog.cob
121334) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121335at_status=$? at_failed=false
121336$at_check_filter
121337at_fn_diff_devnull "$at_stderr" || at_failed=:
121338at_fn_diff_devnull "$at_stdout" || at_failed=:
121339at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:877"
121340$at_failed && at_fn_log_failure
121341$at_traceon; }
121342
121343{ set +x
121344$as_echo "$at_srcdir/run_ml.at:878: \$COBCRUN_DIRECT ./prog"
121345at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:878"
121346( $at_check_trace; $COBCRUN_DIRECT ./prog
121347) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121348at_status=$? at_failed=false
121349$at_check_filter
121350at_fn_diff_devnull "$at_stderr" || at_failed=:
121351echo >>"$at_stdout"; $as_echo "{\"num\":1.1}
121352" | \
121353  $at_diff - "$at_stdout" || at_failed=:
121354at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:878"
121355$at_failed && at_fn_log_failure
121356$at_traceon; }
121357
121358{ set +x
121359$as_echo "$at_srcdir/run_ml.at:881: \$COMPILE -fdpc-in-data=xml prog.cob"
121360at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=xml prog.cob" "run_ml.at:881"
121361( $at_check_trace; $COMPILE -fdpc-in-data=xml prog.cob
121362) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121363at_status=$? at_failed=false
121364$at_check_filter
121365at_fn_diff_devnull "$at_stderr" || at_failed=:
121366at_fn_diff_devnull "$at_stdout" || at_failed=:
121367at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:881"
121368$at_failed && at_fn_log_failure
121369$at_traceon; }
121370
121371{ set +x
121372$as_echo "$at_srcdir/run_ml.at:882: \$COBCRUN_DIRECT ./prog"
121373at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:882"
121374( $at_check_trace; $COBCRUN_DIRECT ./prog
121375) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121376at_status=$? at_failed=false
121377$at_check_filter
121378at_fn_diff_devnull "$at_stderr" || at_failed=:
121379echo >>"$at_stdout"; $as_echo "{\"num\":1.1}
121380" | \
121381  $at_diff - "$at_stdout" || at_failed=:
121382at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:882"
121383$at_failed && at_fn_log_failure
121384$at_traceon; }
121385
121386{ set +x
121387$as_echo "$at_srcdir/run_ml.at:885: \$COMPILE  -fdpc-in-data=json prog.cob"
121388at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=json prog.cob" "run_ml.at:885"
121389( $at_check_trace; $COMPILE  -fdpc-in-data=json prog.cob
121390) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121391at_status=$? at_failed=false
121392$at_check_filter
121393at_fn_diff_devnull "$at_stderr" || at_failed=:
121394at_fn_diff_devnull "$at_stdout" || at_failed=:
121395at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:885"
121396$at_failed && at_fn_log_failure
121397$at_traceon; }
121398
121399{ set +x
121400$as_echo "$at_srcdir/run_ml.at:886: \$COBCRUN_DIRECT ./prog"
121401at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:886"
121402( $at_check_trace; $COBCRUN_DIRECT ./prog
121403) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121404at_status=$? at_failed=false
121405$at_check_filter
121406at_fn_diff_devnull "$at_stderr" || at_failed=:
121407echo >>"$at_stdout"; $as_echo "{\"num\":1,1}
121408" | \
121409  $at_diff - "$at_stdout" || at_failed=:
121410at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:886"
121411$at_failed && at_fn_log_failure
121412$at_traceon; }
121413
121414{ set +x
121415$as_echo "$at_srcdir/run_ml.at:889: \$COMPILE  -fdpc-in-data=all prog.cob"
121416at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=all prog.cob" "run_ml.at:889"
121417( $at_check_trace; $COMPILE  -fdpc-in-data=all prog.cob
121418) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121419at_status=$? at_failed=false
121420$at_check_filter
121421at_fn_diff_devnull "$at_stderr" || at_failed=:
121422at_fn_diff_devnull "$at_stdout" || at_failed=:
121423at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:889"
121424$at_failed && at_fn_log_failure
121425$at_traceon; }
121426
121427{ set +x
121428$as_echo "$at_srcdir/run_ml.at:890: \$COBCRUN_DIRECT ./prog"
121429at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:890"
121430( $at_check_trace; $COBCRUN_DIRECT ./prog
121431) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121432at_status=$? at_failed=false
121433$at_check_filter
121434at_fn_diff_devnull "$at_stderr" || at_failed=:
121435echo >>"$at_stdout"; $as_echo "{\"num\":1,1}
121436" | \
121437  $at_diff - "$at_stdout" || at_failed=:
121438at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:890"
121439$at_failed && at_fn_log_failure
121440$at_traceon; }
121441
121442  set +x
121443  $at_times_p && times >"$at_times_file"
121444) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121445read at_status <"$at_status_file"
121446#AT_STOP_1058
121447#AT_START_1059
121448at_fn_group_banner 1059 'data_binary.at:23' \
121449  "BINARY: 2-4-8 big-endian" "                       " 5
121450at_xfail=no
121451(
121452  $as_echo "1059. $at_setup_line: testing $at_desc ..."
121453  $at_traceon
121454
121455
121456
121457cat >dump.c <<'_ATEOF'
121458
121459#include <stdio.h>
121460#include <libcob.h>
121461
121462COB_EXT_EXPORT int
121463dump (unsigned char *data)
121464{
121465  int i;
121466  for (i = 0; i < 8; i++)
121467    printf ("%02x", data[i]);
121468  puts ("");
121469  return 0;
121470}
121471_ATEOF
121472
121473
121474sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
121475
121476{ set +x
121477$as_echo "$at_srcdir/data_binary.at:43: \$COMPILE_MODULE dump.c"
121478at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:43"
121479( $at_check_trace; $COMPILE_MODULE dump.c
121480) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121481at_status=$? at_failed=false
121482$at_check_filter
121483at_fn_diff_devnull "$at_stderr" || at_failed=:
121484at_fn_diff_devnull "$at_stdout" || at_failed=:
121485at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:43"
121486$at_failed && at_fn_log_failure
121487$at_traceon; }
121488
121489{ set +x
121490$as_echo "$at_srcdir/data_binary.at:44: \$COMPILE -fbinary-size=2-4-8 \\
121491                   -fbinary-byteorder=big-endian prog.cob"
121492at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:44"
121493( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
121494                   -fbinary-byteorder=big-endian prog.cob
121495) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121496at_status=$? at_failed=false
121497$at_check_filter
121498at_fn_diff_devnull "$at_stderr" || at_failed=:
121499at_fn_diff_devnull "$at_stdout" || at_failed=:
121500at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:44"
121501$at_failed && at_fn_log_failure
121502$at_traceon; }
121503
121504{ set +x
121505$as_echo "$at_srcdir/data_binary.at:46: \$COBCRUN_DIRECT ./prog"
121506at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:46"
121507( $at_check_trace; $COBCRUN_DIRECT ./prog
121508) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121509at_status=$? at_failed=false
121510$at_check_filter
121511at_fn_diff_devnull "$at_stderr" || at_failed=:
121512echo >>"$at_stdout"; $as_echo "0001202020202020
121513000c202020202020
121514007b202020202020
12151504d2202020202020
1215160000303920202020
1215170001e24020202020
1215180012d68720202020
12151900bc614e20202020
121520075bcd1520202020
12152100000000499602d2
12152200000002dfdc1c35
1215230000001cbe991a14
1215240000011f71fb04cb
12152500000b3a73ce2ff2
12152600007048860ddf79
121527000462d53c8abac0
121528002bdc545d6b4b87
12152901b69b4ba630f34e
121530ffff202020202020
121531fff4202020202020
121532ff85202020202020
121533fb2e202020202020
121534ffffcfc720202020
121535fffe1dc020202020
121536ffed297920202020
121537ff439eb220202020
121538f8a432eb20202020
121539ffffffffb669fd2e
121540fffffffd2023e3cb
121541ffffffe34166e5ec
121542fffffee08e04fb35
121543fffff4c58c31d00e
121544ffff8fb779f22087
121545fffb9d2ac3754540
121546ffd423aba294b479
121547fe4964b459cf0cb2
1215480000202020202020
1215490000202020202020
1215500000202020202020
1215510000202020202020
1215520000000020202020
1215530000000020202020
1215540000000020202020
1215550000000020202020
1215560000000020202020
1215570000000000000000
1215580000000000000000
1215590000000000000000
1215600000000000000000
1215610000000000000000
1215620000000000000000
1215630000000000000000
1215640000000000000000
1215650000000000000000
1215660000202020202020
1215670000202020202020
1215680000202020202020
1215690000202020202020
1215700000000020202020
1215710000000020202020
1215720000000020202020
1215730000000020202020
1215740000000020202020
1215750000000000000000
1215760000000000000000
1215770000000000000000
1215780000000000000000
1215790000000000000000
1215800000000000000000
1215810000000000000000
1215820000000000000000
1215830000000000000000
1215840000202020202020
1215850000202020202020
1215860000202020202020
1215870000202020202020
1215880000000020202020
1215890000000020202020
1215900000000020202020
1215910000000020202020
1215920000000020202020
1215930000000000000000
1215940000000000000000
1215950000000000000000
1215960000000000000000
1215970000000000000000
1215980000000000000000
1215990000000000000000
1216000000000000000000
1216010000000000000000
1216020000202020202020
1216030000202020202020
1216040000202020202020
1216050000202020202020
1216060000000020202020
1216070000000020202020
1216080000000020202020
1216090000000020202020
1216100000000020202020
1216110000000000000000
1216120000000000000000
1216130000000000000000
1216140000000000000000
1216150000000000000000
1216160000000000000000
1216170000000000000000
1216180000000000000000
1216190000000000000000
121620" | \
121621  $at_diff - "$at_stdout" || at_failed=:
121622at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:46"
121623$at_failed && at_fn_log_failure
121624$at_traceon; }
121625
121626
121627sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
121628
121629{ set +x
121630$as_echo "$at_srcdir/data_binary.at:159: \$COMPILE -fbinary-size=2-4-8 \\
121631                   -fbinary-byteorder=big-endian prog.cob -o prog2"
121632at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:159"
121633( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
121634                   -fbinary-byteorder=big-endian prog.cob -o prog2
121635) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121636at_status=$? at_failed=false
121637$at_check_filter
121638at_fn_diff_devnull "$at_stderr" || at_failed=:
121639at_fn_diff_devnull "$at_stdout" || at_failed=:
121640at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:159"
121641$at_failed && at_fn_log_failure
121642$at_traceon; }
121643
121644{ set +x
121645$as_echo "$at_srcdir/data_binary.at:161: \$COBCRUN_DIRECT ./prog2"
121646at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:161"
121647( $at_check_trace; $COBCRUN_DIRECT ./prog2
121648) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121649at_status=$? at_failed=false
121650$at_check_filter
121651at_fn_diff_devnull "$at_stderr" || at_failed=:
121652echo >>"$at_stdout"; $as_echo "1
12165312
121654123
1216551234
12165612345
121657123456
1216581234567
12165912345678
121660123456789
1216611234567890
12166212345678901
121663123456789012
1216641234567890123
12166512345678901234
121666123456789012345
1216671234567890123456
12166812345678901234567
121669123456789012345678
121670-1
121671-12
121672-123
121673-1234
121674-12345
121675-123456
121676-1234567
121677-12345678
121678-123456789
121679-1234567890
121680-12345678901
121681-123456789012
121682-1234567890123
121683-12345678901234
121684-123456789012345
121685-1234567890123456
121686-12345678901234567
121687-123456789012345678
121688" | \
121689  $at_diff - "$at_stdout" || at_failed=:
121690at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:161"
121691$at_failed && at_fn_log_failure
121692$at_traceon; }
121693
121694
121695  set +x
121696  $at_times_p && times >"$at_times_file"
121697) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121698read at_status <"$at_status_file"
121699#AT_STOP_1059
121700#AT_START_1060
121701at_fn_group_banner 1060 'data_binary.at:205' \
121702  "BINARY: 2-4-8 native" "                           " 5
121703at_xfail=no
121704(
121705  $as_echo "1060. $at_setup_line: testing $at_desc ..."
121706  $at_traceon
121707
121708
121709
121710if test "x$COB_BIGENDIAN" = "xyes"; then
121711{ set +x
121712$as_echo "$at_srcdir/data_binary.at:209: true"
121713at_fn_check_prepare_trace "data_binary.at:209"
121714( $at_check_trace; true
121715) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121716at_status=$? at_failed=false
121717$at_check_filter
121718at_fn_diff_devnull "$at_stderr" || at_failed=:
121719at_fn_diff_devnull "$at_stdout" || at_failed=:
121720at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:209"
121721$at_failed && at_fn_log_failure
121722$at_traceon; }
121723
121724else
121725
121726
121727cat >dump.c <<'_ATEOF'
121728
121729#include <stdio.h>
121730#include <libcob.h>
121731
121732COB_EXT_EXPORT int
121733dump (unsigned char *data)
121734{
121735  int i;
121736  for (i = 0; i < 8; i++)
121737    printf ("%02x", data[i]);
121738  puts ("");
121739  return 0;
121740}
121741_ATEOF
121742
121743
121744sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
121745
121746{ set +x
121747$as_echo "$at_srcdir/data_binary.at:230: \$COMPILE_MODULE dump.c"
121748at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:230"
121749( $at_check_trace; $COMPILE_MODULE dump.c
121750) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121751at_status=$? at_failed=false
121752$at_check_filter
121753at_fn_diff_devnull "$at_stderr" || at_failed=:
121754at_fn_diff_devnull "$at_stdout" || at_failed=:
121755at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:230"
121756$at_failed && at_fn_log_failure
121757$at_traceon; }
121758
121759{ set +x
121760$as_echo "$at_srcdir/data_binary.at:231: \$COMPILE -fbinary-size=2-4-8 \\
121761                   -fbinary-byteorder=native  prog.cob"
121762at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:231"
121763( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
121764                   -fbinary-byteorder=native  prog.cob
121765) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121766at_status=$? at_failed=false
121767$at_check_filter
121768at_fn_diff_devnull "$at_stderr" || at_failed=:
121769at_fn_diff_devnull "$at_stdout" || at_failed=:
121770at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:231"
121771$at_failed && at_fn_log_failure
121772$at_traceon; }
121773
121774{ set +x
121775$as_echo "$at_srcdir/data_binary.at:233: \$COBCRUN_DIRECT ./prog"
121776at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:233"
121777( $at_check_trace; $COBCRUN_DIRECT ./prog
121778) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121779at_status=$? at_failed=false
121780$at_check_filter
121781at_fn_diff_devnull "$at_stderr" || at_failed=:
121782echo >>"$at_stdout"; $as_echo "0100202020202020
1217830c00202020202020
1217847b00202020202020
121785d204202020202020
1217863930000020202020
12178740e2010020202020
12178887d6120020202020
1217894e61bc0020202020
12179015cd5b0720202020
121791d202964900000000
121792351cdcdf02000000
121793141a99be1c000000
121794cb04fb711f010000
121795f22fce733a0b0000
12179679df0d8648700000
121797c0ba8a3cd5620400
121798874b6b5d54dc2b00
1217994ef330a64b9bb601
121800ffff202020202020
121801f4ff202020202020
12180285ff202020202020
1218032efb202020202020
121804c7cfffff20202020
121805c01dfeff20202020
1218067929edff20202020
121807b29e43ff20202020
121808eb32a4f820202020
1218092efd69b6ffffffff
121810cbe32320fdffffff
121811ece56641e3ffffff
12181235fb048ee0feffff
1218130ed0318cc5f4ffff
1218148720f279b78fffff
121815404575c32a9dfbff
12181679b494a2ab23d4ff
121817b20ccf59b46449fe
1218180000202020202020
1218190000202020202020
1218200000202020202020
1218210000202020202020
1218220000000020202020
1218230000000020202020
1218240000000020202020
1218250000000020202020
1218260000000020202020
1218270000000000000000
1218280000000000000000
1218290000000000000000
1218300000000000000000
1218310000000000000000
1218320000000000000000
1218330000000000000000
1218340000000000000000
1218350000000000000000
1218360000202020202020
1218370000202020202020
1218380000202020202020
1218390000202020202020
1218400000000020202020
1218410000000020202020
1218420000000020202020
1218430000000020202020
1218440000000020202020
1218450000000000000000
1218460000000000000000
1218470000000000000000
1218480000000000000000
1218490000000000000000
1218500000000000000000
1218510000000000000000
1218520000000000000000
1218530000000000000000
1218540000202020202020
1218550000202020202020
1218560000202020202020
1218570000202020202020
1218580000000020202020
1218590000000020202020
1218600000000020202020
1218610000000020202020
1218620000000020202020
1218630000000000000000
1218640000000000000000
1218650000000000000000
1218660000000000000000
1218670000000000000000
1218680000000000000000
1218690000000000000000
1218700000000000000000
1218710000000000000000
1218720000202020202020
1218730000202020202020
1218740000202020202020
1218750000202020202020
1218760000000020202020
1218770000000020202020
1218780000000020202020
1218790000000020202020
1218800000000020202020
1218810000000000000000
1218820000000000000000
1218830000000000000000
1218840000000000000000
1218850000000000000000
1218860000000000000000
1218870000000000000000
1218880000000000000000
1218890000000000000000
121890" | \
121891  $at_diff - "$at_stdout" || at_failed=:
121892at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:233"
121893$at_failed && at_fn_log_failure
121894$at_traceon; }
121895
121896
121897sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
121898
121899{ set +x
121900$as_echo "$at_srcdir/data_binary.at:346: \$COMPILE -fbinary-size=2-4-8 \\
121901                   -fbinary-byteorder=native prog.cob -o prog2"
121902at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:346"
121903( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
121904                   -fbinary-byteorder=native prog.cob -o prog2
121905) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121906at_status=$? at_failed=false
121907$at_check_filter
121908at_fn_diff_devnull "$at_stderr" || at_failed=:
121909at_fn_diff_devnull "$at_stdout" || at_failed=:
121910at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:346"
121911$at_failed && at_fn_log_failure
121912$at_traceon; }
121913
121914{ set +x
121915$as_echo "$at_srcdir/data_binary.at:348: \$COBCRUN_DIRECT ./prog2"
121916at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:348"
121917( $at_check_trace; $COBCRUN_DIRECT ./prog2
121918) >>"$at_stdout" 2>>"$at_stderr" 5>&-
121919at_status=$? at_failed=false
121920$at_check_filter
121921at_fn_diff_devnull "$at_stderr" || at_failed=:
121922echo >>"$at_stdout"; $as_echo "1
12192312
121924123
1219251234
12192612345
121927123456
1219281234567
12192912345678
121930123456789
1219311234567890
12193212345678901
121933123456789012
1219341234567890123
12193512345678901234
121936123456789012345
1219371234567890123456
12193812345678901234567
121939123456789012345678
121940-1
121941-12
121942-123
121943-1234
121944-12345
121945-123456
121946-1234567
121947-12345678
121948-123456789
121949-1234567890
121950-12345678901
121951-123456789012
121952-1234567890123
121953-12345678901234
121954-123456789012345
121955-1234567890123456
121956-12345678901234567
121957-123456789012345678
121958" | \
121959  $at_diff - "$at_stdout" || at_failed=:
121960at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:348"
121961$at_failed && at_fn_log_failure
121962$at_traceon; }
121963
121964fi
121965
121966  set +x
121967  $at_times_p && times >"$at_times_file"
121968) 5>&1 2>&1 7>&- | eval $at_tee_pipe
121969read at_status <"$at_status_file"
121970#AT_STOP_1060
121971#AT_START_1061
121972at_fn_group_banner 1061 'data_binary.at:393' \
121973  "BINARY: 1-2-4-8 big-endian" "                     " 5
121974at_xfail=no
121975(
121976  $as_echo "1061. $at_setup_line: testing $at_desc ..."
121977  $at_traceon
121978
121979
121980
121981cat >dump.c <<'_ATEOF'
121982
121983#include <stdio.h>
121984#include <libcob.h>
121985
121986COB_EXT_EXPORT int
121987dump (unsigned char *data)
121988{
121989  int i;
121990  for (i = 0; i < 8; i++)
121991    printf ("%02x", data[i]);
121992  puts ("");
121993  return 0;
121994}
121995_ATEOF
121996
121997
121998sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
121999
122000{ set +x
122001$as_echo "$at_srcdir/data_binary.at:413: \$COMPILE_MODULE dump.c"
122002at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:413"
122003( $at_check_trace; $COMPILE_MODULE dump.c
122004) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122005at_status=$? at_failed=false
122006$at_check_filter
122007at_fn_diff_devnull "$at_stderr" || at_failed=:
122008at_fn_diff_devnull "$at_stdout" || at_failed=:
122009at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:413"
122010$at_failed && at_fn_log_failure
122011$at_traceon; }
122012
122013{ set +x
122014$as_echo "$at_srcdir/data_binary.at:414: \$COMPILE -fbinary-size=1-2-4-8 \\
122015                   -fbinary-byteorder=big-endian prog.cob"
122016at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:414"
122017( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
122018                   -fbinary-byteorder=big-endian prog.cob
122019) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122020at_status=$? at_failed=false
122021$at_check_filter
122022at_fn_diff_devnull "$at_stderr" || at_failed=:
122023at_fn_diff_devnull "$at_stdout" || at_failed=:
122024at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:414"
122025$at_failed && at_fn_log_failure
122026$at_traceon; }
122027
122028{ set +x
122029$as_echo "$at_srcdir/data_binary.at:416: \$COBCRUN_DIRECT ./prog"
122030at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:416"
122031( $at_check_trace; $COBCRUN_DIRECT ./prog
122032) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122033at_status=$? at_failed=false
122034$at_check_filter
122035at_fn_diff_devnull "$at_stderr" || at_failed=:
122036echo >>"$at_stdout"; $as_echo "0120202020202020
1220370c20202020202020
122038007b202020202020
12203904d2202020202020
1220400000303920202020
1220410001e24020202020
1220420012d68720202020
12204300bc614e20202020
122044075bcd1520202020
12204500000000499602d2
12204600000002dfdc1c35
1220470000001cbe991a14
1220480000011f71fb04cb
12204900000b3a73ce2ff2
12205000007048860ddf79
122051000462d53c8abac0
122052002bdc545d6b4b87
12205301b69b4ba630f34e
122054ff20202020202020
122055f420202020202020
122056ff85202020202020
122057fb2e202020202020
122058ffffcfc720202020
122059fffe1dc020202020
122060ffed297920202020
122061ff439eb220202020
122062f8a432eb20202020
122063ffffffffb669fd2e
122064fffffffd2023e3cb
122065ffffffe34166e5ec
122066fffffee08e04fb35
122067fffff4c58c31d00e
122068ffff8fb779f22087
122069fffb9d2ac3754540
122070ffd423aba294b479
122071fe4964b459cf0cb2
1220720020202020202020
1220730020202020202020
1220740000202020202020
1220750000202020202020
1220760000000020202020
1220770000000020202020
1220780000000020202020
1220790000000020202020
1220800000000020202020
1220810000000000000000
1220820000000000000000
1220830000000000000000
1220840000000000000000
1220850000000000000000
1220860000000000000000
1220870000000000000000
1220880000000000000000
1220890000000000000000
1220900020202020202020
1220910020202020202020
1220920000202020202020
1220930000202020202020
1220940000000020202020
1220950000000020202020
1220960000000020202020
1220970000000020202020
1220980000000020202020
1220990000000000000000
1221000000000000000000
1221010000000000000000
1221020000000000000000
1221030000000000000000
1221040000000000000000
1221050000000000000000
1221060000000000000000
1221070000000000000000
1221080020202020202020
1221090020202020202020
1221100000202020202020
1221110000202020202020
1221120000000020202020
1221130000000020202020
1221140000000020202020
1221150000000020202020
1221160000000020202020
1221170000000000000000
1221180000000000000000
1221190000000000000000
1221200000000000000000
1221210000000000000000
1221220000000000000000
1221230000000000000000
1221240000000000000000
1221250000000000000000
1221260020202020202020
1221270020202020202020
1221280000202020202020
1221290000202020202020
1221300000000020202020
1221310000000020202020
1221320000000020202020
1221330000000020202020
1221340000000020202020
1221350000000000000000
1221360000000000000000
1221370000000000000000
1221380000000000000000
1221390000000000000000
1221400000000000000000
1221410000000000000000
1221420000000000000000
1221430000000000000000
122144" | \
122145  $at_diff - "$at_stdout" || at_failed=:
122146at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:416"
122147$at_failed && at_fn_log_failure
122148$at_traceon; }
122149
122150
122151sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
122152
122153{ set +x
122154$as_echo "$at_srcdir/data_binary.at:529: \$COMPILE -fbinary-size=1-2-4-8 \\
122155                   -fbinary-byteorder=big-endian prog.cob -o prog2"
122156at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:529"
122157( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
122158                   -fbinary-byteorder=big-endian prog.cob -o prog2
122159) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122160at_status=$? at_failed=false
122161$at_check_filter
122162at_fn_diff_devnull "$at_stderr" || at_failed=:
122163at_fn_diff_devnull "$at_stdout" || at_failed=:
122164at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:529"
122165$at_failed && at_fn_log_failure
122166$at_traceon; }
122167
122168{ set +x
122169$as_echo "$at_srcdir/data_binary.at:531: \$COBCRUN_DIRECT ./prog2"
122170at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:531"
122171( $at_check_trace; $COBCRUN_DIRECT ./prog2
122172) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122173at_status=$? at_failed=false
122174$at_check_filter
122175at_fn_diff_devnull "$at_stderr" || at_failed=:
122176echo >>"$at_stdout"; $as_echo "1
12217712
122178123
1221791234
12218012345
122181123456
1221821234567
12218312345678
122184123456789
1221851234567890
12218612345678901
122187123456789012
1221881234567890123
12218912345678901234
122190123456789012345
1221911234567890123456
12219212345678901234567
122193123456789012345678
122194-1
122195-12
122196-123
122197-1234
122198-12345
122199-123456
122200-1234567
122201-12345678
122202-123456789
122203-1234567890
122204-12345678901
122205-123456789012
122206-1234567890123
122207-12345678901234
122208-123456789012345
122209-1234567890123456
122210-12345678901234567
122211-123456789012345678
122212" | \
122213  $at_diff - "$at_stdout" || at_failed=:
122214at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:531"
122215$at_failed && at_fn_log_failure
122216$at_traceon; }
122217
122218
122219  set +x
122220  $at_times_p && times >"$at_times_file"
122221) 5>&1 2>&1 7>&- | eval $at_tee_pipe
122222read at_status <"$at_status_file"
122223#AT_STOP_1061
122224#AT_START_1062
122225at_fn_group_banner 1062 'data_binary.at:575' \
122226  "BINARY: 1-2-4-8 native" "                         " 5
122227at_xfail=no
122228(
122229  $as_echo "1062. $at_setup_line: testing $at_desc ..."
122230  $at_traceon
122231
122232
122233
122234if test "x$COB_BIGENDIAN" = "xyes"; then
122235{ set +x
122236$as_echo "$at_srcdir/data_binary.at:579: true"
122237at_fn_check_prepare_trace "data_binary.at:579"
122238( $at_check_trace; true
122239) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122240at_status=$? at_failed=false
122241$at_check_filter
122242at_fn_diff_devnull "$at_stderr" || at_failed=:
122243at_fn_diff_devnull "$at_stdout" || at_failed=:
122244at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:579"
122245$at_failed && at_fn_log_failure
122246$at_traceon; }
122247
122248else
122249
122250cat >dump.c <<'_ATEOF'
122251
122252#include <stdio.h>
122253#include <libcob.h>
122254
122255COB_EXT_EXPORT int
122256dump (unsigned char *data)
122257{
122258  int i;
122259  for (i = 0; i < 8; i++)
122260    printf ("%02x", data[i]);
122261  puts ("");
122262  return 0;
122263}
122264_ATEOF
122265
122266
122267sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
122268
122269{ set +x
122270$as_echo "$at_srcdir/data_binary.at:599: \$COMPILE_MODULE dump.c"
122271at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:599"
122272( $at_check_trace; $COMPILE_MODULE dump.c
122273) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122274at_status=$? at_failed=false
122275$at_check_filter
122276at_fn_diff_devnull "$at_stderr" || at_failed=:
122277at_fn_diff_devnull "$at_stdout" || at_failed=:
122278at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:599"
122279$at_failed && at_fn_log_failure
122280$at_traceon; }
122281
122282{ set +x
122283$as_echo "$at_srcdir/data_binary.at:600: \$COMPILE -fbinary-size=1-2-4-8 \\
122284                   -fbinary-byteorder=native prog.cob"
122285at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:600"
122286( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
122287                   -fbinary-byteorder=native prog.cob
122288) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122289at_status=$? at_failed=false
122290$at_check_filter
122291at_fn_diff_devnull "$at_stderr" || at_failed=:
122292at_fn_diff_devnull "$at_stdout" || at_failed=:
122293at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:600"
122294$at_failed && at_fn_log_failure
122295$at_traceon; }
122296
122297{ set +x
122298$as_echo "$at_srcdir/data_binary.at:602: \$COBCRUN_DIRECT ./prog"
122299at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:602"
122300( $at_check_trace; $COBCRUN_DIRECT ./prog
122301) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122302at_status=$? at_failed=false
122303$at_check_filter
122304at_fn_diff_devnull "$at_stderr" || at_failed=:
122305echo >>"$at_stdout"; $as_echo "0120202020202020
1223060c20202020202020
1223077b00202020202020
122308d204202020202020
1223093930000020202020
12231040e2010020202020
12231187d6120020202020
1223124e61bc0020202020
12231315cd5b0720202020
122314d202964900000000
122315351cdcdf02000000
122316141a99be1c000000
122317cb04fb711f010000
122318f22fce733a0b0000
12231979df0d8648700000
122320c0ba8a3cd5620400
122321874b6b5d54dc2b00
1223224ef330a64b9bb601
122323ff20202020202020
122324f420202020202020
12232585ff202020202020
1223262efb202020202020
122327c7cfffff20202020
122328c01dfeff20202020
1223297929edff20202020
122330b29e43ff20202020
122331eb32a4f820202020
1223322efd69b6ffffffff
122333cbe32320fdffffff
122334ece56641e3ffffff
12233535fb048ee0feffff
1223360ed0318cc5f4ffff
1223378720f279b78fffff
122338404575c32a9dfbff
12233979b494a2ab23d4ff
122340b20ccf59b46449fe
1223410020202020202020
1223420020202020202020
1223430000202020202020
1223440000202020202020
1223450000000020202020
1223460000000020202020
1223470000000020202020
1223480000000020202020
1223490000000020202020
1223500000000000000000
1223510000000000000000
1223520000000000000000
1223530000000000000000
1223540000000000000000
1223550000000000000000
1223560000000000000000
1223570000000000000000
1223580000000000000000
1223590020202020202020
1223600020202020202020
1223610000202020202020
1223620000202020202020
1223630000000020202020
1223640000000020202020
1223650000000020202020
1223660000000020202020
1223670000000020202020
1223680000000000000000
1223690000000000000000
1223700000000000000000
1223710000000000000000
1223720000000000000000
1223730000000000000000
1223740000000000000000
1223750000000000000000
1223760000000000000000
1223770020202020202020
1223780020202020202020
1223790000202020202020
1223800000202020202020
1223810000000020202020
1223820000000020202020
1223830000000020202020
1223840000000020202020
1223850000000020202020
1223860000000000000000
1223870000000000000000
1223880000000000000000
1223890000000000000000
1223900000000000000000
1223910000000000000000
1223920000000000000000
1223930000000000000000
1223940000000000000000
1223950020202020202020
1223960020202020202020
1223970000202020202020
1223980000202020202020
1223990000000020202020
1224000000000020202020
1224010000000020202020
1224020000000020202020
1224030000000020202020
1224040000000000000000
1224050000000000000000
1224060000000000000000
1224070000000000000000
1224080000000000000000
1224090000000000000000
1224100000000000000000
1224110000000000000000
1224120000000000000000
122413" | \
122414  $at_diff - "$at_stdout" || at_failed=:
122415at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:602"
122416$at_failed && at_fn_log_failure
122417$at_traceon; }
122418
122419
122420sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
122421
122422{ set +x
122423$as_echo "$at_srcdir/data_binary.at:715: \$COMPILE -fbinary-size=1-2-4-8 \\
122424                   -fbinary-byteorder=native prog.cob -o prog2"
122425at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:715"
122426( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
122427                   -fbinary-byteorder=native prog.cob -o prog2
122428) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122429at_status=$? at_failed=false
122430$at_check_filter
122431at_fn_diff_devnull "$at_stderr" || at_failed=:
122432at_fn_diff_devnull "$at_stdout" || at_failed=:
122433at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:715"
122434$at_failed && at_fn_log_failure
122435$at_traceon; }
122436
122437{ set +x
122438$as_echo "$at_srcdir/data_binary.at:717: \$COBCRUN_DIRECT ./prog2"
122439at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:717"
122440( $at_check_trace; $COBCRUN_DIRECT ./prog2
122441) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122442at_status=$? at_failed=false
122443$at_check_filter
122444at_fn_diff_devnull "$at_stderr" || at_failed=:
122445echo >>"$at_stdout"; $as_echo "1
12244612
122447123
1224481234
12244912345
122450123456
1224511234567
12245212345678
122453123456789
1224541234567890
12245512345678901
122456123456789012
1224571234567890123
12245812345678901234
122459123456789012345
1224601234567890123456
12246112345678901234567
122462123456789012345678
122463-1
122464-12
122465-123
122466-1234
122467-12345
122468-123456
122469-1234567
122470-12345678
122471-123456789
122472-1234567890
122473-12345678901
122474-123456789012
122475-1234567890123
122476-12345678901234
122477-123456789012345
122478-1234567890123456
122479-12345678901234567
122480-123456789012345678
122481" | \
122482  $at_diff - "$at_stdout" || at_failed=:
122483at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:717"
122484$at_failed && at_fn_log_failure
122485$at_traceon; }
122486
122487
122488fi
122489
122490  set +x
122491  $at_times_p && times >"$at_times_file"
122492) 5>&1 2>&1 7>&- | eval $at_tee_pipe
122493read at_status <"$at_status_file"
122494#AT_STOP_1062
122495#AT_START_1063
122496at_fn_group_banner 1063 'data_binary.at:763' \
122497  "BINARY: 1--8 big-endian" "                        " 5
122498at_xfail=no
122499(
122500  $as_echo "1063. $at_setup_line: testing $at_desc ..."
122501  $at_traceon
122502
122503
122504
122505cat >dump.c <<'_ATEOF'
122506
122507#include <stdio.h>
122508#include <libcob.h>
122509
122510COB_EXT_EXPORT int
122511dump (unsigned char *data)
122512{
122513  int i;
122514  for (i = 0; i < 8; i++)
122515    printf ("%02x", data[i]);
122516  puts ("");
122517  return 0;
122518}
122519_ATEOF
122520
122521
122522sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
122523
122524{ set +x
122525$as_echo "$at_srcdir/data_binary.at:783: \$COMPILE_MODULE dump.c"
122526at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:783"
122527( $at_check_trace; $COMPILE_MODULE dump.c
122528) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122529at_status=$? at_failed=false
122530$at_check_filter
122531at_fn_diff_devnull "$at_stderr" || at_failed=:
122532at_fn_diff_devnull "$at_stdout" || at_failed=:
122533at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:783"
122534$at_failed && at_fn_log_failure
122535$at_traceon; }
122536
122537{ set +x
122538$as_echo "$at_srcdir/data_binary.at:784: \$COMPILE -fbinary-size=1--8 \\
122539                   -fbinary-byteorder=big-endian prog.cob"
122540at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:784"
122541( $at_check_trace; $COMPILE -fbinary-size=1--8 \
122542                   -fbinary-byteorder=big-endian prog.cob
122543) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122544at_status=$? at_failed=false
122545$at_check_filter
122546at_fn_diff_devnull "$at_stderr" || at_failed=:
122547at_fn_diff_devnull "$at_stdout" || at_failed=:
122548at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:784"
122549$at_failed && at_fn_log_failure
122550$at_traceon; }
122551
122552{ set +x
122553$as_echo "$at_srcdir/data_binary.at:786: \$COBCRUN_DIRECT ./prog"
122554at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:786"
122555( $at_check_trace; $COBCRUN_DIRECT ./prog
122556) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122557at_status=$? at_failed=false
122558$at_check_filter
122559at_fn_diff_devnull "$at_stderr" || at_failed=:
122560echo >>"$at_stdout"; $as_echo "0120202020202020
1225610c20202020202020
122562007b202020202020
12256304d2202020202020
1225640030392020202020
12256501e2402020202020
12256612d6872020202020
12256700bc614e20202020
122568075bcd1520202020
12256900499602d2202020
12257002dfdc1c35202020
1225711cbe991a14202020
122572011f71fb04cb2020
1225730b3a73ce2ff22020
122574007048860ddf7920
1225750462d53c8abac020
122576002bdc545d6b4b87
12257701b69b4ba630f34e
122578ff20202020202020
122579f420202020202020
122580ff85202020202020
122581fb2e202020202020
122582ffcfc72020202020
122583fe1dc02020202020
122584ffed297920202020
122585ff439eb220202020
122586f8a432eb20202020
122587ffb669fd2e202020
122588fd2023e3cb202020
122589ffe34166e5ec2020
122590fee08e04fb352020
122591f4c58c31d00e2020
122592ff8fb779f2208720
122593fb9d2ac375454020
122594ffd423aba294b479
122595fe4964b459cf0cb2
1225960020202020202020
1225970020202020202020
1225980000202020202020
1225990000202020202020
1226000000002020202020
1226010000002020202020
1226020000002020202020
1226030000000020202020
1226040000000020202020
1226050000000000202020
1226060000000000202020
1226070000000000202020
1226080000000000002020
1226090000000000002020
1226100000000000000020
1226110000000000000020
1226120000000000000000
1226130000000000000000
1226140020202020202020
1226150020202020202020
1226160000202020202020
1226170000202020202020
1226180000002020202020
1226190000002020202020
1226200000000020202020
1226210000000020202020
1226220000000020202020
1226230000000000202020
1226240000000000202020
1226250000000000002020
1226260000000000002020
1226270000000000002020
1226280000000000000020
1226290000000000000020
1226300000000000000000
1226310000000000000000
1226320020202020202020
1226330020202020202020
1226340000202020202020
1226350000202020202020
1226360000002020202020
1226370000002020202020
1226380000002020202020
1226390000000020202020
1226400000000020202020
1226410000000000202020
1226420000000000202020
1226430000000000202020
1226440000000000002020
1226450000000000002020
1226460000000000000020
1226470000000000000020
1226480000000000000000
1226490000000000000000
1226500020202020202020
1226510020202020202020
1226520000202020202020
1226530000202020202020
1226540000002020202020
1226550000002020202020
1226560000000020202020
1226570000000020202020
1226580000000020202020
1226590000000000202020
1226600000000000202020
1226610000000000002020
1226620000000000002020
1226630000000000002020
1226640000000000000020
1226650000000000000020
1226660000000000000000
1226670000000000000000
122668" | \
122669  $at_diff - "$at_stdout" || at_failed=:
122670at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:786"
122671$at_failed && at_fn_log_failure
122672$at_traceon; }
122673
122674
122675sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
122676
122677{ set +x
122678$as_echo "$at_srcdir/data_binary.at:899: \$COMPILE -fbinary-size=1--8 \\
122679                   -fbinary-byteorder=big-endian prog.cob -o prog2"
122680at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:899"
122681( $at_check_trace; $COMPILE -fbinary-size=1--8 \
122682                   -fbinary-byteorder=big-endian prog.cob -o prog2
122683) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122684at_status=$? at_failed=false
122685$at_check_filter
122686at_fn_diff_devnull "$at_stderr" || at_failed=:
122687at_fn_diff_devnull "$at_stdout" || at_failed=:
122688at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:899"
122689$at_failed && at_fn_log_failure
122690$at_traceon; }
122691
122692{ set +x
122693$as_echo "$at_srcdir/data_binary.at:901: \$COBCRUN_DIRECT ./prog2"
122694at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:901"
122695( $at_check_trace; $COBCRUN_DIRECT ./prog2
122696) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122697at_status=$? at_failed=false
122698$at_check_filter
122699at_fn_diff_devnull "$at_stderr" || at_failed=:
122700echo >>"$at_stdout"; $as_echo "1
12270112
122702123
1227031234
12270412345
122705123456
1227061234567
12270712345678
122708123456789
1227091234567890
12271012345678901
122711123456789012
1227121234567890123
12271312345678901234
122714123456789012345
1227151234567890123456
12271612345678901234567
122717123456789012345678
122718-1
122719-12
122720-123
122721-1234
122722-12345
122723-123456
122724-1234567
122725-12345678
122726-123456789
122727-1234567890
122728-12345678901
122729-123456789012
122730-1234567890123
122731-12345678901234
122732-123456789012345
122733-1234567890123456
122734-12345678901234567
122735-123456789012345678
122736" | \
122737  $at_diff - "$at_stdout" || at_failed=:
122738at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:901"
122739$at_failed && at_fn_log_failure
122740$at_traceon; }
122741
122742
122743  set +x
122744  $at_times_p && times >"$at_times_file"
122745) 5>&1 2>&1 7>&- | eval $at_tee_pipe
122746read at_status <"$at_status_file"
122747#AT_STOP_1063
122748#AT_START_1064
122749at_fn_group_banner 1064 'data_binary.at:945' \
122750  "BINARY: 1--8 native" "                            " 5
122751at_xfail=no
122752(
122753  $as_echo "1064. $at_setup_line: testing $at_desc ..."
122754  $at_traceon
122755
122756
122757
122758if test "x$COB_BIGENDIAN" = "xyes"; then
122759{ set +x
122760$as_echo "$at_srcdir/data_binary.at:949: true"
122761at_fn_check_prepare_trace "data_binary.at:949"
122762( $at_check_trace; true
122763) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122764at_status=$? at_failed=false
122765$at_check_filter
122766at_fn_diff_devnull "$at_stderr" || at_failed=:
122767at_fn_diff_devnull "$at_stdout" || at_failed=:
122768at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:949"
122769$at_failed && at_fn_log_failure
122770$at_traceon; }
122771
122772else
122773
122774cat >dump.c <<'_ATEOF'
122775
122776#include <stdio.h>
122777#include <libcob.h>
122778
122779COB_EXT_EXPORT int
122780dump (unsigned char *data)
122781{
122782  int i;
122783  for (i = 0; i < 8; i++)
122784    printf ("%02x", data[i]);
122785  puts ("");
122786  return 0;
122787}
122788_ATEOF
122789
122790
122791sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
122792
122793{ set +x
122794$as_echo "$at_srcdir/data_binary.at:969: \$COMPILE_MODULE dump.c"
122795at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:969"
122796( $at_check_trace; $COMPILE_MODULE dump.c
122797) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122798at_status=$? at_failed=false
122799$at_check_filter
122800at_fn_diff_devnull "$at_stderr" || at_failed=:
122801at_fn_diff_devnull "$at_stdout" || at_failed=:
122802at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:969"
122803$at_failed && at_fn_log_failure
122804$at_traceon; }
122805
122806{ set +x
122807$as_echo "$at_srcdir/data_binary.at:970: \$COMPILE -fbinary-size=1--8 \\
122808                   -fbinary-byteorder=native prog.cob"
122809at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:970"
122810( $at_check_trace; $COMPILE -fbinary-size=1--8 \
122811                   -fbinary-byteorder=native prog.cob
122812) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122813at_status=$? at_failed=false
122814$at_check_filter
122815at_fn_diff_devnull "$at_stderr" || at_failed=:
122816at_fn_diff_devnull "$at_stdout" || at_failed=:
122817at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:970"
122818$at_failed && at_fn_log_failure
122819$at_traceon; }
122820
122821{ set +x
122822$as_echo "$at_srcdir/data_binary.at:972: \$COBCRUN_DIRECT ./prog"
122823at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:972"
122824( $at_check_trace; $COBCRUN_DIRECT ./prog
122825) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122826at_status=$? at_failed=false
122827$at_check_filter
122828at_fn_diff_devnull "$at_stderr" || at_failed=:
122829echo >>"$at_stdout"; $as_echo "0120202020202020
1228300c20202020202020
1228317b00202020202020
122832d204202020202020
1228333930002020202020
12283440e2012020202020
12283587d6122020202020
1228364e61bc0020202020
12283715cd5b0720202020
122838d202964900202020
122839351cdcdf02202020
122840141a99be1c202020
122841cb04fb711f012020
122842f22fce733a0b2020
12284379df0d8648700020
122844c0ba8a3cd5620420
122845874b6b5d54dc2b00
1228464ef330a64b9bb601
122847ff20202020202020
122848f420202020202020
12284985ff202020202020
1228502efb202020202020
122851c7cfff2020202020
122852c01dfe2020202020
1228537929edff20202020
122854b29e43ff20202020
122855eb32a4f820202020
1228562efd69b6ff202020
122857cbe32320fd202020
122858ece56641e3ff2020
12285935fb048ee0fe2020
1228600ed0318cc5f42020
1228618720f279b78fff20
122862404575c32a9dfb20
12286379b494a2ab23d4ff
122864b20ccf59b46449fe
1228650020202020202020
1228660020202020202020
1228670000202020202020
1228680000202020202020
1228690000002020202020
1228700000002020202020
1228710000002020202020
1228720000000020202020
1228730000000020202020
1228740000000000202020
1228750000000000202020
1228760000000000202020
1228770000000000002020
1228780000000000002020
1228790000000000000020
1228800000000000000020
1228810000000000000000
1228820000000000000000
1228830020202020202020
1228840020202020202020
1228850000202020202020
1228860000202020202020
1228870000002020202020
1228880000002020202020
1228890000000020202020
1228900000000020202020
1228910000000020202020
1228920000000000202020
1228930000000000202020
1228940000000000002020
1228950000000000002020
1228960000000000002020
1228970000000000000020
1228980000000000000020
1228990000000000000000
1229000000000000000000
1229010020202020202020
1229020020202020202020
1229030000202020202020
1229040000202020202020
1229050000002020202020
1229060000002020202020
1229070000002020202020
1229080000000020202020
1229090000000020202020
1229100000000000202020
1229110000000000202020
1229120000000000202020
1229130000000000002020
1229140000000000002020
1229150000000000000020
1229160000000000000020
1229170000000000000000
1229180000000000000000
1229190020202020202020
1229200020202020202020
1229210000202020202020
1229220000202020202020
1229230000002020202020
1229240000002020202020
1229250000000020202020
1229260000000020202020
1229270000000020202020
1229280000000000202020
1229290000000000202020
1229300000000000002020
1229310000000000002020
1229320000000000002020
1229330000000000000020
1229340000000000000020
1229350000000000000000
1229360000000000000000
122937" | \
122938  $at_diff - "$at_stdout" || at_failed=:
122939at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:972"
122940$at_failed && at_fn_log_failure
122941$at_traceon; }
122942
122943
122944sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
122945
122946{ set +x
122947$as_echo "$at_srcdir/data_binary.at:1085: \$COMPILE -fbinary-size=1--8 \\
122948                   -fbinary-byteorder=native prog.cob -o prog2"
122949at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:1085"
122950( $at_check_trace; $COMPILE -fbinary-size=1--8 \
122951                   -fbinary-byteorder=native prog.cob -o prog2
122952) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122953at_status=$? at_failed=false
122954$at_check_filter
122955at_fn_diff_devnull "$at_stderr" || at_failed=:
122956at_fn_diff_devnull "$at_stdout" || at_failed=:
122957at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1085"
122958$at_failed && at_fn_log_failure
122959$at_traceon; }
122960
122961{ set +x
122962$as_echo "$at_srcdir/data_binary.at:1087: \$COBCRUN_DIRECT ./prog2"
122963at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:1087"
122964( $at_check_trace; $COBCRUN_DIRECT ./prog2
122965) >>"$at_stdout" 2>>"$at_stderr" 5>&-
122966at_status=$? at_failed=false
122967$at_check_filter
122968at_fn_diff_devnull "$at_stderr" || at_failed=:
122969echo >>"$at_stdout"; $as_echo "1
12297012
122971123
1229721234
12297312345
122974123456
1229751234567
12297612345678
122977123456789
1229781234567890
12297912345678901
122980123456789012
1229811234567890123
12298212345678901234
122983123456789012345
1229841234567890123456
12298512345678901234567
122986123456789012345678
122987-1
122988-12
122989-123
122990-1234
122991-12345
122992-123456
122993-1234567
122994-12345678
122995-123456789
122996-1234567890
122997-12345678901
122998-123456789012
122999-1234567890123
123000-12345678901234
123001-123456789012345
123002-1234567890123456
123003-12345678901234567
123004-123456789012345678
123005" | \
123006  $at_diff - "$at_stdout" || at_failed=:
123007at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1087"
123008$at_failed && at_fn_log_failure
123009$at_traceon; }
123010
123011
123012fi
123013
123014  set +x
123015  $at_times_p && times >"$at_times_file"
123016) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123017read at_status <"$at_status_file"
123018#AT_STOP_1064
123019#AT_START_1065
123020at_fn_group_banner 1065 'data_binary.at:1133' \
123021  "BINARY: full-print" "                             " 5
123022at_xfail=no
123023(
123024  $as_echo "1065. $at_setup_line: testing $at_desc ..."
123025  $at_traceon
123026
123027
123028
123029
123030sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob
123031
123032{ set +x
123033$as_echo "$at_srcdir/data_binary.at:1139: \$COMPILE -fbinary-size=1--8 \\
123034                   -fno-pretty-display prog.cob"
123035at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:1139"
123036( $at_check_trace; $COMPILE -fbinary-size=1--8 \
123037                   -fno-pretty-display prog.cob
123038) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123039at_status=$? at_failed=false
123040$at_check_filter
123041at_fn_diff_devnull "$at_stderr" || at_failed=:
123042at_fn_diff_devnull "$at_stdout" || at_failed=:
123043at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1139"
123044$at_failed && at_fn_log_failure
123045$at_traceon; }
123046
123047{ set +x
123048$as_echo "$at_srcdir/data_binary.at:1141: \$COBCRUN_DIRECT ./prog"
123049at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1141"
123050( $at_check_trace; $COBCRUN_DIRECT ./prog
123051) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123052at_status=$? at_failed=false
123053$at_check_filter
123054at_fn_diff_devnull "$at_stderr" || at_failed=:
123055echo >>"$at_stdout"; $as_echo "001
123056012
12305700123
12305801234
12305900012345
12306000123456
12306101234567
1230620012345678
1230630123456789
1230640001234567890
1230650012345678901
1230660123456789012
123067001234567890123
123068012345678901234
12306900123456789012345
12307001234567890123456
12307100012345678901234567
12307200123456789012345678
123073-001
123074-012
123075-00123
123076-01234
123077-00012345
123078-00123456
123079-0001234567
123080-0012345678
123081-0123456789
123082-0001234567890
123083-0012345678901
123084-000123456789012
123085-001234567890123
123086-012345678901234
123087-00123456789012345
123088-01234567890123456
123089-00012345678901234567
123090-00123456789012345678
123091" | \
123092  $at_diff - "$at_stdout" || at_failed=:
123093at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1141"
123094$at_failed && at_fn_log_failure
123095$at_traceon; }
123096
123097
123098  set +x
123099  $at_times_p && times >"$at_times_file"
123100) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123101read at_status <"$at_status_file"
123102#AT_STOP_1065
123103#AT_START_1066
123104at_fn_group_banner 1066 'data_binary.at:1185' \
123105  "BINARY: 64bit unsigned compare" "                 " 5
123106at_xfail=no
123107(
123108  $as_echo "1066. $at_setup_line: testing $at_desc ..."
123109  $at_traceon
123110
123111
123112
123113cat >prog.cob <<'_ATEOF'
123114
123115       IDENTIFICATION   DIVISION.
123116       PROGRAM-ID.      prog.
123117       DATA DIVISION.
123118       WORKING-STORAGE SECTION.
123119       01 BDU-1         USAGE BINARY-DOUBLE UNSIGNED.
123120       01 BDU-2         USAGE BINARY-DOUBLE UNSIGNED.
123121       PROCEDURE        DIVISION.
123122           MOVE 18446744073709551615 TO BDU-1 BDU-2
123123           IF BDU-1 NOT EQUAL BDU-2 THEN
123124           DISPLAY "FAIL"
123125           END-DISPLAY.
123126           STOP RUN.
123127_ATEOF
123128
123129
123130{ set +x
123131$as_echo "$at_srcdir/data_binary.at:1203: \$COMPILE prog.cob"
123132at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_binary.at:1203"
123133( $at_check_trace; $COMPILE prog.cob
123134) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123135at_status=$? at_failed=false
123136$at_check_filter
123137at_fn_diff_devnull "$at_stderr" || at_failed=:
123138at_fn_diff_devnull "$at_stdout" || at_failed=:
123139at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1203"
123140$at_failed && at_fn_log_failure
123141$at_traceon; }
123142
123143{ set +x
123144$as_echo "$at_srcdir/data_binary.at:1204: \$COBCRUN_DIRECT ./prog"
123145at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1204"
123146( $at_check_trace; $COBCRUN_DIRECT ./prog
123147) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123148at_status=$? at_failed=false
123149$at_check_filter
123150at_fn_diff_devnull "$at_stderr" || at_failed=:
123151at_fn_diff_devnull "$at_stdout" || at_failed=:
123152at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1204"
123153$at_failed && at_fn_log_failure
123154$at_traceon; }
123155
123156
123157  set +x
123158  $at_times_p && times >"$at_times_file"
123159) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123160read at_status <"$at_status_file"
123161#AT_STOP_1066
123162#AT_START_1067
123163at_fn_group_banner 1067 'data_binary.at:1210' \
123164  "BINARY: 64bit unsigned arithmetic notrunc" "      " 5
123165at_xfail=no
123166(
123167  $as_echo "1067. $at_setup_line: testing $at_desc ..."
123168  $at_traceon
123169
123170
123171
123172cat >prog.cob <<'_ATEOF'
123173
123174       IDENTIFICATION   DIVISION.
123175       PROGRAM-ID.      prog.
123176       DATA DIVISION.
123177       WORKING-STORAGE SECTION.
123178       01 WORK-UDWORD-1 PIC 9(18) COMP.
123179       PROCEDURE        DIVISION.
123180           MOVE 18446744073709551615 TO WORK-UDWORD-1.
123181           DISPLAY WORK-UDWORD-1
123182           END-DISPLAY.
123183           COMPUTE  WORK-UDWORD-1 = WORK-UDWORD-1 / 2
123184           END-COMPUTE.
123185           DISPLAY WORK-UDWORD-1
123186           END-DISPLAY.
123187           STOP RUN.
123188_ATEOF
123189
123190
123191{ set +x
123192$as_echo "$at_srcdir/data_binary.at:1230: \$COMPILE -fnotrunc prog.cob"
123193at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "data_binary.at:1230"
123194( $at_check_trace; $COMPILE -fnotrunc prog.cob
123195) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123196at_status=$? at_failed=false
123197$at_check_filter
123198at_fn_diff_devnull "$at_stderr" || at_failed=:
123199at_fn_diff_devnull "$at_stdout" || at_failed=:
123200at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1230"
123201$at_failed && at_fn_log_failure
123202$at_traceon; }
123203
123204{ set +x
123205$as_echo "$at_srcdir/data_binary.at:1231: \$COBCRUN_DIRECT ./prog"
123206at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1231"
123207( $at_check_trace; $COBCRUN_DIRECT ./prog
123208) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123209at_status=$? at_failed=false
123210$at_check_filter
123211at_fn_diff_devnull "$at_stderr" || at_failed=:
123212echo >>"$at_stdout"; $as_echo "18446744073709551615
12321309223372036854775807
123214" | \
123215  $at_diff - "$at_stdout" || at_failed=:
123216at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1231"
123217$at_failed && at_fn_log_failure
123218$at_traceon; }
123219
123220
123221  set +x
123222  $at_times_p && times >"$at_times_file"
123223) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123224read at_status <"$at_status_file"
123225#AT_STOP_1067
123226#AT_START_1068
123227at_fn_group_banner 1068 'data_binary.at:1240' \
123228  "BINARY: 64bit signed negative constant range" "   " 5
123229at_xfail=no
123230(
123231  $as_echo "1068. $at_setup_line: testing $at_desc ..."
123232  $at_traceon
123233
123234
123235
123236cat >prog.cob <<'_ATEOF'
123237
123238       IDENTIFICATION   DIVISION.
123239       PROGRAM-ID.      prog.
123240       DATA DIVISION.
123241       WORKING-STORAGE SECTION.
123242       01 WORK-DWORD-1  PIC S9(18) COMP-5 VALUE -9223372036854775808.
123243       PROCEDURE        DIVISION.
123244           DISPLAY WORK-DWORD-1 WITH NO ADVANCING
123245           END-DISPLAY.
123246           STOP RUN.
123247_ATEOF
123248
123249
123250{ set +x
123251$as_echo "$at_srcdir/data_binary.at:1255: \$COMPILE -fnotrunc prog.cob"
123252at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "data_binary.at:1255"
123253( $at_check_trace; $COMPILE -fnotrunc prog.cob
123254) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123255at_status=$? at_failed=false
123256$at_check_filter
123257at_fn_diff_devnull "$at_stderr" || at_failed=:
123258at_fn_diff_devnull "$at_stdout" || at_failed=:
123259at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1255"
123260$at_failed && at_fn_log_failure
123261$at_traceon; }
123262
123263{ set +x
123264$as_echo "$at_srcdir/data_binary.at:1256: \$COBCRUN_DIRECT ./prog"
123265at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1256"
123266( $at_check_trace; $COBCRUN_DIRECT ./prog
123267) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123268at_status=$? at_failed=false
123269$at_check_filter
123270at_fn_diff_devnull "$at_stderr" || at_failed=:
123271echo >>"$at_stdout"; $as_echo "-09223372036854775808" | \
123272  $at_diff - "$at_stdout" || at_failed=:
123273at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1256"
123274$at_failed && at_fn_log_failure
123275$at_traceon; }
123276
123277
123278  set +x
123279  $at_times_p && times >"$at_times_file"
123280) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123281read at_status <"$at_status_file"
123282#AT_STOP_1068
123283#AT_START_1069
123284at_fn_group_banner 1069 'data_binary.at:1261' \
123285  "COMP-4 Truncate" "                                " 5
123286at_xfail=no
123287(
123288  $as_echo "1069. $at_setup_line: testing $at_desc ..."
123289  $at_traceon
123290
123291
123292
123293cat >prog.cob <<'_ATEOF'
123294
123295       IDENTIFICATION DIVISION.
123296       PROGRAM-ID. prog.
123297
123298       DATA DIVISION.
123299       WORKING-STORAGE SECTION.
123300       01  RANDOM-ORIGIN-B                     PIC 9V99 COMP-4.
123301       01  RANDOM-TARGET-B                     PIC V99  COMP-4.
123302       01  RANDOM-ORIGIN-D                     PIC 9V99 DISPLAY.
123303       01  RANDOM-TARGET-D                     PIC V99  DISPLAY.
123304
123305       PROCEDURE DIVISION.
123306           MOVE 0.12            TO RANDOM-ORIGIN-D
123307           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
123308           MOVE 0.12            TO RANDOM-ORIGIN-B
123309           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
123310           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
123311             DISPLAY "ORIGIN 0.12 WRONG"
123312             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
123313                " !=  BINARY : " RANDOM-ORIGIN-B
123314           END-IF.
123315           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
123316             DISPLAY "TARGET  .12 WRONG"
123317             DISPLAY "DISPLAY: " RANDOM-TARGET-D
123318                " !=  BINARY : " RANDOM-TARGET-B
123319           ELSE
123320             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
123321           END-IF.
123322
123323           MOVE 9.85            TO RANDOM-ORIGIN-D
123324           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
123325           MOVE 9.85            TO RANDOM-ORIGIN-B
123326           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
123327           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
123328             DISPLAY "ORIGIN 9.85 WRONG"
123329             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
123330                " !=  BINARY : " RANDOM-ORIGIN-B
123331           END-IF.
123332           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
123333             DISPLAY "TARGET  .85 WRONG"
123334             DISPLAY "DISPLAY: " RANDOM-TARGET-D
123335                " !=  BINARY : " RANDOM-TARGET-B
123336           ELSE
123337             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
123338           END-IF.
123339           STOP RUN.
123340_ATEOF
123341
123342
123343{ set +x
123344$as_echo "$at_srcdir/data_binary.at:1312: \$COMPILE -w prog.cob"
123345at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "data_binary.at:1312"
123346( $at_check_trace; $COMPILE -w prog.cob
123347) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123348at_status=$? at_failed=false
123349$at_check_filter
123350at_fn_diff_devnull "$at_stderr" || at_failed=:
123351at_fn_diff_devnull "$at_stdout" || at_failed=:
123352at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1312"
123353$at_failed && at_fn_log_failure
123354$at_traceon; }
123355
123356
123357{ set +x
123358$as_echo "$at_srcdir/data_binary.at:1314: \$COBCRUN_DIRECT ./prog"
123359at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1314"
123360( $at_check_trace; $COBCRUN_DIRECT ./prog
123361) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123362at_status=$? at_failed=false
123363$at_check_filter
123364at_fn_diff_devnull "$at_stderr" || at_failed=:
123365echo >>"$at_stdout"; $as_echo "Ok with .12 == .12
123366Ok with .85 == .85
123367" | \
123368  $at_diff - "$at_stdout" || at_failed=:
123369at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1314"
123370$at_failed && at_fn_log_failure
123371$at_traceon; }
123372
123373
123374  set +x
123375  $at_times_p && times >"$at_times_file"
123376) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123377read at_status <"$at_status_file"
123378#AT_STOP_1069
123379#AT_START_1070
123380at_fn_group_banner 1070 'data_binary.at:1322' \
123381  "COMP-4 No Truncate" "                             " 5
123382at_xfail=no
123383(
123384  $as_echo "1070. $at_setup_line: testing $at_desc ..."
123385  $at_traceon
123386
123387
123388
123389cat >prog.cob <<'_ATEOF'
123390
123391       IDENTIFICATION DIVISION.
123392       PROGRAM-ID. prog.
123393
123394       DATA DIVISION.
123395       WORKING-STORAGE SECTION.
123396       01  RANDOM-ORIGIN-B                     PIC 9V99 COMP-4.
123397       01  RANDOM-TARGET-B                     PIC V99  COMP-4.
123398       01  RANDOM-ORIGIN-D                     PIC 9V99 DISPLAY.
123399       01  RANDOM-TARGET-D                     PIC V99  DISPLAY.
123400
123401       PROCEDURE DIVISION.
123402           MOVE 0.12            TO RANDOM-ORIGIN-D
123403           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
123404           MOVE 0.12            TO RANDOM-ORIGIN-B
123405           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
123406           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
123407             DISPLAY "ORIGIN 0.12 WRONG"
123408             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
123409                " !=  BINARY : " RANDOM-ORIGIN-B
123410           END-IF.
123411           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
123412             DISPLAY "TARGET  .12 WRONG"
123413             DISPLAY "DISPLAY: " RANDOM-TARGET-D
123414                " !=  BINARY : " RANDOM-TARGET-B
123415           ELSE
123416             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
123417           END-IF.
123418
123419           MOVE 9.85            TO RANDOM-ORIGIN-D
123420           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
123421           MOVE 9.85            TO RANDOM-ORIGIN-B
123422           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
123423           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
123424             DISPLAY "ORIGIN 9.85 WRONG"
123425             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
123426                " !=  BINARY : " RANDOM-ORIGIN-B
123427           END-IF.
123428           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
123429             DISPLAY "TARGET  .85 WRONG"
123430             DISPLAY "DISPLAY: " RANDOM-TARGET-D
123431                " !=  BINARY : " RANDOM-TARGET-B
123432           ELSE
123433             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
123434           END-IF.
123435           STOP RUN.
123436_ATEOF
123437
123438
123439{ set +x
123440$as_echo "$at_srcdir/data_binary.at:1373: \$COMPILE -w -fnotrunc prog.cob"
123441at_fn_check_prepare_dynamic "$COMPILE -w -fnotrunc prog.cob" "data_binary.at:1373"
123442( $at_check_trace; $COMPILE -w -fnotrunc prog.cob
123443) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123444at_status=$? at_failed=false
123445$at_check_filter
123446at_fn_diff_devnull "$at_stderr" || at_failed=:
123447at_fn_diff_devnull "$at_stdout" || at_failed=:
123448at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1373"
123449$at_failed && at_fn_log_failure
123450$at_traceon; }
123451
123452
123453{ set +x
123454$as_echo "$at_srcdir/data_binary.at:1375: \$COBCRUN_DIRECT ./prog"
123455at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1375"
123456( $at_check_trace; $COBCRUN_DIRECT ./prog
123457) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123458at_status=$? at_failed=false
123459$at_check_filter
123460at_fn_diff_devnull "$at_stderr" || at_failed=:
123461echo >>"$at_stdout"; $as_echo "Ok with 12 == 012
123462TARGET  .85 WRONG
123463DISPLAY: 85 !=  BINARY : 217
123464" | \
123465  $at_diff - "$at_stdout" || at_failed=:
123466at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1375"
123467$at_failed && at_fn_log_failure
123468$at_traceon; }
123469
123470
123471  set +x
123472  $at_times_p && times >"$at_times_file"
123473) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123474read at_status <"$at_status_file"
123475#AT_STOP_1070
123476#AT_START_1071
123477at_fn_group_banner 1071 'data_display.at:21' \
123478  "DISPLAY: Sign ASCII" "                            " 5
123479at_xfail=no
123480(
123481  $as_echo "1071. $at_setup_line: testing $at_desc ..."
123482  $at_traceon
123483
123484
123485
123486cat >prog.cob <<'_ATEOF'
123487
123488       IDENTIFICATION   DIVISION.
123489       PROGRAM-ID.      prog.
123490       DATA             DIVISION.
123491       WORKING-STORAGE  SECTION.
123492       01 G.
123493         02 X           PIC X(5).
123494         02 X-9         REDEFINES X PIC 9(4).
123495         02 X-S9        REDEFINES X PIC S9(4).
123496         02 X-S9-L      REDEFINES X PIC S9(4) LEADING.
123497         02 X-S9-LS     REDEFINES X PIC S9(4) LEADING SEPARATE.
123498         02 X-S9-T      REDEFINES X PIC S9(4) TRAILING.
123499         02 X-S9-TS     REDEFINES X PIC S9(4) TRAILING SEPARATE.
123500       PROCEDURE        DIVISION.
123501           MOVE ZERO TO X. MOVE  1234 TO X-9.     DISPLAY X
123502           END-DISPLAY.
123503           MOVE ZERO TO X. MOVE  1234 TO X-S9.    DISPLAY X
123504           END-DISPLAY.
123505           MOVE ZERO TO X. MOVE -1234 TO X-S9.    DISPLAY X
123506           END-DISPLAY.
123507           MOVE ZERO TO X. MOVE  1234 TO X-S9-L.  DISPLAY X
123508           END-DISPLAY.
123509           MOVE ZERO TO X. MOVE -1234 TO X-S9-L.  DISPLAY X
123510           END-DISPLAY.
123511           MOVE ZERO TO X. MOVE  1234 TO X-S9-LS. DISPLAY X
123512           END-DISPLAY.
123513           MOVE ZERO TO X. MOVE -1234 TO X-S9-LS. DISPLAY X
123514           END-DISPLAY.
123515           MOVE ZERO TO X. MOVE  1234 TO X-S9-T.  DISPLAY X
123516           END-DISPLAY.
123517           MOVE ZERO TO X. MOVE -1234 TO X-S9-T.  DISPLAY X
123518           END-DISPLAY.
123519           MOVE ZERO TO X. MOVE  1234 TO X-S9-TS. DISPLAY X
123520           END-DISPLAY.
123521           MOVE ZERO TO X. MOVE -1234 TO X-S9-TS. DISPLAY X
123522           END-DISPLAY.
123523           STOP RUN.
123524_ATEOF
123525
123526
123527{ set +x
123528$as_echo "$at_srcdir/data_display.at:63: \$COMPILE -fsign=ascii prog.cob"
123529at_fn_check_prepare_dynamic "$COMPILE -fsign=ascii prog.cob" "data_display.at:63"
123530( $at_check_trace; $COMPILE -fsign=ascii prog.cob
123531) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123532at_status=$? at_failed=false
123533$at_check_filter
123534at_fn_diff_devnull "$at_stderr" || at_failed=:
123535at_fn_diff_devnull "$at_stdout" || at_failed=:
123536at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:63"
123537$at_failed && at_fn_log_failure
123538$at_traceon; }
123539
123540{ set +x
123541$as_echo "$at_srcdir/data_display.at:64: \$COBCRUN_DIRECT ./prog"
123542at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:64"
123543( $at_check_trace; $COBCRUN_DIRECT ./prog
123544) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123545at_status=$? at_failed=false
123546$at_check_filter
123547at_fn_diff_devnull "$at_stderr" || at_failed=:
123548echo >>"$at_stdout"; $as_echo "12340
12354912340
123550123t0
12355112340
123552q2340
123553+1234
123554-1234
12355512340
123556123t0
1235571234+
1235581234-
123559" | \
123560  $at_diff - "$at_stdout" || at_failed=:
123561at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:64"
123562$at_failed && at_fn_log_failure
123563$at_traceon; }
123564
123565
123566  set +x
123567  $at_times_p && times >"$at_times_file"
123568) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123569read at_status <"$at_status_file"
123570#AT_STOP_1071
123571#AT_START_1072
123572at_fn_group_banner 1072 'data_display.at:80' \
123573  "DISPLAY: Sign ASCII (2)" "                        " 5
123574at_xfail=no
123575(
123576  $as_echo "1072. $at_setup_line: testing $at_desc ..."
123577  $at_traceon
123578
123579
123580
123581cat >prog.cob <<'_ATEOF'
123582
123583       IDENTIFICATION   DIVISION.
123584       PROGRAM-ID.      prog.
123585       DATA             DIVISION.
123586       WORKING-STORAGE  SECTION.
123587       01 G.
123588         02 X           PIC X(10).
123589         02 X-S99       REDEFINES X PIC S99.
123590         02 X-S9        REDEFINES X PIC S9 OCCURS 10.
123591       PROCEDURE        DIVISION.
123592           MOVE 0 TO X-S9(1).
123593           MOVE 1 TO X-S9(2).
123594           MOVE 2 TO X-S9(3).
123595           MOVE 3 TO X-S9(4).
123596           MOVE 4 TO X-S9(5).
123597           MOVE 5 TO X-S9(6).
123598           MOVE 6 TO X-S9(7).
123599           MOVE 7 TO X-S9(8).
123600           MOVE 8 TO X-S9(9).
123601           MOVE 9 TO X-S9(10).
123602           DISPLAY X NO ADVANCING
123603           END-DISPLAY.
123604           MOVE -10 TO X-S99. MOVE X(2:1) TO X(1:1).
123605           MOVE -1 TO X-S9(2).
123606           MOVE -2 TO X-S9(3).
123607           MOVE -3 TO X-S9(4).
123608           MOVE -4 TO X-S9(5).
123609           MOVE -5 TO X-S9(6).
123610           MOVE -6 TO X-S9(7).
123611           MOVE -7 TO X-S9(8).
123612           MOVE -8 TO X-S9(9).
123613           MOVE -9 TO X-S9(10).
123614           DISPLAY X NO ADVANCING
123615           END-DISPLAY.
123616           STOP RUN.
123617_ATEOF
123618
123619
123620{ set +x
123621$as_echo "$at_srcdir/data_display.at:120: \$COMPILE -fsign=ascii prog.cob"
123622at_fn_check_prepare_dynamic "$COMPILE -fsign=ascii prog.cob" "data_display.at:120"
123623( $at_check_trace; $COMPILE -fsign=ascii prog.cob
123624) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123625at_status=$? at_failed=false
123626$at_check_filter
123627at_fn_diff_devnull "$at_stderr" || at_failed=:
123628at_fn_diff_devnull "$at_stdout" || at_failed=:
123629at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:120"
123630$at_failed && at_fn_log_failure
123631$at_traceon; }
123632
123633{ set +x
123634$as_echo "$at_srcdir/data_display.at:121: \$COBCRUN_DIRECT ./prog"
123635at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:121"
123636( $at_check_trace; $COBCRUN_DIRECT ./prog
123637) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123638at_status=$? at_failed=false
123639$at_check_filter
123640at_fn_diff_devnull "$at_stderr" || at_failed=:
123641echo >>"$at_stdout"; $as_echo "0123456789pqrstuvwxy" | \
123642  $at_diff - "$at_stdout" || at_failed=:
123643at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:121"
123644$at_failed && at_fn_log_failure
123645$at_traceon; }
123646
123647
123648  set +x
123649  $at_times_p && times >"$at_times_file"
123650) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123651read at_status <"$at_status_file"
123652#AT_STOP_1072
123653#AT_START_1073
123654at_fn_group_banner 1073 'data_display.at:126' \
123655  "DISPLAY: Sign EBCDIC" "                           " 5
123656at_xfail=no
123657(
123658  $as_echo "1073. $at_setup_line: testing $at_desc ..."
123659  $at_traceon
123660
123661
123662
123663cat >prog.cob <<'_ATEOF'
123664
123665       IDENTIFICATION   DIVISION.
123666       PROGRAM-ID.      prog.
123667       DATA             DIVISION.
123668       WORKING-STORAGE  SECTION.
123669       01 G.
123670         02 X           PIC X(10).
123671         02 X-S99       REDEFINES X PIC S99.
123672         02 X-S9        REDEFINES X PIC S9 OCCURS 10.
123673       PROCEDURE        DIVISION.
123674           MOVE 0 TO X-S9(1).
123675           MOVE 1 TO X-S9(2).
123676           MOVE 2 TO X-S9(3).
123677           MOVE 3 TO X-S9(4).
123678           MOVE 4 TO X-S9(5).
123679           MOVE 5 TO X-S9(6).
123680           MOVE 6 TO X-S9(7).
123681           MOVE 7 TO X-S9(8).
123682           MOVE 8 TO X-S9(9).
123683           MOVE 9 TO X-S9(10).
123684           DISPLAY X NO ADVANCING
123685           END-DISPLAY.
123686           MOVE -10 TO X-S99. MOVE X(2:1) TO X(1:1).
123687           MOVE -1 TO X-S9(2).
123688           MOVE -2 TO X-S9(3).
123689           MOVE -3 TO X-S9(4).
123690           MOVE -4 TO X-S9(5).
123691           MOVE -5 TO X-S9(6).
123692           MOVE -6 TO X-S9(7).
123693           MOVE -7 TO X-S9(8).
123694           MOVE -8 TO X-S9(9).
123695           MOVE -9 TO X-S9(10).
123696           DISPLAY X NO ADVANCING
123697           END-DISPLAY.
123698           STOP RUN.
123699_ATEOF
123700
123701
123702{ set +x
123703$as_echo "$at_srcdir/data_display.at:166: \$COMPILE -fsign=ebcdic prog.cob"
123704at_fn_check_prepare_dynamic "$COMPILE -fsign=ebcdic prog.cob" "data_display.at:166"
123705( $at_check_trace; $COMPILE -fsign=ebcdic prog.cob
123706) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123707at_status=$? at_failed=false
123708$at_check_filter
123709at_fn_diff_devnull "$at_stderr" || at_failed=:
123710at_fn_diff_devnull "$at_stdout" || at_failed=:
123711at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:166"
123712$at_failed && at_fn_log_failure
123713$at_traceon; }
123714
123715{ set +x
123716$as_echo "$at_srcdir/data_display.at:167: \$COBCRUN_DIRECT ./prog"
123717at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:167"
123718( $at_check_trace; $COBCRUN_DIRECT ./prog
123719) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123720at_status=$? at_failed=false
123721$at_check_filter
123722at_fn_diff_devnull "$at_stderr" || at_failed=:
123723echo >>"$at_stdout"; $as_echo "{ABCDEFGHI}JKLMNOPQR" | \
123724  $at_diff - "$at_stdout" || at_failed=:
123725at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:167"
123726$at_failed && at_fn_log_failure
123727$at_traceon; }
123728
123729
123730  set +x
123731  $at_times_p && times >"$at_times_file"
123732) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123733read at_status <"$at_status_file"
123734#AT_STOP_1073
123735#AT_START_1074
123736at_fn_group_banner 1074 'data_display.at:171' \
123737  "DISPLAY: unsigned" "                              " 5
123738at_xfail=no
123739(
123740  $as_echo "1074. $at_setup_line: testing $at_desc ..."
123741  $at_traceon
123742
123743
123744
123745cat >prog.cob <<'_ATEOF'
123746
123747       IDENTIFICATION   DIVISION.
123748       PROGRAM-ID.      prog.
123749       DATA             DIVISION.
123750       WORKING-STORAGE  SECTION.
123751       01 X-BCU         BINARY-CHAR   UNSIGNED.
123752       01 X-BSU         BINARY-SHORT  UNSIGNED.
123753       01 X-BIU         BINARY-INT    UNSIGNED.
123754       01 X-BLU         BINARY-LONG   UNSIGNED.
123755       01 X-BDU         BINARY-DOUBLE UNSIGNED.
123756       01 X-US          UNSIGNED-SHORT.
123757       01 X-UI          UNSIGNED-INT.
123758       PROCEDURE        DIVISION.
123759           MOVE 127 TO X-BCU.               DISPLAY X-BCU END-DISPLAY.
123760           ADD 1 TO X-BCU END-ADD.          DISPLAY X-BCU END-DISPLAY.
123761           MOVE 32767 TO X-BSU.             DISPLAY X-BSU END-DISPLAY.
123762           ADD 1 TO X-BSU END-ADD.          DISPLAY X-BSU END-DISPLAY.
123763           MOVE 2147483647 TO X-BIU.        DISPLAY X-BIU END-DISPLAY.
123764           ADD 1 TO X-BIU END-ADD.          DISPLAY X-BIU END-DISPLAY.
123765           MOVE 2147483647 TO X-BLU.        DISPLAY X-BLU END-DISPLAY.
123766           ADD 1 TO X-BLU END-ADD.          DISPLAY X-BLU END-DISPLAY.
123767           MOVE 9223372036854775807 TO X-BDU. DISPLAY X-BDU END-DISPLAY.
123768           ADD 1 TO X-BDU END-ADD.          DISPLAY X-BDU END-DISPLAY.
123769           MOVE 32767 TO X-US.              DISPLAY X-US  END-DISPLAY.
123770           ADD 1 TO X-US END-ADD.           DISPLAY X-US  END-DISPLAY.
123771           MOVE 2147483647 TO X-UI.         DISPLAY X-UI  END-DISPLAY.
123772           ADD 1 TO X-UI END-ADD.           DISPLAY X-UI  END-DISPLAY.
123773           STOP RUN.
123774_ATEOF
123775
123776
123777{ set +x
123778$as_echo "$at_srcdir/data_display.at:204: \$COMPILE prog.cob"
123779at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_display.at:204"
123780( $at_check_trace; $COMPILE prog.cob
123781) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123782at_status=$? at_failed=false
123783$at_check_filter
123784at_fn_diff_devnull "$at_stderr" || at_failed=:
123785at_fn_diff_devnull "$at_stdout" || at_failed=:
123786at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:204"
123787$at_failed && at_fn_log_failure
123788$at_traceon; }
123789
123790{ set +x
123791$as_echo "$at_srcdir/data_display.at:205: \$COBCRUN_DIRECT ./prog"
123792at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:205"
123793( $at_check_trace; $COBCRUN_DIRECT ./prog
123794) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123795at_status=$? at_failed=false
123796$at_check_filter
123797at_fn_diff_devnull "$at_stderr" || at_failed=:
123798echo >>"$at_stdout"; $as_echo "127
123799128
12380032767
12380132768
1238022147483647
1238032147483648
1238042147483647
1238052147483648
12380609223372036854775807
12380709223372036854775808
12380832767
12380932768
1238102147483647
1238112147483648
123812" | \
123813  $at_diff - "$at_stdout" || at_failed=:
123814at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:205"
123815$at_failed && at_fn_log_failure
123816$at_traceon; }
123817
123818
123819  set +x
123820  $at_times_p && times >"$at_times_file"
123821) 5>&1 2>&1 7>&- | eval $at_tee_pipe
123822read at_status <"$at_status_file"
123823#AT_STOP_1074
123824#AT_START_1075
123825at_fn_group_banner 1075 'data_packed.at:25' \
123826  "PACKED-DECIMAL dump" "                            " 5
123827at_xfail=no
123828(
123829  $as_echo "1075. $at_setup_line: testing $at_desc ..."
123830  $at_traceon
123831
123832
123833
123834cat >dump.c <<'_ATEOF'
123835
123836#include <stdio.h>
123837#include <libcob.h>
123838
123839COB_EXT_EXPORT int
123840dump (unsigned char *data)
123841{
123842  int i;
123843  for (i = 0; i < 10; i++)
123844    printf ("%02x", data[i]);
123845  puts ("");
123846  return 0;
123847}
123848_ATEOF
123849
123850
123851sed -e 's/@USAGE@/PACKED-DECIMAL/' "${TEMPLATE}/numeric-dump.cob" > prog.cob
123852
123853{ set +x
123854$as_echo "$at_srcdir/data_packed.at:45: \$COMPILE_MODULE dump.c"
123855at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_packed.at:45"
123856( $at_check_trace; $COMPILE_MODULE dump.c
123857) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123858at_status=$? at_failed=false
123859$at_check_filter
123860at_fn_diff_devnull "$at_stderr" || at_failed=:
123861at_fn_diff_devnull "$at_stdout" || at_failed=:
123862at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:45"
123863$at_failed && at_fn_log_failure
123864$at_traceon; }
123865
123866{ set +x
123867$as_echo "$at_srcdir/data_packed.at:46: \$COMPILE prog.cob"
123868at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:46"
123869( $at_check_trace; $COMPILE prog.cob
123870) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123871at_status=$? at_failed=false
123872$at_check_filter
123873at_fn_diff_devnull "$at_stderr" || at_failed=:
123874at_fn_diff_devnull "$at_stdout" || at_failed=:
123875at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:46"
123876$at_failed && at_fn_log_failure
123877$at_traceon; }
123878
123879{ set +x
123880$as_echo "$at_srcdir/data_packed.at:47: \$COBCRUN_DIRECT ./prog"
123881at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:47"
123882( $at_check_trace; $COBCRUN_DIRECT ./prog
123883) >>"$at_stdout" 2>>"$at_stderr" 5>&-
123884at_status=$? at_failed=false
123885$at_check_filter
123886at_fn_diff_devnull "$at_stderr" || at_failed=:
123887echo >>"$at_stdout"; $as_echo "1f202020202020202020
123888012f2020202020202020
123889123f2020202020202020
12389001234f20202020202020
12389112345f20202020202020
1238920123456f202020202020
1238931234567f202020202020
123894012345678f2020202020
123895123456789f2020202020
12389601234567890f20202020
12389712345678901f20202020
1238980123456789012f202020
1238991234567890123f202020
123900012345678901234f2020
123901123456789012345f2020
12390201234567890123456f20
12390312345678901234567f20
1239040123456789012345678f
1239051d202020202020202020
123906012d2020202020202020
123907123d2020202020202020
12390801234d20202020202020
12390912345d20202020202020
1239100123456d202020202020
1239111234567d202020202020
123912012345678d2020202020
123913123456789d2020202020
12391401234567890d20202020
12391512345678901d20202020
1239160123456789012d202020
1239171234567890123d202020
123918012345678901234d2020
123919123456789012345d2020
12392001234567890123456d20
12392112345678901234567d20
1239220123456789012345678d
1239230f202020202020202020
123924000f2020202020202020
123925000f2020202020202020
12392600000f20202020202020
12392700000f20202020202020
1239280000000f202020202020
1239290000000f202020202020
123930000000000f2020202020
123931000000000f2020202020
12393200000000000f20202020
12393300000000000f20202020
1239340000000000000f202020
1239350000000000000f202020
123936000000000000000f2020
123937000000000000000f2020
12393800000000000000000f20
12393900000000000000000f20
1239400000000000000000000f
1239410c202020202020202020
123942000c2020202020202020
123943000c2020202020202020
12394400000c20202020202020
12394500000c20202020202020
1239460000000c202020202020
1239470000000c202020202020
123948000000000c2020202020
123949000000000c2020202020
12395000000000000c20202020
12395100000000000c20202020
1239520000000000000c202020
1239530000000000000c202020
123954000000000000000c2020
123955000000000000000c2020
12395600000000000000000c20
12395700000000000000000c20
1239580000000000000000000c
1239590f202020202020202020
123960000f2020202020202020
123961000f2020202020202020
12396200000f20202020202020
12396300000f20202020202020
1239640000000f202020202020
1239650000000f202020202020
123966000000000f2020202020
123967000000000f2020202020
12396800000000000f20202020
12396900000000000f20202020
1239700000000000000f202020
1239710000000000000f202020
123972000000000000000f2020
123973000000000000000f2020
12397400000000000000000f20
12397500000000000000000f20
1239760000000000000000000f
1239770c202020202020202020
123978000c2020202020202020
123979000c2020202020202020
12398000000c20202020202020
12398100000c20202020202020
1239820000000c202020202020
1239830000000c202020202020
123984000000000c2020202020
123985000000000c2020202020
12398600000000000c20202020
12398700000000000c20202020
1239880000000000000c202020
1239890000000000000c202020
123990000000000000000c2020
123991000000000000000c2020
12399200000000000000000c20
12399300000000000000000c20
1239940000000000000000000c
123995" | \
123996  $at_diff - "$at_stdout" || at_failed=:
123997at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:47"
123998$at_failed && at_fn_log_failure
123999$at_traceon; }
124000
124001
124002  set +x
124003  $at_times_p && times >"$at_times_file"
124004) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124005read at_status <"$at_status_file"
124006#AT_STOP_1075
124007#AT_START_1076
124008at_fn_group_banner 1076 'data_packed.at:161' \
124009  "PACKED-DECIMAL used with DISPLAY" "               " 5
124010at_xfail=no
124011(
124012  $as_echo "1076. $at_setup_line: testing $at_desc ..."
124013  $at_traceon
124014
124015
124016
124017cat >prog.cob <<'_ATEOF'
124018
124019       IDENTIFICATION   DIVISION.
124020       PROGRAM-ID.      prog.
124021       DATA             DIVISION.
124022       WORKING-STORAGE  SECTION.
124023       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
124024       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
124025       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
124026       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
124027       PROCEDURE        DIVISION.
124028           MOVE    0 TO X-99.
124029           DISPLAY X-99
124030           END-DISPLAY.
124031           MOVE   99 TO X-99.
124032           DISPLAY X-99
124033           END-DISPLAY.
124034           MOVE    0 TO X-S99.
124035           DISPLAY X-S99
124036           END-DISPLAY.
124037           MOVE   -1 TO X-S99.
124038           DISPLAY X-S99
124039           END-DISPLAY.
124040           MOVE    0 TO X-999.
124041           DISPLAY X-999
124042           END-DISPLAY.
124043           MOVE  123 TO X-999.
124044           DISPLAY X-999
124045           END-DISPLAY.
124046           MOVE    0 TO X-S999.
124047           DISPLAY X-S999
124048           END-DISPLAY.
124049           MOVE -123 TO X-S999.
124050           DISPLAY X-S999
124051           END-DISPLAY.
124052           STOP RUN.
124053_ATEOF
124054
124055
124056{ set +x
124057$as_echo "$at_srcdir/data_packed.at:201: \$COMPILE prog.cob"
124058at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:201"
124059( $at_check_trace; $COMPILE prog.cob
124060) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124061at_status=$? at_failed=false
124062$at_check_filter
124063at_fn_diff_devnull "$at_stderr" || at_failed=:
124064at_fn_diff_devnull "$at_stdout" || at_failed=:
124065at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:201"
124066$at_failed && at_fn_log_failure
124067$at_traceon; }
124068
124069{ set +x
124070$as_echo "$at_srcdir/data_packed.at:202: \$COBCRUN_DIRECT ./prog"
124071at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:202"
124072( $at_check_trace; $COBCRUN_DIRECT ./prog
124073) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124074at_status=$? at_failed=false
124075$at_check_filter
124076at_fn_diff_devnull "$at_stderr" || at_failed=:
124077echo >>"$at_stdout"; $as_echo "00
12407899
124079+00
124080-01
124081000
124082123
124083+000
124084-123
124085" | \
124086  $at_diff - "$at_stdout" || at_failed=:
124087at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:202"
124088$at_failed && at_fn_log_failure
124089$at_traceon; }
124090
124091
124092  set +x
124093  $at_times_p && times >"$at_times_file"
124094) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124095read at_status <"$at_status_file"
124096#AT_STOP_1076
124097#AT_START_1077
124098at_fn_group_banner 1077 'data_packed.at:216' \
124099  "PACKED-DECIMAL used with MOVE" "                  " 5
124100at_xfail=no
124101(
124102  $as_echo "1077. $at_setup_line: testing $at_desc ..."
124103  $at_traceon
124104
124105
124106
124107cat >prog.cob <<'_ATEOF'
124108
124109       IDENTIFICATION   DIVISION.
124110       PROGRAM-ID.      prog.
124111       DATA             DIVISION.
124112       WORKING-STORAGE  SECTION.
124113       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
124114       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
124115       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
124116       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
124117       01 C-P1234       PIC 9999  VALUE 1234.
124118       01 C-N1234       PIC S9999 VALUE -1234.
124119       PROCEDURE        DIVISION.
124120           MOVE C-P1234 TO X-99.
124121           DISPLAY X-99
124122           END-DISPLAY.
124123           MOVE C-P1234 TO X-S99.
124124           DISPLAY X-S99
124125           END-DISPLAY.
124126           MOVE C-P1234 TO X-999.
124127           DISPLAY X-999
124128           END-DISPLAY.
124129           MOVE C-P1234 TO X-S999.
124130           DISPLAY X-S999
124131           END-DISPLAY.
124132           MOVE C-N1234 TO X-99.
124133           DISPLAY X-99
124134           END-DISPLAY.
124135           MOVE C-N1234 TO X-S99.
124136           DISPLAY X-S99
124137           END-DISPLAY.
124138           MOVE C-N1234 TO X-999.
124139           DISPLAY X-999
124140           END-DISPLAY.
124141           MOVE C-N1234 TO X-S999.
124142           DISPLAY X-S999
124143           END-DISPLAY.
124144           STOP RUN.
124145_ATEOF
124146
124147
124148{ set +x
124149$as_echo "$at_srcdir/data_packed.at:258: \$COMPILE prog.cob"
124150at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:258"
124151( $at_check_trace; $COMPILE prog.cob
124152) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124153at_status=$? at_failed=false
124154$at_check_filter
124155at_fn_diff_devnull "$at_stderr" || at_failed=:
124156at_fn_diff_devnull "$at_stdout" || at_failed=:
124157at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:258"
124158$at_failed && at_fn_log_failure
124159$at_traceon; }
124160
124161{ set +x
124162$as_echo "$at_srcdir/data_packed.at:259: \$COBCRUN_DIRECT ./prog"
124163at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:259"
124164( $at_check_trace; $COBCRUN_DIRECT ./prog
124165) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124166at_status=$? at_failed=false
124167$at_check_filter
124168at_fn_diff_devnull "$at_stderr" || at_failed=:
124169echo >>"$at_stdout"; $as_echo "34
124170+34
124171234
124172+234
12417334
124174-34
124175234
124176-234
124177" | \
124178  $at_diff - "$at_stdout" || at_failed=:
124179at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:259"
124180$at_failed && at_fn_log_failure
124181$at_traceon; }
124182
124183
124184  set +x
124185  $at_times_p && times >"$at_times_file"
124186) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124187read at_status <"$at_status_file"
124188#AT_STOP_1077
124189#AT_START_1078
124190at_fn_group_banner 1078 'data_packed.at:273' \
124191  "PACKED-DECIMAL used with INITIALIZE" "            " 5
124192at_xfail=no
124193(
124194  $as_echo "1078. $at_setup_line: testing $at_desc ..."
124195  $at_traceon
124196
124197
124198
124199cat >prog.cob <<'_ATEOF'
124200
124201       IDENTIFICATION   DIVISION.
124202       PROGRAM-ID.      prog.
124203       DATA             DIVISION.
124204       WORKING-STORAGE  SECTION.
124205       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
124206       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
124207       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
124208       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
124209       PROCEDURE        DIVISION.
124210           INITIALIZE X-99.
124211           DISPLAY X-99
124212           END-DISPLAY.
124213           INITIALIZE X-S99.
124214           DISPLAY X-S99
124215           END-DISPLAY.
124216           INITIALIZE X-999.
124217           DISPLAY X-999
124218           END-DISPLAY.
124219           INITIALIZE X-S999.
124220           DISPLAY X-S999
124221           END-DISPLAY.
124222           STOP RUN.
124223_ATEOF
124224
124225
124226{ set +x
124227$as_echo "$at_srcdir/data_packed.at:301: \$COMPILE prog.cob"
124228at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:301"
124229( $at_check_trace; $COMPILE prog.cob
124230) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124231at_status=$? at_failed=false
124232$at_check_filter
124233at_fn_diff_devnull "$at_stderr" || at_failed=:
124234at_fn_diff_devnull "$at_stdout" || at_failed=:
124235at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:301"
124236$at_failed && at_fn_log_failure
124237$at_traceon; }
124238
124239{ set +x
124240$as_echo "$at_srcdir/data_packed.at:302: \$COBCRUN_DIRECT ./prog"
124241at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:302"
124242( $at_check_trace; $COBCRUN_DIRECT ./prog
124243) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124244at_status=$? at_failed=false
124245$at_check_filter
124246at_fn_diff_devnull "$at_stderr" || at_failed=:
124247echo >>"$at_stdout"; $as_echo "00
124248+00
124249000
124250+000
124251" | \
124252  $at_diff - "$at_stdout" || at_failed=:
124253at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:302"
124254$at_failed && at_fn_log_failure
124255$at_traceon; }
124256
124257
124258  set +x
124259  $at_times_p && times >"$at_times_file"
124260) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124261read at_status <"$at_status_file"
124262#AT_STOP_1078
124263#AT_START_1079
124264at_fn_group_banner 1079 'data_packed.at:312' \
124265  "PACKED-DECIMAL arithmetic" "                      " 5
124266at_xfail=no
124267(
124268  $as_echo "1079. $at_setup_line: testing $at_desc ..."
124269  $at_traceon
124270
124271
124272
124273cat >prog.cob <<'_ATEOF'
124274
124275       IDENTIFICATION   DIVISION.
124276       PROGRAM-ID.      prog.
124277       DATA             DIVISION.
124278       WORKING-STORAGE  SECTION.
124279       01 X             PIC 99 USAGE PACKED-DECIMAL VALUE 0.
124280       01 Y             PIC 99 USAGE PACKED-DECIMAL VALUE 9.
124281       PROCEDURE        DIVISION.
124282           COMPUTE X = 1
124283           END-COMPUTE.
124284           DISPLAY X
124285           END-DISPLAY.
124286           COMPUTE X = Y
124287           END-COMPUTE.
124288           DISPLAY X
124289           END-DISPLAY.
124290           COMPUTE X = X + Y
124291           END-COMPUTE.
124292           DISPLAY X
124293           END-DISPLAY.
124294           STOP RUN.
124295_ATEOF
124296
124297
124298{ set +x
124299$as_echo "$at_srcdir/data_packed.at:338: \$COMPILE prog.cob"
124300at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:338"
124301( $at_check_trace; $COMPILE prog.cob
124302) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124303at_status=$? at_failed=false
124304$at_check_filter
124305at_fn_diff_devnull "$at_stderr" || at_failed=:
124306at_fn_diff_devnull "$at_stdout" || at_failed=:
124307at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:338"
124308$at_failed && at_fn_log_failure
124309$at_traceon; }
124310
124311{ set +x
124312$as_echo "$at_srcdir/data_packed.at:339: \$COBCRUN_DIRECT ./prog"
124313at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:339"
124314( $at_check_trace; $COBCRUN_DIRECT ./prog
124315) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124316at_status=$? at_failed=false
124317$at_check_filter
124318at_fn_diff_devnull "$at_stderr" || at_failed=:
124319echo >>"$at_stdout"; $as_echo "01
12432009
12432118
124322" | \
124323  $at_diff - "$at_stdout" || at_failed=:
124324at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:339"
124325$at_failed && at_fn_log_failure
124326$at_traceon; }
124327
124328
124329  set +x
124330  $at_times_p && times >"$at_times_file"
124331) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124332read at_status <"$at_status_file"
124333#AT_STOP_1079
124334#AT_START_1080
124335at_fn_group_banner 1080 'data_packed.at:348' \
124336  "PACKED-DECIMAL numeric test (1)" "                " 5
124337at_xfail=no
124338(
124339  $as_echo "1080. $at_setup_line: testing $at_desc ..."
124340  $at_traceon
124341
124342
124343
124344cat >prog.cob <<'_ATEOF'
124345
124346       IDENTIFICATION   DIVISION.
124347       PROGRAM-ID.      prog.
124348       DATA             DIVISION.
124349       WORKING-STORAGE  SECTION.
124350       01 G.
124351         02 X-2         PIC X(2).
124352         02 N-2         REDEFINES X-2 PIC 999  USAGE PACKED-DECIMAL.
124353         02 N-S2        REDEFINES X-2 PIC S999 USAGE PACKED-DECIMAL.
124354       PROCEDURE        DIVISION.
124355           MOVE X"0000" TO X-2.
124356           IF N-2  IS NUMERIC
124357            DISPLAY "NG"
124358            END-DISPLAY
124359           ELSE
124360            DISPLAY "OK"
124361            END-DISPLAY
124362           END-IF.
124363           IF N-S2 IS NUMERIC
124364            DISPLAY "NG"
124365            END-DISPLAY
124366           ELSE
124367            DISPLAY "OK"
124368            END-DISPLAY
124369           END-IF.
124370           MOVE X"000c" TO X-2.
124371           IF N-2  IS NUMERIC
124372            DISPLAY "NG"
124373            END-DISPLAY
124374           ELSE
124375            DISPLAY "OK"
124376            END-DISPLAY
124377           END-IF.
124378           IF N-S2 IS NUMERIC
124379            DISPLAY "OK"
124380            END-DISPLAY
124381           ELSE
124382            DISPLAY "NG"
124383            END-DISPLAY
124384           END-IF.
124385           MOVE X"000d" TO X-2.
124386           IF N-2  IS NUMERIC
124387            DISPLAY "NG"
124388            END-DISPLAY
124389           ELSE
124390            DISPLAY "OK"
124391            END-DISPLAY
124392           END-IF.
124393           IF N-S2 IS NUMERIC
124394            DISPLAY "OK"
124395            END-DISPLAY
124396           ELSE
124397            DISPLAY "NG"
124398            END-DISPLAY
124399           END-IF.
124400           MOVE X"000f" TO X-2.
124401           IF N-2  IS NUMERIC
124402            DISPLAY "OK"
124403            END-DISPLAY
124404           ELSE
124405            DISPLAY "NG"
124406            END-DISPLAY
124407           END-IF.
124408           IF N-S2 IS NUMERIC
124409            DISPLAY "NG"
124410            END-DISPLAY
124411           ELSE
124412            DISPLAY "OK"
124413            END-DISPLAY
124414           END-IF.
124415           MOVE X"1234" TO X-2.
124416           IF N-2  IS NUMERIC
124417            DISPLAY "NG"
124418            END-DISPLAY
124419           ELSE
124420            DISPLAY "OK"
124421            END-DISPLAY
124422           END-IF.
124423           IF N-S2 IS NUMERIC
124424            DISPLAY "NG"
124425            END-DISPLAY
124426           ELSE
124427            DISPLAY "OK"
124428            END-DISPLAY
124429           END-IF.
124430           MOVE X"999f" TO X-2.
124431           IF N-2  IS NUMERIC
124432            DISPLAY "OK"
124433            END-DISPLAY
124434           ELSE
124435            DISPLAY "NG"
124436            END-DISPLAY
124437           END-IF.
124438           IF N-S2 IS NUMERIC
124439            DISPLAY "NG"
124440            END-DISPLAY
124441           ELSE
124442            DISPLAY "OK"
124443            END-DISPLAY
124444           END-IF.
124445           MOVE X"ffff" TO X-2.
124446           IF N-2  IS NUMERIC
124447            DISPLAY "NG"
124448            END-DISPLAY
124449           ELSE
124450            DISPLAY "OK"
124451            END-DISPLAY
124452           END-IF.
124453           IF N-S2 IS NUMERIC
124454            DISPLAY "NG"
124455            END-DISPLAY
124456           ELSE
124457            DISPLAY "OK"
124458            END-DISPLAY
124459           END-IF.
124460           STOP RUN.
124461_ATEOF
124462
124463
124464{ set +x
124465$as_echo "$at_srcdir/data_packed.at:469: \$COMPILE prog.cob"
124466at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:469"
124467( $at_check_trace; $COMPILE prog.cob
124468) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124469at_status=$? at_failed=false
124470$at_check_filter
124471at_fn_diff_devnull "$at_stderr" || at_failed=:
124472at_fn_diff_devnull "$at_stdout" || at_failed=:
124473at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:469"
124474$at_failed && at_fn_log_failure
124475$at_traceon; }
124476
124477{ set +x
124478$as_echo "$at_srcdir/data_packed.at:470: \$COBCRUN_DIRECT ./prog"
124479at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:470"
124480( $at_check_trace; $COBCRUN_DIRECT ./prog
124481) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124482at_status=$? at_failed=false
124483$at_check_filter
124484at_fn_diff_devnull "$at_stderr" || at_failed=:
124485echo >>"$at_stdout"; $as_echo "OK
124486OK
124487OK
124488OK
124489OK
124490OK
124491OK
124492OK
124493OK
124494OK
124495OK
124496OK
124497OK
124498OK
124499" | \
124500  $at_diff - "$at_stdout" || at_failed=:
124501at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:470"
124502$at_failed && at_fn_log_failure
124503$at_traceon; }
124504
124505
124506  set +x
124507  $at_times_p && times >"$at_times_file"
124508) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124509read at_status <"$at_status_file"
124510#AT_STOP_1080
124511#AT_START_1081
124512at_fn_group_banner 1081 'data_packed.at:490' \
124513  "PACKED-DECIMAL numeric test (2)" "                " 5
124514at_xfail=no
124515(
124516  $as_echo "1081. $at_setup_line: testing $at_desc ..."
124517  $at_traceon
124518
124519
124520
124521cat >prog.cob <<'_ATEOF'
124522
124523       IDENTIFICATION   DIVISION.
124524       PROGRAM-ID.      prog.
124525       DATA             DIVISION.
124526       WORKING-STORAGE  SECTION.
124527       01 G.
124528         02 X-2         PIC X(2).
124529         02 N-2         REDEFINES X-2 PIC 999  USAGE PACKED-DECIMAL.
124530         02 N-S2        REDEFINES X-2 PIC S999 USAGE PACKED-DECIMAL.
124531       PROCEDURE        DIVISION.
124532           MOVE X"0000" TO X-2.
124533           IF N-2  IS NUMERIC
124534            DISPLAY "NG"
124535           ELSE
124536            DISPLAY "OK"
124537           END-IF.
124538           IF N-S2 IS NUMERIC
124539            DISPLAY "NG"
124540           ELSE
124541            DISPLAY "OK"
124542           END-IF.
124543           MOVE X"000c" TO X-2.
124544           IF N-2  IS NUMERIC
124545            DISPLAY "NG"
124546           ELSE
124547            DISPLAY "OK"
124548           END-IF.
124549           IF N-S2 IS NUMERIC
124550            DISPLAY "OK"
124551           ELSE
124552            DISPLAY "NG"
124553           END-IF.
124554           MOVE X"000d" TO X-2.
124555           IF N-2  IS NUMERIC
124556            DISPLAY "NG"
124557           ELSE
124558            DISPLAY "OK"
124559           END-IF.
124560           IF N-S2 IS NUMERIC
124561            DISPLAY "OK"
124562           ELSE
124563            DISPLAY "NG"
124564           END-IF.
124565           MOVE X"000f" TO X-2.
124566           IF N-2  IS NUMERIC
124567            DISPLAY "OK"
124568           ELSE
124569            DISPLAY "NG"
124570           END-IF.
124571           IF N-S2 IS NUMERIC
124572            DISPLAY "OK"
124573           ELSE
124574            DISPLAY "NG"
124575           END-IF.
124576           MOVE X"1234" TO X-2.
124577           IF N-2  IS NUMERIC
124578            DISPLAY "NG"
124579           ELSE
124580            DISPLAY "OK"
124581           END-IF.
124582           IF N-S2 IS NUMERIC
124583            DISPLAY "NG"
124584           ELSE
124585            DISPLAY "OK"
124586           END-IF.
124587           MOVE X"999f" TO X-2.
124588           IF N-2  IS NUMERIC
124589            DISPLAY "OK"
124590           ELSE
124591            DISPLAY "NG"
124592           END-IF.
124593           IF N-S2 IS NUMERIC
124594            DISPLAY "OK"
124595           ELSE
124596            DISPLAY "NG"
124597           END-IF.
124598           MOVE X"ffff" TO X-2.
124599           IF N-2  IS NUMERIC
124600            DISPLAY "NG"
124601           ELSE
124602            DISPLAY "OK"
124603           END-IF.
124604           IF N-S2 IS NUMERIC
124605            DISPLAY "NG"
124606           ELSE
124607            DISPLAY "OK"
124608           END-IF.
124609           STOP RUN.
124610_ATEOF
124611
124612
124613# TODO: Check what actual option is tested here
124614#       and directly use it
124615{ set +x
124616$as_echo "$at_srcdir/data_packed.at:585: \$COMPILE -std=ibm prog.cob"
124617at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "data_packed.at:585"
124618( $at_check_trace; $COMPILE -std=ibm prog.cob
124619) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124620at_status=$? at_failed=false
124621$at_check_filter
124622at_fn_diff_devnull "$at_stderr" || at_failed=:
124623at_fn_diff_devnull "$at_stdout" || at_failed=:
124624at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:585"
124625$at_failed && at_fn_log_failure
124626$at_traceon; }
124627
124628{ set +x
124629$as_echo "$at_srcdir/data_packed.at:586: \$COBCRUN_DIRECT ./prog"
124630at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:586"
124631( $at_check_trace; $COBCRUN_DIRECT ./prog
124632) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124633at_status=$? at_failed=false
124634$at_check_filter
124635at_fn_diff_devnull "$at_stderr" || at_failed=:
124636echo >>"$at_stdout"; $as_echo "OK
124637OK
124638OK
124639OK
124640OK
124641OK
124642OK
124643OK
124644OK
124645OK
124646OK
124647OK
124648OK
124649OK
124650" | \
124651  $at_diff - "$at_stdout" || at_failed=:
124652at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:586"
124653$at_failed && at_fn_log_failure
124654$at_traceon; }
124655
124656
124657  set +x
124658  $at_times_p && times >"$at_times_file"
124659) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124660read at_status <"$at_status_file"
124661#AT_STOP_1081
124662#AT_START_1082
124663at_fn_group_banner 1082 'data_packed.at:606' \
124664  "COMP-6 used with DISPLAY" "                       " 5
124665at_xfail=no
124666(
124667  $as_echo "1082. $at_setup_line: testing $at_desc ..."
124668  $at_traceon
124669
124670
124671
124672cat >prog.cob <<'_ATEOF'
124673
124674       IDENTIFICATION   DIVISION.
124675       PROGRAM-ID.      prog.
124676       DATA             DIVISION.
124677       WORKING-STORAGE  SECTION.
124678       01 X-99          PIC 99   USAGE COMP-6.
124679       01 X-999         PIC 999  USAGE COMP-6.
124680       PROCEDURE        DIVISION.
124681           MOVE    0 TO X-99.
124682           DISPLAY X-99
124683           END-DISPLAY.
124684           MOVE   99 TO X-99.
124685           DISPLAY X-99
124686           END-DISPLAY.
124687           MOVE    0 TO X-999.
124688           DISPLAY X-999
124689           END-DISPLAY.
124690           MOVE  123 TO X-999.
124691           DISPLAY X-999
124692           END-DISPLAY.
124693           STOP RUN.
124694_ATEOF
124695
124696
124697{ set +x
124698$as_echo "$at_srcdir/data_packed.at:632: \$COMPILE prog.cob"
124699at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:632"
124700( $at_check_trace; $COMPILE prog.cob
124701) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124702at_status=$? at_failed=false
124703$at_check_filter
124704at_fn_diff_devnull "$at_stderr" || at_failed=:
124705at_fn_diff_devnull "$at_stdout" || at_failed=:
124706at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:632"
124707$at_failed && at_fn_log_failure
124708$at_traceon; }
124709
124710{ set +x
124711$as_echo "$at_srcdir/data_packed.at:633: \$COBCRUN_DIRECT ./prog"
124712at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:633"
124713( $at_check_trace; $COBCRUN_DIRECT ./prog
124714) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124715at_status=$? at_failed=false
124716$at_check_filter
124717at_fn_diff_devnull "$at_stderr" || at_failed=:
124718echo >>"$at_stdout"; $as_echo "00
12471999
124720000
124721123
124722" | \
124723  $at_diff - "$at_stdout" || at_failed=:
124724at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:633"
124725$at_failed && at_fn_log_failure
124726$at_traceon; }
124727
124728
124729  set +x
124730  $at_times_p && times >"$at_times_file"
124731) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124732read at_status <"$at_status_file"
124733#AT_STOP_1082
124734#AT_START_1083
124735at_fn_group_banner 1083 'data_packed.at:643' \
124736  "COMP-6 used with MOVE" "                          " 5
124737at_xfail=no
124738(
124739  $as_echo "1083. $at_setup_line: testing $at_desc ..."
124740  $at_traceon
124741
124742
124743
124744cat >prog.cob <<'_ATEOF'
124745
124746       IDENTIFICATION   DIVISION.
124747       PROGRAM-ID.      prog.
124748       DATA             DIVISION.
124749       WORKING-STORAGE  SECTION.
124750       01 X-99          PIC 99   USAGE COMP-6.
124751       01 X-999         PIC 999  USAGE COMP-6.
124752       01 B-99          USAGE BINARY-LONG.
124753       01 B-999         USAGE BINARY-LONG.
124754       PROCEDURE        DIVISION.
124755           MOVE    0 TO B-99.
124756           MOVE B-99 TO X-99.
124757           DISPLAY X-99
124758           END-DISPLAY.
124759           MOVE   99 TO B-99.
124760           MOVE B-99 TO X-99.
124761           DISPLAY X-99
124762           END-DISPLAY.
124763           MOVE    0  TO B-999.
124764           MOVE B-999 TO X-999.
124765           DISPLAY X-999
124766           END-DISPLAY.
124767           MOVE  123  TO B-999.
124768           MOVE B-999 TO X-999.
124769           DISPLAY X-999
124770           END-DISPLAY.
124771           MOVE B-999 TO X-99.
124772           DISPLAY X-99
124773           END-DISPLAY.
124774           STOP RUN.
124775_ATEOF
124776
124777
124778{ set +x
124779$as_echo "$at_srcdir/data_packed.at:678: \$COMPILE prog.cob"
124780at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:678"
124781( $at_check_trace; $COMPILE prog.cob
124782) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124783at_status=$? at_failed=false
124784$at_check_filter
124785at_fn_diff_devnull "$at_stderr" || at_failed=:
124786at_fn_diff_devnull "$at_stdout" || at_failed=:
124787at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:678"
124788$at_failed && at_fn_log_failure
124789$at_traceon; }
124790
124791{ set +x
124792$as_echo "$at_srcdir/data_packed.at:679: \$COBCRUN_DIRECT ./prog"
124793at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:679"
124794( $at_check_trace; $COBCRUN_DIRECT ./prog
124795) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124796at_status=$? at_failed=false
124797$at_check_filter
124798at_fn_diff_devnull "$at_stderr" || at_failed=:
124799echo >>"$at_stdout"; $as_echo "00
12480099
124801000
124802123
12480323
124804" | \
124805  $at_diff - "$at_stdout" || at_failed=:
124806at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:679"
124807$at_failed && at_fn_log_failure
124808$at_traceon; }
124809
124810
124811  set +x
124812  $at_times_p && times >"$at_times_file"
124813) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124814read at_status <"$at_status_file"
124815#AT_STOP_1083
124816#AT_START_1084
124817at_fn_group_banner 1084 'data_packed.at:690' \
124818  "COMP-6 arithmetic" "                              " 5
124819at_xfail=no
124820(
124821  $as_echo "1084. $at_setup_line: testing $at_desc ..."
124822  $at_traceon
124823
124824
124825
124826cat >prog.cob <<'_ATEOF'
124827
124828       IDENTIFICATION   DIVISION.
124829       PROGRAM-ID.      prog.
124830       DATA             DIVISION.
124831       WORKING-STORAGE  SECTION.
124832       01 X-99          PIC 99   USAGE COMP-6.
124833       01 X-999         PIC 999  USAGE COMP-6.
124834       01 B-99          USAGE BINARY-LONG UNSIGNED.
124835       01 B-999         USAGE BINARY-LONG UNSIGNED.
124836       PROCEDURE        DIVISION.
124837           MOVE   99  TO B-99
124838           MOVE B-99  TO X-99
124839           MOVE  123  TO B-999
124840           MOVE B-999 TO X-999
124841           ADD  X-99  X-999 GIVING B-99
124842           END-ADD
124843           DISPLAY B-99
124844           END-DISPLAY
124845           STOP RUN.
124846_ATEOF
124847
124848
124849{ set +x
124850$as_echo "$at_srcdir/data_packed.at:714: \$COMPILE prog.cob"
124851at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:714"
124852( $at_check_trace; $COMPILE prog.cob
124853) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124854at_status=$? at_failed=false
124855$at_check_filter
124856at_fn_diff_devnull "$at_stderr" || at_failed=:
124857at_fn_diff_devnull "$at_stdout" || at_failed=:
124858at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:714"
124859$at_failed && at_fn_log_failure
124860$at_traceon; }
124861
124862{ set +x
124863$as_echo "$at_srcdir/data_packed.at:715: \$COBCRUN_DIRECT ./prog"
124864at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:715"
124865( $at_check_trace; $COBCRUN_DIRECT ./prog
124866) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124867at_status=$? at_failed=false
124868$at_check_filter
124869at_fn_diff_devnull "$at_stderr" || at_failed=:
124870echo >>"$at_stdout"; $as_echo "0000000222
124871" | \
124872  $at_diff - "$at_stdout" || at_failed=:
124873at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:715"
124874$at_failed && at_fn_log_failure
124875$at_traceon; }
124876
124877
124878  set +x
124879  $at_times_p && times >"$at_times_file"
124880) 5>&1 2>&1 7>&- | eval $at_tee_pipe
124881read at_status <"$at_status_file"
124882#AT_STOP_1084
124883#AT_START_1085
124884at_fn_group_banner 1085 'data_packed.at:722' \
124885  "COMP-6 numeric test" "                            " 5
124886at_xfail=no
124887(
124888  $as_echo "1085. $at_setup_line: testing $at_desc ..."
124889  $at_traceon
124890
124891
124892
124893cat >prog.cob <<'_ATEOF'
124894
124895       IDENTIFICATION   DIVISION.
124896       PROGRAM-ID.      prog.
124897       DATA             DIVISION.
124898       WORKING-STORAGE  SECTION.
124899       01 G.
124900          02 X-2         PIC X(2).
124901          02 N-3         REDEFINES X-2 PIC 999  USAGE COMP-6.
124902          02 N-4         REDEFINES X-2 PIC 9999 USAGE COMP-6.
124903       PROCEDURE        DIVISION.
124904           MOVE X"0000" TO X-2.
124905           IF N-3  IS NUMERIC
124906            DISPLAY "OK"
124907            END-DISPLAY
124908           ELSE
124909            DISPLAY "NG"
124910            END-DISPLAY
124911           END-IF.
124912           IF N-4  IS NUMERIC
124913            DISPLAY "OK"
124914            END-DISPLAY
124915           ELSE
124916            DISPLAY "NG"
124917            END-DISPLAY
124918           END-IF.
124919           MOVE X"000c" TO X-2.
124920           IF N-3  IS NUMERIC
124921            DISPLAY "NG"
124922            END-DISPLAY
124923           ELSE
124924            DISPLAY "OK"
124925            END-DISPLAY
124926           END-IF.
124927           IF N-4  IS NUMERIC
124928            DISPLAY "NG"
124929            END-DISPLAY
124930           ELSE
124931            DISPLAY "OK"
124932            END-DISPLAY
124933           END-IF.
124934           MOVE X"1234" TO X-2.
124935           IF N-3  IS NUMERIC
124936            DISPLAY "OK"
124937            END-DISPLAY
124938           ELSE
124939            DISPLAY "NG"
124940            END-DISPLAY
124941           END-IF.
124942           IF N-4  IS NUMERIC
124943            DISPLAY "OK"
124944            END-DISPLAY
124945           ELSE
124946            DISPLAY "NG"
124947            END-DISPLAY
124948           END-IF.
124949           MOVE X"ffff" TO X-2.
124950           IF N-3  IS NUMERIC
124951            DISPLAY "NG"
124952            END-DISPLAY
124953           ELSE
124954            DISPLAY "OK"
124955            END-DISPLAY
124956           END-IF.
124957           IF N-4  IS NUMERIC
124958            DISPLAY "NG"
124959            END-DISPLAY
124960           ELSE
124961            DISPLAY "OK"
124962            END-DISPLAY
124963           END-IF.
124964           STOP RUN.
124965_ATEOF
124966
124967
124968{ set +x
124969$as_echo "$at_srcdir/data_packed.at:798: \$COMPILE prog.cob"
124970at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:798"
124971( $at_check_trace; $COMPILE prog.cob
124972) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124973at_status=$? at_failed=false
124974$at_check_filter
124975at_fn_diff_devnull "$at_stderr" || at_failed=:
124976at_fn_diff_devnull "$at_stdout" || at_failed=:
124977at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:798"
124978$at_failed && at_fn_log_failure
124979$at_traceon; }
124980
124981{ set +x
124982$as_echo "$at_srcdir/data_packed.at:799: \$COBCRUN_DIRECT ./prog"
124983at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:799"
124984( $at_check_trace; $COBCRUN_DIRECT ./prog
124985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
124986at_status=$? at_failed=false
124987$at_check_filter
124988at_fn_diff_devnull "$at_stderr" || at_failed=:
124989echo >>"$at_stdout"; $as_echo "OK
124990OK
124991OK
124992OK
124993OK
124994OK
124995OK
124996OK
124997" | \
124998  $at_diff - "$at_stdout" || at_failed=:
124999at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:799"
125000$at_failed && at_fn_log_failure
125001$at_traceon; }
125002
125003
125004  set +x
125005  $at_times_p && times >"$at_times_file"
125006) 5>&1 2>&1 7>&- | eval $at_tee_pipe
125007read at_status <"$at_status_file"
125008#AT_STOP_1085
125009#AT_START_1086
125010at_fn_group_banner 1086 'data_pointer.at:21' \
125011  "POINTER: display" "                               " 5
125012at_xfail=no
125013(
125014  $as_echo "1086. $at_setup_line: testing $at_desc ..."
125015  $at_traceon
125016
125017
125018
125019cat >prog.cob <<'_ATEOF'
125020
125021       IDENTIFICATION   DIVISION.
125022       PROGRAM-ID.      prog.
125023       DATA             DIVISION.
125024       WORKING-STORAGE  SECTION.
125025       01 PTR           USAGE POINTER VALUE NULL.
125026       PROCEDURE        DIVISION.
125027           DISPLAY PTR
125028           END-DISPLAY.
125029           SET PTR UP BY 1
125030           DISPLAY PTR
125031           SET PTR DOWN BY 1
125032           DISPLAY PTR
125033           END-DISPLAY.
125034           STOP RUN.
125035_ATEOF
125036
125037
125038{ set +x
125039$as_echo "$at_srcdir/data_pointer.at:41: \$COMPILE prog.cob"
125040at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_pointer.at:41"
125041( $at_check_trace; $COMPILE prog.cob
125042) >>"$at_stdout" 2>>"$at_stderr" 5>&-
125043at_status=$? at_failed=false
125044$at_check_filter
125045at_fn_diff_devnull "$at_stderr" || at_failed=:
125046at_fn_diff_devnull "$at_stdout" || at_failed=:
125047at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:41"
125048$at_failed && at_fn_log_failure
125049$at_traceon; }
125050
125051
125052{ set +x
125053$as_echo "$at_srcdir/data_pointer.at:43: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
125054at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "data_pointer.at:43"
125055( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
125056) >>"$at_stdout" 2>>"$at_stderr" 5>&-
125057at_status=$? at_failed=false
125058$at_check_filter
125059at_fn_diff_devnull "$at_stderr" || at_failed=:
125060at_fn_diff_devnull "$at_stdout" || at_failed=:
125061at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
125062if $at_failed; then :
125063  # Previous test "failed" --> 32 bit
125064
125065{ set +x
125066$as_echo "$at_srcdir/data_pointer.at:43: \$COBCRUN_DIRECT ./prog"
125067at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_pointer.at:43"
125068( $at_check_trace; $COBCRUN_DIRECT ./prog
125069) >>"$at_stdout" 2>>"$at_stderr" 5>&-
125070at_status=$? at_failed=false
125071$at_check_filter
125072at_fn_diff_devnull "$at_stderr" || at_failed=:
125073echo >>"$at_stdout"; $as_echo "0x00000000
1250740x00000001
1250750x00000000
125076" | \
125077  $at_diff - "$at_stdout" || at_failed=:
125078at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
125079$at_failed && at_fn_log_failure
125080$at_traceon; }
125081
125082
125083
125084else
125085  # Previous test "passed" --> 64 bit
125086
125087{ set +x
125088$as_echo "$at_srcdir/data_pointer.at:43: \$COBCRUN_DIRECT ./prog"
125089at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_pointer.at:43"
125090( $at_check_trace; $COBCRUN_DIRECT ./prog
125091) >>"$at_stdout" 2>>"$at_stderr" 5>&-
125092at_status=$? at_failed=false
125093$at_check_filter
125094at_fn_diff_devnull "$at_stderr" || at_failed=:
125095echo >>"$at_stdout"; $as_echo "0x0000000000000000
1250960x0000000000000001
1250970x0000000000000000
125098" | \
125099  $at_diff - "$at_stdout" || at_failed=:
125100at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
125101$at_failed && at_fn_log_failure
125102$at_traceon; }
125103
125104fi
125105$at_failed && at_fn_log_failure
125106$at_traceon; }
125107
125108
125109  set +x
125110  $at_times_p && times >"$at_times_file"
125111) 5>&1 2>&1 7>&- | eval $at_tee_pipe
125112read at_status <"$at_status_file"
125113#AT_STOP_1086
125114