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;autodetect.at:17;format detection;autodetect;
5942;count.at:1;count;;
5953;env.at:17;env;;
5964;attr.at:17;attributes;;
5975;header.at:17;header;;
5986;body.at:17;body;;
5997;qget.at:17;qget access;;
6008;delete.at:17;delete;;
6019;append.at:17;append;;
60210;uid.at:17;UID;;
60311;uidvalidity.at:17;uidvalidity;;
60412;uidnext.at:17;UID monotonicity;;
60513;notify.at:17;append notification;;
60614;rospool.at:17;read-only spool directory;;
607"
608# List of the all the test groups.
609at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
610
611# at_fn_validate_ranges NAME...
612# -----------------------------
613# Validate and normalize the test group number contained in each variable
614# NAME. Leading zeroes are treated as decimal.
615at_fn_validate_ranges ()
616{
617  for at_grp
618  do
619    eval at_value=\$$at_grp
620    if test $at_value -lt 1 || test $at_value -gt 14; then
621      $as_echo "invalid test group: $at_value" >&2
622      exit 1
623    fi
624    case $at_value in
625      0*) # We want to treat leading 0 as decimal, like expr and test, but
626	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
627	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
628	  # expr fork, but it is not worth the effort to determine if the
629	  # shell supports XSI when the user can just avoid leading 0.
630	  eval $at_grp='`expr $at_value + 0`' ;;
631    esac
632  done
633}
634
635at_prev=
636for at_option
637do
638  # If the previous option needs an argument, assign it.
639  if test -n "$at_prev"; then
640    at_option=$at_prev=$at_option
641    at_prev=
642  fi
643
644  case $at_option in
645  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
646  *)    at_optarg= ;;
647  esac
648
649  # Accept the important Cygnus configure options, so we can diagnose typos.
650
651  case $at_option in
652    --help | -h )
653	at_help_p=:
654	;;
655
656    --list | -l )
657	at_list_p=:
658	;;
659
660    --version | -V )
661	at_version_p=:
662	;;
663
664    --clean | -c )
665	at_clean=:
666	;;
667
668    --color )
669	at_color=always
670	;;
671    --color=* )
672	case $at_optarg in
673	no | never | none) at_color=never ;;
674	auto | tty | if-tty) at_color=auto ;;
675	always | yes | force) at_color=always ;;
676	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
677	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
678	esac
679	;;
680
681    --debug | -d )
682	at_debug_p=:
683	;;
684
685    --errexit | -e )
686	at_debug_p=:
687	at_errexit_p=:
688	;;
689
690    --verbose | -v )
691	at_verbose=; at_quiet=:
692	;;
693
694    --trace | -x )
695	at_traceon='set -x'
696	at_trace_echo=echo
697	at_check_filter_trace=at_fn_filter_trace
698	;;
699
700    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
701	at_fn_validate_ranges at_option
702	as_fn_append at_groups "$at_option$as_nl"
703	;;
704
705    # Ranges
706    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
707	at_range_start=`echo $at_option |tr -d X-`
708	at_fn_validate_ranges at_range_start
709	at_range=`$as_echo "$at_groups_all" | \
710	  sed -ne '/^'$at_range_start'$/,$p'`
711	as_fn_append at_groups "$at_range$as_nl"
712	;;
713
714    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
715	at_range_end=`echo $at_option |tr -d X-`
716	at_fn_validate_ranges at_range_end
717	at_range=`$as_echo "$at_groups_all" | \
718	  sed -ne '1,/^'$at_range_end'$/p'`
719	as_fn_append at_groups "$at_range$as_nl"
720	;;
721
722    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
723    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
724    [0-9][0-9]-[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] | \
726    [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][0-9][0-9] )
728	at_range_start=`expr $at_option : '\(.*\)-'`
729	at_range_end=`expr $at_option : '.*-\(.*\)'`
730	if test $at_range_start -gt $at_range_end; then
731	  at_tmp=$at_range_end
732	  at_range_end=$at_range_start
733	  at_range_start=$at_tmp
734	fi
735	at_fn_validate_ranges at_range_start at_range_end
736	at_range=`$as_echo "$at_groups_all" | \
737	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
738	as_fn_append at_groups "$at_range$as_nl"
739	;;
740
741    # Directory selection.
742    --directory | -C )
743	at_prev=--directory
744	;;
745    --directory=* )
746	at_change_dir=:
747	at_dir=$at_optarg
748	if test x- = "x$at_dir" ; then
749	  at_dir=./-
750	fi
751	;;
752
753    # Parallel execution.
754    --jobs | -j )
755	at_jobs=0
756	;;
757    --jobs=* | -j[0-9]* )
758	if test -n "$at_optarg"; then
759	  at_jobs=$at_optarg
760	else
761	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
762	fi
763	case $at_jobs in *[!0-9]*)
764	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
765	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
766	esac
767	;;
768
769    # Keywords.
770    --keywords | -k )
771	at_prev=--keywords
772	;;
773    --keywords=* )
774	at_groups_selected=$at_help_all
775	at_save_IFS=$IFS
776	IFS=,
777	set X $at_optarg
778	shift
779	IFS=$at_save_IFS
780	for at_keyword
781	do
782	  at_invert=
783	  case $at_keyword in
784	  '!'*)
785	    at_invert="-v"
786	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
787	    ;;
788	  esac
789	  # It is on purpose that we match the test group titles too.
790	  at_groups_selected=`$as_echo "$at_groups_selected" |
791	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
792	done
793	# Smash the keywords.
794	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
795	as_fn_append at_groups "$at_groups_selected$as_nl"
796	;;
797    --recheck)
798	at_recheck=:
799	;;
800
801    *=*)
802	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
803	# Reject names that are not valid shell variable names.
804	case $at_envvar in
805	  '' | [0-9]* | *[!_$as_cr_alnum]* )
806	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
807	esac
808	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
809	# Export now, but save eval for later and for debug scripts.
810	export $at_envvar
811	as_fn_append at_debug_args " $at_envvar='$at_value'"
812	;;
813
814     *) $as_echo "$as_me: invalid option: $at_option" >&2
815	$as_echo "Try \`$0 --help' for more information." >&2
816	exit 1
817	;;
818  esac
819done
820
821# Verify our last option didn't require an argument
822if test -n "$at_prev"; then :
823  as_fn_error $? "\`$at_prev' requires an argument"
824fi
825
826# The file containing the suite.
827at_suite_log=$at_dir/$as_me.log
828
829# Selected test groups.
830if test -z "$at_groups$at_recheck"; then
831  at_groups=$at_groups_all
832else
833  if test -n "$at_recheck" && test -r "$at_suite_log"; then
834    at_oldfails=`sed -n '
835      /^Failed tests:$/,/^Skipped tests:$/{
836	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
837      }
838      /^Unexpected passes:$/,/^## Detailed failed tests/{
839	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
840      }
841      /^## Detailed failed tests/q
842      ' "$at_suite_log"`
843    as_fn_append at_groups "$at_oldfails$as_nl"
844  fi
845  # Sort the tests, removing duplicates.
846  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
847fi
848
849if test x"$at_color" = xalways \
850   || { test x"$at_color" = xauto && test -t 1; }; then
851  at_red=`printf '\033[0;31m'`
852  at_grn=`printf '\033[0;32m'`
853  at_lgn=`printf '\033[1;32m'`
854  at_blu=`printf '\033[1;34m'`
855  at_std=`printf '\033[m'`
856else
857  at_red= at_grn= at_lgn= at_blu= at_std=
858fi
859
860# Help message.
861if $at_help_p; then
862  cat <<_ATEOF || at_write_fail=1
863Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
864
865Run all the tests, or the selected TESTS, given by numeric ranges, and
866save a detailed log file.  Upon failure, create debugging scripts.
867
868Do not change environment variables directly.  Instead, set them via
869command line arguments.  Set \`AUTOTEST_PATH' to select the executables
870to exercise.  Each relative directory is expanded as build and source
871directories relative to the top level of this distribution.
872E.g., from within the build directory /tmp/foo-1.0, invoking this:
873
874  $ $0 AUTOTEST_PATH=bin
875
876is equivalent to the following, assuming the source directory is /src/foo-1.0:
877
878  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
879_ATEOF
880cat <<_ATEOF || at_write_fail=1
881
882Operation modes:
883  -h, --help     print the help message, then exit
884  -V, --version  print version number, then exit
885  -c, --clean    remove all the files this test suite might create and exit
886  -l, --list     describes all the tests, or the selected TESTS
887_ATEOF
888cat <<_ATEOF || at_write_fail=1
889
890Execution tuning:
891  -C, --directory=DIR
892                 change to directory DIR before starting
893      --color[=never|auto|always]
894                 enable colored test results on terminal, or always
895  -j, --jobs[=N]
896                 Allow N jobs at once; infinite jobs with no arg (default 1)
897  -k, --keywords=KEYWORDS
898                 select the tests matching all the comma-separated KEYWORDS
899                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
900      --recheck  select all tests that failed or passed unexpectedly last time
901  -e, --errexit  abort as soon as a test fails; implies --debug
902  -v, --verbose  force more detailed output
903                 default for debugging scripts
904  -d, --debug    inhibit clean up and top-level logging
905                 default for debugging scripts
906  -x, --trace    enable tests shell tracing
907_ATEOF
908cat <<_ATEOF || at_write_fail=1
909
910Report bugs to <bug-mailutils@gnu.org>.
911General help using GNU software: <http://www.gnu.org/gethelp/>.
912_ATEOF
913  exit $at_write_fail
914fi
915
916# List of tests.
917if $at_list_p; then
918  cat <<_ATEOF || at_write_fail=1
919GNU Mailutils 3.13 test suite test groups:
920
921 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
922      KEYWORDS
923
924_ATEOF
925  # Pass an empty line as separator between selected groups and help.
926  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
927    awk 'NF == 1 && FS != ";" {
928	   selected[$ 1] = 1
929	   next
930	 }
931	 /^$/ { FS = ";" }
932	 NF > 0 {
933	   if (selected[$ 1]) {
934	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
935	     if ($ 4) {
936	       lmax = 79
937	       indent = "     "
938	       line = indent
939	       len = length (line)
940	       n = split ($ 4, a, " ")
941	       for (i = 1; i <= n; i++) {
942		 l = length (a[i]) + 1
943		 if (i > 1 && len + l > lmax) {
944		   print line
945		   line = indent " " a[i]
946		   len = length (line)
947		 } else {
948		   line = line " " a[i]
949		   len += l
950		 }
951	       }
952	       if (n)
953		 print line
954	     }
955	   }
956	 }' || at_write_fail=1
957  exit $at_write_fail
958fi
959if $at_version_p; then
960  $as_echo "$as_me (GNU Mailutils 3.13)" &&
961  cat <<\_ATEOF || at_write_fail=1
962
963Copyright (C) 2012 Free Software Foundation, Inc.
964This test suite is free software; the Free Software Foundation gives
965unlimited permission to copy, distribute and modify it.
966_ATEOF
967  exit $at_write_fail
968fi
969
970# Should we print banners?  Yes if more than one test is run.
971case $at_groups in #(
972  *$as_nl* )
973      at_print_banners=: ;; #(
974  * ) at_print_banners=false ;;
975esac
976# Text for banner N, set to a single space once printed.
977
978# Take any -C into account.
979if $at_change_dir ; then
980  test x != "x$at_dir" && cd "$at_dir" \
981    || as_fn_error $? "unable to change directory"
982  at_dir=`pwd`
983fi
984
985# Load the config files for any default variable assignments.
986for at_file in atconfig atlocal
987do
988  test -r $at_file || continue
989  . ./$at_file || as_fn_error $? "invalid content: $at_file"
990done
991
992# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
993: "${at_top_build_prefix=$at_top_builddir}"
994
995# Perform any assignments requested during argument parsing.
996eval "$at_debug_args"
997
998# atconfig delivers names relative to the directory the test suite is
999# in, but the groups themselves are run in testsuite-dir/group-dir.
1000if test -n "$at_top_srcdir"; then
1001  builddir=../..
1002  for at_dir_var in srcdir top_srcdir top_build_prefix
1003  do
1004    eval at_val=\$at_$at_dir_var
1005    case $at_val in
1006      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
1007      *) at_prefix=../../ ;;
1008    esac
1009    eval "$at_dir_var=\$at_prefix\$at_val"
1010  done
1011fi
1012
1013## -------------------- ##
1014## Directory structure. ##
1015## -------------------- ##
1016
1017# This is the set of directories and files used by this script
1018# (non-literals are capitalized):
1019#
1020# TESTSUITE         - the testsuite
1021# TESTSUITE.log     - summarizes the complete testsuite run
1022# TESTSUITE.dir/    - created during a run, remains after -d or failed test
1023# + at-groups/      - during a run: status of all groups in run
1024# | + NNN/          - during a run: meta-data about test group NNN
1025# | | + check-line  - location (source file and line) of current AT_CHECK
1026# | | + status      - exit status of current AT_CHECK
1027# | | + stdout      - stdout of current AT_CHECK
1028# | | + stder1      - stderr, including trace
1029# | | + stderr      - stderr, with trace filtered out
1030# | | + test-source - portion of testsuite that defines group
1031# | | + times       - timestamps for computing duration
1032# | | + pass        - created if group passed
1033# | | + xpass       - created if group xpassed
1034# | | + fail        - created if group failed
1035# | | + xfail       - created if group xfailed
1036# | | + skip        - created if group skipped
1037# + at-stop         - during a run: end the run if this file exists
1038# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
1039# + 0..NNN/         - created for each group NNN, remains after -d or failed test
1040# | + TESTSUITE.log - summarizes the group results
1041# | + ...           - files created during the group
1042
1043# The directory the whole suite works in.
1044# Should be absolute to let the user `cd' at will.
1045at_suite_dir=$at_dir/$as_me.dir
1046# The file containing the suite ($at_dir might have changed since earlier).
1047at_suite_log=$at_dir/$as_me.log
1048# The directory containing helper files per test group.
1049at_helper_dir=$at_suite_dir/at-groups
1050# Stop file: if it exists, do not start new jobs.
1051at_stop_file=$at_suite_dir/at-stop
1052# The fifo used for the job dispatcher.
1053at_job_fifo=$at_suite_dir/at-job-fifo
1054
1055if $at_clean; then
1056  test -d "$at_suite_dir" &&
1057    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1058  rm -f -r "$at_suite_dir" "$at_suite_log"
1059  exit $?
1060fi
1061
1062# Don't take risks: use only absolute directories in PATH.
1063#
1064# For stand-alone test suites (ie. atconfig was not found),
1065# AUTOTEST_PATH is relative to `.'.
1066#
1067# For embedded test suites, AUTOTEST_PATH is relative to the top level
1068# of the package.  Then expand it into build/src parts, since users
1069# may create executables in both places.
1070AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
1071at_path=
1072as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1073for as_dir in $AUTOTEST_PATH $PATH
1074do
1075  IFS=$as_save_IFS
1076  test -z "$as_dir" && as_dir=.
1077    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
1078case $as_dir in
1079  [\\/]* | ?:[\\/]* )
1080    as_fn_append at_path "$as_dir"
1081    ;;
1082  * )
1083    if test -z "$at_top_build_prefix"; then
1084      # Stand-alone test suite.
1085      as_fn_append at_path "$as_dir"
1086    else
1087      # Embedded test suite.
1088      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
1089      as_fn_append at_path "$at_top_srcdir/$as_dir"
1090    fi
1091    ;;
1092esac
1093  done
1094IFS=$as_save_IFS
1095
1096
1097# Now build and simplify PATH.
1098#
1099# There might be directories that don't exist, but don't redirect
1100# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
1101at_new_path=
1102as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1103for as_dir in $at_path
1104do
1105  IFS=$as_save_IFS
1106  test -z "$as_dir" && as_dir=.
1107    test -d "$as_dir" || continue
1108case $as_dir in
1109  [\\/]* | ?:[\\/]* ) ;;
1110  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
1111esac
1112case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
1113  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
1114  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
1115  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
1116esac
1117  done
1118IFS=$as_save_IFS
1119
1120PATH=$at_new_path
1121export PATH
1122
1123# Setting up the FDs.
1124
1125
1126
1127# 5 is the log file.  Not to be overwritten if `-d'.
1128if $at_debug_p; then
1129  at_suite_log=/dev/null
1130else
1131  : >"$at_suite_log"
1132fi
1133exec 5>>"$at_suite_log"
1134
1135# Banners and logs.
1136$as_echo "## ------------------------------ ##
1137## GNU Mailutils 3.13 test suite. ##
1138## ------------------------------ ##"
1139{
1140  $as_echo "## ------------------------------ ##
1141## GNU Mailutils 3.13 test suite. ##
1142## ------------------------------ ##"
1143  echo
1144
1145  $as_echo "$as_me: command line was:"
1146  $as_echo "  \$ $0 $at_cli_args"
1147  echo
1148
1149  # If ChangeLog exists, list a few lines in case it might help determining
1150  # the exact version.
1151  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
1152    $as_echo "## ---------- ##
1153## ChangeLog. ##
1154## ---------- ##"
1155    echo
1156    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
1157    echo
1158  fi
1159
1160  {
1161cat <<_ASUNAME
1162## --------- ##
1163## Platform. ##
1164## --------- ##
1165
1166hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
1167uname -m = `(uname -m) 2>/dev/null || echo unknown`
1168uname -r = `(uname -r) 2>/dev/null || echo unknown`
1169uname -s = `(uname -s) 2>/dev/null || echo unknown`
1170uname -v = `(uname -v) 2>/dev/null || echo unknown`
1171
1172/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1173/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
1174
1175/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
1176/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
1177/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1178/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
1179/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
1180/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
1181/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
1182
1183_ASUNAME
1184
1185as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1186for as_dir in $PATH
1187do
1188  IFS=$as_save_IFS
1189  test -z "$as_dir" && as_dir=.
1190    $as_echo "PATH: $as_dir"
1191  done
1192IFS=$as_save_IFS
1193
1194}
1195  echo
1196
1197  # Contents of the config files.
1198  for at_file in atconfig atlocal
1199  do
1200    test -r $at_file || continue
1201    $as_echo "$as_me: $at_file:"
1202    sed 's/^/| /' $at_file
1203    echo
1204  done
1205} >&5
1206
1207# This setting is needed on FreeBSD to ensure the LD_LIBRARY_PATH overrides
1208# the DT_RPATH tag in ELF header.  See
1209# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27510
1210# for details.
1211LD_LIBRARY_PATH_RPATH=y
1212export LD_LIBRARY_PATH_RPATH
1213
1214
1215## ------------------------- ##
1216## Autotest shell functions. ##
1217## ------------------------- ##
1218
1219# at_fn_banner NUMBER
1220# -------------------
1221# Output banner NUMBER, provided the testsuite is running multiple groups and
1222# this particular banner has not yet been printed.
1223at_fn_banner ()
1224{
1225  $at_print_banners || return 0
1226  eval at_banner_text=\$at_banner_text_$1
1227  test "x$at_banner_text" = "x " && return 0
1228  eval "at_banner_text_$1=\" \""
1229  if test -z "$at_banner_text"; then
1230    $at_first || echo
1231  else
1232    $as_echo "$as_nl$at_banner_text$as_nl"
1233  fi
1234} # at_fn_banner
1235
1236# at_fn_check_prepare_notrace REASON LINE
1237# ---------------------------------------
1238# Perform AT_CHECK preparations for the command at LINE for an untraceable
1239# command; REASON is the reason for disabling tracing.
1240at_fn_check_prepare_notrace ()
1241{
1242  $at_trace_echo "Not enabling shell tracing (command contains $1)"
1243  $as_echo "$2" >"$at_check_line_file"
1244  at_check_trace=: at_check_filter=:
1245  : >"$at_stdout"; : >"$at_stderr"
1246}
1247
1248# at_fn_check_prepare_trace LINE
1249# ------------------------------
1250# Perform AT_CHECK preparations for the command at LINE for a traceable
1251# command.
1252at_fn_check_prepare_trace ()
1253{
1254  $as_echo "$1" >"$at_check_line_file"
1255  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
1256  : >"$at_stdout"; : >"$at_stderr"
1257}
1258
1259# at_fn_check_prepare_dynamic COMMAND LINE
1260# ----------------------------------------
1261# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
1262# preparation function.
1263at_fn_check_prepare_dynamic ()
1264{
1265  case $1 in
1266    *$as_nl*)
1267      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
1268    *)
1269      at_fn_check_prepare_trace "$2" ;;
1270  esac
1271}
1272
1273# at_fn_filter_trace
1274# ------------------
1275# Remove the lines in the file "$at_stderr" generated by "set -x" and print
1276# them to stderr.
1277at_fn_filter_trace ()
1278{
1279  mv "$at_stderr" "$at_stder1"
1280  grep '^ *+' "$at_stder1" >&2
1281  grep -v '^ *+' "$at_stder1" >"$at_stderr"
1282}
1283
1284# at_fn_log_failure FILE-LIST
1285# ---------------------------
1286# Copy the files in the list on stdout with a "> " prefix, and exit the shell
1287# with a failure exit code.
1288at_fn_log_failure ()
1289{
1290  for file
1291    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
1292  echo 1 > "$at_status_file"
1293  exit 1
1294}
1295
1296# at_fn_check_skip EXIT-CODE LINE
1297# -------------------------------
1298# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
1299# the test group subshell with that same exit code. Use LINE in any report
1300# about test failure.
1301at_fn_check_skip ()
1302{
1303  case $1 in
1304    99) echo 99 > "$at_status_file"; at_failed=:
1305	$as_echo "$2: hard failure"; exit 99;;
1306    77) echo 77 > "$at_status_file"; exit 77;;
1307  esac
1308}
1309
1310# at_fn_check_status EXPECTED EXIT-CODE LINE
1311# ------------------------------------------
1312# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
1313# Otherwise, if it is 77 or 99, exit the test group subshell with that same
1314# exit code; if it is anything else print an error message referring to LINE,
1315# and fail the test.
1316at_fn_check_status ()
1317{
1318  case $2 in
1319    $1 ) ;;
1320    77) echo 77 > "$at_status_file"; exit 77;;
1321    99) echo 99 > "$at_status_file"; at_failed=:
1322	$as_echo "$3: hard failure"; exit 99;;
1323    *) $as_echo "$3: exit code was $2, expected $1"
1324      at_failed=:;;
1325  esac
1326}
1327
1328# at_fn_diff_devnull FILE
1329# -----------------------
1330# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
1331# invocations.
1332at_fn_diff_devnull ()
1333{
1334  test -s "$1" || return 0
1335  $at_diff "$at_devnull" "$1"
1336}
1337
1338# at_fn_test NUMBER
1339# -----------------
1340# Parse out test NUMBER from the tail of this file.
1341at_fn_test ()
1342{
1343  eval at_sed=\$at_sed$1
1344  sed "$at_sed" "$at_myself" > "$at_test_source"
1345}
1346
1347# at_fn_create_debugging_script
1348# -----------------------------
1349# Create the debugging script $at_group_dir/run which will reproduce the
1350# current test group.
1351at_fn_create_debugging_script ()
1352{
1353  {
1354    echo "#! /bin/sh" &&
1355    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
1356    $as_echo "cd '$at_dir'" &&
1357    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
1358    echo 'exit 1'
1359  } >"$at_group_dir/run" &&
1360  chmod +x "$at_group_dir/run"
1361}
1362
1363## -------------------------------- ##
1364## End of autotest shell functions. ##
1365## -------------------------------- ##
1366{
1367  $as_echo "## ---------------- ##
1368## Tested programs. ##
1369## ---------------- ##"
1370  echo
1371} >&5
1372
1373# Report what programs are being tested.
1374for at_program in : $at_tested
1375do
1376  test "$at_program" = : && continue
1377  case $at_program in
1378    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
1379    * )
1380    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1381for as_dir in $PATH
1382do
1383  IFS=$as_save_IFS
1384  test -z "$as_dir" && as_dir=.
1385    test -f "$as_dir/$at_program" && break
1386  done
1387IFS=$as_save_IFS
1388
1389    at_program_=$as_dir/$at_program ;;
1390  esac
1391  if test -f "$at_program_"; then
1392    {
1393      $as_echo "$at_srcdir/testsuite.at:19: $at_program_ --version"
1394      "$at_program_" --version </dev/null
1395      echo
1396    } >&5 2>&1
1397  else
1398    as_fn_error $? "cannot find $at_program" "$LINENO" 5
1399  fi
1400done
1401
1402{
1403  $as_echo "## ------------------ ##
1404## Running the tests. ##
1405## ------------------ ##"
1406} >&5
1407
1408at_start_date=`date`
1409at_start_time=`date +%s 2>/dev/null`
1410$as_echo "$as_me: starting at: $at_start_date" >&5
1411
1412# Create the master directory if it doesn't already exist.
1413as_dir="$at_suite_dir"; as_fn_mkdir_p ||
1414  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
1415
1416# Can we diff with `/dev/null'?  DU 5.0 refuses.
1417if diff /dev/null /dev/null >/dev/null 2>&1; then
1418  at_devnull=/dev/null
1419else
1420  at_devnull=$at_suite_dir/devnull
1421  >"$at_devnull"
1422fi
1423
1424# Use `diff -u' when possible.
1425if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
1426then
1427  at_diff='diff -u'
1428else
1429  at_diff=diff
1430fi
1431
1432# Get the last needed group.
1433for at_group in : $at_groups; do :; done
1434
1435# Extract the start and end lines of each test group at the tail
1436# of this file
1437awk '
1438BEGIN { FS="" }
1439/^#AT_START_/ {
1440  start = NR
1441}
1442/^#AT_STOP_/ {
1443  test = substr ($ 0, 10)
1444  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
1445  if (test == "'"$at_group"'") exit
1446}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
1447. "$at_suite_dir/at-source-lines" ||
1448  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
1449rm -f "$at_suite_dir/at-source-lines"
1450
1451# Set number of jobs for `-j'; avoid more jobs than test groups.
1452set X $at_groups; shift; at_max_jobs=$#
1453if test $at_max_jobs -eq 0; then
1454  at_jobs=1
1455fi
1456if test $at_jobs -ne 1 &&
1457   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
1458  at_jobs=$at_max_jobs
1459fi
1460
1461# If parallel mode, don't output banners, don't split summary lines.
1462if test $at_jobs -ne 1; then
1463  at_print_banners=false
1464  at_quiet=:
1465fi
1466
1467# Set up helper dirs.
1468rm -rf "$at_helper_dir" &&
1469mkdir "$at_helper_dir" &&
1470cd "$at_helper_dir" &&
1471{ test -z "$at_groups" || mkdir $at_groups; } ||
1472as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
1473
1474# Functions for running a test group.  We leave the actual
1475# test group execution outside of a shell function in order
1476# to avoid hitting zsh 4.x exit status bugs.
1477
1478# at_fn_group_prepare
1479# -------------------
1480# Prepare for running a test group.
1481at_fn_group_prepare ()
1482{
1483  # The directory for additional per-group helper files.
1484  at_job_dir=$at_helper_dir/$at_group
1485  # The file containing the location of the last AT_CHECK.
1486  at_check_line_file=$at_job_dir/check-line
1487  # The file containing the exit status of the last command.
1488  at_status_file=$at_job_dir/status
1489  # The files containing the output of the tested commands.
1490  at_stdout=$at_job_dir/stdout
1491  at_stder1=$at_job_dir/stder1
1492  at_stderr=$at_job_dir/stderr
1493  # The file containing the code for a test group.
1494  at_test_source=$at_job_dir/test-source
1495  # The file containing dates.
1496  at_times_file=$at_job_dir/times
1497
1498  # Be sure to come back to the top test directory.
1499  cd "$at_suite_dir"
1500
1501  # Clearly separate the test groups when verbose.
1502  $at_first || $at_verbose echo
1503
1504  at_group_normalized=$at_group
1505
1506  eval 'while :; do
1507    case $at_group_normalized in #(
1508    '"$at_format"'*) break;;
1509    esac
1510    at_group_normalized=0$at_group_normalized
1511  done'
1512
1513
1514  # Create a fresh directory for the next test group, and enter.
1515  # If one already exists, the user may have invoked ./run from
1516  # within that directory; we remove the contents, but not the
1517  # directory itself, so that we aren't pulling the rug out from
1518  # under the shell's notion of the current directory.
1519  at_group_dir=$at_suite_dir/$at_group_normalized
1520  at_group_log=$at_group_dir/$as_me.log
1521  if test -d "$at_group_dir"; then
1522  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
1523  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
1524fi ||
1525    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
1526$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
1527  # Be tolerant if the above `rm' was not able to remove the directory.
1528  as_dir="$at_group_dir"; as_fn_mkdir_p
1529
1530  echo 0 > "$at_status_file"
1531
1532  # In verbose mode, append to the log file *and* show on
1533  # the standard output; in quiet mode only write to the log.
1534  if test -z "$at_verbose"; then
1535    at_tee_pipe='tee -a "$at_group_log"'
1536  else
1537    at_tee_pipe='cat >> "$at_group_log"'
1538  fi
1539}
1540
1541# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
1542# -------------------------------------------------
1543# Declare the test group ORDINAL, located at LINE with group description DESC,
1544# and residing under BANNER. Use PAD to align the status column.
1545at_fn_group_banner ()
1546{
1547  at_setup_line="$2"
1548  test -n "$5" && at_fn_banner $5
1549  at_desc="$3"
1550  case $1 in
1551    [0-9])      at_desc_line="  $1: ";;
1552    [0-9][0-9]) at_desc_line=" $1: " ;;
1553    *)          at_desc_line="$1: "  ;;
1554  esac
1555  as_fn_append at_desc_line "$3$4"
1556  $at_quiet $as_echo_n "$at_desc_line"
1557  echo "#                             -*- compilation -*-" >> "$at_group_log"
1558}
1559
1560# at_fn_group_postprocess
1561# -----------------------
1562# Perform cleanup after running a test group.
1563at_fn_group_postprocess ()
1564{
1565  # Be sure to come back to the suite directory, in particular
1566  # since below we might `rm' the group directory we are in currently.
1567  cd "$at_suite_dir"
1568
1569  if test ! -f "$at_check_line_file"; then
1570    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
1571      A failure happened in a test group before any test could be
1572      run. This means that test suite is improperly designed.  Please
1573      report this failure to <bug-mailutils@gnu.org>.
1574_ATEOF
1575    $as_echo "$at_setup_line" >"$at_check_line_file"
1576    at_status=99
1577  fi
1578  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
1579  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
1580  case $at_xfail:$at_status in
1581    yes:0)
1582	at_msg="UNEXPECTED PASS"
1583	at_res=xpass
1584	at_errexit=$at_errexit_p
1585	at_color=$at_red
1586	;;
1587    no:0)
1588	at_msg="ok"
1589	at_res=pass
1590	at_errexit=false
1591	at_color=$at_grn
1592	;;
1593    *:77)
1594	at_msg='skipped ('`cat "$at_check_line_file"`')'
1595	at_res=skip
1596	at_errexit=false
1597	at_color=$at_blu
1598	;;
1599    no:* | *:99)
1600	at_msg='FAILED ('`cat "$at_check_line_file"`')'
1601	at_res=fail
1602	at_errexit=$at_errexit_p
1603	at_color=$at_red
1604	;;
1605    yes:*)
1606	at_msg='expected failure ('`cat "$at_check_line_file"`')'
1607	at_res=xfail
1608	at_errexit=false
1609	at_color=$at_lgn
1610	;;
1611  esac
1612  echo "$at_res" > "$at_job_dir/$at_res"
1613  # In parallel mode, output the summary line only afterwards.
1614  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
1615    $as_echo "$at_desc_line $at_color$at_msg$at_std"
1616  else
1617    # Make sure there is a separator even with long titles.
1618    $as_echo " $at_color$at_msg$at_std"
1619  fi
1620  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
1621  case $at_status in
1622    0|77)
1623      # $at_times_file is only available if the group succeeded.
1624      # We're not including the group log, so the success message
1625      # is written in the global log separately.  But we also
1626      # write to the group log in case they're using -d.
1627      if test -f "$at_times_file"; then
1628	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
1629	rm -f "$at_times_file"
1630      fi
1631      $as_echo "$at_log_msg" >> "$at_group_log"
1632      $as_echo "$at_log_msg" >&5
1633
1634      # Cleanup the group directory, unless the user wants the files
1635      # or the success was unexpected.
1636      if $at_debug_p || test $at_res = xpass; then
1637	at_fn_create_debugging_script
1638	if test $at_res = xpass && $at_errexit; then
1639	  echo stop > "$at_stop_file"
1640	fi
1641      else
1642	if test -d "$at_group_dir"; then
1643	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1644	  rm -fr "$at_group_dir"
1645	fi
1646	rm -f "$at_test_source"
1647      fi
1648      ;;
1649    *)
1650      # Upon failure, include the log into the testsuite's global
1651      # log.  The failure message is written in the group log.  It
1652      # is later included in the global log.
1653      $as_echo "$at_log_msg" >> "$at_group_log"
1654
1655      # Upon failure, keep the group directory for autopsy, and create
1656      # the debugging script.  With -e, do not start any further tests.
1657      at_fn_create_debugging_script
1658      if $at_errexit; then
1659	echo stop > "$at_stop_file"
1660      fi
1661      ;;
1662  esac
1663}
1664
1665
1666## ------------ ##
1667## Driver loop. ##
1668## ------------ ##
1669
1670
1671if (set -m && set +m && set +b) >/dev/null 2>&1; then
1672  set +b
1673  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
1674else
1675  at_job_control_on=: at_job_control_off=: at_job_group=
1676fi
1677
1678for at_signal in 1 2 15; do
1679  trap 'set +x; set +e
1680	$at_job_control_off
1681	at_signal='"$at_signal"'
1682	echo stop > "$at_stop_file"
1683	trap "" $at_signal
1684	at_pgids=
1685	for at_pgid in `jobs -p 2>/dev/null`; do
1686	  at_pgids="$at_pgids $at_job_group$at_pgid"
1687	done
1688	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
1689	wait
1690	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
1691	  echo >&2
1692	fi
1693	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
1694	set x $at_signame
1695	test 0 -gt 2 && at_signame=$at_signal
1696	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
1697$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
1698	as_fn_arith 128 + $at_signal && exit_status=$as_val
1699	as_fn_exit $exit_status' $at_signal
1700done
1701
1702rm -f "$at_stop_file"
1703at_first=:
1704
1705if test $at_jobs -ne 1 &&
1706     rm -f "$at_job_fifo" &&
1707     test -n "$at_job_group" &&
1708     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
1709then
1710  # FIFO job dispatcher.
1711
1712  trap 'at_pids=
1713	for at_pid in `jobs -p`; do
1714	  at_pids="$at_pids $at_job_group$at_pid"
1715	done
1716	if test -n "$at_pids"; then
1717	  at_sig=TSTP
1718	  test "${TMOUT+set}" = set && at_sig=STOP
1719	  kill -$at_sig $at_pids 2>/dev/null
1720	fi
1721	kill -STOP $$
1722	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
1723
1724  echo
1725  # Turn jobs into a list of numbers, starting from 1.
1726  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
1727
1728  set X $at_joblist
1729  shift
1730  for at_group in $at_groups; do
1731    $at_job_control_on 2>/dev/null
1732    (
1733      # Start one test group.
1734      $at_job_control_off
1735      if $at_first; then
1736	exec 7>"$at_job_fifo"
1737      else
1738	exec 6<&-
1739      fi
1740      trap 'set +x; set +e
1741	    trap "" PIPE
1742	    echo stop > "$at_stop_file"
1743	    echo >&7
1744	    as_fn_exit 141' PIPE
1745      at_fn_group_prepare
1746      if cd "$at_group_dir" &&
1747	 at_fn_test $at_group &&
1748	 . "$at_test_source"
1749      then :; else
1750	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1751$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1752	at_failed=:
1753      fi
1754      at_fn_group_postprocess
1755      echo >&7
1756    ) &
1757    $at_job_control_off
1758    if $at_first; then
1759      at_first=false
1760      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
1761    fi
1762    shift # Consume one token.
1763    if test $# -gt 0; then :; else
1764      read at_token <&6 || break
1765      set x $*
1766    fi
1767    test -f "$at_stop_file" && break
1768  done
1769  exec 7>&-
1770  # Read back the remaining ($at_jobs - 1) tokens.
1771  set X $at_joblist
1772  shift
1773  if test $# -gt 0; then
1774    shift
1775    for at_job
1776    do
1777      read at_token
1778    done <&6
1779  fi
1780  exec 6<&-
1781  wait
1782else
1783  # Run serially, avoid forks and other potential surprises.
1784  for at_group in $at_groups; do
1785    at_fn_group_prepare
1786    if cd "$at_group_dir" &&
1787       at_fn_test $at_group &&
1788       . "$at_test_source"; then :; else
1789      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1790$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1791      at_failed=:
1792    fi
1793    at_fn_group_postprocess
1794    test -f "$at_stop_file" && break
1795    at_first=false
1796  done
1797fi
1798
1799# Wrap up the test suite with summary statistics.
1800cd "$at_helper_dir"
1801
1802# Use ?..???? when the list must remain sorted, the faster * otherwise.
1803at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
1804at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
1805at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
1806at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
1807		 echo $f; done | sed '/?/d; s,/xpass,,'`
1808at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
1809		echo $f; done | sed '/?/d; s,/fail,,'`
1810
1811set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
1812shift; at_group_count=$#
1813set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
1814set X $at_xfail_list; shift; at_xfail_count=$#
1815set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
1816set X $at_skip_list; shift; at_skip_count=$#
1817
1818as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
1819as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
1820as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
1821
1822# Back to the top directory.
1823cd "$at_dir"
1824rm -rf "$at_helper_dir"
1825
1826# Compute the duration of the suite.
1827at_stop_date=`date`
1828at_stop_time=`date +%s 2>/dev/null`
1829$as_echo "$as_me: ending at: $at_stop_date" >&5
1830case $at_start_time,$at_stop_time in
1831  [0-9]*,[0-9]*)
1832    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
1833    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
1834    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
1835    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
1836    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
1837    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
1838    $as_echo "$as_me: test suite duration: $at_duration" >&5
1839    ;;
1840esac
1841
1842echo
1843$as_echo "## ------------- ##
1844## Test results. ##
1845## ------------- ##"
1846echo
1847{
1848  echo
1849  $as_echo "## ------------- ##
1850## Test results. ##
1851## ------------- ##"
1852  echo
1853} >&5
1854
1855if test $at_run_count = 1; then
1856  at_result="1 test"
1857  at_were=was
1858else
1859  at_result="$at_run_count tests"
1860  at_were=were
1861fi
1862if $at_errexit_p && test $at_unexpected_count != 0; then
1863  if test $at_xpass_count = 1; then
1864    at_result="$at_result $at_were run, one passed"
1865  else
1866    at_result="$at_result $at_were run, one failed"
1867  fi
1868  at_result="$at_result unexpectedly and inhibited subsequent tests."
1869  at_color=$at_red
1870else
1871  # Don't you just love exponential explosion of the number of cases?
1872  at_color=$at_red
1873  case $at_xpass_count:$at_fail_count:$at_xfail_count in
1874    # So far, so good.
1875    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
1876    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
1877
1878    # Some unexpected failures
1879    0:*:0) at_result="$at_result $at_were run,
1880$at_fail_count failed unexpectedly." ;;
1881
1882    # Some failures, both expected and unexpected
1883    0:*:1) at_result="$at_result $at_were run,
1884$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1885    0:*:*) at_result="$at_result $at_were run,
1886$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1887
1888    # No unexpected failures, but some xpasses
1889    *:0:*) at_result="$at_result $at_were run,
1890$at_xpass_count passed unexpectedly." ;;
1891
1892    # No expected failures, but failures and xpasses
1893    *:1:0) at_result="$at_result $at_were run,
1894$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
1895    *:*:0) at_result="$at_result $at_were run,
1896$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
1897
1898    # All of them.
1899    *:*:1) at_result="$at_result $at_were run,
1900$at_xpass_count passed unexpectedly,
1901$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1902    *:*:*) at_result="$at_result $at_were run,
1903$at_xpass_count passed unexpectedly,
1904$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1905  esac
1906
1907  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
1908    at_result="All $at_result"
1909  fi
1910fi
1911
1912# Now put skips in the mix.
1913case $at_skip_count in
1914  0) ;;
1915  1) at_result="$at_result
19161 test was skipped." ;;
1917  *) at_result="$at_result
1918$at_skip_count tests were skipped." ;;
1919esac
1920
1921if test $at_unexpected_count = 0; then
1922  echo "$at_color$at_result$at_std"
1923  echo "$at_result" >&5
1924else
1925  echo "${at_color}ERROR: $at_result$at_std" >&2
1926  echo "ERROR: $at_result" >&5
1927  {
1928    echo
1929    $as_echo "## ------------------------ ##
1930## Summary of the failures. ##
1931## ------------------------ ##"
1932
1933    # Summary of failed and skipped tests.
1934    if test $at_fail_count != 0; then
1935      echo "Failed tests:"
1936      $SHELL "$at_myself" $at_fail_list --list
1937      echo
1938    fi
1939    if test $at_skip_count != 0; then
1940      echo "Skipped tests:"
1941      $SHELL "$at_myself" $at_skip_list --list
1942      echo
1943    fi
1944    if test $at_xpass_count != 0; then
1945      echo "Unexpected passes:"
1946      $SHELL "$at_myself" $at_xpass_list --list
1947      echo
1948    fi
1949    if test $at_fail_count != 0; then
1950      $as_echo "## ---------------------- ##
1951## Detailed failed tests. ##
1952## ---------------------- ##"
1953      echo
1954      for at_group in $at_fail_list
1955      do
1956	at_group_normalized=$at_group
1957
1958  eval 'while :; do
1959    case $at_group_normalized in #(
1960    '"$at_format"'*) break;;
1961    esac
1962    at_group_normalized=0$at_group_normalized
1963  done'
1964
1965	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
1966	echo
1967      done
1968      echo
1969    fi
1970    if test -n "$at_top_srcdir"; then
1971      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1972## ${at_top_build_prefix}config.log ##
1973_ASBOX
1974      sed 's/^/| /' ${at_top_build_prefix}config.log
1975      echo
1976    fi
1977  } >&5
1978
1979  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1980## $as_me.log was created. ##
1981_ASBOX
1982
1983  echo
1984  if $at_debug_p; then
1985    at_msg='per-test log files'
1986  else
1987    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
1988  fi
1989  $as_echo "Please send $at_msg and all information you think might help:
1990
1991   To: <bug-mailutils@gnu.org>
1992   Subject: [GNU Mailutils 3.13] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
1993
1994You may investigate any problem if you feel able to do so, in which
1995case the test suite provides a good starting point.  Its output may
1996be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
1997"
1998  exit 1
1999fi
2000
2001exit 0
2002
2003## ------------- ##
2004## Actual tests. ##
2005## ------------- ##
2006#AT_START_1
2007at_fn_group_banner 1 'autodetect.at:17' \
2008  "format detection" "                               "
2009at_xfail=no
2010(
2011  $as_echo "1. $at_setup_line: testing $at_desc ..."
2012  $at_traceon
2013
2014
2015{ set +x
2016$as_echo "$at_srcdir/autodetect.at:19:
2017: >empty
2018
2019# Valid mbox
2020cat >mbox <<'_ATEOF'
2021From user Wed Dec  2 05:53:22 1992
2022From: Sergey <gray@example.net>
2023To: Alice <alice@wonder.land>
2024Subject: Test message
2025
2026Test
2027_ATEOF
2028
2029
2030# Bad mbox
2031cat >malformed <<'_ATEOF'
2032From ...
2033From: Sergey <gray@example.net>
2034To: Alice <alice@wonder.land>
2035Subject: Test message
2036
2037Test
2038_ATEOF
2039
2040
2041export MU_AUTODETECT_ACCURACY
2042for MU_AUTODETECT_ACCURACY in 0 1 2
2043do
2044  echo \"MU_AUTODETECT_ACCURACY=\$MU_AUTODETECT_ACCURACY\"
2045  for mbox in empty malformed mbox
2046  do
2047    mbop --mailbox \$mbox --detect
2048  done
2049done
2050exit 0
2051"
2052at_fn_check_prepare_notrace 'an embedded newline' "autodetect.at:19"
2053( $at_check_trace;
2054: >empty
2055
2056# Valid mbox
2057cat >mbox <<'_ATEOF'
2058From user Wed Dec  2 05:53:22 1992
2059From: Sergey <gray@example.net>
2060To: Alice <alice@wonder.land>
2061Subject: Test message
2062
2063Test
2064_ATEOF
2065
2066
2067# Bad mbox
2068cat >malformed <<'_ATEOF'
2069From ...
2070From: Sergey <gray@example.net>
2071To: Alice <alice@wonder.land>
2072Subject: Test message
2073
2074Test
2075_ATEOF
2076
2077
2078export MU_AUTODETECT_ACCURACY
2079for MU_AUTODETECT_ACCURACY in 0 1 2
2080do
2081  echo "MU_AUTODETECT_ACCURACY=$MU_AUTODETECT_ACCURACY"
2082  for mbox in empty malformed mbox
2083  do
2084    mbop --mailbox $mbox --detect
2085  done
2086done
2087exit 0
2088
2089) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2090at_status=$? at_failed=false
2091$at_check_filter
2092at_fn_diff_devnull "$at_stderr" || at_failed=:
2093echo >>"$at_stdout"; $as_echo "MU_AUTODETECT_ACCURACY=0
2094empty: 2
2095malformed: 2
2096mbox: 2
2097MU_AUTODETECT_ACCURACY=1
2098empty: 2
2099malformed: 0
2100mbox: 2
2101MU_AUTODETECT_ACCURACY=2
2102empty: 2
2103malformed: 0
2104mbox: 2
2105" | \
2106  $at_diff - "$at_stdout" || at_failed=:
2107at_fn_check_status 0 $at_status "$at_srcdir/autodetect.at:19"
2108$at_failed && at_fn_log_failure
2109$at_traceon; }
2110
2111  set +x
2112  $at_times_p && times >"$at_times_file"
2113) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2114read at_status <"$at_status_file"
2115#AT_STOP_1
2116#AT_START_2
2117at_fn_group_banner 2 'count.at:1' \
2118  "count" "                                          "
2119at_xfail=no
2120(
2121  $as_echo "2. $at_setup_line: testing $at_desc ..."
2122  $at_traceon
2123
2124{ set +x
2125$as_echo "$at_srcdir/count.at:2: cp \$spooldir/mbox1 inbox"
2126at_fn_check_prepare_dynamic "cp $spooldir/mbox1 inbox" "count.at:2"
2127( $at_check_trace; cp $spooldir/mbox1 inbox
2128) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2129at_status=$? at_failed=false
2130$at_check_filter
2131at_fn_diff_devnull "$at_stderr" || at_failed=:
2132at_fn_diff_devnull "$at_stdout" || at_failed=:
2133at_fn_check_status 0 $at_status "$at_srcdir/count.at:2"
2134$at_failed && at_fn_log_failure
2135$at_traceon; }
2136
2137{ set +x
2138$as_echo "$at_srcdir/count.at:3: mbop -r -m inbox count"
2139at_fn_check_prepare_trace "count.at:3"
2140( $at_check_trace; mbop -r -m inbox count
2141) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2142at_status=$? at_failed=false
2143$at_check_filter
2144at_fn_diff_devnull "$at_stderr" || at_failed=:
2145echo >>"$at_stdout"; $as_echo "count: 5
2146" | \
2147  $at_diff - "$at_stdout" || at_failed=:
2148at_fn_check_status 0 $at_status "$at_srcdir/count.at:3"
2149$at_failed && at_fn_log_failure
2150$at_traceon; }
2151
2152  set +x
2153  $at_times_p && times >"$at_times_file"
2154) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2155read at_status <"$at_status_file"
2156#AT_STOP_2
2157#AT_START_3
2158at_fn_group_banner 3 'env.at:17' \
2159  "env" "                                            "
2160at_xfail=no
2161(
2162  $as_echo "3. $at_setup_line: testing $at_desc ..."
2163  $at_traceon
2164
2165cat >inbox <<'_ATEOF'
2166From hare@wonder.land Wed Dec  2 05:53 1992
2167From: March Hare  <hare@wonder.land>
2168To: Alice  <alice@wonder.land>
2169Subject: Invitation
2170
2171Have some wine
2172
2173From alice@wonder.land Wed Dec  2 05:53:22 1992
2174From: Alice  <alice@wonder.land>
2175To: March Hare  <hare@wonder.land>
2176Subject: Re: Invitation
2177
2178I don't see any wine
2179
2180From hare@wonder.land Wed Dec  2 05:53 PST 1992
2181From: March Hare  <hare@wonder.land>
2182To: Alice  <alice@wonder.land>
2183Subject: Re: Invitation
2184
2185There isn't any
2186
2187From alice@wonder.land Wed Dec  2 05:53:22 PST 1992
2188From: Alice  <alice@wonder.land>
2189To: March Hare  <hare@wonder.land>
2190Subject: Re: Invitation
2191
2192Then it wasn't very civil of you to offer it
2193
2194From hare@wonder.land Wed Dec  2 05:53 -0700 1992
2195From: March Hare  <hare@wonder.land>
2196To: Alice  <alice@wonder.land>
2197Subject: Re: Invitation
2198
2199It wasn't very civil of you to sit down without being invited
2200
2201From alice@wonder.land Wed Dec  2 05:53:22 -0700 1992
2202From: Alice  <alice@wonder.land>
2203To: March Hare  <hare@wonder.land>
2204Subject: Re: Invitation
2205
2206I didn't know it was YOUR table, it's laid for a
2207great many more than three.
2208
2209From hare@wonder.land Wed Dec  2 05:53 1992 PST
2210From: March Hare  <hare@wonder.land>
2211To: Alice  <alice@wonder.land>
2212Subject: Personal remark
2213
2214Your hair wants cutting
2215
2216From alice@wonder.land Wed Dec  2 05:53:22 1992 PST
2217From: Alice  <alice@wonder.land>
2218To: March Hare  <hare@wonder.land>
2219Subject: Re: Personal remark
2220
2221You should learn not to make personal remarks, it's very rude.
2222
2223From hare@wonder.land Wed Dec  2 05:53 1992 -0700
2224From: March Hare  <hare@wonder.land>
2225To: Alice  <alice@wonder.land>
2226Subject: Riddle (was Re: Personal remark)
2227
2228Why is a raven like a writing-desk?
2229
2230From alice@wonder.land Wed Dec  2 05:53:22 1992 -0700
2231From: Alice  <alice@wonder.land>
2232To: March Hare  <hare@wonder.land>
2233Subject: Re: Riddle
2234
2235I believe I can guess that
2236
2237_ATEOF
2238
2239
2240{ set +x
2241$as_echo "$at_srcdir/env.at:92: mbop -r -m inbox 1 \\; env_date \\; env_sender"
2242at_fn_check_prepare_trace "env.at:92"
2243( $at_check_trace; mbop -r -m inbox 1 \; env_date \; env_sender
2244) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2245at_status=$? at_failed=false
2246$at_check_filter
2247at_fn_diff_devnull "$at_stderr" || at_failed=:
2248echo >>"$at_stdout"; $as_echo "1 current message
22491 env_date: Wed Dec  2 05:53:00 1992
22501 env_sender: hare@wonder.land
2251" | \
2252  $at_diff - "$at_stdout" || at_failed=:
2253at_fn_check_status 0 $at_status "$at_srcdir/env.at:92"
2254$at_failed && at_fn_log_failure
2255$at_traceon; }
2256
2257
2258{ set +x
2259$as_echo "$at_srcdir/env.at:99: mbop -r -m inbox 2 \\; env_date \\; env_sender"
2260at_fn_check_prepare_trace "env.at:99"
2261( $at_check_trace; mbop -r -m inbox 2 \; env_date \; env_sender
2262) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2263at_status=$? at_failed=false
2264$at_check_filter
2265at_fn_diff_devnull "$at_stderr" || at_failed=:
2266echo >>"$at_stdout"; $as_echo "2 current message
22672 env_date: Wed Dec  2 05:53:22 1992
22682 env_sender: alice@wonder.land
2269" | \
2270  $at_diff - "$at_stdout" || at_failed=:
2271at_fn_check_status 0 $at_status "$at_srcdir/env.at:99"
2272$at_failed && at_fn_log_failure
2273$at_traceon; }
2274
2275
2276{ set +x
2277$as_echo "$at_srcdir/env.at:106: mbop -r -m inbox 3 \\; env_date \\; env_sender"
2278at_fn_check_prepare_trace "env.at:106"
2279( $at_check_trace; mbop -r -m inbox 3 \; env_date \; env_sender
2280) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2281at_status=$? at_failed=false
2282$at_check_filter
2283at_fn_diff_devnull "$at_stderr" || at_failed=:
2284echo >>"$at_stdout"; $as_echo "3 current message
22853 env_date: Wed Dec  2 13:53:00 1992
22863 env_sender: hare@wonder.land
2287" | \
2288  $at_diff - "$at_stdout" || at_failed=:
2289at_fn_check_status 0 $at_status "$at_srcdir/env.at:106"
2290$at_failed && at_fn_log_failure
2291$at_traceon; }
2292
2293
2294{ set +x
2295$as_echo "$at_srcdir/env.at:113: mbop -r -m inbox 4 \\; env_date \\; env_sender"
2296at_fn_check_prepare_trace "env.at:113"
2297( $at_check_trace; mbop -r -m inbox 4 \; env_date \; env_sender
2298) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2299at_status=$? at_failed=false
2300$at_check_filter
2301at_fn_diff_devnull "$at_stderr" || at_failed=:
2302echo >>"$at_stdout"; $as_echo "4 current message
23034 env_date: Wed Dec  2 13:53:22 1992
23044 env_sender: alice@wonder.land
2305" | \
2306  $at_diff - "$at_stdout" || at_failed=:
2307at_fn_check_status 0 $at_status "$at_srcdir/env.at:113"
2308$at_failed && at_fn_log_failure
2309$at_traceon; }
2310
2311
2312{ set +x
2313$as_echo "$at_srcdir/env.at:120: mbop -r -m inbox 5 \\; env_date \\; env_sender"
2314at_fn_check_prepare_trace "env.at:120"
2315( $at_check_trace; mbop -r -m inbox 5 \; env_date \; env_sender
2316) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2317at_status=$? at_failed=false
2318$at_check_filter
2319at_fn_diff_devnull "$at_stderr" || at_failed=:
2320echo >>"$at_stdout"; $as_echo "5 current message
23215 env_date: Wed Dec  2 12:53:00 1992
23225 env_sender: hare@wonder.land
2323" | \
2324  $at_diff - "$at_stdout" || at_failed=:
2325at_fn_check_status 0 $at_status "$at_srcdir/env.at:120"
2326$at_failed && at_fn_log_failure
2327$at_traceon; }
2328
2329
2330{ set +x
2331$as_echo "$at_srcdir/env.at:127: mbop -r -m inbox 6 \\; env_date \\; env_sender"
2332at_fn_check_prepare_trace "env.at:127"
2333( $at_check_trace; mbop -r -m inbox 6 \; env_date \; env_sender
2334) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2335at_status=$? at_failed=false
2336$at_check_filter
2337at_fn_diff_devnull "$at_stderr" || at_failed=:
2338echo >>"$at_stdout"; $as_echo "6 current message
23396 env_date: Wed Dec  2 12:53:22 1992
23406 env_sender: alice@wonder.land
2341" | \
2342  $at_diff - "$at_stdout" || at_failed=:
2343at_fn_check_status 0 $at_status "$at_srcdir/env.at:127"
2344$at_failed && at_fn_log_failure
2345$at_traceon; }
2346
2347
2348{ set +x
2349$as_echo "$at_srcdir/env.at:134: mbop -r -m inbox 7 \\; env_date \\; env_sender"
2350at_fn_check_prepare_trace "env.at:134"
2351( $at_check_trace; mbop -r -m inbox 7 \; env_date \; env_sender
2352) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2353at_status=$? at_failed=false
2354$at_check_filter
2355at_fn_diff_devnull "$at_stderr" || at_failed=:
2356echo >>"$at_stdout"; $as_echo "7 current message
23577 env_date: Wed Dec  2 13:53:00 1992
23587 env_sender: hare@wonder.land
2359" | \
2360  $at_diff - "$at_stdout" || at_failed=:
2361at_fn_check_status 0 $at_status "$at_srcdir/env.at:134"
2362$at_failed && at_fn_log_failure
2363$at_traceon; }
2364
2365
2366{ set +x
2367$as_echo "$at_srcdir/env.at:141: mbop -r -m inbox 8 \\; env_date \\; env_sender"
2368at_fn_check_prepare_trace "env.at:141"
2369( $at_check_trace; mbop -r -m inbox 8 \; env_date \; env_sender
2370) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2371at_status=$? at_failed=false
2372$at_check_filter
2373at_fn_diff_devnull "$at_stderr" || at_failed=:
2374echo >>"$at_stdout"; $as_echo "8 current message
23758 env_date: Wed Dec  2 13:53:22 1992
23768 env_sender: alice@wonder.land
2377" | \
2378  $at_diff - "$at_stdout" || at_failed=:
2379at_fn_check_status 0 $at_status "$at_srcdir/env.at:141"
2380$at_failed && at_fn_log_failure
2381$at_traceon; }
2382
2383
2384{ set +x
2385$as_echo "$at_srcdir/env.at:148: mbop -r -m inbox 9 \\; env_date \\; env_sender"
2386at_fn_check_prepare_trace "env.at:148"
2387( $at_check_trace; mbop -r -m inbox 9 \; env_date \; env_sender
2388) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2389at_status=$? at_failed=false
2390$at_check_filter
2391at_fn_diff_devnull "$at_stderr" || at_failed=:
2392echo >>"$at_stdout"; $as_echo "9 current message
23939 env_date: Wed Dec  2 12:53:00 1992
23949 env_sender: hare@wonder.land
2395" | \
2396  $at_diff - "$at_stdout" || at_failed=:
2397at_fn_check_status 0 $at_status "$at_srcdir/env.at:148"
2398$at_failed && at_fn_log_failure
2399$at_traceon; }
2400
2401
2402{ set +x
2403$as_echo "$at_srcdir/env.at:155: mbop -r -m inbox 10 \\; env_date \\; env_sender"
2404at_fn_check_prepare_trace "env.at:155"
2405( $at_check_trace; mbop -r -m inbox 10 \; env_date \; env_sender
2406) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2407at_status=$? at_failed=false
2408$at_check_filter
2409at_fn_diff_devnull "$at_stderr" || at_failed=:
2410echo >>"$at_stdout"; $as_echo "10 current message
241110 env_date: Wed Dec  2 12:53:22 1992
241210 env_sender: alice@wonder.land
2413" | \
2414  $at_diff - "$at_stdout" || at_failed=:
2415at_fn_check_status 0 $at_status "$at_srcdir/env.at:155"
2416$at_failed && at_fn_log_failure
2417$at_traceon; }
2418
2419
2420  set +x
2421  $at_times_p && times >"$at_times_file"
2422) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2423read at_status <"$at_status_file"
2424#AT_STOP_3
2425#AT_START_4
2426at_fn_group_banner 4 'attr.at:17' \
2427  "attributes" "                                     "
2428at_xfail=no
2429(
2430  $as_echo "4. $at_setup_line: testing $at_desc ..."
2431  $at_traceon
2432
2433cat >inbox <<'_ATEOF'
2434From hare@wonder.land Mon Jul 29 21:00:06 2002
2435Received: (from hare@wonder.land)
2436	by wonder.land id 3301
2437	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2438Date: Mon, 29 Jul 2002 22:00:01 +0100
2439From: March Hare  <hare@wonder.land>
2440Message-Id: <200207292200.3301@wonder.land>
2441To: Alice  <alice@wonder.land>
2442Subject: Invitation
2443Return-Path: hare@wonder.land
2444
2445Have some wine
2446
2447From alice@wonder.land Mon Jul 29 21:00:07 2002
2448Received: (from alice@wonder.land)
2449	by wonder.land id 3302
2450	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2451Date: Mon, 29 Jul 2002 22:00:02 +0100
2452From: Alice  <alice@wonder.land>
2453Message-Id: <200207292200.3302@wonder.land>
2454To: March Hare  <hare@wonder.land>
2455Subject: Re: Invitation
2456Status: OFR
2457Return-Path: alice@wonder.land
2458
2459I don't see any wine
2460_ATEOF
2461
2462
2463{ set +x
2464$as_echo "$at_srcdir/attr.at:47: mbop -r -m inbox 1 \\; attr"
2465at_fn_check_prepare_trace "attr.at:47"
2466( $at_check_trace; mbop -r -m inbox 1 \; attr
2467) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2468at_status=$? at_failed=false
2469$at_check_filter
2470at_fn_diff_devnull "$at_stderr" || at_failed=:
2471echo >>"$at_stdout"; $as_echo "1 current message
24721 attr: -
2473" | \
2474  $at_diff - "$at_stdout" || at_failed=:
2475at_fn_check_status 0 $at_status "$at_srcdir/attr.at:47"
2476$at_failed && at_fn_log_failure
2477$at_traceon; }
2478
2479
2480{ set +x
2481$as_echo "$at_srcdir/attr.at:53: mbop -r -m inbox 2 \\; attr"
2482at_fn_check_prepare_trace "attr.at:53"
2483( $at_check_trace; mbop -r -m inbox 2 \; attr
2484) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2485at_status=$? at_failed=false
2486$at_check_filter
2487at_fn_diff_devnull "$at_stderr" || at_failed=:
2488echo >>"$at_stdout"; $as_echo "2 current message
24892 attr: FOR
2490" | \
2491  $at_diff - "$at_stdout" || at_failed=:
2492at_fn_check_status 0 $at_status "$at_srcdir/attr.at:53"
2493$at_failed && at_fn_log_failure
2494$at_traceon; }
2495
2496
2497  set +x
2498  $at_times_p && times >"$at_times_file"
2499) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2500read at_status <"$at_status_file"
2501#AT_STOP_4
2502#AT_START_5
2503at_fn_group_banner 5 'header.at:17' \
2504  "header" "                                         "
2505at_xfail=no
2506(
2507  $as_echo "5. $at_setup_line: testing $at_desc ..."
2508  $at_traceon
2509
2510{ set +x
2511$as_echo "$at_srcdir/header.at:18: cp \$spooldir/mbox1 inbox"
2512at_fn_check_prepare_dynamic "cp $spooldir/mbox1 inbox" "header.at:18"
2513( $at_check_trace; cp $spooldir/mbox1 inbox
2514) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2515at_status=$? at_failed=false
2516$at_check_filter
2517at_fn_diff_devnull "$at_stderr" || at_failed=:
2518at_fn_diff_devnull "$at_stdout" || at_failed=:
2519at_fn_check_status 0 $at_status "$at_srcdir/header.at:18"
2520$at_failed && at_fn_log_failure
2521$at_traceon; }
2522
2523{ set +x
2524$as_echo "$at_srcdir/header.at:19: mbop -r -m inbox 1 \\; header_count \\; header_lines \\; header_size"
2525at_fn_check_prepare_trace "header.at:19"
2526( $at_check_trace; mbop -r -m inbox 1 \; header_count \; header_lines \; header_size
2527) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2528at_status=$? at_failed=false
2529$at_check_filter
2530at_fn_diff_devnull "$at_stderr" || at_failed=:
2531echo >>"$at_stdout"; $as_echo "1 current message
25321 header_count: 6
25331 header_lines: 9
25341 header_size: 317
2535" | \
2536  $at_diff - "$at_stdout" || at_failed=:
2537at_fn_check_status 0 $at_status "$at_srcdir/header.at:19"
2538$at_failed && at_fn_log_failure
2539$at_traceon; }
2540
2541{ set +x
2542$as_echo "$at_srcdir/header.at:26: mbop -r -m inbox 1 \\; headers"
2543at_fn_check_prepare_trace "header.at:26"
2544( $at_check_trace; mbop -r -m inbox 1 \; headers
2545) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2546at_status=$? at_failed=false
2547$at_check_filter
2548at_fn_diff_devnull "$at_stderr" || at_failed=:
2549echo >>"$at_stdout"; $as_echo "1 current message
25501 headers: Received:(from foobar@nonexistent.net) by nonexistent.net id fBSKI8N04906 for bar@dontmailme.org; Fri, 28 Dec 2001 22:18:08 +0200
2551Date:Fri, 28 Dec 2001 22:18:08 +0200
2552From:Foo Bar <foobar@nonexistent.net>
2553Message-Id:<200112282018.fBSKI8N04906@nonexistent.net>
2554To:Bar <bar@dontmailme.org>
2555Subject:Jabberwocky
2556
2557" | \
2558  $at_diff - "$at_stdout" || at_failed=:
2559at_fn_check_status 0 $at_status "$at_srcdir/header.at:26"
2560$at_failed && at_fn_log_failure
2561$at_traceon; }
2562
2563{ set +x
2564$as_echo "$at_srcdir/header.at:37: mbop -r -m inbox 3 \\; header_count \\; header_lines \\; header_size"
2565at_fn_check_prepare_trace "header.at:37"
2566( $at_check_trace; mbop -r -m inbox 3 \; header_count \; header_lines \; header_size
2567) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2568at_status=$? at_failed=false
2569$at_check_filter
2570at_fn_diff_devnull "$at_stderr" || at_failed=:
2571echo >>"$at_stdout"; $as_echo "3 current message
25723 header_count: 10
25733 header_lines: 13
25743 header_size: 497
2575" | \
2576  $at_diff - "$at_stdout" || at_failed=:
2577at_fn_check_status 0 $at_status "$at_srcdir/header.at:37"
2578$at_failed && at_fn_log_failure
2579$at_traceon; }
2580
2581{ set +x
2582$as_echo "$at_srcdir/header.at:44: mbop -r -m inbox 3 \\; headers"
2583at_fn_check_prepare_trace "header.at:44"
2584( $at_check_trace; mbop -r -m inbox 3 \; headers
2585) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2586at_status=$? at_failed=false
2587$at_check_filter
2588at_fn_diff_devnull "$at_stderr" || at_failed=:
2589echo >>"$at_stdout"; $as_echo "3 current message
25903 headers: Organization:Mailutils-tests
2591Received:from example.net (localhost [127.0.0.1]) by example.net with ESMTP id g6CLhIb05086 for <gray@example.net>; Sat, 13 Jul 2002 00:43:18 +0300
2592Message-Id:<200207122143.g6CLhIb05086@example.net>
2593To:Foo Bar <foobar@nonexistent.net>
2594Subject:Simple MIME
2595MIME-Version:1.0
2596Content-Type:multipart/mixed; boundary=\"----- =_aaaaaaaaaa0\"
2597Content-ID:<5082.1026510189.0@example.net>
2598Date:Sat, 13 Jul 2002 00:43:18 +0300
2599From:Sergey Poznyakoff <gray@example.net>
2600
2601" | \
2602  $at_diff - "$at_stdout" || at_failed=:
2603at_fn_check_status 0 $at_status "$at_srcdir/header.at:44"
2604$at_failed && at_fn_log_failure
2605$at_traceon; }
2606
2607{ set +x
2608$as_echo "$at_srcdir/header.at:59: mbop -r -m inbox 5 \\; header_count \\; header_lines \\; header_size"
2609at_fn_check_prepare_trace "header.at:59"
2610( $at_check_trace; mbop -r -m inbox 5 \; header_count \; header_lines \; header_size
2611) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2612at_status=$? at_failed=false
2613$at_check_filter
2614at_fn_diff_devnull "$at_stderr" || at_failed=:
2615echo >>"$at_stdout"; $as_echo "5 current message
26165 header_count: 10
26175 header_lines: 13
26185 header_size: 502
2619" | \
2620  $at_diff - "$at_stdout" || at_failed=:
2621at_fn_check_status 0 $at_status "$at_srcdir/header.at:59"
2622$at_failed && at_fn_log_failure
2623$at_traceon; }
2624
2625
2626{ set +x
2627$as_echo "$at_srcdir/header.at:67: mbop -r -m inbox 5 \\; headers"
2628at_fn_check_prepare_trace "header.at:67"
2629( $at_check_trace; mbop -r -m inbox 5 \; headers
2630) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2631at_status=$? at_failed=false
2632$at_check_filter
2633at_fn_diff_devnull "$at_stderr" || at_failed=:
2634echo >>"$at_stdout"; $as_echo "5 current message
26355 headers: Organization:Mailutils-tests
2636Received:from example.net (localhost [127.0.0.1]) by example.net with ESMTP id g6CLhIb05086 for <gray@example.net>; Sat, 13 Jul 2002 00:43:18 +0300
2637Message-Id:<200207122143.g6CLhIb05086@example.net>
2638To:Foo Bar <foobar@nonexistent.net>
2639Subject:Empty MIME Parts
2640MIME-Version:1.0
2641Content-Type:multipart/mixed; boundary=\"----- =_aaaaaaaaaa0\"
2642Content-ID:<5082.1026510189.0@example.net>
2643Date:Sat, 13 Jul 2002 00:43:18 +0300
2644From:Sergey Poznyakoff <gray@example.net>
2645
2646" | \
2647  $at_diff - "$at_stdout" || at_failed=:
2648at_fn_check_status 0 $at_status "$at_srcdir/header.at:67"
2649$at_failed && at_fn_log_failure
2650$at_traceon; }
2651
2652
2653  set +x
2654  $at_times_p && times >"$at_times_file"
2655) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2656read at_status <"$at_status_file"
2657#AT_STOP_5
2658#AT_START_6
2659at_fn_group_banner 6 'body.at:17' \
2660  "body" "                                           "
2661at_xfail=no
2662(
2663  $as_echo "6. $at_setup_line: testing $at_desc ..."
2664  $at_traceon
2665
2666cat >inbox <<'_ATEOF'
2667From alice@wonder.land Mon Jul 29 22:00:21 2002
2668Received: (from alice@wonder.land)
2669	by wonder.land id 3314
2670	for hare@wonder.land; Mon, 29 Jul 2002 22:00:19 +0100
2671Date: Mon, 29 Jul 2002 22:00:14 +0100
2672From: Alice  <alice@wonder.land>
2673Message-Id: <200207292200.3314@wonder.land>
2674To: March Hare  <hare@wonder.land>
2675Subject: Re: Be specific
2676
2677I do, at least--at least I mean what
2678I say--that's the same thing, you know.
2679
2680From hatter@wonder.land Mon Jul 29 22:00:22 2002
2681Received: (from hatter@wonder.land)
2682	by wonder.land id 3315
2683	for alice@wonder.land; Mon, 29 Jul 2002 22:00:20 +0100
2684Date: Mon, 29 Jul 2002 22:00:15 +0100
2685From: Hatter  <hatter@wonder.land>
2686Message-Id: <200207292200.3315@wonder.land>
2687To: Alice  <alice@wonder.land>
2688Subject: Re: Be specific
2689
2690Not the same thing a bit! You might just
2691as well say that "I see what I eat" is the same thing as "I eat
2692what I see"!
2693
2694From hare@wonder.land Mon Jul 29 22:00:23 2002
2695Received: (from hare@wonder.land)
2696	by wonder.land id 3316
2697	for alice@wonder.land; Mon, 29 Jul 2002 22:00:21 +0100
2698Date: Mon, 29 Jul 2002 22:00:16 +0100
2699From: March Hare  <hare@wonder.land>
2700Message-Id: <200207292200.3316@wonder.land>
2701To: Alice  <alice@wonder.land>
2702Subject: Re: Be specific
2703
2704You might just as well say, that "I
2705like what I get" is the same thing as "I get what I like"!
2706_ATEOF
2707
2708
2709{ set +x
2710$as_echo "$at_srcdir/body.at:60: mbop -r -m inbox 1\\; body_lines\\; body_size"
2711at_fn_check_prepare_trace "body.at:60"
2712( $at_check_trace; mbop -r -m inbox 1\; body_lines\; body_size
2713) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2714at_status=$? at_failed=false
2715$at_check_filter
2716at_fn_diff_devnull "$at_stderr" || at_failed=:
2717echo >>"$at_stdout"; $as_echo "1 current message
27181 body_lines: 3
27191 body_size: 78
2720" | \
2721  $at_diff - "$at_stdout" || at_failed=:
2722at_fn_check_status 0 $at_status "$at_srcdir/body.at:60"
2723$at_failed && at_fn_log_failure
2724$at_traceon; }
2725
2726{ set +x
2727$as_echo "$at_srcdir/body.at:66: mbop -r -m inbox 1\\; body_text"
2728at_fn_check_prepare_trace "body.at:66"
2729( $at_check_trace; mbop -r -m inbox 1\; body_text
2730) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2731at_status=$? at_failed=false
2732$at_check_filter
2733at_fn_diff_devnull "$at_stderr" || at_failed=:
2734echo >>"$at_stdout"; $as_echo "1 current message
27351 body_text: I do, at least--at least I mean what
2736I say--that's the same thing, you know.
2737
2738
2739" | \
2740  $at_diff - "$at_stdout" || at_failed=:
2741at_fn_check_status 0 $at_status "$at_srcdir/body.at:66"
2742$at_failed && at_fn_log_failure
2743$at_traceon; }
2744
2745
2746{ set +x
2747$as_echo "$at_srcdir/body.at:75: mbop -r -m inbox 2\\; body_lines\\; body_size"
2748at_fn_check_prepare_trace "body.at:75"
2749( $at_check_trace; mbop -r -m inbox 2\; body_lines\; body_size
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 "2 current message
27552 body_lines: 4
27562 body_size: 119
2757" | \
2758  $at_diff - "$at_stdout" || at_failed=:
2759at_fn_check_status 0 $at_status "$at_srcdir/body.at:75"
2760$at_failed && at_fn_log_failure
2761$at_traceon; }
2762
2763{ set +x
2764$as_echo "$at_srcdir/body.at:81: mbop -r -m inbox 2\\; body_text"
2765at_fn_check_prepare_trace "body.at:81"
2766( $at_check_trace; mbop -r -m inbox 2\; body_text
2767) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2768at_status=$? at_failed=false
2769$at_check_filter
2770at_fn_diff_devnull "$at_stderr" || at_failed=:
2771echo >>"$at_stdout"; $as_echo "2 current message
27722 body_text: Not the same thing a bit! You might just
2773as well say that \"I see what I eat\" is the same thing as \"I eat
2774what I see\"!
2775
2776
2777" | \
2778  $at_diff - "$at_stdout" || at_failed=:
2779at_fn_check_status 0 $at_status "$at_srcdir/body.at:81"
2780$at_failed && at_fn_log_failure
2781$at_traceon; }
2782
2783
2784{ set +x
2785$as_echo "$at_srcdir/body.at:91: mbop -r -m inbox 3\\; body_lines\\; body_size"
2786at_fn_check_prepare_trace "body.at:91"
2787( $at_check_trace; mbop -r -m inbox 3\; body_lines\; body_size
2788) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2789at_status=$? at_failed=false
2790$at_check_filter
2791at_fn_diff_devnull "$at_stderr" || at_failed=:
2792echo >>"$at_stdout"; $as_echo "3 current message
27933 body_lines: 2
27943 body_size: 95
2795" | \
2796  $at_diff - "$at_stdout" || at_failed=:
2797at_fn_check_status 0 $at_status "$at_srcdir/body.at:91"
2798$at_failed && at_fn_log_failure
2799$at_traceon; }
2800
2801{ set +x
2802$as_echo "$at_srcdir/body.at:97: mbop -r -m inbox 3\\; body_text"
2803at_fn_check_prepare_trace "body.at:97"
2804( $at_check_trace; mbop -r -m inbox 3\; body_text
2805) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2806at_status=$? at_failed=false
2807$at_check_filter
2808at_fn_diff_devnull "$at_stderr" || at_failed=:
2809echo >>"$at_stdout"; $as_echo "3 current message
28103 body_text: You might just as well say, that \"I
2811like what I get\" is the same thing as \"I get what I like\"!
2812
2813" | \
2814  $at_diff - "$at_stdout" || at_failed=:
2815at_fn_check_status 0 $at_status "$at_srcdir/body.at:97"
2816$at_failed && at_fn_log_failure
2817$at_traceon; }
2818
2819
2820cat >inbox1 <<'_ATEOF'
2821From alice@wonder.land Mon Jul 29 22:00:21 2002
2822Date: Mon, 29 Jul 2002 22:00:14 +0100
2823From: Alice  <alice@wonder.land>
2824To: March Hare  <hare@wonder.land>
2825Subject: Body excape
2826
2827This is the test message.
2828>From what I can suppose, this line should be unescaped.
2829However
2830 >From line
2831prefixed with space should not.
2832
2833On the other hand, already escaped
2834>>From line
2835and
2836>>>From line
2837should be unescaped too.
2838
2839That is not so if a whitespace appears before:
2840 >>From line
2841or in between:
2842>> From line
2843or if From is not followed by space:
2844>>Fromline
2845_ATEOF
2846
2847
2848{ set +x
2849$as_echo "$at_srcdir/body.at:132: mbop -r -m inbox1 1\\; body_size\\; body_lines"
2850at_fn_check_prepare_trace "body.at:132"
2851( $at_check_trace; mbop -r -m inbox1 1\; body_size\; body_lines
2852) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2853at_status=$? at_failed=false
2854$at_check_filter
2855at_fn_diff_devnull "$at_stderr" || at_failed=:
2856echo >>"$at_stdout"; $as_echo "1 current message
28571 body_size: 359
28581 body_lines: 18
2859" | \
2860  $at_diff - "$at_stdout" || at_failed=:
2861at_fn_check_status 0 $at_status "$at_srcdir/body.at:132"
2862$at_failed && at_fn_log_failure
2863$at_traceon; }
2864
2865
2866{ set +x
2867$as_echo "$at_srcdir/body.at:139: mbop -r -m inbox1 1\\; body_text"
2868at_fn_check_prepare_trace "body.at:139"
2869( $at_check_trace; mbop -r -m inbox1 1\; body_text
2870) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2871at_status=$? at_failed=false
2872$at_check_filter
2873at_fn_diff_devnull "$at_stderr" || at_failed=:
2874echo >>"$at_stdout"; $as_echo "1 current message
28751 body_text: This is the test message.
2876From what I can suppose, this line should be unescaped.
2877However
2878 >From line
2879prefixed with space should not.
2880
2881On the other hand, already escaped
2882>From line
2883and
2884>>From line
2885should be unescaped too.
2886
2887That is not so if a whitespace appears before:
2888 >>From line
2889or in between:
2890>> From line
2891or if From is not followed by space:
2892>>Fromline
2893
2894" | \
2895  $at_diff - "$at_stdout" || at_failed=:
2896at_fn_check_status 0 $at_status "$at_srcdir/body.at:139"
2897$at_failed && at_fn_log_failure
2898$at_traceon; }
2899
2900
2901  set +x
2902  $at_times_p && times >"$at_times_file"
2903) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2904read at_status <"$at_status_file"
2905#AT_STOP_6
2906#AT_START_7
2907at_fn_group_banner 7 'qget.at:17' \
2908  "qget access" "                                    "
2909at_xfail=no
2910(
2911  $as_echo "7. $at_setup_line: testing $at_desc ..."
2912  $at_traceon
2913
2914
2915{ set +x
2916$as_echo "$at_srcdir/qget.at:19: cp \$spooldir/mbox1 ."
2917at_fn_check_prepare_dynamic "cp $spooldir/mbox1 ." "qget.at:19"
2918( $at_check_trace; cp $spooldir/mbox1 .
2919) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2920at_status=$? at_failed=false
2921$at_check_filter
2922at_fn_diff_devnull "$at_stderr" || at_failed=:
2923at_fn_diff_devnull "$at_stdout" || at_failed=:
2924at_fn_check_status 0 $at_status "$at_srcdir/qget.at:19"
2925$at_failed && at_fn_log_failure
2926$at_traceon; }
2927
2928{ set +x
2929$as_echo "$at_srcdir/qget.at:20: mbop -r -m mbox1 qget 1309"
2930at_fn_check_prepare_trace "qget.at:20"
2931( $at_check_trace; mbop -r -m mbox1 qget 1309
2932) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2933at_status=$? at_failed=false
2934$at_check_filter
2935at_fn_diff_devnull "$at_stderr" || at_failed=:
2936echo >>"$at_stdout"; $as_echo "qget: Received: (from bar@dontmailme.org)
2937	by dontmailme.org id fERKR9N16790
2938	for foobar@nonexistent.net; Fri, 28 Dec 2001 22:18:08 +0200
2939Date: Fri, 28 Dec 2001 23:28:08 +0200
2940From: Bar <bar@dontmailme.org>
2941To: Foo Bar <foobar@nonexistent.net>
2942Message-Id: <200112232808.fERKR9N16790@dontmailme.org>
2943Subject: Re: Jabberwocky
2944
2945It seems very pretty, but it's *rather* hard to understand!'
2946Somehow it seems to fill my head with ideas -- only I don't
2947exactly know what they are!  However, SOMEBODY killed SOMETHING:
2948that's clear, at any rate...
2949
2950
2951" | \
2952  $at_diff - "$at_stdout" || at_failed=:
2953at_fn_check_status 0 $at_status "$at_srcdir/qget.at:20"
2954$at_failed && at_fn_log_failure
2955$at_traceon; }
2956
2957  set +x
2958  $at_times_p && times >"$at_times_file"
2959) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2960read at_status <"$at_status_file"
2961#AT_STOP_7
2962#AT_START_8
2963at_fn_group_banner 8 'delete.at:17' \
2964  "delete" "                                         "
2965at_xfail=no
2966(
2967  $as_echo "8. $at_setup_line: testing $at_desc ..."
2968  $at_traceon
2969
2970cat >inbox <<'_ATEOF'
2971From hare@wonder.land Mon Jul 29 22:00:08 2002
2972Received: (from hare@wonder.land)
2973	by wonder.land id 3301
2974	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2975Date: Mon, 29 Jul 2002 22:00:01 +0100
2976From: March Hare  <hare@wonder.land>
2977Message-Id: <200207292200.3301@wonder.land>
2978To: Alice  <alice@wonder.land>
2979Subject: Invitation
2980X-IMAPbase:                   10                    9
2981X-UID: 1
2982
2983Have some wine
2984
2985From alice@wonder.land Mon Jul 29 22:00:09 2002
2986Received: (from alice@wonder.land)
2987	by wonder.land id 3302
2988	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2989Date: Mon, 29 Jul 2002 22:00:02 +0100
2990From: Alice  <alice@wonder.land>
2991Message-Id: <200207292200.3302@wonder.land>
2992To: March Hare  <hare@wonder.land>
2993Subject: Re: Invitation
2994X-UID: 2
2995
2996I don't see any wine
2997
2998From hare@wonder.land Mon Jul 29 22:00:10 2002
2999Received: (from hare@wonder.land)
3000	by wonder.land id 3303
3001	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3002Date: Mon, 29 Jul 2002 22:00:03 +0100
3003From: March Hare  <hare@wonder.land>
3004Message-Id: <200207292200.3303@wonder.land>
3005To: Alice  <alice@wonder.land>
3006Subject: Re: Invitation
3007X-UID: 3
3008
3009There isn't any
3010
3011From alice@wonder.land Mon Jul 29 22:00:11 2002
3012Received: (from alice@wonder.land)
3013	by wonder.land id 3304
3014	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3015Date: Mon, 29 Jul 2002 22:00:04 +0100
3016From: Alice  <alice@wonder.land>
3017Message-Id: <200207292200.3304@wonder.land>
3018To: March Hare  <hare@wonder.land>
3019Subject: Re: Invitation
3020X-UID: 4
3021
3022Then it wasn't very civil of you to offer it
3023
3024From hare@wonder.land Mon Jul 29 22:00:12 2002
3025Received: (from hare@wonder.land)
3026	by wonder.land id 3305
3027	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
3028Date: Mon, 29 Jul 2002 22:00:05 +0100
3029From: March Hare  <hare@wonder.land>
3030Message-Id: <200207292200.3305@wonder.land>
3031To: Alice  <alice@wonder.land>
3032Subject: Re: Invitation
3033X-UID: 5
3034
3035It wasn't very civil of you to sit down without being invited
3036
3037From alice@wonder.land Mon Jul 29 22:00:13 2002
3038Received: (from alice@wonder.land)
3039	by wonder.land id 3306
3040	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3041Date: Mon, 29 Jul 2002 22:00:06 +0100
3042From: Alice  <alice@wonder.land>
3043Message-Id: <200207292200.3306@wonder.land>
3044To: March Hare  <hare@wonder.land>
3045Subject: Re: Invitation
3046X-UID: 6
3047
3048I didn't know it was YOUR table, it's laid for a
3049great many more than three.
3050
3051_ATEOF
3052
3053
3054cat >commands <<'_ATEOF'
30553
3056set_deleted
3057expunge
3058count
3059# Message 4 becomes 3 after expunge. Re-select it.
30603
3061uid
3062headers
3063_ATEOF
3064
3065
3066{ set +x
3067$as_echo "$at_srcdir/delete.at:112: cp inbox inbox1
3068cp inbox inbox2"
3069at_fn_check_prepare_notrace 'an embedded newline' "delete.at:112"
3070( $at_check_trace; cp inbox inbox1
3071cp inbox inbox2
3072) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3073at_status=$? at_failed=false
3074$at_check_filter
3075at_fn_diff_devnull "$at_stderr" || at_failed=:
3076at_fn_diff_devnull "$at_stdout" || at_failed=:
3077at_fn_check_status 0 $at_status "$at_srcdir/delete.at:112"
3078$at_failed && at_fn_log_failure
3079$at_traceon; }
3080
3081
3082{ set +x
3083$as_echo "$at_srcdir/delete.at:115: mbop -m inbox < commands"
3084at_fn_check_prepare_trace "delete.at:115"
3085( $at_check_trace; mbop -m inbox < commands
3086) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3087at_status=$? at_failed=false
3088$at_check_filter
3089at_fn_diff_devnull "$at_stderr" || at_failed=:
3090echo >>"$at_stdout"; $as_echo "3 current message
30913 set_deleted: OK
3092expunge: OK
3093count: 5
30943 current message
30953 uid: 4
30963 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3097Date:Mon, 29 Jul 2002 22:00:04 +0100
3098From:Alice  <alice@wonder.land>
3099Message-Id:<200207292200.3304@wonder.land>
3100To:March Hare  <hare@wonder.land>
3101Subject:Re: Invitation
3102X-UID:4
3103
3104" | \
3105  $at_diff - "$at_stdout" || at_failed=:
3106at_fn_check_status 0 $at_status "$at_srcdir/delete.at:115"
3107$at_failed && at_fn_log_failure
3108$at_traceon; }
3109
3110
3111cat >commands1 <<'_ATEOF'
31121
3113set_deleted
31142
3115set_deleted
31165
3117set_deleted
3118expunge
3119count
31201
3121uid
3122headers
31232
3124uid
3125headers
31263
3127uid
3128headers
3129_ATEOF
3130
3131
3132{ set +x
3133$as_echo "$at_srcdir/delete.at:153: mbop -m inbox1 < commands1|x_imapbase_normalize"
3134at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:153"
3135( $at_check_trace; mbop -m inbox1 < commands1|x_imapbase_normalize
3136) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3137at_status=$? at_failed=false
3138$at_check_filter
3139at_fn_diff_devnull "$at_stderr" || at_failed=:
3140echo >>"$at_stdout"; $as_echo "1 current message
31411 set_deleted: OK
31422 current message
31432 set_deleted: OK
31445 current message
31455 set_deleted: OK
3146expunge: OK
3147count: 3
31481 current message
31491 uid: 3
31501 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3151Date:Mon, 29 Jul 2002 22:00:03 +0100
3152From:March Hare  <hare@wonder.land>
3153Message-Id:<200207292200.3303@wonder.land>
3154To:Alice  <alice@wonder.land>
3155Subject:Re: Invitation
3156X-IMAPbase:10 9
3157X-UID:3
3158
31592 current message
31602 uid: 4
31612 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3162Date:Mon, 29 Jul 2002 22:00:04 +0100
3163From:Alice  <alice@wonder.land>
3164Message-Id:<200207292200.3304@wonder.land>
3165To:March Hare  <hare@wonder.land>
3166Subject:Re: Invitation
3167X-UID:4
3168
31693 current message
31703 uid: 6
31713 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3172Date:Mon, 29 Jul 2002 22:00:06 +0100
3173From:Alice  <alice@wonder.land>
3174Message-Id:<200207292200.3306@wonder.land>
3175To:March Hare  <hare@wonder.land>
3176Subject:Re: Invitation
3177X-UID:6
3178
3179" | \
3180  $at_diff - "$at_stdout" || at_failed=:
3181at_fn_check_status 0 $at_status "$at_srcdir/delete.at:153"
3182$at_failed && at_fn_log_failure
3183$at_traceon; }
3184
3185
3186# ##
3187cat >commands1a <<'_ATEOF'
3188count
31891
3190uid
3191headers
31922
3193uid
3194headers
31953
3196uid
3197headers
3198_ATEOF
3199
3200
3201{ set +x
3202$as_echo "$at_srcdir/delete.at:210: mbop -m inbox1 < commands1a|x_imapbase_normalize"
3203at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:210"
3204( $at_check_trace; mbop -m inbox1 < commands1a|x_imapbase_normalize
3205) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3206at_status=$? at_failed=false
3207$at_check_filter
3208at_fn_diff_devnull "$at_stderr" || at_failed=:
3209echo >>"$at_stdout"; $as_echo "count: 3
32101 current message
32111 uid: 3
32121 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3213Date:Mon, 29 Jul 2002 22:00:03 +0100
3214From:March Hare  <hare@wonder.land>
3215Message-Id:<200207292200.3303@wonder.land>
3216To:Alice  <alice@wonder.land>
3217Subject:Re: Invitation
3218X-IMAPbase:10 9
3219X-UID:3
3220
32212 current message
32222 uid: 4
32232 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3224Date:Mon, 29 Jul 2002 22:00:04 +0100
3225From:Alice  <alice@wonder.land>
3226Message-Id:<200207292200.3304@wonder.land>
3227To:March Hare  <hare@wonder.land>
3228Subject:Re: Invitation
3229X-UID:4
3230
32313 current message
32323 uid: 6
32333 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3234Date:Mon, 29 Jul 2002 22:00:06 +0100
3235From:Alice  <alice@wonder.land>
3236Message-Id:<200207292200.3306@wonder.land>
3237To:March Hare  <hare@wonder.land>
3238Subject:Re: Invitation
3239X-UID:6
3240
3241" | \
3242  $at_diff - "$at_stdout" || at_failed=:
3243at_fn_check_status 0 $at_status "$at_srcdir/delete.at:210"
3244$at_failed && at_fn_log_failure
3245$at_traceon; }
3246
3247
3248# ##
3249cat >commands2 <<'_ATEOF'
32501
3251set_deleted
32523
3253set_deleted
32545
3255set_deleted
3256expunge
3257count
32581
3259uid
3260headers
32612
3262uid
3263headers
32643
3265uid
3266headers
3267_ATEOF
3268
3269
3270{ set +x
3271$as_echo "$at_srcdir/delete.at:267: mbop -m inbox2 < commands2|x_imapbase_normalize"
3272at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:267"
3273( $at_check_trace; mbop -m inbox2 < commands2|x_imapbase_normalize
3274) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3275at_status=$? at_failed=false
3276$at_check_filter
3277at_fn_diff_devnull "$at_stderr" || at_failed=:
3278echo >>"$at_stdout"; $as_echo "1 current message
32791 set_deleted: OK
32803 current message
32813 set_deleted: OK
32825 current message
32835 set_deleted: OK
3284expunge: OK
3285count: 3
32861 current message
32871 uid: 2
32881 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3289Date:Mon, 29 Jul 2002 22:00:02 +0100
3290From:Alice  <alice@wonder.land>
3291Message-Id:<200207292200.3302@wonder.land>
3292To:March Hare  <hare@wonder.land>
3293Subject:Re: Invitation
3294X-IMAPbase:10 9
3295X-UID:2
3296
32972 current message
32982 uid: 4
32992 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3300Date:Mon, 29 Jul 2002 22:00:04 +0100
3301From:Alice  <alice@wonder.land>
3302Message-Id:<200207292200.3304@wonder.land>
3303To:March Hare  <hare@wonder.land>
3304Subject:Re: Invitation
3305X-UID:4
3306
33073 current message
33083 uid: 6
33093 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3310Date:Mon, 29 Jul 2002 22:00:06 +0100
3311From:Alice  <alice@wonder.land>
3312Message-Id:<200207292200.3306@wonder.land>
3313To:March Hare  <hare@wonder.land>
3314Subject:Re: Invitation
3315X-UID:6
3316
3317" | \
3318  $at_diff - "$at_stdout" || at_failed=:
3319at_fn_check_status 0 $at_status "$at_srcdir/delete.at:267"
3320$at_failed && at_fn_log_failure
3321$at_traceon; }
3322
3323
3324cat >commands2a <<'_ATEOF'
3325count
33261
3327uid
3328headers
33292
3330uid
3331headers
33323
3333uid
3334headers
3335_ATEOF
3336
3337
3338{ set +x
3339$as_echo "$at_srcdir/delete.at:323: mbop -m inbox2 < commands2a|x_imapbase_normalize"
3340at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:323"
3341( $at_check_trace; mbop -m inbox2 < commands2a|x_imapbase_normalize
3342) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3343at_status=$? at_failed=false
3344$at_check_filter
3345at_fn_diff_devnull "$at_stderr" || at_failed=:
3346echo >>"$at_stdout"; $as_echo "count: 3
33471 current message
33481 uid: 2
33491 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3350Date:Mon, 29 Jul 2002 22:00:02 +0100
3351From:Alice  <alice@wonder.land>
3352Message-Id:<200207292200.3302@wonder.land>
3353To:March Hare  <hare@wonder.land>
3354Subject:Re: Invitation
3355X-IMAPbase:10 9
3356X-UID:2
3357
33582 current message
33592 uid: 4
33602 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3361Date:Mon, 29 Jul 2002 22:00:04 +0100
3362From:Alice  <alice@wonder.land>
3363Message-Id:<200207292200.3304@wonder.land>
3364To:March Hare  <hare@wonder.land>
3365Subject:Re: Invitation
3366X-UID:4
3367
33683 current message
33693 uid: 6
33703 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3371Date:Mon, 29 Jul 2002 22:00:06 +0100
3372From:Alice  <alice@wonder.land>
3373Message-Id:<200207292200.3306@wonder.land>
3374To:March Hare  <hare@wonder.land>
3375Subject:Re: Invitation
3376X-UID:6
3377
3378" | \
3379  $at_diff - "$at_stdout" || at_failed=:
3380at_fn_check_status 0 $at_status "$at_srcdir/delete.at:323"
3381$at_failed && at_fn_log_failure
3382$at_traceon; }
3383
3384
3385  set +x
3386  $at_times_p && times >"$at_times_file"
3387) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3388read at_status <"$at_status_file"
3389#AT_STOP_8
3390#AT_START_9
3391at_fn_group_banner 9 'append.at:17' \
3392  "append" "                                         "
3393at_xfail=no
3394(
3395  $as_echo "9. $at_setup_line: testing $at_desc ..."
3396  $at_traceon
3397
3398cat >inbox <<'_ATEOF'
3399From hare@wonder.land Mon Jul 29 22:00:08 2002
3400Received: (from hare@wonder.land)
3401	by wonder.land id 3301
3402	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3403Date: Mon, 29 Jul 2002 22:00:01 +0100
3404From: March Hare  <hare@wonder.land>
3405Message-Id: <200207292200.3301@wonder.land>
3406To: Alice  <alice@wonder.land>
3407Subject: Invitation
3408X-IMAPbase:                   10                    9
3409X-UID: 1
3410
3411Have some wine
3412
3413From alice@wonder.land Mon Jul 29 22:00:09 2002
3414Received: (from alice@wonder.land)
3415	by wonder.land id 3302
3416	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3417Date: Mon, 29 Jul 2002 22:00:02 +0100
3418From: Alice  <alice@wonder.land>
3419Message-Id: <200207292200.3302@wonder.land>
3420To: March Hare  <hare@wonder.land>
3421Subject: Re: Invitation
3422X-UID: 2
3423
3424I don't see any wine
3425
3426From hare@wonder.land Mon Jul 29 22:00:10 2002
3427Received: (from hare@wonder.land)
3428	by wonder.land id 3303
3429	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3430Date: Mon, 29 Jul 2002 22:00:03 +0100
3431From: March Hare  <hare@wonder.land>
3432Message-Id: <200207292200.3303@wonder.land>
3433To: Alice  <alice@wonder.land>
3434Subject: Re: Invitation
3435X-UID: 3
3436
3437There isn't any
3438_ATEOF
3439
3440
3441cat >msg <<'_ATEOF'
3442Received: (from alice@wonder.land)
3443	by wonder.land id 3304
3444	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3445Date: Mon, 29 Jul 2002 22:00:04 +0100
3446From: Alice  <alice@wonder.land>
3447Message-Id: <200207292200.3304@wonder.land>
3448To: March Hare  <hare@wonder.land>
3449Subject: Re: Invitation
3450
3451Then it wasn't very civil of you to offer it
3452_ATEOF
3453
3454
3455
3456cat >commands <<'_ATEOF'
3457append msg
3458count
34594
3460uid
3461env_date
3462env_sender
3463headers
3464body_text
3465_ATEOF
3466
3467{ set +x
3468$as_echo "$at_srcdir/append.at:84: mbop -m inbox < commands"
3469at_fn_check_prepare_trace "append.at:84"
3470( $at_check_trace; mbop -m inbox < commands
3471) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3472at_status=$? at_failed=false
3473$at_check_filter
3474at_fn_diff_devnull "$at_stderr" || at_failed=:
3475echo >>"$at_stdout"; $as_echo "append: OK
3476count: 4
34774 current message
34784 uid: 9
34794 env_date: Mon Jul 29 21:00:09 2002
34804 env_sender: alice@wonder.land
34814 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3482Date:Mon, 29 Jul 2002 22:00:04 +0100
3483From:Alice  <alice@wonder.land>
3484Message-Id:<200207292200.3304@wonder.land>
3485To:March Hare  <hare@wonder.land>
3486Subject:Re: Invitation
3487X-UID:9
3488
34894 body_text: Then it wasn't very civil of you to offer it
3490
3491
3492" | \
3493  $at_diff - "$at_stdout" || at_failed=:
3494at_fn_check_status 0 $at_status "$at_srcdir/append.at:84"
3495$at_failed && at_fn_log_failure
3496$at_traceon; }
3497
3498
3499{ set +x
3500$as_echo "$at_srcdir/append.at:105:
3501mbop -m inbox uidvalidity
3502"
3503at_fn_check_prepare_notrace 'an embedded newline' "append.at:105"
3504( $at_check_trace;
3505mbop -m inbox uidvalidity
3506
3507) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3508at_status=$? at_failed=false
3509$at_check_filter
3510at_fn_diff_devnull "$at_stderr" || at_failed=:
3511echo >>"$at_stdout"; $as_echo "uidvalidity: 10
3512" | \
3513  $at_diff - "$at_stdout" || at_failed=:
3514at_fn_check_status 0 $at_status "$at_srcdir/append.at:105"
3515$at_failed && at_fn_log_failure
3516$at_traceon; }
3517
3518
3519  set +x
3520  $at_times_p && times >"$at_times_file"
3521) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3522read at_status <"$at_status_file"
3523#AT_STOP_9
3524#AT_START_10
3525at_fn_group_banner 10 'uid.at:17' \
3526  "UID" "                                            "
3527at_xfail=no
3528(
3529  $as_echo "10. $at_setup_line: testing $at_desc ..."
3530  $at_traceon
3531
3532cat >inbox <<'_ATEOF'
3533From hare@wonder.land Mon Jul 29 22:00:08 2002
3534Received: (from hare@wonder.land)
3535	by wonder.land id 3301
3536	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3537Date: Mon, 29 Jul 2002 22:00:01 +0100
3538From: March Hare  <hare@wonder.land>
3539Message-Id: <200207292200.3301@wonder.land>
3540To: Alice  <alice@wonder.land>
3541Subject: Invitation
3542X-IMAPbase:                   10                    51
3543X-UID: 1
3544
3545Have some wine
3546
3547From alice@wonder.land Mon Jul 29 22:00:09 2002
3548Received: (from alice@wonder.land)
3549	by wonder.land id 3302
3550	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3551Date: Mon, 29 Jul 2002 22:00:02 +0100
3552From: Alice  <alice@wonder.land>
3553Message-Id: <200207292200.3302@wonder.land>
3554To: March Hare  <hare@wonder.land>
3555Subject: Re: Invitation
3556X-UID: 20
3557
3558I don't see any wine
3559
3560From hare@wonder.land Mon Jul 29 22:00:10 2002
3561Received: (from hare@wonder.land)
3562	by wonder.land id 3303
3563	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3564Date: Mon, 29 Jul 2002 22:00:03 +0100
3565From: March Hare  <hare@wonder.land>
3566Message-Id: <200207292200.3303@wonder.land>
3567To: Alice  <alice@wonder.land>
3568Subject: Re: Invitation
3569X-UID: 22
3570
3571There isn't any
3572
3573From alice@wonder.land Mon Jul 29 22:00:11 2002
3574Received: (from alice@wonder.land)
3575	by wonder.land id 3304
3576	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3577Date: Mon, 29 Jul 2002 22:00:04 +0100
3578From: Alice  <alice@wonder.land>
3579Message-Id: <200207292200.3304@wonder.land>
3580To: March Hare  <hare@wonder.land>
3581Subject: Re: Invitation
3582X-UID: 43
3583
3584Then it wasn't very civil of you to offer it
3585
3586From hare@wonder.land Mon Jul 29 22:00:12 2002
3587Received: (from hare@wonder.land)
3588	by wonder.land id 3305
3589	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
3590Date: Mon, 29 Jul 2002 22:00:05 +0100
3591From: March Hare  <hare@wonder.land>
3592Message-Id: <200207292200.3305@wonder.land>
3593To: Alice  <alice@wonder.land>
3594Subject: Re: Invitation
3595X-UID: 50
3596
3597It wasn't very civil of you to sit down without being invited
3598_ATEOF
3599
3600
3601cat >commands <<'_ATEOF'
3602uidvalidity
3603uidnext
36041
3605uid
36062
3607uid
36083
3609uid
36104
3611uid
36125
3613uid
3614_ATEOF
3615
3616{ set +x
3617$as_echo "$at_srcdir/uid.at:100: mbop -m inbox < commands"
3618at_fn_check_prepare_trace "uid.at:100"
3619( $at_check_trace; mbop -m inbox < commands
3620) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3621at_status=$? at_failed=false
3622$at_check_filter
3623at_fn_diff_devnull "$at_stderr" || at_failed=:
3624echo >>"$at_stdout"; $as_echo "uidvalidity: 10
3625uidnext: 51
36261 current message
36271 uid: 1
36282 current message
36292 uid: 20
36303 current message
36313 uid: 22
36324 current message
36334 uid: 43
36345 current message
36355 uid: 50
3636" | \
3637  $at_diff - "$at_stdout" || at_failed=:
3638at_fn_check_status 0 $at_status "$at_srcdir/uid.at:100"
3639$at_failed && at_fn_log_failure
3640$at_traceon; }
3641
3642  set +x
3643  $at_times_p && times >"$at_times_file"
3644) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3645read at_status <"$at_status_file"
3646#AT_STOP_10
3647#AT_START_11
3648at_fn_group_banner 11 'uidvalidity.at:17' \
3649  "uidvalidity" "                                    "
3650at_xfail=no
3651(
3652  $as_echo "11. $at_setup_line: testing $at_desc ..."
3653  $at_traceon
3654
3655cat >inbox <<'_ATEOF'
3656From hare@wonder.land Mon Jul 29 22:00:08 2002
3657Received: (from hare@wonder.land)
3658	by wonder.land id 3301
3659	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3660Date: Mon, 29 Jul 2002 22:00:01 +0100
3661From: March Hare  <hare@wonder.land>
3662Message-Id: <200207292200.3301@wonder.land>
3663To: Alice  <alice@wonder.land>
3664Subject: Invitation
3665X-IMAPbase:                   10                    9
3666X-UID: 1
3667
3668Have some wine
3669
3670From alice@wonder.land Mon Jul 29 22:00:09 2002
3671Received: (from alice@wonder.land)
3672	by wonder.land id 3302
3673	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3674Date: Mon, 29 Jul 2002 22:00:02 +0100
3675From: Alice  <alice@wonder.land>
3676Message-Id: <200207292200.3302@wonder.land>
3677To: March Hare  <hare@wonder.land>
3678Subject: Re: Invitation
3679X-UID: 2
3680
3681I don't see any wine
3682
3683From hare@wonder.land Mon Jul 29 22:00:10 2002
3684Received: (from hare@wonder.land)
3685	by wonder.land id 3303
3686	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3687Date: Mon, 29 Jul 2002 22:00:03 +0100
3688From: March Hare  <hare@wonder.land>
3689Message-Id: <200207292200.3303@wonder.land>
3690To: Alice  <alice@wonder.land>
3691Subject: Re: Invitation
3692X-UID: 3
3693
3694There isn't any
3695
3696From alice@wonder.land Mon Jul 29 22:00:11 2002
3697Received: (from alice@wonder.land)
3698	by wonder.land id 3304
3699	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3700Date: Mon, 29 Jul 2002 22:00:04 +0100
3701From: Alice  <alice@wonder.land>
3702Message-Id: <200207292200.3304@wonder.land>
3703To: March Hare  <hare@wonder.land>
3704Subject: Re: Invitation
3705X-UID: 4
3706
3707Then it wasn't very civil of you to offer it
3708
3709From hare@wonder.land Mon Jul 29 22:00:12 2002
3710Received: (from hare@wonder.land)
3711	by wonder.land id 3305
3712	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
3713Date: Mon, 29 Jul 2002 22:00:05 +0100
3714From: March Hare  <hare@wonder.land>
3715Message-Id: <200207292200.3305@wonder.land>
3716To: Alice  <alice@wonder.land>
3717Subject: Re: Invitation
3718X-UID: 5
3719
3720It wasn't very civil of you to sit down without being invited
3721_ATEOF
3722
3723
3724{ set +x
3725$as_echo "$at_srcdir/uidvalidity.at:86: mbop -m inbox uidvalidity \\; uidnext"
3726at_fn_check_prepare_trace "uidvalidity.at:86"
3727( $at_check_trace; mbop -m inbox uidvalidity \; uidnext
3728) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3729at_status=$? at_failed=false
3730$at_check_filter
3731at_fn_diff_devnull "$at_stderr" || at_failed=:
3732echo >>"$at_stdout"; $as_echo "uidvalidity: 10
3733uidnext: 9
3734" | \
3735  $at_diff - "$at_stdout" || at_failed=:
3736at_fn_check_status 0 $at_status "$at_srcdir/uidvalidity.at:86"
3737$at_failed && at_fn_log_failure
3738$at_traceon; }
3739
3740
3741{ set +x
3742$as_echo "$at_srcdir/uidvalidity.at:92: grep ^X- inbox"
3743at_fn_check_prepare_trace "uidvalidity.at:92"
3744( $at_check_trace; grep ^X- inbox
3745) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3746at_status=$? at_failed=false
3747$at_check_filter
3748at_fn_diff_devnull "$at_stderr" || at_failed=:
3749echo >>"$at_stdout"; $as_echo "X-IMAPbase:                   10                    9
3750X-UID: 1
3751X-UID: 2
3752X-UID: 3
3753X-UID: 4
3754X-UID: 5
3755" | \
3756  $at_diff - "$at_stdout" || at_failed=:
3757at_fn_check_status 0 $at_status "$at_srcdir/uidvalidity.at:92"
3758$at_failed && at_fn_log_failure
3759$at_traceon; }
3760
3761
3762{ set +x
3763$as_echo "$at_srcdir/uidvalidity.at:102: mbop -m inbox uidvalidity \\; uidnext"
3764at_fn_check_prepare_trace "uidvalidity.at:102"
3765( $at_check_trace; mbop -m inbox uidvalidity \; uidnext
3766) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3767at_status=$? at_failed=false
3768$at_check_filter
3769at_fn_diff_devnull "$at_stderr" || at_failed=:
3770echo >>"$at_stdout"; $as_echo "uidvalidity: 10
3771uidnext: 9
3772" | \
3773  $at_diff - "$at_stdout" || at_failed=:
3774at_fn_check_status 0 $at_status "$at_srcdir/uidvalidity.at:102"
3775$at_failed && at_fn_log_failure
3776$at_traceon; }
3777
3778
3779  set +x
3780  $at_times_p && times >"$at_times_file"
3781) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3782read at_status <"$at_status_file"
3783#AT_STOP_11
3784#AT_START_12
3785at_fn_group_banner 12 'uidnext.at:17' \
3786  "UID monotonicity" "                               "
3787at_xfail=no
3788(
3789  $as_echo "12. $at_setup_line: testing $at_desc ..."
3790  $at_traceon
3791
3792cat >inbox <<'_ATEOF'
3793From hare@wonder.land Mon Jul 29 22:00:08 2002
3794Received: (from hare@wonder.land)
3795	by wonder.land id 3301
3796	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3797Date: Mon, 29 Jul 2002 22:00:01 +0100
3798From: March Hare  <hare@wonder.land>
3799Message-Id: <200207292200.3301@wonder.land>
3800To: Alice  <alice@wonder.land>
3801Subject: Invitation
3802X-IMAPbase:                   10                    9
3803X-UID: 1
3804
3805Have some wine
3806
3807From alice@wonder.land Mon Jul 29 22:00:09 2002
3808Received: (from alice@wonder.land)
3809	by wonder.land id 3302
3810	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3811Date: Mon, 29 Jul 2002 22:00:02 +0100
3812From: Alice  <alice@wonder.land>
3813Message-Id: <200207292200.3302@wonder.land>
3814To: March Hare  <hare@wonder.land>
3815Subject: Re: Invitation
3816X-UID: 2
3817
3818I don't see any wine
3819
3820From hare@wonder.land Mon Jul 29 22:00:10 2002
3821Received: (from hare@wonder.land)
3822	by wonder.land id 3303
3823	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3824Date: Mon, 29 Jul 2002 22:00:03 +0100
3825From: March Hare  <hare@wonder.land>
3826Message-Id: <200207292200.3303@wonder.land>
3827To: Alice  <alice@wonder.land>
3828Subject: Re: Invitation
3829X-UID: 3
3830
3831There isn't any
3832
3833From alice@wonder.land Mon Jul 29 22:00:11 2002
3834Received: (from alice@wonder.land)
3835	by wonder.land id 3304
3836	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3837Date: Mon, 29 Jul 2002 22:00:04 +0100
3838From: Alice  <alice@wonder.land>
3839Message-Id: <200207292200.3304@wonder.land>
3840To: March Hare  <hare@wonder.land>
3841Subject: Re: Invitation
3842X-UID: 4
3843
3844Then it wasn't very civil of you to offer it
3845
3846From hare@wonder.land Mon Jul 29 22:00:12 2002
3847Received: (from hare@wonder.land)
3848	by wonder.land id 3305
3849	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
3850Date: Mon, 29 Jul 2002 22:00:05 +0100
3851From: March Hare  <hare@wonder.land>
3852Message-Id: <200207292200.3305@wonder.land>
3853To: Alice  <alice@wonder.land>
3854Subject: Re: Invitation
3855X-UID: 5
3856
3857It wasn't very civil of you to sit down without being invited
3858_ATEOF
3859
3860
3861{ set +x
3862$as_echo "$at_srcdir/uidnext.at:86: mbop -m inbox uidnext \\; uidvalidity"
3863at_fn_check_prepare_trace "uidnext.at:86"
3864( $at_check_trace; mbop -m inbox uidnext \; uidvalidity
3865) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3866at_status=$? at_failed=false
3867$at_check_filter
3868at_fn_diff_devnull "$at_stderr" || at_failed=:
3869echo >>"$at_stdout"; $as_echo "uidnext: 9
3870uidvalidity: 10
3871" | \
3872  $at_diff - "$at_stdout" || at_failed=:
3873at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:86"
3874$at_failed && at_fn_log_failure
3875$at_traceon; }
3876
3877
3878{ set +x
3879$as_echo "$at_srcdir/uidnext.at:92: mbop -m inbox 5 \\; set_deleted \\; expunge"
3880at_fn_check_prepare_trace "uidnext.at:92"
3881( $at_check_trace; mbop -m inbox 5 \; set_deleted \; expunge
3882) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3883at_status=$? at_failed=false
3884$at_check_filter
3885at_fn_diff_devnull "$at_stderr" || at_failed=:
3886echo >>"$at_stdout"; $as_echo "5 current message
38875 set_deleted: OK
3888expunge: OK
3889" | \
3890  $at_diff - "$at_stdout" || at_failed=:
3891at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:92"
3892$at_failed && at_fn_log_failure
3893$at_traceon; }
3894
3895{ set +x
3896$as_echo "$at_srcdir/uidnext.at:98: mbop -m inbox uidnext \\; uidvalidity"
3897at_fn_check_prepare_trace "uidnext.at:98"
3898( $at_check_trace; mbop -m inbox uidnext \; uidvalidity
3899) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3900at_status=$? at_failed=false
3901$at_check_filter
3902at_fn_diff_devnull "$at_stderr" || at_failed=:
3903echo >>"$at_stdout"; $as_echo "uidnext: 9
3904uidvalidity: 10
3905" | \
3906  $at_diff - "$at_stdout" || at_failed=:
3907at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:98"
3908$at_failed && at_fn_log_failure
3909$at_traceon; }
3910
3911
3912{ set +x
3913$as_echo "$at_srcdir/uidnext.at:104: mbop -m inbox 3 \\; set_deleted \\; expunge"
3914at_fn_check_prepare_trace "uidnext.at:104"
3915( $at_check_trace; mbop -m inbox 3 \; set_deleted \; expunge
3916) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3917at_status=$? at_failed=false
3918$at_check_filter
3919at_fn_diff_devnull "$at_stderr" || at_failed=:
3920echo >>"$at_stdout"; $as_echo "3 current message
39213 set_deleted: OK
3922expunge: OK
3923" | \
3924  $at_diff - "$at_stdout" || at_failed=:
3925at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:104"
3926$at_failed && at_fn_log_failure
3927$at_traceon; }
3928
3929{ set +x
3930$as_echo "$at_srcdir/uidnext.at:110: mbop -m inbox uidnext \\; uidvalidity"
3931at_fn_check_prepare_trace "uidnext.at:110"
3932( $at_check_trace; mbop -m inbox uidnext \; uidvalidity
3933) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3934at_status=$? at_failed=false
3935$at_check_filter
3936at_fn_diff_devnull "$at_stderr" || at_failed=:
3937echo >>"$at_stdout"; $as_echo "uidnext: 9
3938uidvalidity: 10
3939" | \
3940  $at_diff - "$at_stdout" || at_failed=:
3941at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:110"
3942$at_failed && at_fn_log_failure
3943$at_traceon; }
3944
3945
3946cat >msg <<'_ATEOF'
3947From alice@wonder.land Mon Jul 29 22:00:13 2002
3948Received: (from alice@wonder.land)
3949	by wonder.land id 3306
3950	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
3951Date: Mon, 29 Jul 2002 22:00:06 +0100
3952From: Alice  <alice@wonder.land>
3953Message-Id: <200207292200.3306@wonder.land>
3954To: March Hare  <hare@wonder.land>
3955Subject: Re: Invitation
3956
3957I didn't know it was YOUR table, it's laid for a
3958great many more than three.
3959_ATEOF
3960
3961
3962{ set +x
3963$as_echo "$at_srcdir/uidnext.at:131: mbop -m inbox append msg \\; count \\; 4 \\; uid \\; uidnext"
3964at_fn_check_prepare_trace "uidnext.at:131"
3965( $at_check_trace; mbop -m inbox append msg \; count \; 4 \; uid \; uidnext
3966) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3967at_status=$? at_failed=false
3968$at_check_filter
3969at_fn_diff_devnull "$at_stderr" || at_failed=:
3970echo >>"$at_stdout"; $as_echo "append: OK
3971count: 4
39724 current message
39734 uid: 9
3974uidnext: 10
3975" | \
3976  $at_diff - "$at_stdout" || at_failed=:
3977at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:131"
3978$at_failed && at_fn_log_failure
3979$at_traceon; }
3980
3981{ set +x
3982$as_echo "$at_srcdir/uidnext.at:139: mbop -m inbox uidnext \\; uidvalidity"
3983at_fn_check_prepare_trace "uidnext.at:139"
3984( $at_check_trace; mbop -m inbox uidnext \; uidvalidity
3985) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3986at_status=$? at_failed=false
3987$at_check_filter
3988at_fn_diff_devnull "$at_stderr" || at_failed=:
3989echo >>"$at_stdout"; $as_echo "uidnext: 10
3990uidvalidity: 10
3991" | \
3992  $at_diff - "$at_stdout" || at_failed=:
3993at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:139"
3994$at_failed && at_fn_log_failure
3995$at_traceon; }
3996
3997
3998  set +x
3999  $at_times_p && times >"$at_times_file"
4000) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4001read at_status <"$at_status_file"
4002#AT_STOP_12
4003#AT_START_13
4004at_fn_group_banner 13 'notify.at:17' \
4005  "append notification" "                            "
4006at_xfail=no
4007(
4008  $as_echo "13. $at_setup_line: testing $at_desc ..."
4009  $at_traceon
4010
4011{ set +x
4012$as_echo "$at_srcdir/notify.at:18: cat \$spooldir/mbox1 > inbox"
4013at_fn_check_prepare_dynamic "cat $spooldir/mbox1 > inbox" "notify.at:18"
4014( $at_check_trace; cat $spooldir/mbox1 > inbox
4015) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4016at_status=$? at_failed=false
4017$at_check_filter
4018at_fn_diff_devnull "$at_stderr" || at_failed=:
4019at_fn_diff_devnull "$at_stdout" || at_failed=:
4020at_fn_check_status 0 $at_status "$at_srcdir/notify.at:18"
4021$at_failed && at_fn_log_failure
4022$at_traceon; }
4023
4024cat >msg <<'_ATEOF'
4025Received: (from alice@wonder.land)
4026	by wonder.land id 3304
4027	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4028Date: Mon, 29 Jul 2002 22:00:04 +0100
4029From: Alice  <alice@wonder.land>
4030Message-Id: <200207292200.3304@wonder.land>
4031To: March Hare  <hare@wonder.land>
4032Subject: Re: Invitation
4033Return-Path: alice@wonder.land
4034
4035Then it wasn't very civil of you to offer it
4036_ATEOF
4037
4038{ set +x
4039$as_echo "$at_srcdir/notify.at:32:
4040mbop -m inbox --notify append msg
4041"
4042at_fn_check_prepare_notrace 'an embedded newline' "notify.at:32"
4043( $at_check_trace;
4044mbop -m inbox --notify append msg
4045
4046) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4047at_status=$? at_failed=false
4048$at_check_filter
4049echo >>"$at_stderr"; $as_echo "mbop: new message: Alice  <alice@wonder.land> Re: Invitation
4050" | \
4051  $at_diff - "$at_stderr" || at_failed=:
4052echo >>"$at_stdout"; $as_echo "append: OK
4053" | \
4054  $at_diff - "$at_stdout" || at_failed=:
4055at_fn_check_status 0 $at_status "$at_srcdir/notify.at:32"
4056$at_failed && at_fn_log_failure
4057$at_traceon; }
4058
4059  set +x
4060  $at_times_p && times >"$at_times_file"
4061) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4062read at_status <"$at_status_file"
4063#AT_STOP_13
4064#AT_START_14
4065at_fn_group_banner 14 'rospool.at:17' \
4066  "read-only spool directory" "                      "
4067at_xfail=no
4068(
4069  $as_echo "14. $at_setup_line: testing $at_desc ..."
4070  $at_traceon
4071
4072
4073# Basically, this testcase is a copy of delete.at that is run over mailboxes
4074# located in a directory not writable to the current user.
4075#
4076# Obviously, it is useless when run with root privileges.
4077
4078{ set +x
4079$as_echo "$at_srcdir/rospool.at:24:
4080mkdir mailspool
4081cat >mailspool/inbox <<'_ATEOF'
4082From hare@wonder.land Mon Jul 29 22:00:08 2002
4083Received: (from hare@wonder.land)
4084	by wonder.land id 3301
4085	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4086Date: Mon, 29 Jul 2002 22:00:01 +0100
4087From: March Hare  <hare@wonder.land>
4088Message-Id: <200207292200.3301@wonder.land>
4089To: Alice  <alice@wonder.land>
4090Subject: Invitation
4091X-IMAPbase:                   10                    9
4092X-UID: 1
4093
4094Have some wine
4095
4096From alice@wonder.land Mon Jul 29 22:00:09 2002
4097Received: (from alice@wonder.land)
4098	by wonder.land id 3302
4099	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4100Date: Mon, 29 Jul 2002 22:00:02 +0100
4101From: Alice  <alice@wonder.land>
4102Message-Id: <200207292200.3302@wonder.land>
4103To: March Hare  <hare@wonder.land>
4104Subject: Re: Invitation
4105X-UID: 2
4106
4107I don't see any wine
4108
4109From hare@wonder.land Mon Jul 29 22:00:10 2002
4110Received: (from hare@wonder.land)
4111	by wonder.land id 3303
4112	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4113Date: Mon, 29 Jul 2002 22:00:03 +0100
4114From: March Hare  <hare@wonder.land>
4115Message-Id: <200207292200.3303@wonder.land>
4116To: Alice  <alice@wonder.land>
4117Subject: Re: Invitation
4118X-UID: 3
4119
4120There isn't any
4121
4122From alice@wonder.land Mon Jul 29 22:00:11 2002
4123Received: (from alice@wonder.land)
4124	by wonder.land id 3304
4125	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4126Date: Mon, 29 Jul 2002 22:00:04 +0100
4127From: Alice  <alice@wonder.land>
4128Message-Id: <200207292200.3304@wonder.land>
4129To: March Hare  <hare@wonder.land>
4130Subject: Re: Invitation
4131X-UID: 4
4132
4133Then it wasn't very civil of you to offer it
4134
4135From hare@wonder.land Mon Jul 29 22:00:12 2002
4136Received: (from hare@wonder.land)
4137	by wonder.land id 3305
4138	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
4139Date: Mon, 29 Jul 2002 22:00:05 +0100
4140From: March Hare  <hare@wonder.land>
4141Message-Id: <200207292200.3305@wonder.land>
4142To: Alice  <alice@wonder.land>
4143Subject: Re: Invitation
4144X-UID: 5
4145
4146It wasn't very civil of you to sit down without being invited
4147
4148From alice@wonder.land Mon Jul 29 22:00:13 2002
4149Received: (from alice@wonder.land)
4150	by wonder.land id 3306
4151	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4152Date: Mon, 29 Jul 2002 22:00:06 +0100
4153From: Alice  <alice@wonder.land>
4154Message-Id: <200207292200.3306@wonder.land>
4155To: March Hare  <hare@wonder.land>
4156Subject: Re: Invitation
4157X-UID: 6
4158
4159I didn't know it was YOUR table, it's laid for a
4160great many more than three.
4161
4162_ATEOF
4163
4164cp mailspool/inbox mailspool/inbox1
4165cp mailspool/inbox mailspool/inbox2
4166chmod -w mailspool
4167"
4168at_fn_check_prepare_notrace 'an embedded newline' "rospool.at:24"
4169( $at_check_trace;
4170mkdir mailspool
4171cat >mailspool/inbox <<'_ATEOF'
4172From hare@wonder.land Mon Jul 29 22:00:08 2002
4173Received: (from hare@wonder.land)
4174	by wonder.land id 3301
4175	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4176Date: Mon, 29 Jul 2002 22:00:01 +0100
4177From: March Hare  <hare@wonder.land>
4178Message-Id: <200207292200.3301@wonder.land>
4179To: Alice  <alice@wonder.land>
4180Subject: Invitation
4181X-IMAPbase:                   10                    9
4182X-UID: 1
4183
4184Have some wine
4185
4186From alice@wonder.land Mon Jul 29 22:00:09 2002
4187Received: (from alice@wonder.land)
4188	by wonder.land id 3302
4189	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4190Date: Mon, 29 Jul 2002 22:00:02 +0100
4191From: Alice  <alice@wonder.land>
4192Message-Id: <200207292200.3302@wonder.land>
4193To: March Hare  <hare@wonder.land>
4194Subject: Re: Invitation
4195X-UID: 2
4196
4197I don't see any wine
4198
4199From hare@wonder.land Mon Jul 29 22:00:10 2002
4200Received: (from hare@wonder.land)
4201	by wonder.land id 3303
4202	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4203Date: Mon, 29 Jul 2002 22:00:03 +0100
4204From: March Hare  <hare@wonder.land>
4205Message-Id: <200207292200.3303@wonder.land>
4206To: Alice  <alice@wonder.land>
4207Subject: Re: Invitation
4208X-UID: 3
4209
4210There isn't any
4211
4212From alice@wonder.land Mon Jul 29 22:00:11 2002
4213Received: (from alice@wonder.land)
4214	by wonder.land id 3304
4215	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4216Date: Mon, 29 Jul 2002 22:00:04 +0100
4217From: Alice  <alice@wonder.land>
4218Message-Id: <200207292200.3304@wonder.land>
4219To: March Hare  <hare@wonder.land>
4220Subject: Re: Invitation
4221X-UID: 4
4222
4223Then it wasn't very civil of you to offer it
4224
4225From hare@wonder.land Mon Jul 29 22:00:12 2002
4226Received: (from hare@wonder.land)
4227	by wonder.land id 3305
4228	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
4229Date: Mon, 29 Jul 2002 22:00:05 +0100
4230From: March Hare  <hare@wonder.land>
4231Message-Id: <200207292200.3305@wonder.land>
4232To: Alice  <alice@wonder.land>
4233Subject: Re: Invitation
4234X-UID: 5
4235
4236It wasn't very civil of you to sit down without being invited
4237
4238From alice@wonder.land Mon Jul 29 22:00:13 2002
4239Received: (from alice@wonder.land)
4240	by wonder.land id 3306
4241	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4242Date: Mon, 29 Jul 2002 22:00:06 +0100
4243From: Alice  <alice@wonder.land>
4244Message-Id: <200207292200.3306@wonder.land>
4245To: March Hare  <hare@wonder.land>
4246Subject: Re: Invitation
4247X-UID: 6
4248
4249I didn't know it was YOUR table, it's laid for a
4250great many more than three.
4251
4252_ATEOF
4253
4254cp mailspool/inbox mailspool/inbox1
4255cp mailspool/inbox mailspool/inbox2
4256chmod -w mailspool
4257
4258) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4259at_status=$? at_failed=false
4260$at_check_filter
4261at_fn_diff_devnull "$at_stderr" || at_failed=:
4262at_fn_diff_devnull "$at_stdout" || at_failed=:
4263at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:24"
4264$at_failed && at_fn_log_failure
4265$at_traceon; }
4266
4267
4268cat >commands <<'_ATEOF'
42693
4270set_deleted
4271expunge
4272count
4273# Message 4 becomes 3 after expunge. Re-select it.
42743
4275uid
4276headers
4277_ATEOF
4278
4279
4280{ set +x
4281$as_echo "$at_srcdir/rospool.at:124: mbop -m mailspool/inbox < commands"
4282at_fn_check_prepare_trace "rospool.at:124"
4283( $at_check_trace; mbop -m mailspool/inbox < commands
4284) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4285at_status=$? at_failed=false
4286$at_check_filter
4287at_fn_diff_devnull "$at_stderr" || at_failed=:
4288echo >>"$at_stdout"; $as_echo "3 current message
42893 set_deleted: OK
4290expunge: OK
4291count: 5
42923 current message
42933 uid: 4
42943 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4295Date:Mon, 29 Jul 2002 22:00:04 +0100
4296From:Alice  <alice@wonder.land>
4297Message-Id:<200207292200.3304@wonder.land>
4298To:March Hare  <hare@wonder.land>
4299Subject:Re: Invitation
4300X-UID:4
4301
4302" | \
4303  $at_diff - "$at_stdout" || at_failed=:
4304at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:124"
4305$at_failed && at_fn_log_failure
4306$at_traceon; }
4307
4308
4309cat >commands1 <<'_ATEOF'
43101
4311set_deleted
43122
4313set_deleted
43145
4315set_deleted
4316expunge
4317count
43181
4319uid
4320headers
43212
4322uid
4323headers
43243
4325uid
4326headers
4327_ATEOF
4328
4329
4330{ set +x
4331$as_echo "$at_srcdir/rospool.at:162: mbop -m mailspool/inbox1 < commands1|x_imapbase_normalize"
4332at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:162"
4333( $at_check_trace; mbop -m mailspool/inbox1 < commands1|x_imapbase_normalize
4334) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4335at_status=$? at_failed=false
4336$at_check_filter
4337at_fn_diff_devnull "$at_stderr" || at_failed=:
4338echo >>"$at_stdout"; $as_echo "1 current message
43391 set_deleted: OK
43402 current message
43412 set_deleted: OK
43425 current message
43435 set_deleted: OK
4344expunge: OK
4345count: 3
43461 current message
43471 uid: 3
43481 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4349Date:Mon, 29 Jul 2002 22:00:03 +0100
4350From:March Hare  <hare@wonder.land>
4351Message-Id:<200207292200.3303@wonder.land>
4352To:Alice  <alice@wonder.land>
4353Subject:Re: Invitation
4354X-IMAPbase:10 9
4355X-UID:3
4356
43572 current message
43582 uid: 4
43592 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4360Date:Mon, 29 Jul 2002 22:00:04 +0100
4361From:Alice  <alice@wonder.land>
4362Message-Id:<200207292200.3304@wonder.land>
4363To:March Hare  <hare@wonder.land>
4364Subject:Re: Invitation
4365X-UID:4
4366
43673 current message
43683 uid: 6
43693 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4370Date:Mon, 29 Jul 2002 22:00:06 +0100
4371From:Alice  <alice@wonder.land>
4372Message-Id:<200207292200.3306@wonder.land>
4373To:March Hare  <hare@wonder.land>
4374Subject:Re: Invitation
4375X-UID:6
4376
4377" | \
4378  $at_diff - "$at_stdout" || at_failed=:
4379at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:162"
4380$at_failed && at_fn_log_failure
4381$at_traceon; }
4382
4383
4384# ##
4385cat >commands1a <<'_ATEOF'
4386count
43871
4388uid
4389headers
43902
4391uid
4392headers
43933
4394uid
4395headers
4396_ATEOF
4397
4398
4399{ set +x
4400$as_echo "$at_srcdir/rospool.at:219: mbop -m mailspool/inbox1 < commands1a|x_imapbase_normalize"
4401at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:219"
4402( $at_check_trace; mbop -m mailspool/inbox1 < commands1a|x_imapbase_normalize
4403) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4404at_status=$? at_failed=false
4405$at_check_filter
4406at_fn_diff_devnull "$at_stderr" || at_failed=:
4407echo >>"$at_stdout"; $as_echo "count: 3
44081 current message
44091 uid: 3
44101 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4411Date:Mon, 29 Jul 2002 22:00:03 +0100
4412From:March Hare  <hare@wonder.land>
4413Message-Id:<200207292200.3303@wonder.land>
4414To:Alice  <alice@wonder.land>
4415Subject:Re: Invitation
4416X-IMAPbase:10 9
4417X-UID:3
4418
44192 current message
44202 uid: 4
44212 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4422Date:Mon, 29 Jul 2002 22:00:04 +0100
4423From:Alice  <alice@wonder.land>
4424Message-Id:<200207292200.3304@wonder.land>
4425To:March Hare  <hare@wonder.land>
4426Subject:Re: Invitation
4427X-UID:4
4428
44293 current message
44303 uid: 6
44313 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4432Date:Mon, 29 Jul 2002 22:00:06 +0100
4433From:Alice  <alice@wonder.land>
4434Message-Id:<200207292200.3306@wonder.land>
4435To:March Hare  <hare@wonder.land>
4436Subject:Re: Invitation
4437X-UID:6
4438
4439" | \
4440  $at_diff - "$at_stdout" || at_failed=:
4441at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:219"
4442$at_failed && at_fn_log_failure
4443$at_traceon; }
4444
4445
4446# ##
4447cat >commands2 <<'_ATEOF'
44481
4449set_deleted
44503
4451set_deleted
44525
4453set_deleted
4454expunge
4455count
44561
4457uid
4458headers
44592
4460uid
4461headers
44623
4463uid
4464headers
4465_ATEOF
4466
4467
4468{ set +x
4469$as_echo "$at_srcdir/rospool.at:276: mbop -m mailspool/inbox2 < commands2|x_imapbase_normalize"
4470at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:276"
4471( $at_check_trace; mbop -m mailspool/inbox2 < commands2|x_imapbase_normalize
4472) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4473at_status=$? at_failed=false
4474$at_check_filter
4475at_fn_diff_devnull "$at_stderr" || at_failed=:
4476echo >>"$at_stdout"; $as_echo "1 current message
44771 set_deleted: OK
44783 current message
44793 set_deleted: OK
44805 current message
44815 set_deleted: OK
4482expunge: OK
4483count: 3
44841 current message
44851 uid: 2
44861 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4487Date:Mon, 29 Jul 2002 22:00:02 +0100
4488From:Alice  <alice@wonder.land>
4489Message-Id:<200207292200.3302@wonder.land>
4490To:March Hare  <hare@wonder.land>
4491Subject:Re: Invitation
4492X-IMAPbase:10 9
4493X-UID:2
4494
44952 current message
44962 uid: 4
44972 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4498Date:Mon, 29 Jul 2002 22:00:04 +0100
4499From:Alice  <alice@wonder.land>
4500Message-Id:<200207292200.3304@wonder.land>
4501To:March Hare  <hare@wonder.land>
4502Subject:Re: Invitation
4503X-UID:4
4504
45053 current message
45063 uid: 6
45073 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4508Date:Mon, 29 Jul 2002 22:00:06 +0100
4509From:Alice  <alice@wonder.land>
4510Message-Id:<200207292200.3306@wonder.land>
4511To:March Hare  <hare@wonder.land>
4512Subject:Re: Invitation
4513X-UID:6
4514
4515" | \
4516  $at_diff - "$at_stdout" || at_failed=:
4517at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:276"
4518$at_failed && at_fn_log_failure
4519$at_traceon; }
4520
4521
4522cat >commands2a <<'_ATEOF'
4523count
45241
4525uid
4526headers
45272
4528uid
4529headers
45303
4531uid
4532headers
4533_ATEOF
4534
4535
4536{ set +x
4537$as_echo "$at_srcdir/rospool.at:332: mbop -m mailspool/inbox2 < commands2a|x_imapbase_normalize"
4538at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:332"
4539( $at_check_trace; mbop -m mailspool/inbox2 < commands2a|x_imapbase_normalize
4540) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4541at_status=$? at_failed=false
4542$at_check_filter
4543at_fn_diff_devnull "$at_stderr" || at_failed=:
4544echo >>"$at_stdout"; $as_echo "count: 3
45451 current message
45461 uid: 2
45471 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4548Date:Mon, 29 Jul 2002 22:00:02 +0100
4549From:Alice  <alice@wonder.land>
4550Message-Id:<200207292200.3302@wonder.land>
4551To:March Hare  <hare@wonder.land>
4552Subject:Re: Invitation
4553X-IMAPbase:10 9
4554X-UID:2
4555
45562 current message
45572 uid: 4
45582 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4559Date:Mon, 29 Jul 2002 22:00:04 +0100
4560From:Alice  <alice@wonder.land>
4561Message-Id:<200207292200.3304@wonder.land>
4562To:March Hare  <hare@wonder.land>
4563Subject:Re: Invitation
4564X-UID:4
4565
45663 current message
45673 uid: 6
45683 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4569Date:Mon, 29 Jul 2002 22:00:06 +0100
4570From:Alice  <alice@wonder.land>
4571Message-Id:<200207292200.3306@wonder.land>
4572To:March Hare  <hare@wonder.land>
4573Subject:Re: Invitation
4574X-UID:6
4575
4576" | \
4577  $at_diff - "$at_stdout" || at_failed=:
4578at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:332"
4579$at_failed && at_fn_log_failure
4580$at_traceon; }
4581
4582
4583  set +x
4584  $at_times_p && times >"$at_times_file"
4585) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4586read at_status <"$at_status_file"
4587#AT_STOP_14
4588