1#! /bin/sh
2# Generated from testsuite.at by GNU Autoconf 2.69.
3#
4# Copyright (C) 2009-2012 Free Software Foundation, Inc.
5#
6# This test suite is free software; the Free Software Foundation gives
7# unlimited permission to copy, distribute and modify it.
8## -------------------- ##
9## M4sh Initialization. ##
10## -------------------- ##
11
12# Be more Bourne compatible
13DUALCASE=1; export DUALCASE # for MKS sh
14if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
15  emulate sh
16  NULLCMD=:
17  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
18  # is contrary to our usage.  Disable this feature.
19  alias -g '${1+"$@"}'='"$@"'
20  setopt NO_GLOB_SUBST
21else
22  case `(set -o) 2>/dev/null` in #(
23  *posix*) :
24    set -o posix ;; #(
25  *) :
26     ;;
27esac
28fi
29
30
31as_nl='
32'
33export as_nl
34# Printing a long string crashes Solaris 7 /usr/bin/printf.
35as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
36as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
37as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
38# Prefer a ksh shell builtin over an external printf program on Solaris,
39# but without wasting forks for bash or zsh.
40if test -z "$BASH_VERSION$ZSH_VERSION" \
41    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
42  as_echo='print -r --'
43  as_echo_n='print -rn --'
44elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
45  as_echo='printf %s\n'
46  as_echo_n='printf %s'
47else
48  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
49    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
50    as_echo_n='/usr/ucb/echo -n'
51  else
52    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
53    as_echo_n_body='eval
54      arg=$1;
55      case $arg in #(
56      *"$as_nl"*)
57	expr "X$arg" : "X\\(.*\\)$as_nl";
58	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
59      esac;
60      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
61    '
62    export as_echo_n_body
63    as_echo_n='sh -c $as_echo_n_body as_echo'
64  fi
65  export as_echo_body
66  as_echo='sh -c $as_echo_body as_echo'
67fi
68
69# The user is always right.
70if test "${PATH_SEPARATOR+set}" != set; then
71  PATH_SEPARATOR=:
72  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
73    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
74      PATH_SEPARATOR=';'
75  }
76fi
77
78
79# IFS
80# We need space, tab and new line, in precisely that order.  Quoting is
81# there to prevent editors from complaining about space-tab.
82# (If _AS_PATH_WALK were called with IFS unset, it would disable word
83# splitting by setting IFS to empty value.)
84IFS=" ""	$as_nl"
85
86# Find who we are.  Look in the path if we contain no directory separator.
87as_myself=
88case $0 in #((
89  *[\\/]* ) as_myself=$0 ;;
90  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
91for as_dir in $PATH
92do
93  IFS=$as_save_IFS
94  test -z "$as_dir" && as_dir=.
95    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
96  done
97IFS=$as_save_IFS
98
99     ;;
100esac
101# We did not find ourselves, most probably we were run as `sh COMMAND'
102# in which case we are not to be found in the path.
103if test "x$as_myself" = x; then
104  as_myself=$0
105fi
106if test ! -f "$as_myself"; then
107  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
108  exit 1
109fi
110
111# Unset variables that we do not need and which cause bugs (e.g. in
112# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
113# suppresses any "Segmentation fault" message there.  '((' could
114# trigger a bug in pdksh 5.2.14.
115for as_var in BASH_ENV ENV MAIL MAILPATH
116do eval test x\${$as_var+set} = xset \
117  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
118done
119PS1='$ '
120PS2='> '
121PS4='+ '
122
123# NLS nuisances.
124LC_ALL=C
125export LC_ALL
126LANGUAGE=C
127export LANGUAGE
128
129# CDPATH.
130(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
131
132if test "x$CONFIG_SHELL" = x; then
133  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
134  emulate sh
135  NULLCMD=:
136  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
137  # is contrary to our usage.  Disable this feature.
138  alias -g '\${1+\"\$@\"}'='\"\$@\"'
139  setopt NO_GLOB_SUBST
140else
141  case \`(set -o) 2>/dev/null\` in #(
142  *posix*) :
143    set -o posix ;; #(
144  *) :
145     ;;
146esac
147fi
148"
149  as_required="as_fn_return () { (exit \$1); }
150as_fn_success () { as_fn_return 0; }
151as_fn_failure () { as_fn_return 1; }
152as_fn_ret_success () { return 0; }
153as_fn_ret_failure () { return 1; }
154
155exitcode=0
156as_fn_success || { exitcode=1; echo as_fn_success failed.; }
157as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
158as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
159as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
160if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
161
162else
163  exitcode=1; echo positional parameters were not saved.
164fi
165test x\$exitcode = x0 || exit 1
166test -x / || exit 1"
167  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
168  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
169  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
170  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
171test \$(( 1 + 1 )) = 2 || exit 1"
172  if (eval "$as_required") 2>/dev/null; then :
173  as_have_required=yes
174else
175  as_have_required=no
176fi
177  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
178
179else
180  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
181as_found=false
182for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
183do
184  IFS=$as_save_IFS
185  test -z "$as_dir" && as_dir=.
186  as_found=:
187  case $as_dir in #(
188	 /*)
189	   for as_base in sh bash ksh sh5; do
190	     # Try only shells that exist, to save several forks.
191	     as_shell=$as_dir/$as_base
192	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
193		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
194  CONFIG_SHELL=$as_shell as_have_required=yes
195		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
196  break 2
197fi
198fi
199	   done;;
200       esac
201  as_found=false
202done
203$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
204	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
205  CONFIG_SHELL=$SHELL as_have_required=yes
206fi; }
207IFS=$as_save_IFS
208
209
210      if test "x$CONFIG_SHELL" != x; then :
211  export CONFIG_SHELL
212             # We cannot yet assume a decent shell, so we have to provide a
213# neutralization value for shells without unset; and this also
214# works around shells that cannot unset nonexistent variables.
215# Preserve -v and -x to the replacement shell.
216BASH_ENV=/dev/null
217ENV=/dev/null
218(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
219case $- in # ((((
220  *v*x* | *x*v* ) as_opts=-vx ;;
221  *v* ) as_opts=-v ;;
222  *x* ) as_opts=-x ;;
223  * ) as_opts= ;;
224esac
225exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
226# Admittedly, this is quite paranoid, since all the known shells bail
227# out after a failed `exec'.
228$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
229exit 255
230fi
231
232    if test x$as_have_required = xno; then :
233  $as_echo "$0: This script requires a shell more modern than all"
234  $as_echo "$0: the shells that I found on your system."
235  if test x${ZSH_VERSION+set} = xset ; then
236    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
237    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
238  else
239    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
240$0: including any error possibly output before this
241$0: message. Then install a modern shell, or manually run
242$0: the script under such a shell if you do have one."
243  fi
244  exit 1
245fi
246fi
247fi
248SHELL=${CONFIG_SHELL-/bin/sh}
249export SHELL
250# Unset more variables known to interfere with behavior of common tools.
251CLICOLOR_FORCE= GREP_OPTIONS=
252unset CLICOLOR_FORCE GREP_OPTIONS
253
254## --------------------- ##
255## M4sh Shell Functions. ##
256## --------------------- ##
257# as_fn_unset VAR
258# ---------------
259# Portably unset VAR.
260as_fn_unset ()
261{
262  { eval $1=; unset $1;}
263}
264as_unset=as_fn_unset
265
266# as_fn_set_status STATUS
267# -----------------------
268# Set $? to STATUS, without forking.
269as_fn_set_status ()
270{
271  return $1
272} # as_fn_set_status
273
274# as_fn_exit STATUS
275# -----------------
276# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
277as_fn_exit ()
278{
279  set +e
280  as_fn_set_status $1
281  exit $1
282} # as_fn_exit
283
284# as_fn_mkdir_p
285# -------------
286# Create "$as_dir" as a directory, including parents if necessary.
287as_fn_mkdir_p ()
288{
289
290  case $as_dir in #(
291  -*) as_dir=./$as_dir;;
292  esac
293  test -d "$as_dir" || eval $as_mkdir_p || {
294    as_dirs=
295    while :; do
296      case $as_dir in #(
297      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
298      *) as_qdir=$as_dir;;
299      esac
300      as_dirs="'$as_qdir' $as_dirs"
301      as_dir=`$as_dirname -- "$as_dir" ||
302$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
303	 X"$as_dir" : 'X\(//\)[^/]' \| \
304	 X"$as_dir" : 'X\(//\)$' \| \
305	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
306$as_echo X"$as_dir" |
307    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
308	    s//\1/
309	    q
310	  }
311	  /^X\(\/\/\)[^/].*/{
312	    s//\1/
313	    q
314	  }
315	  /^X\(\/\/\)$/{
316	    s//\1/
317	    q
318	  }
319	  /^X\(\/\).*/{
320	    s//\1/
321	    q
322	  }
323	  s/.*/./; q'`
324      test -d "$as_dir" && break
325    done
326    test -z "$as_dirs" || eval "mkdir $as_dirs"
327  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
328
329
330} # as_fn_mkdir_p
331
332# as_fn_executable_p FILE
333# -----------------------
334# Test if FILE is an executable regular file.
335as_fn_executable_p ()
336{
337  test -f "$1" && test -x "$1"
338} # as_fn_executable_p
339# as_fn_append VAR VALUE
340# ----------------------
341# Append the text in VALUE to the end of the definition contained in VAR. Take
342# advantage of any shell optimizations that allow amortized linear growth over
343# repeated appends, instead of the typical quadratic growth present in naive
344# implementations.
345if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
346  eval 'as_fn_append ()
347  {
348    eval $1+=\$2
349  }'
350else
351  as_fn_append ()
352  {
353    eval $1=\$$1\$2
354  }
355fi # as_fn_append
356
357# as_fn_arith ARG...
358# ------------------
359# Perform arithmetic evaluation on the ARGs, and store the result in the
360# global $as_val. Take advantage of shells that can avoid forks. The arguments
361# must be portable across $(()) and expr.
362if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
363  eval 'as_fn_arith ()
364  {
365    as_val=$(( $* ))
366  }'
367else
368  as_fn_arith ()
369  {
370    as_val=`expr "$@" || test $? -eq 1`
371  }
372fi # as_fn_arith
373
374
375# as_fn_error STATUS ERROR [LINENO LOG_FD]
376# ----------------------------------------
377# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
378# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
379# script with STATUS, using 1 if that was 0.
380as_fn_error ()
381{
382  as_status=$1; test $as_status -eq 0 && as_status=1
383  if test "$4"; then
384    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
385    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
386  fi
387  $as_echo "$as_me: error: $2" >&2
388  as_fn_exit $as_status
389} # as_fn_error
390
391if expr a : '\(a\)' >/dev/null 2>&1 &&
392   test "X`expr 00001 : '.*\(...\)'`" = X001; then
393  as_expr=expr
394else
395  as_expr=false
396fi
397
398if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
399  as_basename=basename
400else
401  as_basename=false
402fi
403
404as_me=`$as_basename -- "$0" ||
405$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
406	 X"$0" : 'X\(//\)$' \| \
407	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
408$as_echo X/"$0" |
409    sed '/^.*\/\([^/][^/]*\)\/*$/{
410	    s//\1/
411	    q
412	  }
413	  /^X\/\(\/\/\)$/{
414	    s//\1/
415	    q
416	  }
417	  /^X\/\(\/\).*/{
418	    s//\1/
419	    q
420	  }
421	  s/.*/./; q'`
422
423if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
424  as_dirname=dirname
425else
426  as_dirname=false
427fi
428
429# Avoid depending upon Character Ranges.
430as_cr_letters='abcdefghijklmnopqrstuvwxyz'
431as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
432as_cr_Letters=$as_cr_letters$as_cr_LETTERS
433as_cr_digits='0123456789'
434as_cr_alnum=$as_cr_Letters$as_cr_digits
435
436
437  as_lineno_1=$LINENO as_lineno_1a=$LINENO
438  as_lineno_2=$LINENO as_lineno_2a=$LINENO
439  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
440  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
441  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
442  sed -n '
443    p
444    /[$]LINENO/=
445  ' <$as_myself |
446    sed '
447      s/[$]LINENO.*/&-/
448      t lineno
449      b
450      :lineno
451      N
452      :loop
453      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
454      t loop
455      s/-\n.*//
456    ' >$as_me.lineno &&
457  chmod +x "$as_me.lineno" ||
458    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
459
460  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
461  # already done that, so ensure we don't try to do so again and fall
462  # in an infinite loop.  This has already happened in practice.
463  _as_can_reexec=no; export _as_can_reexec
464  # Don't try to exec as it changes $[0], causing all sort of problems
465  # (the dirname of $[0] is not the place where we might find the
466  # original and so on.  Autoconf is especially sensitive to this).
467  . "./$as_me.lineno"
468  # Exit status is that of the last command.
469  exit
470}
471
472ECHO_C= ECHO_N= ECHO_T=
473case `echo -n x` in #(((((
474-n*)
475  case `echo 'xy\c'` in
476  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
477  xy)  ECHO_C='\c';;
478  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
479       ECHO_T='	';;
480  esac;;
481*)
482  ECHO_N='-n';;
483esac
484
485rm -f conf$$ conf$$.exe conf$$.file
486if test -d conf$$.dir; then
487  rm -f conf$$.dir/conf$$.file
488else
489  rm -f conf$$.dir
490  mkdir conf$$.dir 2>/dev/null
491fi
492if (echo >conf$$.file) 2>/dev/null; then
493  if ln -s conf$$.file conf$$ 2>/dev/null; then
494    as_ln_s='ln -s'
495    # ... but there are two gotchas:
496    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
497    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
498    # In both cases, we have to default to `cp -pR'.
499    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
500      as_ln_s='cp -pR'
501  elif ln conf$$.file conf$$ 2>/dev/null; then
502    as_ln_s=ln
503  else
504    as_ln_s='cp -pR'
505  fi
506else
507  as_ln_s='cp -pR'
508fi
509rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
510rmdir conf$$.dir 2>/dev/null
511
512if mkdir -p . 2>/dev/null; then
513  as_mkdir_p='mkdir -p "$as_dir"'
514else
515  test -d ./-p && rmdir ./-p
516  as_mkdir_p=false
517fi
518
519as_test_x='test -x'
520as_executable_p=as_fn_executable_p
521
522# Sed expression to map a string onto a valid CPP name.
523as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
524
525# Sed expression to map a string onto a valid variable name.
526as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
527
528
529
530
531
532SHELL=${CONFIG_SHELL-/bin/sh}
533
534# How were we run?
535at_cli_args="$@"
536
537
538# Not all shells have the 'times' builtin; the subshell is needed to make
539# sure we discard the 'times: not found' message from the shell.
540at_times_p=false
541(times) >/dev/null 2>&1 && at_times_p=:
542
543# CLI Arguments to pass to the debugging scripts.
544at_debug_args=
545# -e sets to true
546at_errexit_p=false
547# Shall we be verbose?  ':' means no, empty means yes.
548at_verbose=:
549at_quiet=
550# Running several jobs in parallel, 0 means as many as test groups.
551at_jobs=1
552at_traceon=:
553at_trace_echo=:
554at_check_filter_trace=:
555
556# Shall we keep the debug scripts?  Must be `:' when the suite is
557# run by a debug script, so that the script doesn't remove itself.
558at_debug_p=false
559# Display help message?
560at_help_p=false
561# Display the version message?
562at_version_p=false
563# List test groups?
564at_list_p=false
565# --clean
566at_clean=false
567# Test groups to run
568at_groups=
569# Whether to rerun failed tests.
570at_recheck=
571# Whether a write failure occurred
572at_write_fail=0
573
574# The directory we run the suite in.  Default to . if no -C option.
575at_dir=`pwd`
576# An absolute reference to this testsuite script.
577case $as_myself in
578  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
579  * ) at_myself=$at_dir/$as_myself ;;
580esac
581# Whether -C is in effect.
582at_change_dir=false
583
584# Whether to enable colored test results.
585at_color=no
586# List of the tested programs.
587at_tested=''
588# As many question marks as there are digits in the last test group number.
589# Used to normalize the test group numbers so that `ls' lists them in
590# numerical order.
591at_format='??'
592# Description of all the test groups.
593at_help_all="1;showdb.at:17;show db;showdb show;
5942;showinfo.at:17;show info;showinfo show;
5953;exact.at:17;exact;exact match;
5964;alnum.at:17;exact (alphanumeric only);exact match;
5975;allchars.at:17;exact (all chars);exact match;
5986;prefix.at:17;prefix;prefix match;
5997;suffix.at:17;suffix;suffix match;
6008;word.at:17;word;word match;
6019;define.at:17;define;define;
60210;ovshowdb.at:17;show db;showdb show virtual;
60311;ovexact.at:17;exact match;virtual exact match;
60412;ovdefnomime.at:17;define (no mime);virtual define;
60513;ovdefmime.at:17;define (mime);virtual define;
60614;vshowdb.at:17;show db;showdb show virtual;
60715;vexact.at:17;exact match;virtual exact match;
60816;vdefine.at:17;define;virtual define;
609"
610# List of the all the test groups.
611at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
612
613# at_fn_validate_ranges NAME...
614# -----------------------------
615# Validate and normalize the test group number contained in each variable
616# NAME. Leading zeroes are treated as decimal.
617at_fn_validate_ranges ()
618{
619  for at_grp
620  do
621    eval at_value=\$$at_grp
622    if test $at_value -lt 1 || test $at_value -gt 16; then
623      $as_echo "invalid test group: $at_value" >&2
624      exit 1
625    fi
626    case $at_value in
627      0*) # We want to treat leading 0 as decimal, like expr and test, but
628	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
629	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
630	  # expr fork, but it is not worth the effort to determine if the
631	  # shell supports XSI when the user can just avoid leading 0.
632	  eval $at_grp='`expr $at_value + 0`' ;;
633    esac
634  done
635}
636
637at_prev=
638for at_option
639do
640  # If the previous option needs an argument, assign it.
641  if test -n "$at_prev"; then
642    at_option=$at_prev=$at_option
643    at_prev=
644  fi
645
646  case $at_option in
647  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
648  *)    at_optarg= ;;
649  esac
650
651  # Accept the important Cygnus configure options, so we can diagnose typos.
652
653  case $at_option in
654    --help | -h )
655	at_help_p=:
656	;;
657
658    --list | -l )
659	at_list_p=:
660	;;
661
662    --version | -V )
663	at_version_p=:
664	;;
665
666    --clean | -c )
667	at_clean=:
668	;;
669
670    --color )
671	at_color=always
672	;;
673    --color=* )
674	case $at_optarg in
675	no | never | none) at_color=never ;;
676	auto | tty | if-tty) at_color=auto ;;
677	always | yes | force) at_color=always ;;
678	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
679	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
680	esac
681	;;
682
683    --debug | -d )
684	at_debug_p=:
685	;;
686
687    --errexit | -e )
688	at_debug_p=:
689	at_errexit_p=:
690	;;
691
692    --verbose | -v )
693	at_verbose=; at_quiet=:
694	;;
695
696    --trace | -x )
697	at_traceon='set -x'
698	at_trace_echo=echo
699	at_check_filter_trace=at_fn_filter_trace
700	;;
701
702    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
703	at_fn_validate_ranges at_option
704	as_fn_append at_groups "$at_option$as_nl"
705	;;
706
707    # Ranges
708    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
709	at_range_start=`echo $at_option |tr -d X-`
710	at_fn_validate_ranges at_range_start
711	at_range=`$as_echo "$at_groups_all" | \
712	  sed -ne '/^'$at_range_start'$/,$p'`
713	as_fn_append at_groups "$at_range$as_nl"
714	;;
715
716    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
717	at_range_end=`echo $at_option |tr -d X-`
718	at_fn_validate_ranges at_range_end
719	at_range=`$as_echo "$at_groups_all" | \
720	  sed -ne '1,/^'$at_range_end'$/p'`
721	as_fn_append at_groups "$at_range$as_nl"
722	;;
723
724    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
725    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
726    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
727    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
728    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
729    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
730	at_range_start=`expr $at_option : '\(.*\)-'`
731	at_range_end=`expr $at_option : '.*-\(.*\)'`
732	if test $at_range_start -gt $at_range_end; then
733	  at_tmp=$at_range_end
734	  at_range_end=$at_range_start
735	  at_range_start=$at_tmp
736	fi
737	at_fn_validate_ranges at_range_start at_range_end
738	at_range=`$as_echo "$at_groups_all" | \
739	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
740	as_fn_append at_groups "$at_range$as_nl"
741	;;
742
743    # Directory selection.
744    --directory | -C )
745	at_prev=--directory
746	;;
747    --directory=* )
748	at_change_dir=:
749	at_dir=$at_optarg
750	if test x- = "x$at_dir" ; then
751	  at_dir=./-
752	fi
753	;;
754
755    # Parallel execution.
756    --jobs | -j )
757	at_jobs=0
758	;;
759    --jobs=* | -j[0-9]* )
760	if test -n "$at_optarg"; then
761	  at_jobs=$at_optarg
762	else
763	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
764	fi
765	case $at_jobs in *[!0-9]*)
766	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
767	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
768	esac
769	;;
770
771    # Keywords.
772    --keywords | -k )
773	at_prev=--keywords
774	;;
775    --keywords=* )
776	at_groups_selected=$at_help_all
777	at_save_IFS=$IFS
778	IFS=,
779	set X $at_optarg
780	shift
781	IFS=$at_save_IFS
782	for at_keyword
783	do
784	  at_invert=
785	  case $at_keyword in
786	  '!'*)
787	    at_invert="-v"
788	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
789	    ;;
790	  esac
791	  # It is on purpose that we match the test group titles too.
792	  at_groups_selected=`$as_echo "$at_groups_selected" |
793	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
794	done
795	# Smash the keywords.
796	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
797	as_fn_append at_groups "$at_groups_selected$as_nl"
798	;;
799    --recheck)
800	at_recheck=:
801	;;
802
803    *=*)
804	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
805	# Reject names that are not valid shell variable names.
806	case $at_envvar in
807	  '' | [0-9]* | *[!_$as_cr_alnum]* )
808	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
809	esac
810	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
811	# Export now, but save eval for later and for debug scripts.
812	export $at_envvar
813	as_fn_append at_debug_args " $at_envvar='$at_value'"
814	;;
815
816     *) $as_echo "$as_me: invalid option: $at_option" >&2
817	$as_echo "Try \`$0 --help' for more information." >&2
818	exit 1
819	;;
820  esac
821done
822
823# Verify our last option didn't require an argument
824if test -n "$at_prev"; then :
825  as_fn_error $? "\`$at_prev' requires an argument"
826fi
827
828# The file containing the suite.
829at_suite_log=$at_dir/$as_me.log
830
831# Selected test groups.
832if test -z "$at_groups$at_recheck"; then
833  at_groups=$at_groups_all
834else
835  if test -n "$at_recheck" && test -r "$at_suite_log"; then
836    at_oldfails=`sed -n '
837      /^Failed tests:$/,/^Skipped tests:$/{
838	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
839      }
840      /^Unexpected passes:$/,/^## Detailed failed tests/{
841	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
842      }
843      /^## Detailed failed tests/q
844      ' "$at_suite_log"`
845    as_fn_append at_groups "$at_oldfails$as_nl"
846  fi
847  # Sort the tests, removing duplicates.
848  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
849fi
850
851if test x"$at_color" = xalways \
852   || { test x"$at_color" = xauto && test -t 1; }; then
853  at_red=`printf '\033[0;31m'`
854  at_grn=`printf '\033[0;32m'`
855  at_lgn=`printf '\033[1;32m'`
856  at_blu=`printf '\033[1;34m'`
857  at_std=`printf '\033[m'`
858else
859  at_red= at_grn= at_lgn= at_blu= at_std=
860fi
861
862# Help message.
863if $at_help_p; then
864  cat <<_ATEOF || at_write_fail=1
865Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
866
867Run all the tests, or the selected TESTS, given by numeric ranges, and
868save a detailed log file.  Upon failure, create debugging scripts.
869
870Do not change environment variables directly.  Instead, set them via
871command line arguments.  Set \`AUTOTEST_PATH' to select the executables
872to exercise.  Each relative directory is expanded as build and source
873directories relative to the top level of this distribution.
874E.g., from within the build directory /tmp/foo-1.0, invoking this:
875
876  $ $0 AUTOTEST_PATH=bin
877
878is equivalent to the following, assuming the source directory is /src/foo-1.0:
879
880  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
881_ATEOF
882cat <<_ATEOF || at_write_fail=1
883
884Operation modes:
885  -h, --help     print the help message, then exit
886  -V, --version  print version number, then exit
887  -c, --clean    remove all the files this test suite might create and exit
888  -l, --list     describes all the tests, or the selected TESTS
889_ATEOF
890cat <<_ATEOF || at_write_fail=1
891
892Execution tuning:
893  -C, --directory=DIR
894                 change to directory DIR before starting
895      --color[=never|auto|always]
896                 enable colored test results on terminal, or always
897  -j, --jobs[=N]
898                 Allow N jobs at once; infinite jobs with no arg (default 1)
899  -k, --keywords=KEYWORDS
900                 select the tests matching all the comma-separated KEYWORDS
901                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
902      --recheck  select all tests that failed or passed unexpectedly last time
903  -e, --errexit  abort as soon as a test fails; implies --debug
904  -v, --verbose  force more detailed output
905                 default for debugging scripts
906  -d, --debug    inhibit clean up and top-level logging
907                 default for debugging scripts
908  -x, --trace    enable tests shell tracing
909_ATEOF
910cat <<_ATEOF || at_write_fail=1
911
912Report bugs to <bug-dico@gnu.org>.
913General help using GNU software: <http://www.gnu.org/gethelp/>.
914_ATEOF
915  exit $at_write_fail
916fi
917
918# List of tests.
919if $at_list_p; then
920  cat <<_ATEOF || at_write_fail=1
921GNU dico 2.10 test suite test groups:
922
923 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
924      KEYWORDS
925
926_ATEOF
927  # Pass an empty line as separator between selected groups and help.
928  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
929    awk 'NF == 1 && FS != ";" {
930	   selected[$ 1] = 1
931	   next
932	 }
933	 /^$/ { FS = ";" }
934	 NF > 0 {
935	   if (selected[$ 1]) {
936	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
937	     if ($ 4) {
938	       lmax = 79
939	       indent = "     "
940	       line = indent
941	       len = length (line)
942	       n = split ($ 4, a, " ")
943	       for (i = 1; i <= n; i++) {
944		 l = length (a[i]) + 1
945		 if (i > 1 && len + l > lmax) {
946		   print line
947		   line = indent " " a[i]
948		   len = length (line)
949		 } else {
950		   line = line " " a[i]
951		   len += l
952		 }
953	       }
954	       if (n)
955		 print line
956	     }
957	   }
958	 }' || at_write_fail=1
959  exit $at_write_fail
960fi
961if $at_version_p; then
962  $as_echo "$as_me (GNU dico 2.10)" &&
963  cat <<\_ATEOF || at_write_fail=1
964
965Copyright (C) 2012 Free Software Foundation, Inc.
966This test suite is free software; the Free Software Foundation gives
967unlimited permission to copy, distribute and modify it.
968_ATEOF
969  exit $at_write_fail
970fi
971
972# Should we print banners?  Yes if more than one test is run.
973case $at_groups in #(
974  *$as_nl* )
975      at_print_banners=: ;; #(
976  * ) at_print_banners=false ;;
977esac
978# Text for banner N, set to a single space once printed.
979# Banner 1. testsuite.at:46
980# Category starts at test group 1.
981at_banner_text_1="SHOW"
982# Banner 2. testsuite.at:50
983# Category starts at test group 3.
984at_banner_text_2="MATCH"
985# Banner 3. testsuite.at:58
986# Category starts at test group 9.
987at_banner_text_3="DEFINE"
988# Banner 4. testsuite.at:61
989# Category starts at test group 10.
990at_banner_text_4="Option-governed virtual databases"
991# Banner 5. testsuite.at:67
992# Category starts at test group 14.
993at_banner_text_5="Virtual databases (collections)"
994
995# Take any -C into account.
996if $at_change_dir ; then
997  test x != "x$at_dir" && cd "$at_dir" \
998    || as_fn_error $? "unable to change directory"
999  at_dir=`pwd`
1000fi
1001
1002# Load the config files for any default variable assignments.
1003for at_file in atconfig atlocal
1004do
1005  test -r $at_file || continue
1006  . ./$at_file || as_fn_error $? "invalid content: $at_file"
1007done
1008
1009# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
1010: "${at_top_build_prefix=$at_top_builddir}"
1011
1012# Perform any assignments requested during argument parsing.
1013eval "$at_debug_args"
1014
1015# atconfig delivers names relative to the directory the test suite is
1016# in, but the groups themselves are run in testsuite-dir/group-dir.
1017if test -n "$at_top_srcdir"; then
1018  builddir=../..
1019  for at_dir_var in srcdir top_srcdir top_build_prefix
1020  do
1021    eval at_val=\$at_$at_dir_var
1022    case $at_val in
1023      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
1024      *) at_prefix=../../ ;;
1025    esac
1026    eval "$at_dir_var=\$at_prefix\$at_val"
1027  done
1028fi
1029
1030## -------------------- ##
1031## Directory structure. ##
1032## -------------------- ##
1033
1034# This is the set of directories and files used by this script
1035# (non-literals are capitalized):
1036#
1037# TESTSUITE         - the testsuite
1038# TESTSUITE.log     - summarizes the complete testsuite run
1039# TESTSUITE.dir/    - created during a run, remains after -d or failed test
1040# + at-groups/      - during a run: status of all groups in run
1041# | + NNN/          - during a run: meta-data about test group NNN
1042# | | + check-line  - location (source file and line) of current AT_CHECK
1043# | | + status      - exit status of current AT_CHECK
1044# | | + stdout      - stdout of current AT_CHECK
1045# | | + stder1      - stderr, including trace
1046# | | + stderr      - stderr, with trace filtered out
1047# | | + test-source - portion of testsuite that defines group
1048# | | + times       - timestamps for computing duration
1049# | | + pass        - created if group passed
1050# | | + xpass       - created if group xpassed
1051# | | + fail        - created if group failed
1052# | | + xfail       - created if group xfailed
1053# | | + skip        - created if group skipped
1054# + at-stop         - during a run: end the run if this file exists
1055# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
1056# + 0..NNN/         - created for each group NNN, remains after -d or failed test
1057# | + TESTSUITE.log - summarizes the group results
1058# | + ...           - files created during the group
1059
1060# The directory the whole suite works in.
1061# Should be absolute to let the user `cd' at will.
1062at_suite_dir=$at_dir/$as_me.dir
1063# The file containing the suite ($at_dir might have changed since earlier).
1064at_suite_log=$at_dir/$as_me.log
1065# The directory containing helper files per test group.
1066at_helper_dir=$at_suite_dir/at-groups
1067# Stop file: if it exists, do not start new jobs.
1068at_stop_file=$at_suite_dir/at-stop
1069# The fifo used for the job dispatcher.
1070at_job_fifo=$at_suite_dir/at-job-fifo
1071
1072if $at_clean; then
1073  test -d "$at_suite_dir" &&
1074    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1075  rm -f -r "$at_suite_dir" "$at_suite_log"
1076  exit $?
1077fi
1078
1079# Don't take risks: use only absolute directories in PATH.
1080#
1081# For stand-alone test suites (ie. atconfig was not found),
1082# AUTOTEST_PATH is relative to `.'.
1083#
1084# For embedded test suites, AUTOTEST_PATH is relative to the top level
1085# of the package.  Then expand it into build/src parts, since users
1086# may create executables in both places.
1087AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
1088at_path=
1089as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1090for as_dir in $AUTOTEST_PATH $PATH
1091do
1092  IFS=$as_save_IFS
1093  test -z "$as_dir" && as_dir=.
1094    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
1095case $as_dir in
1096  [\\/]* | ?:[\\/]* )
1097    as_fn_append at_path "$as_dir"
1098    ;;
1099  * )
1100    if test -z "$at_top_build_prefix"; then
1101      # Stand-alone test suite.
1102      as_fn_append at_path "$as_dir"
1103    else
1104      # Embedded test suite.
1105      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
1106      as_fn_append at_path "$at_top_srcdir/$as_dir"
1107    fi
1108    ;;
1109esac
1110  done
1111IFS=$as_save_IFS
1112
1113
1114# Now build and simplify PATH.
1115#
1116# There might be directories that don't exist, but don't redirect
1117# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
1118at_new_path=
1119as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1120for as_dir in $at_path
1121do
1122  IFS=$as_save_IFS
1123  test -z "$as_dir" && as_dir=.
1124    test -d "$as_dir" || continue
1125case $as_dir in
1126  [\\/]* | ?:[\\/]* ) ;;
1127  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
1128esac
1129case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
1130  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
1131  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
1132  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
1133esac
1134  done
1135IFS=$as_save_IFS
1136
1137PATH=$at_new_path
1138export PATH
1139
1140# Setting up the FDs.
1141
1142
1143
1144# 5 is the log file.  Not to be overwritten if `-d'.
1145if $at_debug_p; then
1146  at_suite_log=/dev/null
1147else
1148  : >"$at_suite_log"
1149fi
1150exec 5>>"$at_suite_log"
1151
1152# Banners and logs.
1153$as_echo "## ------------------------- ##
1154## GNU dico 2.10 test suite. ##
1155## ------------------------- ##"
1156{
1157  $as_echo "## ------------------------- ##
1158## GNU dico 2.10 test suite. ##
1159## ------------------------- ##"
1160  echo
1161
1162  $as_echo "$as_me: command line was:"
1163  $as_echo "  \$ $0 $at_cli_args"
1164  echo
1165
1166  # If ChangeLog exists, list a few lines in case it might help determining
1167  # the exact version.
1168  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
1169    $as_echo "## ---------- ##
1170## ChangeLog. ##
1171## ---------- ##"
1172    echo
1173    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
1174    echo
1175  fi
1176
1177  {
1178cat <<_ASUNAME
1179## --------- ##
1180## Platform. ##
1181## --------- ##
1182
1183hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
1184uname -m = `(uname -m) 2>/dev/null || echo unknown`
1185uname -r = `(uname -r) 2>/dev/null || echo unknown`
1186uname -s = `(uname -s) 2>/dev/null || echo unknown`
1187uname -v = `(uname -v) 2>/dev/null || echo unknown`
1188
1189/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1190/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
1191
1192/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
1193/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
1194/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1195/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
1196/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
1197/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
1198/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
1199
1200_ASUNAME
1201
1202as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1203for as_dir in $PATH
1204do
1205  IFS=$as_save_IFS
1206  test -z "$as_dir" && as_dir=.
1207    $as_echo "PATH: $as_dir"
1208  done
1209IFS=$as_save_IFS
1210
1211}
1212  echo
1213
1214  # Contents of the config files.
1215  for at_file in atconfig atlocal
1216  do
1217    test -r $at_file || continue
1218    $as_echo "$as_me: $at_file:"
1219    sed 's/^/| /' $at_file
1220    echo
1221  done
1222} >&5
1223
1224
1225## ------------------------- ##
1226## Autotest shell functions. ##
1227## ------------------------- ##
1228
1229# at_fn_banner NUMBER
1230# -------------------
1231# Output banner NUMBER, provided the testsuite is running multiple groups and
1232# this particular banner has not yet been printed.
1233at_fn_banner ()
1234{
1235  $at_print_banners || return 0
1236  eval at_banner_text=\$at_banner_text_$1
1237  test "x$at_banner_text" = "x " && return 0
1238  eval "at_banner_text_$1=\" \""
1239  if test -z "$at_banner_text"; then
1240    $at_first || echo
1241  else
1242    $as_echo "$as_nl$at_banner_text$as_nl"
1243  fi
1244} # at_fn_banner
1245
1246# at_fn_check_prepare_notrace REASON LINE
1247# ---------------------------------------
1248# Perform AT_CHECK preparations for the command at LINE for an untraceable
1249# command; REASON is the reason for disabling tracing.
1250at_fn_check_prepare_notrace ()
1251{
1252  $at_trace_echo "Not enabling shell tracing (command contains $1)"
1253  $as_echo "$2" >"$at_check_line_file"
1254  at_check_trace=: at_check_filter=:
1255  : >"$at_stdout"; : >"$at_stderr"
1256}
1257
1258# at_fn_check_prepare_trace LINE
1259# ------------------------------
1260# Perform AT_CHECK preparations for the command at LINE for a traceable
1261# command.
1262at_fn_check_prepare_trace ()
1263{
1264  $as_echo "$1" >"$at_check_line_file"
1265  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
1266  : >"$at_stdout"; : >"$at_stderr"
1267}
1268
1269# at_fn_check_prepare_dynamic COMMAND LINE
1270# ----------------------------------------
1271# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
1272# preparation function.
1273at_fn_check_prepare_dynamic ()
1274{
1275  case $1 in
1276    *$as_nl*)
1277      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
1278    *)
1279      at_fn_check_prepare_trace "$2" ;;
1280  esac
1281}
1282
1283# at_fn_filter_trace
1284# ------------------
1285# Remove the lines in the file "$at_stderr" generated by "set -x" and print
1286# them to stderr.
1287at_fn_filter_trace ()
1288{
1289  mv "$at_stderr" "$at_stder1"
1290  grep '^ *+' "$at_stder1" >&2
1291  grep -v '^ *+' "$at_stder1" >"$at_stderr"
1292}
1293
1294# at_fn_log_failure FILE-LIST
1295# ---------------------------
1296# Copy the files in the list on stdout with a "> " prefix, and exit the shell
1297# with a failure exit code.
1298at_fn_log_failure ()
1299{
1300  for file
1301    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
1302  echo 1 > "$at_status_file"
1303  exit 1
1304}
1305
1306# at_fn_check_skip EXIT-CODE LINE
1307# -------------------------------
1308# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
1309# the test group subshell with that same exit code. Use LINE in any report
1310# about test failure.
1311at_fn_check_skip ()
1312{
1313  case $1 in
1314    99) echo 99 > "$at_status_file"; at_failed=:
1315	$as_echo "$2: hard failure"; exit 99;;
1316    77) echo 77 > "$at_status_file"; exit 77;;
1317  esac
1318}
1319
1320# at_fn_check_status EXPECTED EXIT-CODE LINE
1321# ------------------------------------------
1322# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
1323# Otherwise, if it is 77 or 99, exit the test group subshell with that same
1324# exit code; if it is anything else print an error message referring to LINE,
1325# and fail the test.
1326at_fn_check_status ()
1327{
1328  case $2 in
1329    $1 ) ;;
1330    77) echo 77 > "$at_status_file"; exit 77;;
1331    99) echo 99 > "$at_status_file"; at_failed=:
1332	$as_echo "$3: hard failure"; exit 99;;
1333    *) $as_echo "$3: exit code was $2, expected $1"
1334      at_failed=:;;
1335  esac
1336}
1337
1338# at_fn_diff_devnull FILE
1339# -----------------------
1340# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
1341# invocations.
1342at_fn_diff_devnull ()
1343{
1344  test -s "$1" || return 0
1345  $at_diff "$at_devnull" "$1"
1346}
1347
1348# at_fn_test NUMBER
1349# -----------------
1350# Parse out test NUMBER from the tail of this file.
1351at_fn_test ()
1352{
1353  eval at_sed=\$at_sed$1
1354  sed "$at_sed" "$at_myself" > "$at_test_source"
1355}
1356
1357# at_fn_create_debugging_script
1358# -----------------------------
1359# Create the debugging script $at_group_dir/run which will reproduce the
1360# current test group.
1361at_fn_create_debugging_script ()
1362{
1363  {
1364    echo "#! /bin/sh" &&
1365    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
1366    $as_echo "cd '$at_dir'" &&
1367    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
1368    echo 'exit 1'
1369  } >"$at_group_dir/run" &&
1370  chmod +x "$at_group_dir/run"
1371}
1372
1373## -------------------------------- ##
1374## End of autotest shell functions. ##
1375## -------------------------------- ##
1376{
1377  $as_echo "## ---------------- ##
1378## Tested programs. ##
1379## ---------------- ##"
1380  echo
1381} >&5
1382
1383# Report what programs are being tested.
1384for at_program in : $at_tested
1385do
1386  test "$at_program" = : && continue
1387  case $at_program in
1388    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
1389    * )
1390    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1391for as_dir in $PATH
1392do
1393  IFS=$as_save_IFS
1394  test -z "$as_dir" && as_dir=.
1395    test -f "$as_dir/$at_program" && break
1396  done
1397IFS=$as_save_IFS
1398
1399    at_program_=$as_dir/$at_program ;;
1400  esac
1401  if test -f "$at_program_"; then
1402    {
1403      $as_echo "$at_srcdir/testsuite.at:43: $at_program_ --version"
1404      "$at_program_" --version </dev/null
1405      echo
1406    } >&5 2>&1
1407  else
1408    as_fn_error $? "cannot find $at_program" "$LINENO" 5
1409  fi
1410done
1411
1412{
1413  $as_echo "## ------------------ ##
1414## Running the tests. ##
1415## ------------------ ##"
1416} >&5
1417
1418at_start_date=`date`
1419at_start_time=`date +%s 2>/dev/null`
1420$as_echo "$as_me: starting at: $at_start_date" >&5
1421
1422# Create the master directory if it doesn't already exist.
1423as_dir="$at_suite_dir"; as_fn_mkdir_p ||
1424  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
1425
1426# Can we diff with `/dev/null'?  DU 5.0 refuses.
1427if diff /dev/null /dev/null >/dev/null 2>&1; then
1428  at_devnull=/dev/null
1429else
1430  at_devnull=$at_suite_dir/devnull
1431  >"$at_devnull"
1432fi
1433
1434# Use `diff -u' when possible.
1435if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
1436then
1437  at_diff='diff -u'
1438else
1439  at_diff=diff
1440fi
1441
1442# Get the last needed group.
1443for at_group in : $at_groups; do :; done
1444
1445# Extract the start and end lines of each test group at the tail
1446# of this file
1447awk '
1448BEGIN { FS="" }
1449/^#AT_START_/ {
1450  start = NR
1451}
1452/^#AT_STOP_/ {
1453  test = substr ($ 0, 10)
1454  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
1455  if (test == "'"$at_group"'") exit
1456}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
1457. "$at_suite_dir/at-source-lines" ||
1458  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
1459rm -f "$at_suite_dir/at-source-lines"
1460
1461# Set number of jobs for `-j'; avoid more jobs than test groups.
1462set X $at_groups; shift; at_max_jobs=$#
1463if test $at_max_jobs -eq 0; then
1464  at_jobs=1
1465fi
1466if test $at_jobs -ne 1 &&
1467   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
1468  at_jobs=$at_max_jobs
1469fi
1470
1471# If parallel mode, don't output banners, don't split summary lines.
1472if test $at_jobs -ne 1; then
1473  at_print_banners=false
1474  at_quiet=:
1475fi
1476
1477# Set up helper dirs.
1478rm -rf "$at_helper_dir" &&
1479mkdir "$at_helper_dir" &&
1480cd "$at_helper_dir" &&
1481{ test -z "$at_groups" || mkdir $at_groups; } ||
1482as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
1483
1484# Functions for running a test group.  We leave the actual
1485# test group execution outside of a shell function in order
1486# to avoid hitting zsh 4.x exit status bugs.
1487
1488# at_fn_group_prepare
1489# -------------------
1490# Prepare for running a test group.
1491at_fn_group_prepare ()
1492{
1493  # The directory for additional per-group helper files.
1494  at_job_dir=$at_helper_dir/$at_group
1495  # The file containing the location of the last AT_CHECK.
1496  at_check_line_file=$at_job_dir/check-line
1497  # The file containing the exit status of the last command.
1498  at_status_file=$at_job_dir/status
1499  # The files containing the output of the tested commands.
1500  at_stdout=$at_job_dir/stdout
1501  at_stder1=$at_job_dir/stder1
1502  at_stderr=$at_job_dir/stderr
1503  # The file containing the code for a test group.
1504  at_test_source=$at_job_dir/test-source
1505  # The file containing dates.
1506  at_times_file=$at_job_dir/times
1507
1508  # Be sure to come back to the top test directory.
1509  cd "$at_suite_dir"
1510
1511  # Clearly separate the test groups when verbose.
1512  $at_first || $at_verbose echo
1513
1514  at_group_normalized=$at_group
1515
1516  eval 'while :; do
1517    case $at_group_normalized in #(
1518    '"$at_format"'*) break;;
1519    esac
1520    at_group_normalized=0$at_group_normalized
1521  done'
1522
1523
1524  # Create a fresh directory for the next test group, and enter.
1525  # If one already exists, the user may have invoked ./run from
1526  # within that directory; we remove the contents, but not the
1527  # directory itself, so that we aren't pulling the rug out from
1528  # under the shell's notion of the current directory.
1529  at_group_dir=$at_suite_dir/$at_group_normalized
1530  at_group_log=$at_group_dir/$as_me.log
1531  if test -d "$at_group_dir"; then
1532  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
1533  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
1534fi ||
1535    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
1536$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
1537  # Be tolerant if the above `rm' was not able to remove the directory.
1538  as_dir="$at_group_dir"; as_fn_mkdir_p
1539
1540  echo 0 > "$at_status_file"
1541
1542  # In verbose mode, append to the log file *and* show on
1543  # the standard output; in quiet mode only write to the log.
1544  if test -z "$at_verbose"; then
1545    at_tee_pipe='tee -a "$at_group_log"'
1546  else
1547    at_tee_pipe='cat >> "$at_group_log"'
1548  fi
1549}
1550
1551# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
1552# -------------------------------------------------
1553# Declare the test group ORDINAL, located at LINE with group description DESC,
1554# and residing under BANNER. Use PAD to align the status column.
1555at_fn_group_banner ()
1556{
1557  at_setup_line="$2"
1558  test -n "$5" && at_fn_banner $5
1559  at_desc="$3"
1560  case $1 in
1561    [0-9])      at_desc_line="  $1: ";;
1562    [0-9][0-9]) at_desc_line=" $1: " ;;
1563    *)          at_desc_line="$1: "  ;;
1564  esac
1565  as_fn_append at_desc_line "$3$4"
1566  $at_quiet $as_echo_n "$at_desc_line"
1567  echo "#                             -*- compilation -*-" >> "$at_group_log"
1568}
1569
1570# at_fn_group_postprocess
1571# -----------------------
1572# Perform cleanup after running a test group.
1573at_fn_group_postprocess ()
1574{
1575  # Be sure to come back to the suite directory, in particular
1576  # since below we might `rm' the group directory we are in currently.
1577  cd "$at_suite_dir"
1578
1579  if test ! -f "$at_check_line_file"; then
1580    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
1581      A failure happened in a test group before any test could be
1582      run. This means that test suite is improperly designed.  Please
1583      report this failure to <bug-dico@gnu.org>.
1584_ATEOF
1585    $as_echo "$at_setup_line" >"$at_check_line_file"
1586    at_status=99
1587  fi
1588  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
1589  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
1590  case $at_xfail:$at_status in
1591    yes:0)
1592	at_msg="UNEXPECTED PASS"
1593	at_res=xpass
1594	at_errexit=$at_errexit_p
1595	at_color=$at_red
1596	;;
1597    no:0)
1598	at_msg="ok"
1599	at_res=pass
1600	at_errexit=false
1601	at_color=$at_grn
1602	;;
1603    *:77)
1604	at_msg='skipped ('`cat "$at_check_line_file"`')'
1605	at_res=skip
1606	at_errexit=false
1607	at_color=$at_blu
1608	;;
1609    no:* | *:99)
1610	at_msg='FAILED ('`cat "$at_check_line_file"`')'
1611	at_res=fail
1612	at_errexit=$at_errexit_p
1613	at_color=$at_red
1614	;;
1615    yes:*)
1616	at_msg='expected failure ('`cat "$at_check_line_file"`')'
1617	at_res=xfail
1618	at_errexit=false
1619	at_color=$at_lgn
1620	;;
1621  esac
1622  echo "$at_res" > "$at_job_dir/$at_res"
1623  # In parallel mode, output the summary line only afterwards.
1624  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
1625    $as_echo "$at_desc_line $at_color$at_msg$at_std"
1626  else
1627    # Make sure there is a separator even with long titles.
1628    $as_echo " $at_color$at_msg$at_std"
1629  fi
1630  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
1631  case $at_status in
1632    0|77)
1633      # $at_times_file is only available if the group succeeded.
1634      # We're not including the group log, so the success message
1635      # is written in the global log separately.  But we also
1636      # write to the group log in case they're using -d.
1637      if test -f "$at_times_file"; then
1638	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
1639	rm -f "$at_times_file"
1640      fi
1641      $as_echo "$at_log_msg" >> "$at_group_log"
1642      $as_echo "$at_log_msg" >&5
1643
1644      # Cleanup the group directory, unless the user wants the files
1645      # or the success was unexpected.
1646      if $at_debug_p || test $at_res = xpass; then
1647	at_fn_create_debugging_script
1648	if test $at_res = xpass && $at_errexit; then
1649	  echo stop > "$at_stop_file"
1650	fi
1651      else
1652	if test -d "$at_group_dir"; then
1653	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1654	  rm -fr "$at_group_dir"
1655	fi
1656	rm -f "$at_test_source"
1657      fi
1658      ;;
1659    *)
1660      # Upon failure, include the log into the testsuite's global
1661      # log.  The failure message is written in the group log.  It
1662      # is later included in the global log.
1663      $as_echo "$at_log_msg" >> "$at_group_log"
1664
1665      # Upon failure, keep the group directory for autopsy, and create
1666      # the debugging script.  With -e, do not start any further tests.
1667      at_fn_create_debugging_script
1668      if $at_errexit; then
1669	echo stop > "$at_stop_file"
1670      fi
1671      ;;
1672  esac
1673}
1674
1675
1676## ------------ ##
1677## Driver loop. ##
1678## ------------ ##
1679
1680
1681if (set -m && set +m && set +b) >/dev/null 2>&1; then
1682  set +b
1683  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
1684else
1685  at_job_control_on=: at_job_control_off=: at_job_group=
1686fi
1687
1688for at_signal in 1 2 15; do
1689  trap 'set +x; set +e
1690	$at_job_control_off
1691	at_signal='"$at_signal"'
1692	echo stop > "$at_stop_file"
1693	trap "" $at_signal
1694	at_pgids=
1695	for at_pgid in `jobs -p 2>/dev/null`; do
1696	  at_pgids="$at_pgids $at_job_group$at_pgid"
1697	done
1698	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
1699	wait
1700	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
1701	  echo >&2
1702	fi
1703	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
1704	set x $at_signame
1705	test 0 -gt 2 && at_signame=$at_signal
1706	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
1707$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
1708	as_fn_arith 128 + $at_signal && exit_status=$as_val
1709	as_fn_exit $exit_status' $at_signal
1710done
1711
1712rm -f "$at_stop_file"
1713at_first=:
1714
1715if test $at_jobs -ne 1 &&
1716     rm -f "$at_job_fifo" &&
1717     test -n "$at_job_group" &&
1718     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
1719then
1720  # FIFO job dispatcher.
1721
1722  trap 'at_pids=
1723	for at_pid in `jobs -p`; do
1724	  at_pids="$at_pids $at_job_group$at_pid"
1725	done
1726	if test -n "$at_pids"; then
1727	  at_sig=TSTP
1728	  test "${TMOUT+set}" = set && at_sig=STOP
1729	  kill -$at_sig $at_pids 2>/dev/null
1730	fi
1731	kill -STOP $$
1732	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
1733
1734  echo
1735  # Turn jobs into a list of numbers, starting from 1.
1736  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
1737
1738  set X $at_joblist
1739  shift
1740  for at_group in $at_groups; do
1741    $at_job_control_on 2>/dev/null
1742    (
1743      # Start one test group.
1744      $at_job_control_off
1745      if $at_first; then
1746	exec 7>"$at_job_fifo"
1747      else
1748	exec 6<&-
1749      fi
1750      trap 'set +x; set +e
1751	    trap "" PIPE
1752	    echo stop > "$at_stop_file"
1753	    echo >&7
1754	    as_fn_exit 141' PIPE
1755      at_fn_group_prepare
1756      if cd "$at_group_dir" &&
1757	 at_fn_test $at_group &&
1758	 . "$at_test_source"
1759      then :; else
1760	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1761$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1762	at_failed=:
1763      fi
1764      at_fn_group_postprocess
1765      echo >&7
1766    ) &
1767    $at_job_control_off
1768    if $at_first; then
1769      at_first=false
1770      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
1771    fi
1772    shift # Consume one token.
1773    if test $# -gt 0; then :; else
1774      read at_token <&6 || break
1775      set x $*
1776    fi
1777    test -f "$at_stop_file" && break
1778  done
1779  exec 7>&-
1780  # Read back the remaining ($at_jobs - 1) tokens.
1781  set X $at_joblist
1782  shift
1783  if test $# -gt 0; then
1784    shift
1785    for at_job
1786    do
1787      read at_token
1788    done <&6
1789  fi
1790  exec 6<&-
1791  wait
1792else
1793  # Run serially, avoid forks and other potential surprises.
1794  for at_group in $at_groups; do
1795    at_fn_group_prepare
1796    if cd "$at_group_dir" &&
1797       at_fn_test $at_group &&
1798       . "$at_test_source"; then :; else
1799      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1800$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1801      at_failed=:
1802    fi
1803    at_fn_group_postprocess
1804    test -f "$at_stop_file" && break
1805    at_first=false
1806  done
1807fi
1808
1809# Wrap up the test suite with summary statistics.
1810cd "$at_helper_dir"
1811
1812# Use ?..???? when the list must remain sorted, the faster * otherwise.
1813at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
1814at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
1815at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
1816at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
1817		 echo $f; done | sed '/?/d; s,/xpass,,'`
1818at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
1819		echo $f; done | sed '/?/d; s,/fail,,'`
1820
1821set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
1822shift; at_group_count=$#
1823set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
1824set X $at_xfail_list; shift; at_xfail_count=$#
1825set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
1826set X $at_skip_list; shift; at_skip_count=$#
1827
1828as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
1829as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
1830as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
1831
1832# Back to the top directory.
1833cd "$at_dir"
1834rm -rf "$at_helper_dir"
1835
1836# Compute the duration of the suite.
1837at_stop_date=`date`
1838at_stop_time=`date +%s 2>/dev/null`
1839$as_echo "$as_me: ending at: $at_stop_date" >&5
1840case $at_start_time,$at_stop_time in
1841  [0-9]*,[0-9]*)
1842    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
1843    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
1844    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
1845    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
1846    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
1847    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
1848    $as_echo "$as_me: test suite duration: $at_duration" >&5
1849    ;;
1850esac
1851
1852echo
1853$as_echo "## ------------- ##
1854## Test results. ##
1855## ------------- ##"
1856echo
1857{
1858  echo
1859  $as_echo "## ------------- ##
1860## Test results. ##
1861## ------------- ##"
1862  echo
1863} >&5
1864
1865if test $at_run_count = 1; then
1866  at_result="1 test"
1867  at_were=was
1868else
1869  at_result="$at_run_count tests"
1870  at_were=were
1871fi
1872if $at_errexit_p && test $at_unexpected_count != 0; then
1873  if test $at_xpass_count = 1; then
1874    at_result="$at_result $at_were run, one passed"
1875  else
1876    at_result="$at_result $at_were run, one failed"
1877  fi
1878  at_result="$at_result unexpectedly and inhibited subsequent tests."
1879  at_color=$at_red
1880else
1881  # Don't you just love exponential explosion of the number of cases?
1882  at_color=$at_red
1883  case $at_xpass_count:$at_fail_count:$at_xfail_count in
1884    # So far, so good.
1885    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
1886    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
1887
1888    # Some unexpected failures
1889    0:*:0) at_result="$at_result $at_were run,
1890$at_fail_count failed unexpectedly." ;;
1891
1892    # Some failures, both expected and unexpected
1893    0:*:1) at_result="$at_result $at_were run,
1894$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1895    0:*:*) at_result="$at_result $at_were run,
1896$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1897
1898    # No unexpected failures, but some xpasses
1899    *:0:*) at_result="$at_result $at_were run,
1900$at_xpass_count passed unexpectedly." ;;
1901
1902    # No expected failures, but failures and xpasses
1903    *:1:0) at_result="$at_result $at_were run,
1904$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
1905    *:*:0) at_result="$at_result $at_were run,
1906$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
1907
1908    # All of them.
1909    *:*:1) at_result="$at_result $at_were run,
1910$at_xpass_count passed unexpectedly,
1911$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1912    *:*:*) at_result="$at_result $at_were run,
1913$at_xpass_count passed unexpectedly,
1914$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1915  esac
1916
1917  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
1918    at_result="All $at_result"
1919  fi
1920fi
1921
1922# Now put skips in the mix.
1923case $at_skip_count in
1924  0) ;;
1925  1) at_result="$at_result
19261 test was skipped." ;;
1927  *) at_result="$at_result
1928$at_skip_count tests were skipped." ;;
1929esac
1930
1931if test $at_unexpected_count = 0; then
1932  echo "$at_color$at_result$at_std"
1933  echo "$at_result" >&5
1934else
1935  echo "${at_color}ERROR: $at_result$at_std" >&2
1936  echo "ERROR: $at_result" >&5
1937  {
1938    echo
1939    $as_echo "## ------------------------ ##
1940## Summary of the failures. ##
1941## ------------------------ ##"
1942
1943    # Summary of failed and skipped tests.
1944    if test $at_fail_count != 0; then
1945      echo "Failed tests:"
1946      $SHELL "$at_myself" $at_fail_list --list
1947      echo
1948    fi
1949    if test $at_skip_count != 0; then
1950      echo "Skipped tests:"
1951      $SHELL "$at_myself" $at_skip_list --list
1952      echo
1953    fi
1954    if test $at_xpass_count != 0; then
1955      echo "Unexpected passes:"
1956      $SHELL "$at_myself" $at_xpass_list --list
1957      echo
1958    fi
1959    if test $at_fail_count != 0; then
1960      $as_echo "## ---------------------- ##
1961## Detailed failed tests. ##
1962## ---------------------- ##"
1963      echo
1964      for at_group in $at_fail_list
1965      do
1966	at_group_normalized=$at_group
1967
1968  eval 'while :; do
1969    case $at_group_normalized in #(
1970    '"$at_format"'*) break;;
1971    esac
1972    at_group_normalized=0$at_group_normalized
1973  done'
1974
1975	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
1976	echo
1977      done
1978      echo
1979    fi
1980    if test -n "$at_top_srcdir"; then
1981      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1982## ${at_top_build_prefix}config.log ##
1983_ASBOX
1984      sed 's/^/| /' ${at_top_build_prefix}config.log
1985      echo
1986    fi
1987  } >&5
1988
1989  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1990## $as_me.log was created. ##
1991_ASBOX
1992
1993  echo
1994  if $at_debug_p; then
1995    at_msg='per-test log files'
1996  else
1997    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
1998  fi
1999  $as_echo "Please send $at_msg and all information you think might help:
2000
2001   To: <bug-dico@gnu.org>
2002   Subject: [GNU dico 2.10] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
2003
2004You may investigate any problem if you feel able to do so, in which
2005case the test suite provides a good starting point.  Its output may
2006be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
2007"
2008  exit 1
2009fi
2010
2011exit 0
2012
2013## ------------- ##
2014## Actual tests. ##
2015## ------------- ##
2016#AT_START_1
2017at_fn_group_banner 1 'showdb.at:17' \
2018  "show db" "                                        " 1
2019at_xfail=no
2020(
2021  $as_echo "1. $at_setup_line: testing $at_desc ..."
2022  $at_traceon
2023
2024
2025{ set +x
2026$as_echo "$at_srcdir/showdb.at:19: cat > dicod.conf <<__EOT__
2027prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2028load-module dictorg {
2029    command \"dictorg dbdir=\$abs_srcdir/db\";
2030}
2031
2032database {
2033	name eng-num;
2034        handler \"dictorg database=eng-num\";
2035}
2036__EOT__
2037
2038cat >input <<'_ATEOF'
2039show db
2040quit
2041_ATEOF
2042
2043dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2044"
2045at_fn_check_prepare_notrace 'an embedded newline' "showdb.at:19"
2046( $at_check_trace; cat > dicod.conf <<__EOT__
2047prepend-load-path "$abs_top_builddir/modules/dict.org";
2048load-module dictorg {
2049    command "dictorg dbdir=$abs_srcdir/db";
2050}
2051
2052database {
2053	name eng-num;
2054        handler "dictorg database=eng-num";
2055}
2056__EOT__
2057
2058cat >input <<'_ATEOF'
2059show db
2060quit
2061_ATEOF
2062
2063dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2064
2065) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2066at_status=$? at_failed=false
2067$at_check_filter
2068at_fn_diff_devnull "$at_stderr" || at_failed=:
2069echo >>"$at_stdout"; $as_echo "220
2070110 1 databases present
2071eng-num \"English numerals from 1 to 200\"
2072.
2073250
2074221
2075" | \
2076  $at_diff - "$at_stdout" || at_failed=:
2077at_fn_check_status 0 $at_status "$at_srcdir/showdb.at:19"
2078$at_failed && at_fn_log_failure
2079$at_traceon; }
2080
2081  set +x
2082  $at_times_p && times >"$at_times_file"
2083) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2084read at_status <"$at_status_file"
2085#AT_STOP_1
2086#AT_START_2
2087at_fn_group_banner 2 'showinfo.at:17' \
2088  "show info" "                                      " 1
2089at_xfail=no
2090(
2091  $as_echo "2. $at_setup_line: testing $at_desc ..."
2092  $at_traceon
2093
2094
2095{ set +x
2096$as_echo "$at_srcdir/showinfo.at:19: cat > dicod.conf <<__EOT__
2097prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2098load-module dictorg {
2099    command \"dictorg dbdir=\$abs_srcdir/db\";
2100}
2101
2102database {
2103	name eng-num;
2104        handler \"dictorg database=eng-num\";
2105}
2106__EOT__
2107
2108cat >input <<'_ATEOF'
2109show info eng-num
2110quit
2111_ATEOF
2112
2113dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2114"
2115at_fn_check_prepare_notrace 'an embedded newline' "showinfo.at:19"
2116( $at_check_trace; cat > dicod.conf <<__EOT__
2117prepend-load-path "$abs_top_builddir/modules/dict.org";
2118load-module dictorg {
2119    command "dictorg dbdir=$abs_srcdir/db";
2120}
2121
2122database {
2123	name eng-num;
2124        handler "dictorg database=eng-num";
2125}
2126__EOT__
2127
2128cat >input <<'_ATEOF'
2129show info eng-num
2130quit
2131_ATEOF
2132
2133dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2134
2135) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2136at_status=$? at_failed=false
2137$at_check_filter
2138at_fn_diff_devnull "$at_stderr" || at_failed=:
2139echo >>"$at_stdout"; $as_echo "220
2140112 information for eng-num
2141The original data is available from:
2142     http://git.gnu.org.ua/cgit/dico.git
2143
2144Mock dictionary
2145   Mock dictionary for GNU dicod dictorg module.
2146   This dictionary contains English numerals from 1 to 200
2147License:
2148   Public domain.
2149
2150.
2151250
2152221
2153" | \
2154  $at_diff - "$at_stdout" || at_failed=:
2155at_fn_check_status 0 $at_status "$at_srcdir/showinfo.at:19"
2156$at_failed && at_fn_log_failure
2157$at_traceon; }
2158
2159  set +x
2160  $at_times_p && times >"$at_times_file"
2161) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2162read at_status <"$at_status_file"
2163#AT_STOP_2
2164#AT_START_3
2165at_fn_group_banner 3 'exact.at:17' \
2166  "exact" "                                          " 2
2167at_xfail=no
2168(
2169  $as_echo "3. $at_setup_line: testing $at_desc ..."
2170  $at_traceon
2171
2172
2173{ set +x
2174$as_echo "$at_srcdir/exact.at:19: cat > dicod.conf <<__EOT__
2175prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2176load-module dictorg {
2177    command \"dictorg dbdir=\$abs_srcdir/db\";
2178}
2179
2180database {
2181	name eng-num;
2182        handler \"dictorg database=eng-num\";
2183}
2184__EOT__
2185
2186cat >input <<'_ATEOF'
2187match eng-num exact \"ten\"
2188quit
2189_ATEOF
2190
2191dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2192"
2193at_fn_check_prepare_notrace 'an embedded newline' "exact.at:19"
2194( $at_check_trace; cat > dicod.conf <<__EOT__
2195prepend-load-path "$abs_top_builddir/modules/dict.org";
2196load-module dictorg {
2197    command "dictorg dbdir=$abs_srcdir/db";
2198}
2199
2200database {
2201	name eng-num;
2202        handler "dictorg database=eng-num";
2203}
2204__EOT__
2205
2206cat >input <<'_ATEOF'
2207match eng-num exact "ten"
2208quit
2209_ATEOF
2210
2211dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2212
2213) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2214at_status=$? at_failed=false
2215$at_check_filter
2216at_fn_diff_devnull "$at_stderr" || at_failed=:
2217echo >>"$at_stdout"; $as_echo "220
2218152 1 matches found: list follows
2219eng-num \"ten\"
2220.
2221250
2222221
2223" | \
2224  $at_diff - "$at_stdout" || at_failed=:
2225at_fn_check_status 0 $at_status "$at_srcdir/exact.at:19"
2226$at_failed && at_fn_log_failure
2227$at_traceon; }
2228
2229  set +x
2230  $at_times_p && times >"$at_times_file"
2231) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2232read at_status <"$at_status_file"
2233#AT_STOP_3
2234#AT_START_4
2235at_fn_group_banner 4 'alnum.at:17' \
2236  "exact (alphanumeric only)" "                      " 2
2237at_xfail=no
2238(
2239  $as_echo "4. $at_setup_line: testing $at_desc ..."
2240  $at_traceon
2241
2242
2243{ set +x
2244$as_echo "$at_srcdir/alnum.at:19: cat > dicod.conf <<__EOT__
2245prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2246load-module dictorg {
2247    command \"dictorg dbdir=\$abs_srcdir/db\";
2248}
2249
2250database {
2251	name eng-num;
2252        handler \"dictorg database=eng-num\";
2253}
2254__EOT__
2255
2256cat >input <<'_ATEOF'
2257match eng-num exact \"twentyfive\"
2258quit
2259_ATEOF
2260
2261dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2262"
2263at_fn_check_prepare_notrace 'an embedded newline' "alnum.at:19"
2264( $at_check_trace; cat > dicod.conf <<__EOT__
2265prepend-load-path "$abs_top_builddir/modules/dict.org";
2266load-module dictorg {
2267    command "dictorg dbdir=$abs_srcdir/db";
2268}
2269
2270database {
2271	name eng-num;
2272        handler "dictorg database=eng-num";
2273}
2274__EOT__
2275
2276cat >input <<'_ATEOF'
2277match eng-num exact "twentyfive"
2278quit
2279_ATEOF
2280
2281dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2282
2283) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2284at_status=$? at_failed=false
2285$at_check_filter
2286at_fn_diff_devnull "$at_stderr" || at_failed=:
2287echo >>"$at_stdout"; $as_echo "220
2288152 1 matches found: list follows
2289eng-num \"twenty-five\"
2290.
2291250
2292221
2293" | \
2294  $at_diff - "$at_stdout" || at_failed=:
2295at_fn_check_status 0 $at_status "$at_srcdir/alnum.at:19"
2296$at_failed && at_fn_log_failure
2297$at_traceon; }
2298
2299  set +x
2300  $at_times_p && times >"$at_times_file"
2301) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2302read at_status <"$at_status_file"
2303#AT_STOP_4
2304#AT_START_5
2305at_fn_group_banner 5 'allchars.at:17' \
2306  "exact (all chars)" "                              " 2
2307at_xfail=no
2308(
2309  $as_echo "5. $at_setup_line: testing $at_desc ..."
2310  $at_traceon
2311
2312
2313{ set +x
2314$as_echo "$at_srcdir/allchars.at:19: cat > dicod.conf <<__EOT__
2315prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2316load-module dictorg {
2317    command \"dictorg dbdir=\$abs_srcdir/db\";
2318}
2319
2320database {
2321	name eng-num;
2322        handler \"dictorg database=eng-num_allchars\";
2323}
2324__EOT__
2325
2326cat >input <<'_ATEOF'
2327match eng-num exact \"twentyfive\"
2328match eng-num exact \"twenty-five\"
2329quit
2330_ATEOF
2331
2332dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2333"
2334at_fn_check_prepare_notrace 'an embedded newline' "allchars.at:19"
2335( $at_check_trace; cat > dicod.conf <<__EOT__
2336prepend-load-path "$abs_top_builddir/modules/dict.org";
2337load-module dictorg {
2338    command "dictorg dbdir=$abs_srcdir/db";
2339}
2340
2341database {
2342	name eng-num;
2343        handler "dictorg database=eng-num_allchars";
2344}
2345__EOT__
2346
2347cat >input <<'_ATEOF'
2348match eng-num exact "twentyfive"
2349match eng-num exact "twenty-five"
2350quit
2351_ATEOF
2352
2353dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2354
2355) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2356at_status=$? at_failed=false
2357$at_check_filter
2358at_fn_diff_devnull "$at_stderr" || at_failed=:
2359echo >>"$at_stdout"; $as_echo "220
2360552 No match
2361152 1 matches found: list follows
2362eng-num \"twenty-five\"
2363.
2364250
2365221
2366" | \
2367  $at_diff - "$at_stdout" || at_failed=:
2368at_fn_check_status 0 $at_status "$at_srcdir/allchars.at:19"
2369$at_failed && at_fn_log_failure
2370$at_traceon; }
2371
2372  set +x
2373  $at_times_p && times >"$at_times_file"
2374) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2375read at_status <"$at_status_file"
2376#AT_STOP_5
2377#AT_START_6
2378at_fn_group_banner 6 'prefix.at:17' \
2379  "prefix" "                                         " 2
2380at_xfail=no
2381(
2382  $as_echo "6. $at_setup_line: testing $at_desc ..."
2383  $at_traceon
2384
2385
2386{ set +x
2387$as_echo "$at_srcdir/prefix.at:19: cat > dicod.conf <<__EOT__
2388prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2389load-module dictorg {
2390    command \"dictorg dbdir=\$abs_srcdir/db\";
2391}
2392
2393database {
2394	name eng-num;
2395        handler \"dictorg database=eng-num\";
2396}
2397__EOT__
2398
2399cat >input <<'_ATEOF'
2400match eng-num prefix \"twenty\"
2401quit
2402_ATEOF
2403
2404dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2405"
2406at_fn_check_prepare_notrace 'an embedded newline' "prefix.at:19"
2407( $at_check_trace; cat > dicod.conf <<__EOT__
2408prepend-load-path "$abs_top_builddir/modules/dict.org";
2409load-module dictorg {
2410    command "dictorg dbdir=$abs_srcdir/db";
2411}
2412
2413database {
2414	name eng-num;
2415        handler "dictorg database=eng-num";
2416}
2417__EOT__
2418
2419cat >input <<'_ATEOF'
2420match eng-num prefix "twenty"
2421quit
2422_ATEOF
2423
2424dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2425
2426) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2427at_status=$? at_failed=false
2428$at_check_filter
2429at_fn_diff_devnull "$at_stderr" || at_failed=:
2430echo >>"$at_stdout"; $as_echo "220
2431152 10 matches found: list follows
2432eng-num \"twenty\"
2433eng-num \"twenty-eight\"
2434eng-num \"twenty-five\"
2435eng-num \"twenty-four\"
2436eng-num \"twenty-nine\"
2437eng-num \"twenty-one\"
2438eng-num \"twenty-seven\"
2439eng-num \"twenty-six\"
2440eng-num \"twenty-three\"
2441eng-num \"twenty-two\"
2442.
2443250
2444221
2445" | \
2446  $at_diff - "$at_stdout" || at_failed=:
2447at_fn_check_status 0 $at_status "$at_srcdir/prefix.at:19"
2448$at_failed && at_fn_log_failure
2449$at_traceon; }
2450
2451  set +x
2452  $at_times_p && times >"$at_times_file"
2453) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2454read at_status <"$at_status_file"
2455#AT_STOP_6
2456#AT_START_7
2457at_fn_group_banner 7 'suffix.at:17' \
2458  "suffix" "                                         " 2
2459at_xfail=no
2460(
2461  $as_echo "7. $at_setup_line: testing $at_desc ..."
2462  $at_traceon
2463
2464
2465{ set +x
2466$as_echo "$at_srcdir/suffix.at:19: cat > dicod.conf <<__EOT__
2467prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2468load-module dictorg {
2469    command \"dictorg dbdir=\$abs_srcdir/db\";
2470}
2471
2472database {
2473	name eng-num;
2474        handler \"dictorg database=eng-num\";
2475}
2476__EOT__
2477
2478cat >input <<'_ATEOF'
2479match eng-num suffix \"twenty\"
2480quit
2481_ATEOF
2482
2483dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2484"
2485at_fn_check_prepare_notrace 'an embedded newline' "suffix.at:19"
2486( $at_check_trace; cat > dicod.conf <<__EOT__
2487prepend-load-path "$abs_top_builddir/modules/dict.org";
2488load-module dictorg {
2489    command "dictorg dbdir=$abs_srcdir/db";
2490}
2491
2492database {
2493	name eng-num;
2494        handler "dictorg database=eng-num";
2495}
2496__EOT__
2497
2498cat >input <<'_ATEOF'
2499match eng-num suffix "twenty"
2500quit
2501_ATEOF
2502
2503dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2504
2505) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2506at_status=$? at_failed=false
2507$at_check_filter
2508at_fn_diff_devnull "$at_stderr" || at_failed=:
2509echo >>"$at_stdout"; $as_echo "220
2510152 2 matches found: list follows
2511eng-num \"one hundred and twenty\"
2512eng-num \"twenty\"
2513.
2514250
2515221
2516" | \
2517  $at_diff - "$at_stdout" || at_failed=:
2518at_fn_check_status 0 $at_status "$at_srcdir/suffix.at:19"
2519$at_failed && at_fn_log_failure
2520$at_traceon; }
2521
2522  set +x
2523  $at_times_p && times >"$at_times_file"
2524) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2525read at_status <"$at_status_file"
2526#AT_STOP_7
2527#AT_START_8
2528at_fn_group_banner 8 'word.at:17' \
2529  "word" "                                           " 2
2530at_xfail=no
2531(
2532  $as_echo "8. $at_setup_line: testing $at_desc ..."
2533  $at_traceon
2534
2535
2536{ set +x
2537$as_echo "$at_srcdir/word.at:19: cat > dicod.conf <<__EOT__
2538prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2539load-module dictorg {
2540    command \"dictorg dbdir=\$abs_srcdir/db\";
2541}
2542
2543prepend-load-path \"\$abs_top_builddir/modules/word\";
2544load-module word;
2545database {
2546	name eng-num;
2547        handler \"dictorg database=eng-num\";
2548}
2549__EOT__
2550
2551cat >input <<'_ATEOF'
2552match eng-num word \"five\"
2553quit
2554_ATEOF
2555
2556dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2557"
2558at_fn_check_prepare_notrace 'an embedded newline' "word.at:19"
2559( $at_check_trace; cat > dicod.conf <<__EOT__
2560prepend-load-path "$abs_top_builddir/modules/dict.org";
2561load-module dictorg {
2562    command "dictorg dbdir=$abs_srcdir/db";
2563}
2564
2565prepend-load-path "$abs_top_builddir/modules/word";
2566load-module word;
2567database {
2568	name eng-num;
2569        handler "dictorg database=eng-num";
2570}
2571__EOT__
2572
2573cat >input <<'_ATEOF'
2574match eng-num word "five"
2575quit
2576_ATEOF
2577
2578dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2579
2580) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2581at_status=$? at_failed=false
2582$at_check_filter
2583at_fn_diff_devnull "$at_stderr" || at_failed=:
2584echo >>"$at_stdout"; $as_echo "220
2585152 2 matches found: list follows
2586eng-num \"five\"
2587eng-num \"one hundred and five\"
2588.
2589250
2590221
2591" | \
2592  $at_diff - "$at_stdout" || at_failed=:
2593at_fn_check_status 0 $at_status "$at_srcdir/word.at:19"
2594$at_failed && at_fn_log_failure
2595$at_traceon; }
2596
2597  set +x
2598  $at_times_p && times >"$at_times_file"
2599) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2600read at_status <"$at_status_file"
2601#AT_STOP_8
2602#AT_START_9
2603at_fn_group_banner 9 'define.at:17' \
2604  "define" "                                         " 3
2605at_xfail=no
2606(
2607  $as_echo "9. $at_setup_line: testing $at_desc ..."
2608  $at_traceon
2609
2610
2611{ set +x
2612$as_echo "$at_srcdir/define.at:19: cat > dicod.conf <<__EOT__
2613prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2614load-module dictorg {
2615    command \"dictorg dbdir=\$abs_srcdir/db\";
2616}
2617
2618database {
2619	name eng-num;
2620        handler \"dictorg database=eng-num\";
2621}
2622__EOT__
2623
2624cat >input <<'_ATEOF'
2625define eng-num \"thirty-two\"
2626quit
2627_ATEOF
2628
2629dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2630"
2631at_fn_check_prepare_notrace 'an embedded newline' "define.at:19"
2632( $at_check_trace; cat > dicod.conf <<__EOT__
2633prepend-load-path "$abs_top_builddir/modules/dict.org";
2634load-module dictorg {
2635    command "dictorg dbdir=$abs_srcdir/db";
2636}
2637
2638database {
2639	name eng-num;
2640        handler "dictorg database=eng-num";
2641}
2642__EOT__
2643
2644cat >input <<'_ATEOF'
2645define eng-num "thirty-two"
2646quit
2647_ATEOF
2648
2649dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2650
2651) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2652at_status=$? at_failed=false
2653$at_check_filter
2654at_fn_diff_devnull "$at_stderr" || at_failed=:
2655echo >>"$at_stdout"; $as_echo "220
2656150 1 definitions found: list follows
2657151 \"thirty-two\" eng-num \"English numerals from 1 to 200\"
2658thirty-two
2659   32
2660
2661.
2662250
2663221
2664" | \
2665  $at_diff - "$at_stdout" || at_failed=:
2666at_fn_check_status 0 $at_status "$at_srcdir/define.at:19"
2667$at_failed && at_fn_log_failure
2668$at_traceon; }
2669
2670  set +x
2671  $at_times_p && times >"$at_times_file"
2672) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2673read at_status <"$at_status_file"
2674#AT_STOP_9
2675#AT_START_10
2676at_fn_group_banner 10 'ovshowdb.at:17' \
2677  "show db" "                                        " 4
2678at_xfail=no
2679(
2680  $as_echo "10. $at_setup_line: testing $at_desc ..."
2681  $at_traceon
2682
2683
2684{ set +x
2685$as_echo "$at_srcdir/ovshowdb.at:19: cat > dicod.conf <<__EOT__
2686prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2687load-module dictorg {
2688    command \"dictorg dbdir=\$abs_srcdir/db\";
2689}
2690
2691database {
2692	name ell-num_nomime;
2693        handler \"dictorg database=ell-num\";
2694	visible no;
2695}
2696database {
2697	name ell-num_mime;
2698        handler \"dictorg database=ell-num_mime\";
2699	visible no;
2700}
2701database {
2702	name ell-num;
2703	handler \"virtual\";
2704	database ell-num_nomime nomime;
2705	database ell-num_mime mime;
2706}
2707
2708__EOT__
2709
2710cat >input <<'_ATEOF'
2711show db
2712quit
2713_ATEOF
2714
2715dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2716"
2717at_fn_check_prepare_notrace 'an embedded newline' "ovshowdb.at:19"
2718( $at_check_trace; cat > dicod.conf <<__EOT__
2719prepend-load-path "$abs_top_builddir/modules/dict.org";
2720load-module dictorg {
2721    command "dictorg dbdir=$abs_srcdir/db";
2722}
2723
2724database {
2725	name ell-num_nomime;
2726        handler "dictorg database=ell-num";
2727	visible no;
2728}
2729database {
2730	name ell-num_mime;
2731        handler "dictorg database=ell-num_mime";
2732	visible no;
2733}
2734database {
2735	name ell-num;
2736	handler "virtual";
2737	database ell-num_nomime nomime;
2738	database ell-num_mime mime;
2739}
2740
2741__EOT__
2742
2743cat >input <<'_ATEOF'
2744show db
2745quit
2746_ATEOF
2747
2748dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2749
2750) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2751at_status=$? at_failed=false
2752$at_check_filter
2753at_fn_diff_devnull "$at_stderr" || at_failed=:
2754echo >>"$at_stdout"; $as_echo "220
2755110 1 databases present
2756ell-num \"Greek numerals from 1 to 200\"
2757.
2758250
2759221
2760" | \
2761  $at_diff - "$at_stdout" || at_failed=:
2762at_fn_check_status 0 $at_status "$at_srcdir/ovshowdb.at:19"
2763$at_failed && at_fn_log_failure
2764$at_traceon; }
2765
2766  set +x
2767  $at_times_p && times >"$at_times_file"
2768) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2769read at_status <"$at_status_file"
2770#AT_STOP_10
2771#AT_START_11
2772at_fn_group_banner 11 'ovexact.at:17' \
2773  "exact match" "                                    " 4
2774at_xfail=no
2775(
2776  $as_echo "11. $at_setup_line: testing $at_desc ..."
2777  $at_traceon
2778
2779
2780{ set +x
2781$as_echo "$at_srcdir/ovexact.at:19: cat > dicod.conf <<__EOT__
2782prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2783load-module dictorg {
2784    command \"dictorg dbdir=\$abs_srcdir/db\";
2785}
2786
2787capability mime;
2788database {
2789	name ell-num_nomime;
2790        handler \"dictorg database=ell-num\";
2791	visible no;
2792}
2793database {
2794	name ell-num_mime;
2795        handler \"dictorg database=ell-num_mime\";
2796	visible no;
2797}
2798database {
2799	name ell-num;
2800	handler \"virtual\";
2801	database ell-num_nomime nomime;
2802	database ell-num_mime mime;
2803}
2804
2805__EOT__
2806
2807cat >input <<'_ATEOF'
2808match * exact \"πενηντα εξι\"
2809quit
2810_ATEOF
2811
2812dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2813"
2814at_fn_check_prepare_notrace 'an embedded newline' "ovexact.at:19"
2815( $at_check_trace; cat > dicod.conf <<__EOT__
2816prepend-load-path "$abs_top_builddir/modules/dict.org";
2817load-module dictorg {
2818    command "dictorg dbdir=$abs_srcdir/db";
2819}
2820
2821capability mime;
2822database {
2823	name ell-num_nomime;
2824        handler "dictorg database=ell-num";
2825	visible no;
2826}
2827database {
2828	name ell-num_mime;
2829        handler "dictorg database=ell-num_mime";
2830	visible no;
2831}
2832database {
2833	name ell-num;
2834	handler "virtual";
2835	database ell-num_nomime nomime;
2836	database ell-num_mime mime;
2837}
2838
2839__EOT__
2840
2841cat >input <<'_ATEOF'
2842match * exact "πενηντα εξι"
2843quit
2844_ATEOF
2845
2846dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2847
2848) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2849at_status=$? at_failed=false
2850$at_check_filter
2851at_fn_diff_devnull "$at_stderr" || at_failed=:
2852echo >>"$at_stdout"; $as_echo "220
2853152 1 matches found: list follows
2854ell-num \"πενήντα έξι\"
2855.
2856250
2857221
2858" | \
2859  $at_diff - "$at_stdout" || at_failed=:
2860at_fn_check_status 0 $at_status "$at_srcdir/ovexact.at:19"
2861$at_failed && at_fn_log_failure
2862$at_traceon; }
2863
2864  set +x
2865  $at_times_p && times >"$at_times_file"
2866) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2867read at_status <"$at_status_file"
2868#AT_STOP_11
2869#AT_START_12
2870at_fn_group_banner 12 'ovdefnomime.at:17' \
2871  "define (no mime)" "                               " 4
2872at_xfail=no
2873(
2874  $as_echo "12. $at_setup_line: testing $at_desc ..."
2875  $at_traceon
2876
2877
2878{ set +x
2879$as_echo "$at_srcdir/ovdefnomime.at:19: cat > dicod.conf <<__EOT__
2880prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2881load-module dictorg {
2882    command \"dictorg dbdir=\$abs_srcdir/db\";
2883}
2884
2885capability mime;
2886database {
2887	name ell-num_nomime;
2888        handler \"dictorg database=ell-num\";
2889	visible no;
2890}
2891database {
2892	name ell-num_mime;
2893        handler \"dictorg database=ell-num_mime\";
2894	visible no;
2895}
2896database {
2897	name ell-num;
2898	handler \"virtual\";
2899	database ell-num_nomime nomime;
2900	database ell-num_mime mime;
2901}
2902
2903__EOT__
2904
2905cat >input <<'_ATEOF'
2906define ell-num \"εκατόν είκοσι πέντε\"
2907quit
2908_ATEOF
2909
2910dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
2911"
2912at_fn_check_prepare_notrace 'an embedded newline' "ovdefnomime.at:19"
2913( $at_check_trace; cat > dicod.conf <<__EOT__
2914prepend-load-path "$abs_top_builddir/modules/dict.org";
2915load-module dictorg {
2916    command "dictorg dbdir=$abs_srcdir/db";
2917}
2918
2919capability mime;
2920database {
2921	name ell-num_nomime;
2922        handler "dictorg database=ell-num";
2923	visible no;
2924}
2925database {
2926	name ell-num_mime;
2927        handler "dictorg database=ell-num_mime";
2928	visible no;
2929}
2930database {
2931	name ell-num;
2932	handler "virtual";
2933	database ell-num_nomime nomime;
2934	database ell-num_mime mime;
2935}
2936
2937__EOT__
2938
2939cat >input <<'_ATEOF'
2940define ell-num "εκατόν είκοσι πέντε"
2941quit
2942_ATEOF
2943
2944dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
2945
2946) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2947at_status=$? at_failed=false
2948$at_check_filter
2949at_fn_diff_devnull "$at_stderr" || at_failed=:
2950echo >>"$at_stdout"; $as_echo "220
2951150 1 definitions found: list follows
2952151 \"εκατόν είκοσι πέντε\" ell-num \"Greek numerals from 1 to 200\"
2953εκατόν είκοσι πέντε
2954   125
2955
2956.
2957250
2958221
2959" | \
2960  $at_diff - "$at_stdout" || at_failed=:
2961at_fn_check_status 0 $at_status "$at_srcdir/ovdefnomime.at:19"
2962$at_failed && at_fn_log_failure
2963$at_traceon; }
2964
2965  set +x
2966  $at_times_p && times >"$at_times_file"
2967) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2968read at_status <"$at_status_file"
2969#AT_STOP_12
2970#AT_START_13
2971at_fn_group_banner 13 'ovdefmime.at:17' \
2972  "define (mime)" "                                  " 4
2973at_xfail=no
2974(
2975  $as_echo "13. $at_setup_line: testing $at_desc ..."
2976  $at_traceon
2977
2978
2979{ set +x
2980$as_echo "$at_srcdir/ovdefmime.at:19: cat > dicod.conf <<__EOT__
2981prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
2982load-module dictorg {
2983    command \"dictorg dbdir=\$abs_srcdir/db\";
2984}
2985
2986capability mime;
2987database {
2988	name ell-num_nomime;
2989        handler \"dictorg database=ell-num\";
2990	visible no;
2991}
2992database {
2993	name ell-num_mime;
2994        handler \"dictorg database=ell-num_mime\";
2995	visible no;
2996}
2997database {
2998	name ell-num;
2999	handler \"virtual\";
3000	database ell-num_nomime nomime;
3001	database ell-num_mime mime;
3002}
3003
3004__EOT__
3005
3006cat >input <<'_ATEOF'
3007option mime
3008define ell-num \"εκατόν είκοσι πέντε\"
3009quit
3010_ATEOF
3011
3012dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
3013"
3014at_fn_check_prepare_notrace 'an embedded newline' "ovdefmime.at:19"
3015( $at_check_trace; cat > dicod.conf <<__EOT__
3016prepend-load-path "$abs_top_builddir/modules/dict.org";
3017load-module dictorg {
3018    command "dictorg dbdir=$abs_srcdir/db";
3019}
3020
3021capability mime;
3022database {
3023	name ell-num_nomime;
3024        handler "dictorg database=ell-num";
3025	visible no;
3026}
3027database {
3028	name ell-num_mime;
3029        handler "dictorg database=ell-num_mime";
3030	visible no;
3031}
3032database {
3033	name ell-num;
3034	handler "virtual";
3035	database ell-num_nomime nomime;
3036	database ell-num_mime mime;
3037}
3038
3039__EOT__
3040
3041cat >input <<'_ATEOF'
3042option mime
3043define ell-num "εκατόν είκοσι πέντε"
3044quit
3045_ATEOF
3046
3047dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
3048
3049) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3050at_status=$? at_failed=false
3051$at_check_filter
3052at_fn_diff_devnull "$at_stderr" || at_failed=:
3053echo >>"$at_stdout"; $as_echo "220
3054250
3055150 1 definitions found: list follows
3056151 \"εκατόν είκοσι πέντε\" ell-num \"Greek numerals from 1 to 200\"
3057Content-Type: text/plain; charset=utf-8
3058Content-Transfer-Encoding: base64
3059
3060zrXOus6xz4TPjM69IM61zq/Ous6/z4POuSDPgM6tzr3PhM61CiAgIDEyNQo=
3061
3062.
3063250
3064221
3065" | \
3066  $at_diff - "$at_stdout" || at_failed=:
3067at_fn_check_status 0 $at_status "$at_srcdir/ovdefmime.at:19"
3068$at_failed && at_fn_log_failure
3069$at_traceon; }
3070
3071  set +x
3072  $at_times_p && times >"$at_times_file"
3073) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3074read at_status <"$at_status_file"
3075#AT_STOP_13
3076#AT_START_14
3077at_fn_group_banner 14 'vshowdb.at:17' \
3078  "show db" "                                        " 5
3079at_xfail=no
3080(
3081  $as_echo "14. $at_setup_line: testing $at_desc ..."
3082  $at_traceon
3083
3084
3085{ set +x
3086$as_echo "$at_srcdir/vshowdb.at:19: cat > dicod.conf <<__EOT__
3087prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
3088load-module dictorg {
3089    command \"dictorg dbdir=\$abs_srcdir/db\";
3090}
3091
3092database {
3093	name num-eng;
3094        handler \"dictorg database=num-eng\";
3095}
3096database {
3097	name num-ell;
3098        handler \"dictorg database=num-ell\";
3099}
3100database {
3101	name num;
3102	handler \"virtual\";
3103	description \"Numerals\";
3104	database num-eng;
3105	database num-ell;
3106}
3107
3108__EOT__
3109
3110cat >input <<'_ATEOF'
3111show db
3112quit
3113_ATEOF
3114
3115dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
3116"
3117at_fn_check_prepare_notrace 'an embedded newline' "vshowdb.at:19"
3118( $at_check_trace; cat > dicod.conf <<__EOT__
3119prepend-load-path "$abs_top_builddir/modules/dict.org";
3120load-module dictorg {
3121    command "dictorg dbdir=$abs_srcdir/db";
3122}
3123
3124database {
3125	name num-eng;
3126        handler "dictorg database=num-eng";
3127}
3128database {
3129	name num-ell;
3130        handler "dictorg database=num-ell";
3131}
3132database {
3133	name num;
3134	handler "virtual";
3135	description "Numerals";
3136	database num-eng;
3137	database num-ell;
3138}
3139
3140__EOT__
3141
3142cat >input <<'_ATEOF'
3143show db
3144quit
3145_ATEOF
3146
3147dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
3148
3149) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3150at_status=$? at_failed=false
3151$at_check_filter
3152at_fn_diff_devnull "$at_stderr" || at_failed=:
3153echo >>"$at_stdout"; $as_echo "220
3154110 3 databases present
3155num-eng \"Numbers to English numerals\"
3156num-ell \"Numbers to Greek numerals\"
3157num \"Numerals\"
3158.
3159250
3160221
3161" | \
3162  $at_diff - "$at_stdout" || at_failed=:
3163at_fn_check_status 0 $at_status "$at_srcdir/vshowdb.at:19"
3164$at_failed && at_fn_log_failure
3165$at_traceon; }
3166
3167  set +x
3168  $at_times_p && times >"$at_times_file"
3169) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3170read at_status <"$at_status_file"
3171#AT_STOP_14
3172#AT_START_15
3173at_fn_group_banner 15 'vexact.at:17' \
3174  "exact match" "                                    " 5
3175at_xfail=no
3176(
3177  $as_echo "15. $at_setup_line: testing $at_desc ..."
3178  $at_traceon
3179
3180
3181{ set +x
3182$as_echo "$at_srcdir/vexact.at:19: cat > dicod.conf <<__EOT__
3183prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
3184load-module dictorg {
3185    command \"dictorg dbdir=\$abs_srcdir/db\";
3186}
3187
3188database {
3189	name num-eng;
3190        handler \"dictorg database=num-eng\";
3191}
3192database {
3193	name num-ell;
3194        handler \"dictorg database=num-ell\";
3195}
3196database {
3197	name num;
3198	handler \"virtual\";
3199	description \"Numerals\";
3200	database num-eng;
3201	database num-ell;
3202}
3203
3204__EOT__
3205
3206cat >input <<'_ATEOF'
3207match * exact \"20\"
3208quit
3209_ATEOF
3210
3211dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
3212"
3213at_fn_check_prepare_notrace 'an embedded newline' "vexact.at:19"
3214( $at_check_trace; cat > dicod.conf <<__EOT__
3215prepend-load-path "$abs_top_builddir/modules/dict.org";
3216load-module dictorg {
3217    command "dictorg dbdir=$abs_srcdir/db";
3218}
3219
3220database {
3221	name num-eng;
3222        handler "dictorg database=num-eng";
3223}
3224database {
3225	name num-ell;
3226        handler "dictorg database=num-ell";
3227}
3228database {
3229	name num;
3230	handler "virtual";
3231	description "Numerals";
3232	database num-eng;
3233	database num-ell;
3234}
3235
3236__EOT__
3237
3238cat >input <<'_ATEOF'
3239match * exact "20"
3240quit
3241_ATEOF
3242
3243dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
3244
3245) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3246at_status=$? at_failed=false
3247$at_check_filter
3248at_fn_diff_devnull "$at_stderr" || at_failed=:
3249echo >>"$at_stdout"; $as_echo "220
3250152 2 matches found: list follows
3251num-eng \"20\"
3252num-ell \"20\"
3253.
3254250
3255221
3256" | \
3257  $at_diff - "$at_stdout" || at_failed=:
3258at_fn_check_status 0 $at_status "$at_srcdir/vexact.at:19"
3259$at_failed && at_fn_log_failure
3260$at_traceon; }
3261
3262  set +x
3263  $at_times_p && times >"$at_times_file"
3264) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3265read at_status <"$at_status_file"
3266#AT_STOP_15
3267#AT_START_16
3268at_fn_group_banner 16 'vdefine.at:17' \
3269  "define" "                                         " 5
3270at_xfail=no
3271(
3272  $as_echo "16. $at_setup_line: testing $at_desc ..."
3273  $at_traceon
3274
3275
3276{ set +x
3277$as_echo "$at_srcdir/vdefine.at:19: cat > dicod.conf <<__EOT__
3278prepend-load-path \"\$abs_top_builddir/modules/dict.org\";
3279load-module dictorg {
3280    command \"dictorg dbdir=\$abs_srcdir/db\";
3281}
3282
3283database {
3284	name num-eng;
3285        handler \"dictorg database=num-eng\";
3286}
3287database {
3288	name num-ell;
3289        handler \"dictorg database=num-ell\";
3290}
3291database {
3292	name num;
3293	handler \"virtual\";
3294	description \"Numerals\";
3295	database num-eng;
3296	database num-ell;
3297}
3298
3299__EOT__
3300
3301cat >input <<'_ATEOF'
3302define * \"20\"
3303quit
3304_ATEOF
3305
3306dicod --config ./dicod.conf --stderr -i < input  | tr -d '\\r' | sed 's/^\\(2[25][0-9]\\) .*/\\1/;s/ *\$//'
3307"
3308at_fn_check_prepare_notrace 'an embedded newline' "vdefine.at:19"
3309( $at_check_trace; cat > dicod.conf <<__EOT__
3310prepend-load-path "$abs_top_builddir/modules/dict.org";
3311load-module dictorg {
3312    command "dictorg dbdir=$abs_srcdir/db";
3313}
3314
3315database {
3316	name num-eng;
3317        handler "dictorg database=num-eng";
3318}
3319database {
3320	name num-ell;
3321        handler "dictorg database=num-ell";
3322}
3323database {
3324	name num;
3325	handler "virtual";
3326	description "Numerals";
3327	database num-eng;
3328	database num-ell;
3329}
3330
3331__EOT__
3332
3333cat >input <<'_ATEOF'
3334define * "20"
3335quit
3336_ATEOF
3337
3338dicod --config ./dicod.conf --stderr -i < input  | tr -d '\r' | sed 's/^\(2[25][0-9]\) .*/\1/;s/ *$//'
3339
3340) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3341at_status=$? at_failed=false
3342$at_check_filter
3343at_fn_diff_devnull "$at_stderr" || at_failed=:
3344echo >>"$at_stdout"; $as_echo "220
3345150 2 definitions found: list follows
3346151 \"20\" num-eng \"Numbers to English numerals\"
334720
3348   twenty
3349
3350.
3351151 \"20\" num-ell \"Numbers to Greek numerals\"
335220
3353   είκοσι
3354
3355.
3356250
3357221
3358" | \
3359  $at_diff - "$at_stdout" || at_failed=:
3360at_fn_check_status 0 $at_status "$at_srcdir/vdefine.at:19"
3361$at_failed && at_fn_log_failure
3362$at_traceon; }
3363
3364  set +x
3365  $at_times_p && times >"$at_times_file"
3366) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3367read at_status <"$at_status_file"
3368#AT_STOP_16
3369