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;count.at:17;count;;
5942;env.at:17;env;;
5953;attr.at:17;attr;;
5964;recent.at:17;recent;;
5975;unseen.at:17;unseen;;
5986;header.at:17;header;;
5997;header.at:60;headers;;
6008;body.at:17;body;;
6019;uidvalidity.at:17;uidvalidity;;
60210;uid.at:17;uid;;
60311;qget.at:17;qget;;
60412;append.at:17;append;;
60513;append.at:98;append with uid;;
60614;append.at:193;append to empty mailbox;;
60715;append.at:236;append mode;;
60816;notify.at:17;append notification;;
60917;delete.at:17;delete;;
61018;uidnext.at:17;UID monotonicity;;
61119;autodetect.at:17;format detection;autodetect;
61220;setattr.at:17;set attributes;;
61321;rospool.at:17;read-only spool directory;;
614"
615# List of the all the test groups.
616at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
617
618# at_fn_validate_ranges NAME...
619# -----------------------------
620# Validate and normalize the test group number contained in each variable
621# NAME. Leading zeroes are treated as decimal.
622at_fn_validate_ranges ()
623{
624  for at_grp
625  do
626    eval at_value=\$$at_grp
627    if test $at_value -lt 1 || test $at_value -gt 21; then
628      $as_echo "invalid test group: $at_value" >&2
629      exit 1
630    fi
631    case $at_value in
632      0*) # We want to treat leading 0 as decimal, like expr and test, but
633	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
634	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
635	  # expr fork, but it is not worth the effort to determine if the
636	  # shell supports XSI when the user can just avoid leading 0.
637	  eval $at_grp='`expr $at_value + 0`' ;;
638    esac
639  done
640}
641
642at_prev=
643for at_option
644do
645  # If the previous option needs an argument, assign it.
646  if test -n "$at_prev"; then
647    at_option=$at_prev=$at_option
648    at_prev=
649  fi
650
651  case $at_option in
652  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
653  *)    at_optarg= ;;
654  esac
655
656  # Accept the important Cygnus configure options, so we can diagnose typos.
657
658  case $at_option in
659    --help | -h )
660	at_help_p=:
661	;;
662
663    --list | -l )
664	at_list_p=:
665	;;
666
667    --version | -V )
668	at_version_p=:
669	;;
670
671    --clean | -c )
672	at_clean=:
673	;;
674
675    --color )
676	at_color=always
677	;;
678    --color=* )
679	case $at_optarg in
680	no | never | none) at_color=never ;;
681	auto | tty | if-tty) at_color=auto ;;
682	always | yes | force) at_color=always ;;
683	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
684	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
685	esac
686	;;
687
688    --debug | -d )
689	at_debug_p=:
690	;;
691
692    --errexit | -e )
693	at_debug_p=:
694	at_errexit_p=:
695	;;
696
697    --verbose | -v )
698	at_verbose=; at_quiet=:
699	;;
700
701    --trace | -x )
702	at_traceon='set -x'
703	at_trace_echo=echo
704	at_check_filter_trace=at_fn_filter_trace
705	;;
706
707    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
708	at_fn_validate_ranges at_option
709	as_fn_append at_groups "$at_option$as_nl"
710	;;
711
712    # Ranges
713    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
714	at_range_start=`echo $at_option |tr -d X-`
715	at_fn_validate_ranges at_range_start
716	at_range=`$as_echo "$at_groups_all" | \
717	  sed -ne '/^'$at_range_start'$/,$p'`
718	as_fn_append at_groups "$at_range$as_nl"
719	;;
720
721    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
722	at_range_end=`echo $at_option |tr -d X-`
723	at_fn_validate_ranges at_range_end
724	at_range=`$as_echo "$at_groups_all" | \
725	  sed -ne '1,/^'$at_range_end'$/p'`
726	as_fn_append at_groups "$at_range$as_nl"
727	;;
728
729    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
730    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
731    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
732    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
733    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
734    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
735	at_range_start=`expr $at_option : '\(.*\)-'`
736	at_range_end=`expr $at_option : '.*-\(.*\)'`
737	if test $at_range_start -gt $at_range_end; then
738	  at_tmp=$at_range_end
739	  at_range_end=$at_range_start
740	  at_range_start=$at_tmp
741	fi
742	at_fn_validate_ranges at_range_start at_range_end
743	at_range=`$as_echo "$at_groups_all" | \
744	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
745	as_fn_append at_groups "$at_range$as_nl"
746	;;
747
748    # Directory selection.
749    --directory | -C )
750	at_prev=--directory
751	;;
752    --directory=* )
753	at_change_dir=:
754	at_dir=$at_optarg
755	if test x- = "x$at_dir" ; then
756	  at_dir=./-
757	fi
758	;;
759
760    # Parallel execution.
761    --jobs | -j )
762	at_jobs=0
763	;;
764    --jobs=* | -j[0-9]* )
765	if test -n "$at_optarg"; then
766	  at_jobs=$at_optarg
767	else
768	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
769	fi
770	case $at_jobs in *[!0-9]*)
771	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
772	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
773	esac
774	;;
775
776    # Keywords.
777    --keywords | -k )
778	at_prev=--keywords
779	;;
780    --keywords=* )
781	at_groups_selected=$at_help_all
782	at_save_IFS=$IFS
783	IFS=,
784	set X $at_optarg
785	shift
786	IFS=$at_save_IFS
787	for at_keyword
788	do
789	  at_invert=
790	  case $at_keyword in
791	  '!'*)
792	    at_invert="-v"
793	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
794	    ;;
795	  esac
796	  # It is on purpose that we match the test group titles too.
797	  at_groups_selected=`$as_echo "$at_groups_selected" |
798	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
799	done
800	# Smash the keywords.
801	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
802	as_fn_append at_groups "$at_groups_selected$as_nl"
803	;;
804    --recheck)
805	at_recheck=:
806	;;
807
808    *=*)
809	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
810	# Reject names that are not valid shell variable names.
811	case $at_envvar in
812	  '' | [0-9]* | *[!_$as_cr_alnum]* )
813	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
814	esac
815	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
816	# Export now, but save eval for later and for debug scripts.
817	export $at_envvar
818	as_fn_append at_debug_args " $at_envvar='$at_value'"
819	;;
820
821     *) $as_echo "$as_me: invalid option: $at_option" >&2
822	$as_echo "Try \`$0 --help' for more information." >&2
823	exit 1
824	;;
825  esac
826done
827
828# Verify our last option didn't require an argument
829if test -n "$at_prev"; then :
830  as_fn_error $? "\`$at_prev' requires an argument"
831fi
832
833# The file containing the suite.
834at_suite_log=$at_dir/$as_me.log
835
836# Selected test groups.
837if test -z "$at_groups$at_recheck"; then
838  at_groups=$at_groups_all
839else
840  if test -n "$at_recheck" && test -r "$at_suite_log"; then
841    at_oldfails=`sed -n '
842      /^Failed tests:$/,/^Skipped tests:$/{
843	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
844      }
845      /^Unexpected passes:$/,/^## Detailed failed tests/{
846	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
847      }
848      /^## Detailed failed tests/q
849      ' "$at_suite_log"`
850    as_fn_append at_groups "$at_oldfails$as_nl"
851  fi
852  # Sort the tests, removing duplicates.
853  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
854fi
855
856if test x"$at_color" = xalways \
857   || { test x"$at_color" = xauto && test -t 1; }; then
858  at_red=`printf '\033[0;31m'`
859  at_grn=`printf '\033[0;32m'`
860  at_lgn=`printf '\033[1;32m'`
861  at_blu=`printf '\033[1;34m'`
862  at_std=`printf '\033[m'`
863else
864  at_red= at_grn= at_lgn= at_blu= at_std=
865fi
866
867# Help message.
868if $at_help_p; then
869  cat <<_ATEOF || at_write_fail=1
870Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
871
872Run all the tests, or the selected TESTS, given by numeric ranges, and
873save a detailed log file.  Upon failure, create debugging scripts.
874
875Do not change environment variables directly.  Instead, set them via
876command line arguments.  Set \`AUTOTEST_PATH' to select the executables
877to exercise.  Each relative directory is expanded as build and source
878directories relative to the top level of this distribution.
879E.g., from within the build directory /tmp/foo-1.0, invoking this:
880
881  $ $0 AUTOTEST_PATH=bin
882
883is equivalent to the following, assuming the source directory is /src/foo-1.0:
884
885  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
886_ATEOF
887cat <<_ATEOF || at_write_fail=1
888
889Operation modes:
890  -h, --help     print the help message, then exit
891  -V, --version  print version number, then exit
892  -c, --clean    remove all the files this test suite might create and exit
893  -l, --list     describes all the tests, or the selected TESTS
894_ATEOF
895cat <<_ATEOF || at_write_fail=1
896
897Execution tuning:
898  -C, --directory=DIR
899                 change to directory DIR before starting
900      --color[=never|auto|always]
901                 enable colored test results on terminal, or always
902  -j, --jobs[=N]
903                 Allow N jobs at once; infinite jobs with no arg (default 1)
904  -k, --keywords=KEYWORDS
905                 select the tests matching all the comma-separated KEYWORDS
906                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
907      --recheck  select all tests that failed or passed unexpectedly last time
908  -e, --errexit  abort as soon as a test fails; implies --debug
909  -v, --verbose  force more detailed output
910                 default for debugging scripts
911  -d, --debug    inhibit clean up and top-level logging
912                 default for debugging scripts
913  -x, --trace    enable tests shell tracing
914_ATEOF
915cat <<_ATEOF || at_write_fail=1
916
917Report bugs to <bug-mailutils@gnu.org>.
918General help using GNU software: <http://www.gnu.org/gethelp/>.
919_ATEOF
920  exit $at_write_fail
921fi
922
923# List of tests.
924if $at_list_p; then
925  cat <<_ATEOF || at_write_fail=1
926GNU Mailutils 3.13 test suite test groups:
927
928 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
929      KEYWORDS
930
931_ATEOF
932  # Pass an empty line as separator between selected groups and help.
933  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
934    awk 'NF == 1 && FS != ";" {
935	   selected[$ 1] = 1
936	   next
937	 }
938	 /^$/ { FS = ";" }
939	 NF > 0 {
940	   if (selected[$ 1]) {
941	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
942	     if ($ 4) {
943	       lmax = 79
944	       indent = "     "
945	       line = indent
946	       len = length (line)
947	       n = split ($ 4, a, " ")
948	       for (i = 1; i <= n; i++) {
949		 l = length (a[i]) + 1
950		 if (i > 1 && len + l > lmax) {
951		   print line
952		   line = indent " " a[i]
953		   len = length (line)
954		 } else {
955		   line = line " " a[i]
956		   len += l
957		 }
958	       }
959	       if (n)
960		 print line
961	     }
962	   }
963	 }' || at_write_fail=1
964  exit $at_write_fail
965fi
966if $at_version_p; then
967  $as_echo "$as_me (GNU Mailutils 3.13)" &&
968  cat <<\_ATEOF || at_write_fail=1
969
970Copyright (C) 2012 Free Software Foundation, Inc.
971This test suite is free software; the Free Software Foundation gives
972unlimited permission to copy, distribute and modify it.
973_ATEOF
974  exit $at_write_fail
975fi
976
977# Should we print banners?  Yes if more than one test is run.
978case $at_groups in #(
979  *$as_nl* )
980      at_print_banners=: ;; #(
981  * ) at_print_banners=false ;;
982esac
983# Text for banner N, set to a single space once printed.
984
985# Take any -C into account.
986if $at_change_dir ; then
987  test x != "x$at_dir" && cd "$at_dir" \
988    || as_fn_error $? "unable to change directory"
989  at_dir=`pwd`
990fi
991
992# Load the config files for any default variable assignments.
993for at_file in atconfig atlocal
994do
995  test -r $at_file || continue
996  . ./$at_file || as_fn_error $? "invalid content: $at_file"
997done
998
999# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
1000: "${at_top_build_prefix=$at_top_builddir}"
1001
1002# Perform any assignments requested during argument parsing.
1003eval "$at_debug_args"
1004
1005# atconfig delivers names relative to the directory the test suite is
1006# in, but the groups themselves are run in testsuite-dir/group-dir.
1007if test -n "$at_top_srcdir"; then
1008  builddir=../..
1009  for at_dir_var in srcdir top_srcdir top_build_prefix
1010  do
1011    eval at_val=\$at_$at_dir_var
1012    case $at_val in
1013      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
1014      *) at_prefix=../../ ;;
1015    esac
1016    eval "$at_dir_var=\$at_prefix\$at_val"
1017  done
1018fi
1019
1020## -------------------- ##
1021## Directory structure. ##
1022## -------------------- ##
1023
1024# This is the set of directories and files used by this script
1025# (non-literals are capitalized):
1026#
1027# TESTSUITE         - the testsuite
1028# TESTSUITE.log     - summarizes the complete testsuite run
1029# TESTSUITE.dir/    - created during a run, remains after -d or failed test
1030# + at-groups/      - during a run: status of all groups in run
1031# | + NNN/          - during a run: meta-data about test group NNN
1032# | | + check-line  - location (source file and line) of current AT_CHECK
1033# | | + status      - exit status of current AT_CHECK
1034# | | + stdout      - stdout of current AT_CHECK
1035# | | + stder1      - stderr, including trace
1036# | | + stderr      - stderr, with trace filtered out
1037# | | + test-source - portion of testsuite that defines group
1038# | | + times       - timestamps for computing duration
1039# | | + pass        - created if group passed
1040# | | + xpass       - created if group xpassed
1041# | | + fail        - created if group failed
1042# | | + xfail       - created if group xfailed
1043# | | + skip        - created if group skipped
1044# + at-stop         - during a run: end the run if this file exists
1045# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
1046# + 0..NNN/         - created for each group NNN, remains after -d or failed test
1047# | + TESTSUITE.log - summarizes the group results
1048# | + ...           - files created during the group
1049
1050# The directory the whole suite works in.
1051# Should be absolute to let the user `cd' at will.
1052at_suite_dir=$at_dir/$as_me.dir
1053# The file containing the suite ($at_dir might have changed since earlier).
1054at_suite_log=$at_dir/$as_me.log
1055# The directory containing helper files per test group.
1056at_helper_dir=$at_suite_dir/at-groups
1057# Stop file: if it exists, do not start new jobs.
1058at_stop_file=$at_suite_dir/at-stop
1059# The fifo used for the job dispatcher.
1060at_job_fifo=$at_suite_dir/at-job-fifo
1061
1062if $at_clean; then
1063  test -d "$at_suite_dir" &&
1064    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1065  rm -f -r "$at_suite_dir" "$at_suite_log"
1066  exit $?
1067fi
1068
1069# Don't take risks: use only absolute directories in PATH.
1070#
1071# For stand-alone test suites (ie. atconfig was not found),
1072# AUTOTEST_PATH is relative to `.'.
1073#
1074# For embedded test suites, AUTOTEST_PATH is relative to the top level
1075# of the package.  Then expand it into build/src parts, since users
1076# may create executables in both places.
1077AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
1078at_path=
1079as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1080for as_dir in $AUTOTEST_PATH $PATH
1081do
1082  IFS=$as_save_IFS
1083  test -z "$as_dir" && as_dir=.
1084    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
1085case $as_dir in
1086  [\\/]* | ?:[\\/]* )
1087    as_fn_append at_path "$as_dir"
1088    ;;
1089  * )
1090    if test -z "$at_top_build_prefix"; then
1091      # Stand-alone test suite.
1092      as_fn_append at_path "$as_dir"
1093    else
1094      # Embedded test suite.
1095      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
1096      as_fn_append at_path "$at_top_srcdir/$as_dir"
1097    fi
1098    ;;
1099esac
1100  done
1101IFS=$as_save_IFS
1102
1103
1104# Now build and simplify PATH.
1105#
1106# There might be directories that don't exist, but don't redirect
1107# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
1108at_new_path=
1109as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1110for as_dir in $at_path
1111do
1112  IFS=$as_save_IFS
1113  test -z "$as_dir" && as_dir=.
1114    test -d "$as_dir" || continue
1115case $as_dir in
1116  [\\/]* | ?:[\\/]* ) ;;
1117  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
1118esac
1119case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
1120  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
1121  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
1122  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
1123esac
1124  done
1125IFS=$as_save_IFS
1126
1127PATH=$at_new_path
1128export PATH
1129
1130# Setting up the FDs.
1131
1132
1133
1134# 5 is the log file.  Not to be overwritten if `-d'.
1135if $at_debug_p; then
1136  at_suite_log=/dev/null
1137else
1138  : >"$at_suite_log"
1139fi
1140exec 5>>"$at_suite_log"
1141
1142# Banners and logs.
1143$as_echo "## ------------------------------ ##
1144## GNU Mailutils 3.13 test suite. ##
1145## ------------------------------ ##"
1146{
1147  $as_echo "## ------------------------------ ##
1148## GNU Mailutils 3.13 test suite. ##
1149## ------------------------------ ##"
1150  echo
1151
1152  $as_echo "$as_me: command line was:"
1153  $as_echo "  \$ $0 $at_cli_args"
1154  echo
1155
1156  # If ChangeLog exists, list a few lines in case it might help determining
1157  # the exact version.
1158  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
1159    $as_echo "## ---------- ##
1160## ChangeLog. ##
1161## ---------- ##"
1162    echo
1163    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
1164    echo
1165  fi
1166
1167  {
1168cat <<_ASUNAME
1169## --------- ##
1170## Platform. ##
1171## --------- ##
1172
1173hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
1174uname -m = `(uname -m) 2>/dev/null || echo unknown`
1175uname -r = `(uname -r) 2>/dev/null || echo unknown`
1176uname -s = `(uname -s) 2>/dev/null || echo unknown`
1177uname -v = `(uname -v) 2>/dev/null || echo unknown`
1178
1179/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1180/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
1181
1182/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
1183/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
1184/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1185/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
1186/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
1187/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
1188/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
1189
1190_ASUNAME
1191
1192as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1193for as_dir in $PATH
1194do
1195  IFS=$as_save_IFS
1196  test -z "$as_dir" && as_dir=.
1197    $as_echo "PATH: $as_dir"
1198  done
1199IFS=$as_save_IFS
1200
1201}
1202  echo
1203
1204  # Contents of the config files.
1205  for at_file in atconfig atlocal
1206  do
1207    test -r $at_file || continue
1208    $as_echo "$as_me: $at_file:"
1209    sed 's/^/| /' $at_file
1210    echo
1211  done
1212} >&5
1213
1214# This setting is needed on FreeBSD to ensure the LD_LIBRARY_PATH overrides
1215# the DT_RPATH tag in ELF header.  See
1216# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27510
1217# for details.
1218LD_LIBRARY_PATH_RPATH=y
1219export LD_LIBRARY_PATH_RPATH
1220
1221
1222## ------------------------- ##
1223## Autotest shell functions. ##
1224## ------------------------- ##
1225
1226# at_fn_banner NUMBER
1227# -------------------
1228# Output banner NUMBER, provided the testsuite is running multiple groups and
1229# this particular banner has not yet been printed.
1230at_fn_banner ()
1231{
1232  $at_print_banners || return 0
1233  eval at_banner_text=\$at_banner_text_$1
1234  test "x$at_banner_text" = "x " && return 0
1235  eval "at_banner_text_$1=\" \""
1236  if test -z "$at_banner_text"; then
1237    $at_first || echo
1238  else
1239    $as_echo "$as_nl$at_banner_text$as_nl"
1240  fi
1241} # at_fn_banner
1242
1243# at_fn_check_prepare_notrace REASON LINE
1244# ---------------------------------------
1245# Perform AT_CHECK preparations for the command at LINE for an untraceable
1246# command; REASON is the reason for disabling tracing.
1247at_fn_check_prepare_notrace ()
1248{
1249  $at_trace_echo "Not enabling shell tracing (command contains $1)"
1250  $as_echo "$2" >"$at_check_line_file"
1251  at_check_trace=: at_check_filter=:
1252  : >"$at_stdout"; : >"$at_stderr"
1253}
1254
1255# at_fn_check_prepare_trace LINE
1256# ------------------------------
1257# Perform AT_CHECK preparations for the command at LINE for a traceable
1258# command.
1259at_fn_check_prepare_trace ()
1260{
1261  $as_echo "$1" >"$at_check_line_file"
1262  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
1263  : >"$at_stdout"; : >"$at_stderr"
1264}
1265
1266# at_fn_check_prepare_dynamic COMMAND LINE
1267# ----------------------------------------
1268# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
1269# preparation function.
1270at_fn_check_prepare_dynamic ()
1271{
1272  case $1 in
1273    *$as_nl*)
1274      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
1275    *)
1276      at_fn_check_prepare_trace "$2" ;;
1277  esac
1278}
1279
1280# at_fn_filter_trace
1281# ------------------
1282# Remove the lines in the file "$at_stderr" generated by "set -x" and print
1283# them to stderr.
1284at_fn_filter_trace ()
1285{
1286  mv "$at_stderr" "$at_stder1"
1287  grep '^ *+' "$at_stder1" >&2
1288  grep -v '^ *+' "$at_stder1" >"$at_stderr"
1289}
1290
1291# at_fn_log_failure FILE-LIST
1292# ---------------------------
1293# Copy the files in the list on stdout with a "> " prefix, and exit the shell
1294# with a failure exit code.
1295at_fn_log_failure ()
1296{
1297  for file
1298    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
1299  echo 1 > "$at_status_file"
1300  exit 1
1301}
1302
1303# at_fn_check_skip EXIT-CODE LINE
1304# -------------------------------
1305# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
1306# the test group subshell with that same exit code. Use LINE in any report
1307# about test failure.
1308at_fn_check_skip ()
1309{
1310  case $1 in
1311    99) echo 99 > "$at_status_file"; at_failed=:
1312	$as_echo "$2: hard failure"; exit 99;;
1313    77) echo 77 > "$at_status_file"; exit 77;;
1314  esac
1315}
1316
1317# at_fn_check_status EXPECTED EXIT-CODE LINE
1318# ------------------------------------------
1319# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
1320# Otherwise, if it is 77 or 99, exit the test group subshell with that same
1321# exit code; if it is anything else print an error message referring to LINE,
1322# and fail the test.
1323at_fn_check_status ()
1324{
1325  case $2 in
1326    $1 ) ;;
1327    77) echo 77 > "$at_status_file"; exit 77;;
1328    99) echo 99 > "$at_status_file"; at_failed=:
1329	$as_echo "$3: hard failure"; exit 99;;
1330    *) $as_echo "$3: exit code was $2, expected $1"
1331      at_failed=:;;
1332  esac
1333}
1334
1335# at_fn_diff_devnull FILE
1336# -----------------------
1337# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
1338# invocations.
1339at_fn_diff_devnull ()
1340{
1341  test -s "$1" || return 0
1342  $at_diff "$at_devnull" "$1"
1343}
1344
1345# at_fn_test NUMBER
1346# -----------------
1347# Parse out test NUMBER from the tail of this file.
1348at_fn_test ()
1349{
1350  eval at_sed=\$at_sed$1
1351  sed "$at_sed" "$at_myself" > "$at_test_source"
1352}
1353
1354# at_fn_create_debugging_script
1355# -----------------------------
1356# Create the debugging script $at_group_dir/run which will reproduce the
1357# current test group.
1358at_fn_create_debugging_script ()
1359{
1360  {
1361    echo "#! /bin/sh" &&
1362    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
1363    $as_echo "cd '$at_dir'" &&
1364    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
1365    echo 'exit 1'
1366  } >"$at_group_dir/run" &&
1367  chmod +x "$at_group_dir/run"
1368}
1369
1370## -------------------------------- ##
1371## End of autotest shell functions. ##
1372## -------------------------------- ##
1373{
1374  $as_echo "## ---------------- ##
1375## Tested programs. ##
1376## ---------------- ##"
1377  echo
1378} >&5
1379
1380# Report what programs are being tested.
1381for at_program in : $at_tested
1382do
1383  test "$at_program" = : && continue
1384  case $at_program in
1385    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
1386    * )
1387    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1388for as_dir in $PATH
1389do
1390  IFS=$as_save_IFS
1391  test -z "$as_dir" && as_dir=.
1392    test -f "$as_dir/$at_program" && break
1393  done
1394IFS=$as_save_IFS
1395
1396    at_program_=$as_dir/$at_program ;;
1397  esac
1398  if test -f "$at_program_"; then
1399    {
1400      $as_echo "$at_srcdir/testsuite.at:48: $at_program_ --version"
1401      "$at_program_" --version </dev/null
1402      echo
1403    } >&5 2>&1
1404  else
1405    as_fn_error $? "cannot find $at_program" "$LINENO" 5
1406  fi
1407done
1408
1409{
1410  $as_echo "## ------------------ ##
1411## Running the tests. ##
1412## ------------------ ##"
1413} >&5
1414
1415at_start_date=`date`
1416at_start_time=`date +%s 2>/dev/null`
1417$as_echo "$as_me: starting at: $at_start_date" >&5
1418
1419# Create the master directory if it doesn't already exist.
1420as_dir="$at_suite_dir"; as_fn_mkdir_p ||
1421  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
1422
1423# Can we diff with `/dev/null'?  DU 5.0 refuses.
1424if diff /dev/null /dev/null >/dev/null 2>&1; then
1425  at_devnull=/dev/null
1426else
1427  at_devnull=$at_suite_dir/devnull
1428  >"$at_devnull"
1429fi
1430
1431# Use `diff -u' when possible.
1432if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
1433then
1434  at_diff='diff -u'
1435else
1436  at_diff=diff
1437fi
1438
1439# Get the last needed group.
1440for at_group in : $at_groups; do :; done
1441
1442# Extract the start and end lines of each test group at the tail
1443# of this file
1444awk '
1445BEGIN { FS="" }
1446/^#AT_START_/ {
1447  start = NR
1448}
1449/^#AT_STOP_/ {
1450  test = substr ($ 0, 10)
1451  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
1452  if (test == "'"$at_group"'") exit
1453}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
1454. "$at_suite_dir/at-source-lines" ||
1455  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
1456rm -f "$at_suite_dir/at-source-lines"
1457
1458# Set number of jobs for `-j'; avoid more jobs than test groups.
1459set X $at_groups; shift; at_max_jobs=$#
1460if test $at_max_jobs -eq 0; then
1461  at_jobs=1
1462fi
1463if test $at_jobs -ne 1 &&
1464   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
1465  at_jobs=$at_max_jobs
1466fi
1467
1468# If parallel mode, don't output banners, don't split summary lines.
1469if test $at_jobs -ne 1; then
1470  at_print_banners=false
1471  at_quiet=:
1472fi
1473
1474# Set up helper dirs.
1475rm -rf "$at_helper_dir" &&
1476mkdir "$at_helper_dir" &&
1477cd "$at_helper_dir" &&
1478{ test -z "$at_groups" || mkdir $at_groups; } ||
1479as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
1480
1481# Functions for running a test group.  We leave the actual
1482# test group execution outside of a shell function in order
1483# to avoid hitting zsh 4.x exit status bugs.
1484
1485# at_fn_group_prepare
1486# -------------------
1487# Prepare for running a test group.
1488at_fn_group_prepare ()
1489{
1490  # The directory for additional per-group helper files.
1491  at_job_dir=$at_helper_dir/$at_group
1492  # The file containing the location of the last AT_CHECK.
1493  at_check_line_file=$at_job_dir/check-line
1494  # The file containing the exit status of the last command.
1495  at_status_file=$at_job_dir/status
1496  # The files containing the output of the tested commands.
1497  at_stdout=$at_job_dir/stdout
1498  at_stder1=$at_job_dir/stder1
1499  at_stderr=$at_job_dir/stderr
1500  # The file containing the code for a test group.
1501  at_test_source=$at_job_dir/test-source
1502  # The file containing dates.
1503  at_times_file=$at_job_dir/times
1504
1505  # Be sure to come back to the top test directory.
1506  cd "$at_suite_dir"
1507
1508  # Clearly separate the test groups when verbose.
1509  $at_first || $at_verbose echo
1510
1511  at_group_normalized=$at_group
1512
1513  eval 'while :; do
1514    case $at_group_normalized in #(
1515    '"$at_format"'*) break;;
1516    esac
1517    at_group_normalized=0$at_group_normalized
1518  done'
1519
1520
1521  # Create a fresh directory for the next test group, and enter.
1522  # If one already exists, the user may have invoked ./run from
1523  # within that directory; we remove the contents, but not the
1524  # directory itself, so that we aren't pulling the rug out from
1525  # under the shell's notion of the current directory.
1526  at_group_dir=$at_suite_dir/$at_group_normalized
1527  at_group_log=$at_group_dir/$as_me.log
1528  if test -d "$at_group_dir"; then
1529  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
1530  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
1531fi ||
1532    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
1533$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
1534  # Be tolerant if the above `rm' was not able to remove the directory.
1535  as_dir="$at_group_dir"; as_fn_mkdir_p
1536
1537  echo 0 > "$at_status_file"
1538
1539  # In verbose mode, append to the log file *and* show on
1540  # the standard output; in quiet mode only write to the log.
1541  if test -z "$at_verbose"; then
1542    at_tee_pipe='tee -a "$at_group_log"'
1543  else
1544    at_tee_pipe='cat >> "$at_group_log"'
1545  fi
1546}
1547
1548# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
1549# -------------------------------------------------
1550# Declare the test group ORDINAL, located at LINE with group description DESC,
1551# and residing under BANNER. Use PAD to align the status column.
1552at_fn_group_banner ()
1553{
1554  at_setup_line="$2"
1555  test -n "$5" && at_fn_banner $5
1556  at_desc="$3"
1557  case $1 in
1558    [0-9])      at_desc_line="  $1: ";;
1559    [0-9][0-9]) at_desc_line=" $1: " ;;
1560    *)          at_desc_line="$1: "  ;;
1561  esac
1562  as_fn_append at_desc_line "$3$4"
1563  $at_quiet $as_echo_n "$at_desc_line"
1564  echo "#                             -*- compilation -*-" >> "$at_group_log"
1565}
1566
1567# at_fn_group_postprocess
1568# -----------------------
1569# Perform cleanup after running a test group.
1570at_fn_group_postprocess ()
1571{
1572  # Be sure to come back to the suite directory, in particular
1573  # since below we might `rm' the group directory we are in currently.
1574  cd "$at_suite_dir"
1575
1576  if test ! -f "$at_check_line_file"; then
1577    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
1578      A failure happened in a test group before any test could be
1579      run. This means that test suite is improperly designed.  Please
1580      report this failure to <bug-mailutils@gnu.org>.
1581_ATEOF
1582    $as_echo "$at_setup_line" >"$at_check_line_file"
1583    at_status=99
1584  fi
1585  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
1586  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
1587  case $at_xfail:$at_status in
1588    yes:0)
1589	at_msg="UNEXPECTED PASS"
1590	at_res=xpass
1591	at_errexit=$at_errexit_p
1592	at_color=$at_red
1593	;;
1594    no:0)
1595	at_msg="ok"
1596	at_res=pass
1597	at_errexit=false
1598	at_color=$at_grn
1599	;;
1600    *:77)
1601	at_msg='skipped ('`cat "$at_check_line_file"`')'
1602	at_res=skip
1603	at_errexit=false
1604	at_color=$at_blu
1605	;;
1606    no:* | *:99)
1607	at_msg='FAILED ('`cat "$at_check_line_file"`')'
1608	at_res=fail
1609	at_errexit=$at_errexit_p
1610	at_color=$at_red
1611	;;
1612    yes:*)
1613	at_msg='expected failure ('`cat "$at_check_line_file"`')'
1614	at_res=xfail
1615	at_errexit=false
1616	at_color=$at_lgn
1617	;;
1618  esac
1619  echo "$at_res" > "$at_job_dir/$at_res"
1620  # In parallel mode, output the summary line only afterwards.
1621  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
1622    $as_echo "$at_desc_line $at_color$at_msg$at_std"
1623  else
1624    # Make sure there is a separator even with long titles.
1625    $as_echo " $at_color$at_msg$at_std"
1626  fi
1627  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
1628  case $at_status in
1629    0|77)
1630      # $at_times_file is only available if the group succeeded.
1631      # We're not including the group log, so the success message
1632      # is written in the global log separately.  But we also
1633      # write to the group log in case they're using -d.
1634      if test -f "$at_times_file"; then
1635	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
1636	rm -f "$at_times_file"
1637      fi
1638      $as_echo "$at_log_msg" >> "$at_group_log"
1639      $as_echo "$at_log_msg" >&5
1640
1641      # Cleanup the group directory, unless the user wants the files
1642      # or the success was unexpected.
1643      if $at_debug_p || test $at_res = xpass; then
1644	at_fn_create_debugging_script
1645	if test $at_res = xpass && $at_errexit; then
1646	  echo stop > "$at_stop_file"
1647	fi
1648      else
1649	if test -d "$at_group_dir"; then
1650	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
1651	  rm -fr "$at_group_dir"
1652	fi
1653	rm -f "$at_test_source"
1654      fi
1655      ;;
1656    *)
1657      # Upon failure, include the log into the testsuite's global
1658      # log.  The failure message is written in the group log.  It
1659      # is later included in the global log.
1660      $as_echo "$at_log_msg" >> "$at_group_log"
1661
1662      # Upon failure, keep the group directory for autopsy, and create
1663      # the debugging script.  With -e, do not start any further tests.
1664      at_fn_create_debugging_script
1665      if $at_errexit; then
1666	echo stop > "$at_stop_file"
1667      fi
1668      ;;
1669  esac
1670}
1671
1672
1673## ------------ ##
1674## Driver loop. ##
1675## ------------ ##
1676
1677
1678if (set -m && set +m && set +b) >/dev/null 2>&1; then
1679  set +b
1680  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
1681else
1682  at_job_control_on=: at_job_control_off=: at_job_group=
1683fi
1684
1685for at_signal in 1 2 15; do
1686  trap 'set +x; set +e
1687	$at_job_control_off
1688	at_signal='"$at_signal"'
1689	echo stop > "$at_stop_file"
1690	trap "" $at_signal
1691	at_pgids=
1692	for at_pgid in `jobs -p 2>/dev/null`; do
1693	  at_pgids="$at_pgids $at_job_group$at_pgid"
1694	done
1695	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
1696	wait
1697	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
1698	  echo >&2
1699	fi
1700	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
1701	set x $at_signame
1702	test 0 -gt 2 && at_signame=$at_signal
1703	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
1704$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
1705	as_fn_arith 128 + $at_signal && exit_status=$as_val
1706	as_fn_exit $exit_status' $at_signal
1707done
1708
1709rm -f "$at_stop_file"
1710at_first=:
1711
1712if test $at_jobs -ne 1 &&
1713     rm -f "$at_job_fifo" &&
1714     test -n "$at_job_group" &&
1715     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
1716then
1717  # FIFO job dispatcher.
1718
1719  trap 'at_pids=
1720	for at_pid in `jobs -p`; do
1721	  at_pids="$at_pids $at_job_group$at_pid"
1722	done
1723	if test -n "$at_pids"; then
1724	  at_sig=TSTP
1725	  test "${TMOUT+set}" = set && at_sig=STOP
1726	  kill -$at_sig $at_pids 2>/dev/null
1727	fi
1728	kill -STOP $$
1729	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
1730
1731  echo
1732  # Turn jobs into a list of numbers, starting from 1.
1733  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
1734
1735  set X $at_joblist
1736  shift
1737  for at_group in $at_groups; do
1738    $at_job_control_on 2>/dev/null
1739    (
1740      # Start one test group.
1741      $at_job_control_off
1742      if $at_first; then
1743	exec 7>"$at_job_fifo"
1744      else
1745	exec 6<&-
1746      fi
1747      trap 'set +x; set +e
1748	    trap "" PIPE
1749	    echo stop > "$at_stop_file"
1750	    echo >&7
1751	    as_fn_exit 141' PIPE
1752      at_fn_group_prepare
1753      if cd "$at_group_dir" &&
1754	 at_fn_test $at_group &&
1755	 . "$at_test_source"
1756      then :; else
1757	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1758$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1759	at_failed=:
1760      fi
1761      at_fn_group_postprocess
1762      echo >&7
1763    ) &
1764    $at_job_control_off
1765    if $at_first; then
1766      at_first=false
1767      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
1768    fi
1769    shift # Consume one token.
1770    if test $# -gt 0; then :; else
1771      read at_token <&6 || break
1772      set x $*
1773    fi
1774    test -f "$at_stop_file" && break
1775  done
1776  exec 7>&-
1777  # Read back the remaining ($at_jobs - 1) tokens.
1778  set X $at_joblist
1779  shift
1780  if test $# -gt 0; then
1781    shift
1782    for at_job
1783    do
1784      read at_token
1785    done <&6
1786  fi
1787  exec 6<&-
1788  wait
1789else
1790  # Run serially, avoid forks and other potential surprises.
1791  for at_group in $at_groups; do
1792    at_fn_group_prepare
1793    if cd "$at_group_dir" &&
1794       at_fn_test $at_group &&
1795       . "$at_test_source"; then :; else
1796      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
1797$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
1798      at_failed=:
1799    fi
1800    at_fn_group_postprocess
1801    test -f "$at_stop_file" && break
1802    at_first=false
1803  done
1804fi
1805
1806# Wrap up the test suite with summary statistics.
1807cd "$at_helper_dir"
1808
1809# Use ?..???? when the list must remain sorted, the faster * otherwise.
1810at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
1811at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
1812at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
1813at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
1814		 echo $f; done | sed '/?/d; s,/xpass,,'`
1815at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
1816		echo $f; done | sed '/?/d; s,/fail,,'`
1817
1818set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
1819shift; at_group_count=$#
1820set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
1821set X $at_xfail_list; shift; at_xfail_count=$#
1822set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
1823set X $at_skip_list; shift; at_skip_count=$#
1824
1825as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
1826as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
1827as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
1828
1829# Back to the top directory.
1830cd "$at_dir"
1831rm -rf "$at_helper_dir"
1832
1833# Compute the duration of the suite.
1834at_stop_date=`date`
1835at_stop_time=`date +%s 2>/dev/null`
1836$as_echo "$as_me: ending at: $at_stop_date" >&5
1837case $at_start_time,$at_stop_time in
1838  [0-9]*,[0-9]*)
1839    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
1840    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
1841    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
1842    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
1843    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
1844    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
1845    $as_echo "$as_me: test suite duration: $at_duration" >&5
1846    ;;
1847esac
1848
1849echo
1850$as_echo "## ------------- ##
1851## Test results. ##
1852## ------------- ##"
1853echo
1854{
1855  echo
1856  $as_echo "## ------------- ##
1857## Test results. ##
1858## ------------- ##"
1859  echo
1860} >&5
1861
1862if test $at_run_count = 1; then
1863  at_result="1 test"
1864  at_were=was
1865else
1866  at_result="$at_run_count tests"
1867  at_were=were
1868fi
1869if $at_errexit_p && test $at_unexpected_count != 0; then
1870  if test $at_xpass_count = 1; then
1871    at_result="$at_result $at_were run, one passed"
1872  else
1873    at_result="$at_result $at_were run, one failed"
1874  fi
1875  at_result="$at_result unexpectedly and inhibited subsequent tests."
1876  at_color=$at_red
1877else
1878  # Don't you just love exponential explosion of the number of cases?
1879  at_color=$at_red
1880  case $at_xpass_count:$at_fail_count:$at_xfail_count in
1881    # So far, so good.
1882    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
1883    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
1884
1885    # Some unexpected failures
1886    0:*:0) at_result="$at_result $at_were run,
1887$at_fail_count failed unexpectedly." ;;
1888
1889    # Some failures, both expected and unexpected
1890    0:*:1) at_result="$at_result $at_were run,
1891$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1892    0:*:*) at_result="$at_result $at_were run,
1893$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1894
1895    # No unexpected failures, but some xpasses
1896    *:0:*) at_result="$at_result $at_were run,
1897$at_xpass_count passed unexpectedly." ;;
1898
1899    # No expected failures, but failures and xpasses
1900    *:1:0) at_result="$at_result $at_were run,
1901$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
1902    *:*:0) at_result="$at_result $at_were run,
1903$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
1904
1905    # All of them.
1906    *:*:1) at_result="$at_result $at_were run,
1907$at_xpass_count passed unexpectedly,
1908$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
1909    *:*:*) at_result="$at_result $at_were run,
1910$at_xpass_count passed unexpectedly,
1911$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
1912  esac
1913
1914  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
1915    at_result="All $at_result"
1916  fi
1917fi
1918
1919# Now put skips in the mix.
1920case $at_skip_count in
1921  0) ;;
1922  1) at_result="$at_result
19231 test was skipped." ;;
1924  *) at_result="$at_result
1925$at_skip_count tests were skipped." ;;
1926esac
1927
1928if test $at_unexpected_count = 0; then
1929  echo "$at_color$at_result$at_std"
1930  echo "$at_result" >&5
1931else
1932  echo "${at_color}ERROR: $at_result$at_std" >&2
1933  echo "ERROR: $at_result" >&5
1934  {
1935    echo
1936    $as_echo "## ------------------------ ##
1937## Summary of the failures. ##
1938## ------------------------ ##"
1939
1940    # Summary of failed and skipped tests.
1941    if test $at_fail_count != 0; then
1942      echo "Failed tests:"
1943      $SHELL "$at_myself" $at_fail_list --list
1944      echo
1945    fi
1946    if test $at_skip_count != 0; then
1947      echo "Skipped tests:"
1948      $SHELL "$at_myself" $at_skip_list --list
1949      echo
1950    fi
1951    if test $at_xpass_count != 0; then
1952      echo "Unexpected passes:"
1953      $SHELL "$at_myself" $at_xpass_list --list
1954      echo
1955    fi
1956    if test $at_fail_count != 0; then
1957      $as_echo "## ---------------------- ##
1958## Detailed failed tests. ##
1959## ---------------------- ##"
1960      echo
1961      for at_group in $at_fail_list
1962      do
1963	at_group_normalized=$at_group
1964
1965  eval 'while :; do
1966    case $at_group_normalized in #(
1967    '"$at_format"'*) break;;
1968    esac
1969    at_group_normalized=0$at_group_normalized
1970  done'
1971
1972	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
1973	echo
1974      done
1975      echo
1976    fi
1977    if test -n "$at_top_srcdir"; then
1978      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1979## ${at_top_build_prefix}config.log ##
1980_ASBOX
1981      sed 's/^/| /' ${at_top_build_prefix}config.log
1982      echo
1983    fi
1984  } >&5
1985
1986  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
1987## $as_me.log was created. ##
1988_ASBOX
1989
1990  echo
1991  if $at_debug_p; then
1992    at_msg='per-test log files'
1993  else
1994    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
1995  fi
1996  $as_echo "Please send $at_msg and all information you think might help:
1997
1998   To: <bug-mailutils@gnu.org>
1999   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}
2000
2001You may investigate any problem if you feel able to do so, in which
2002case the test suite provides a good starting point.  Its output may
2003be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
2004"
2005  exit 1
2006fi
2007
2008exit 0
2009
2010## ------------- ##
2011## Actual tests. ##
2012## ------------- ##
2013#AT_START_1
2014at_fn_group_banner 1 'count.at:17' \
2015  "count" "                                          "
2016at_xfail=no
2017(
2018  $as_echo "1. $at_setup_line: testing $at_desc ..."
2019  $at_traceon
2020
2021{ set +x
2022$as_echo "$at_srcdir/count.at:17: cat >dmbx <<'_ATEOF'
2023Received: (from hare@wonder.land)
2024	by wonder.land id 3301
2025	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2026Date: Mon, 29 Jul 2002 22:00:01 +0100
2027From: March Hare  <hare@wonder.land>
2028Message-Id: <200207292200.3301@wonder.land>
2029To: Alice  <alice@wonder.land>
2030Subject: Invitation
2031X-IMAPbase: 0 1
2032Return-Path: hare@wonder.land
2033
2034Have some wine
2035.
2036Received: (from alice@wonder.land)
2037	by wonder.land id 3302
2038	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2039Date: Mon, 29 Jul 2002 22:00:02 +0100
2040From: Alice  <alice@wonder.land>
2041Message-Id: <200207292200.3302@wonder.land>
2042To: March Hare  <hare@wonder.land>
2043Subject: Re: Invitation
2044Return-Path: alice@wonder.land
2045
2046I don't see any wine
2047.
2048Received: (from hare@wonder.land)
2049	by wonder.land id 3303
2050	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2051Date: Mon, 29 Jul 2002 22:00:03 +0100
2052From: March Hare  <hare@wonder.land>
2053Message-Id: <200207292200.3303@wonder.land>
2054To: Alice  <alice@wonder.land>
2055Subject: Re: Invitation
2056Return-Path: hare@wonder.land
2057
2058There isn't any
2059.
2060_ATEOF
2061
2062MAIL=./dmbx
2063export MAIL
2064mbop count
2065"
2066at_fn_check_prepare_notrace 'an embedded newline' "count.at:17"
2067( $at_check_trace; cat >dmbx <<'_ATEOF'
2068Received: (from hare@wonder.land)
2069	by wonder.land id 3301
2070	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2071Date: Mon, 29 Jul 2002 22:00:01 +0100
2072From: March Hare  <hare@wonder.land>
2073Message-Id: <200207292200.3301@wonder.land>
2074To: Alice  <alice@wonder.land>
2075Subject: Invitation
2076X-IMAPbase: 0 1
2077Return-Path: hare@wonder.land
2078
2079Have some wine
2080.
2081Received: (from alice@wonder.land)
2082	by wonder.land id 3302
2083	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2084Date: Mon, 29 Jul 2002 22:00:02 +0100
2085From: Alice  <alice@wonder.land>
2086Message-Id: <200207292200.3302@wonder.land>
2087To: March Hare  <hare@wonder.land>
2088Subject: Re: Invitation
2089Return-Path: alice@wonder.land
2090
2091I don't see any wine
2092.
2093Received: (from hare@wonder.land)
2094	by wonder.land id 3303
2095	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2096Date: Mon, 29 Jul 2002 22:00:03 +0100
2097From: March Hare  <hare@wonder.land>
2098Message-Id: <200207292200.3303@wonder.land>
2099To: Alice  <alice@wonder.land>
2100Subject: Re: Invitation
2101Return-Path: hare@wonder.land
2102
2103There isn't any
2104.
2105_ATEOF
2106
2107MAIL=./dmbx
2108export MAIL
2109mbop count
2110
2111) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2112at_status=$? at_failed=false
2113$at_check_filter
2114at_fn_diff_devnull "$at_stderr" || at_failed=:
2115echo >>"$at_stdout"; $as_echo "count: 3
2116" | \
2117  $at_diff - "$at_stdout" || at_failed=:
2118at_fn_check_status 0 $at_status "$at_srcdir/count.at:17"
2119$at_failed && at_fn_log_failure
2120$at_traceon; }
2121
2122  set +x
2123  $at_times_p && times >"$at_times_file"
2124) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2125read at_status <"$at_status_file"
2126#AT_STOP_1
2127#AT_START_2
2128at_fn_group_banner 2 'env.at:17' \
2129  "env" "                                            "
2130at_xfail=no
2131(
2132  $as_echo "2. $at_setup_line: testing $at_desc ..."
2133  $at_traceon
2134
2135{ set +x
2136$as_echo "$at_srcdir/env.at:17: cat >dmbx <<'_ATEOF'
2137Received: (from hare@wonder.land)
2138	by wonder.land id 3301
2139	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2140Date: Mon, 29 Jul 2002 22:00:01 +0100
2141From: March Hare  <hare@wonder.land>
2142Message-Id: <200207292200.3301@wonder.land>
2143To: Alice  <alice@wonder.land>
2144Subject: Invitation
2145X-IMAPbase: 0 1
2146Return-Path: hare@example.com
2147
2148Have some wine
2149.
2150_ATEOF
2151
2152cat >input <<'_ATEOF'
21531
2154env_date
2155env_sender
2156_ATEOF
2157
2158
2159MAIL=./dmbx
2160export MAIL
2161mbop < input
2162
2163"
2164at_fn_check_prepare_notrace 'an embedded newline' "env.at:17"
2165( $at_check_trace; cat >dmbx <<'_ATEOF'
2166Received: (from hare@wonder.land)
2167	by wonder.land id 3301
2168	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2169Date: Mon, 29 Jul 2002 22:00:01 +0100
2170From: March Hare  <hare@wonder.land>
2171Message-Id: <200207292200.3301@wonder.land>
2172To: Alice  <alice@wonder.land>
2173Subject: Invitation
2174X-IMAPbase: 0 1
2175Return-Path: hare@example.com
2176
2177Have some wine
2178.
2179_ATEOF
2180
2181cat >input <<'_ATEOF'
21821
2183env_date
2184env_sender
2185_ATEOF
2186
2187
2188MAIL=./dmbx
2189export MAIL
2190mbop < input
2191
2192
2193) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2194at_status=$? at_failed=false
2195$at_check_filter
2196at_fn_diff_devnull "$at_stderr" || at_failed=:
2197echo >>"$at_stdout"; $as_echo "1 current message
21981 env_date: Mon Jul 29 21:00:06 2002
21991 env_sender: hare@example.com
2200" | \
2201  $at_diff - "$at_stdout" || at_failed=:
2202at_fn_check_status 0 $at_status "$at_srcdir/env.at:17"
2203$at_failed && at_fn_log_failure
2204$at_traceon; }
2205
2206  set +x
2207  $at_times_p && times >"$at_times_file"
2208) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2209read at_status <"$at_status_file"
2210#AT_STOP_2
2211#AT_START_3
2212at_fn_group_banner 3 'attr.at:17' \
2213  "attr" "                                           "
2214at_xfail=no
2215(
2216  $as_echo "3. $at_setup_line: testing $at_desc ..."
2217  $at_traceon
2218
2219{ set +x
2220$as_echo "$at_srcdir/attr.at:17: cat >dmbx <<'_ATEOF'
2221Received: (from hare@wonder.land)
2222	by wonder.land id 3301
2223	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2224Date: Mon, 29 Jul 2002 22:00:01 +0100
2225From: March Hare  <hare@wonder.land>
2226Message-Id: <200207292200.3301@wonder.land>
2227To: Alice  <alice@wonder.land>
2228Subject: Invitation
2229Return-Path: hare@wonder.land
2230
2231Have some wine
2232.
2233Received: (from alice@wonder.land)
2234	by wonder.land id 3302
2235	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2236Date: Mon, 29 Jul 2002 22:00:02 +0100
2237From: Alice  <alice@wonder.land>
2238Message-Id: <200207292200.3302@wonder.land>
2239To: March Hare  <hare@wonder.land>
2240Subject: Re: Invitation
2241Status: OFR
2242Return-Path: alice@wonder.land
2243
2244I don't see any wine
2245.
2246_ATEOF
2247
2248cat >input <<'_ATEOF'
22491
2250attr
22512
2252attr
2253_ATEOF
2254
2255
2256MAIL=./dmbx
2257export MAIL
2258mbop < input
2259
2260"
2261at_fn_check_prepare_notrace 'an embedded newline' "attr.at:17"
2262( $at_check_trace; cat >dmbx <<'_ATEOF'
2263Received: (from hare@wonder.land)
2264	by wonder.land id 3301
2265	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2266Date: Mon, 29 Jul 2002 22:00:01 +0100
2267From: March Hare  <hare@wonder.land>
2268Message-Id: <200207292200.3301@wonder.land>
2269To: Alice  <alice@wonder.land>
2270Subject: Invitation
2271Return-Path: hare@wonder.land
2272
2273Have some wine
2274.
2275Received: (from alice@wonder.land)
2276	by wonder.land id 3302
2277	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2278Date: Mon, 29 Jul 2002 22:00:02 +0100
2279From: Alice  <alice@wonder.land>
2280Message-Id: <200207292200.3302@wonder.land>
2281To: March Hare  <hare@wonder.land>
2282Subject: Re: Invitation
2283Status: OFR
2284Return-Path: alice@wonder.land
2285
2286I don't see any wine
2287.
2288_ATEOF
2289
2290cat >input <<'_ATEOF'
22911
2292attr
22932
2294attr
2295_ATEOF
2296
2297
2298MAIL=./dmbx
2299export MAIL
2300mbop < input
2301
2302
2303) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2304at_status=$? at_failed=false
2305$at_check_filter
2306at_fn_diff_devnull "$at_stderr" || at_failed=:
2307echo >>"$at_stdout"; $as_echo "1 current message
23081 attr: -
23092 current message
23102 attr: FOR
2311" | \
2312  $at_diff - "$at_stdout" || at_failed=:
2313at_fn_check_status 0 $at_status "$at_srcdir/attr.at:17"
2314$at_failed && at_fn_log_failure
2315$at_traceon; }
2316
2317  set +x
2318  $at_times_p && times >"$at_times_file"
2319) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2320read at_status <"$at_status_file"
2321#AT_STOP_3
2322#AT_START_4
2323at_fn_group_banner 4 'recent.at:17' \
2324  "recent" "                                         "
2325at_xfail=no
2326(
2327  $as_echo "4. $at_setup_line: testing $at_desc ..."
2328  $at_traceon
2329
2330{ set +x
2331$as_echo "$at_srcdir/recent.at:17: cat >dmbx <<'_ATEOF'
2332Return-Path: hare@wonder.land
2333Received: (from hare@wonder.land)
2334	by wonder.land id 3301
2335	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2336Date: Mon, 29 Jul 2002 22:00:01 +0100
2337From: March Hare  <hare@wonder.land>
2338Message-Id: <200207292200.3301@wonder.land>
2339To: Alice  <alice@wonder.land>
2340Subject: Invitation
2341Status: O
2342
2343Have some wine
2344.
2345Return-Path: alice@wonder.land
2346Received: (from alice@wonder.land)
2347	by wonder.land id 3302
2348	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2349Date: Mon, 29 Jul 2002 22:00:02 +0100
2350From: Alice  <alice@wonder.land>
2351Message-Id: <200207292200.3302@wonder.land>
2352To: March Hare  <hare@wonder.land>
2353Subject: Re: Invitation
2354Status: O
2355
2356I don't see any wine
2357.
2358Return-Path: hare@wonder.land
2359Received: (from hare@wonder.land)
2360	by wonder.land id 3303
2361	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2362Date: Mon, 29 Jul 2002 22:00:03 +0100
2363From: March Hare  <hare@wonder.land>
2364Message-Id: <200207292200.3303@wonder.land>
2365To: Alice  <alice@wonder.land>
2366Subject: Re: Invitation
2367Status: OR
2368
2369There isn't any
2370.
2371Received: (from alice@wonder.land)
2372	by wonder.land id 3304
2373	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
2374Date: Mon, 29 Jul 2002 22:00:04 +0100
2375From: Alice  <alice@wonder.land>
2376Message-Id: <200207292200.3304@wonder.land>
2377To: March Hare  <hare@wonder.land>
2378Subject: Re: Invitation
2379Return-Path: alice@wonder.land
2380
2381Then it wasn't very civil of you to offer it
2382.
2383Received: (from hare@wonder.land)
2384	by wonder.land id 3305
2385	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
2386Date: Mon, 29 Jul 2002 22:00:05 +0100
2387From: March Hare  <hare@wonder.land>
2388Message-Id: <200207292200.3305@wonder.land>
2389To: Alice  <alice@wonder.land>
2390Subject: Re: Invitation
2391Return-Path: hare@wonder.land
2392
2393It wasn't very civil of you to sit down without being invited
2394.
2395_ATEOF
2396
2397MAIL=./dmbx
2398export MAIL
2399mbop recent
2400"
2401at_fn_check_prepare_notrace 'an embedded newline' "recent.at:17"
2402( $at_check_trace; cat >dmbx <<'_ATEOF'
2403Return-Path: hare@wonder.land
2404Received: (from hare@wonder.land)
2405	by wonder.land id 3301
2406	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2407Date: Mon, 29 Jul 2002 22:00:01 +0100
2408From: March Hare  <hare@wonder.land>
2409Message-Id: <200207292200.3301@wonder.land>
2410To: Alice  <alice@wonder.land>
2411Subject: Invitation
2412Status: O
2413
2414Have some wine
2415.
2416Return-Path: alice@wonder.land
2417Received: (from alice@wonder.land)
2418	by wonder.land id 3302
2419	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2420Date: Mon, 29 Jul 2002 22:00:02 +0100
2421From: Alice  <alice@wonder.land>
2422Message-Id: <200207292200.3302@wonder.land>
2423To: March Hare  <hare@wonder.land>
2424Subject: Re: Invitation
2425Status: O
2426
2427I don't see any wine
2428.
2429Return-Path: hare@wonder.land
2430Received: (from hare@wonder.land)
2431	by wonder.land id 3303
2432	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2433Date: Mon, 29 Jul 2002 22:00:03 +0100
2434From: March Hare  <hare@wonder.land>
2435Message-Id: <200207292200.3303@wonder.land>
2436To: Alice  <alice@wonder.land>
2437Subject: Re: Invitation
2438Status: OR
2439
2440There isn't any
2441.
2442Received: (from alice@wonder.land)
2443	by wonder.land id 3304
2444	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
2445Date: Mon, 29 Jul 2002 22:00:04 +0100
2446From: Alice  <alice@wonder.land>
2447Message-Id: <200207292200.3304@wonder.land>
2448To: March Hare  <hare@wonder.land>
2449Subject: Re: Invitation
2450Return-Path: alice@wonder.land
2451
2452Then it wasn't very civil of you to offer it
2453.
2454Received: (from hare@wonder.land)
2455	by wonder.land id 3305
2456	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
2457Date: Mon, 29 Jul 2002 22:00:05 +0100
2458From: March Hare  <hare@wonder.land>
2459Message-Id: <200207292200.3305@wonder.land>
2460To: Alice  <alice@wonder.land>
2461Subject: Re: Invitation
2462Return-Path: hare@wonder.land
2463
2464It wasn't very civil of you to sit down without being invited
2465.
2466_ATEOF
2467
2468MAIL=./dmbx
2469export MAIL
2470mbop recent
2471
2472) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2473at_status=$? at_failed=false
2474$at_check_filter
2475at_fn_diff_devnull "$at_stderr" || at_failed=:
2476echo >>"$at_stdout"; $as_echo "recent: 2
2477" | \
2478  $at_diff - "$at_stdout" || at_failed=:
2479at_fn_check_status 0 $at_status "$at_srcdir/recent.at:17"
2480$at_failed && at_fn_log_failure
2481$at_traceon; }
2482
2483  set +x
2484  $at_times_p && times >"$at_times_file"
2485) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2486read at_status <"$at_status_file"
2487#AT_STOP_4
2488#AT_START_5
2489at_fn_group_banner 5 'unseen.at:17' \
2490  "unseen" "                                         "
2491at_xfail=no
2492(
2493  $as_echo "5. $at_setup_line: testing $at_desc ..."
2494  $at_traceon
2495
2496{ set +x
2497$as_echo "$at_srcdir/unseen.at:17: cat >dmbx <<'_ATEOF'
2498Return-Path: hare@wonder.land
2499Received: (from hare@wonder.land)
2500	by wonder.land id 3301
2501	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2502Date: Mon, 29 Jul 2002 22:00:01 +0100
2503From: March Hare  <hare@wonder.land>
2504Message-Id: <200207292200.3301@wonder.land>
2505To: Alice  <alice@wonder.land>
2506Subject: Invitation
2507Status: OR
2508
2509Have some wine
2510.
2511Return-Path: alice@wonder.land
2512Received: (from alice@wonder.land)
2513	by wonder.land id 3302
2514	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2515Date: Mon, 29 Jul 2002 22:00:02 +0100
2516From: Alice  <alice@wonder.land>
2517Message-Id: <200207292200.3302@wonder.land>
2518To: March Hare  <hare@wonder.land>
2519Subject: Re: Invitation
2520Status: OR
2521
2522I don't see any wine
2523.
2524Return-Path: hare@wonder.land
2525Received: (from hare@wonder.land)
2526	by wonder.land id 3303
2527	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2528Date: Mon, 29 Jul 2002 22:00:03 +0100
2529From: March Hare  <hare@wonder.land>
2530Message-Id: <200207292200.3303@wonder.land>
2531To: Alice  <alice@wonder.land>
2532Subject: Re: Invitation
2533Status: OR
2534
2535There isn't any
2536.
2537Received: (from alice@wonder.land)
2538	by wonder.land id 3304
2539	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
2540Date: Mon, 29 Jul 2002 22:00:04 +0100
2541From: Alice  <alice@wonder.land>
2542Message-Id: <200207292200.3304@wonder.land>
2543To: March Hare  <hare@wonder.land>
2544Subject: Re: Invitation
2545Return-Path: alice@wonder.land
2546
2547Then it wasn't very civil of you to offer it
2548.
2549Received: (from hare@wonder.land)
2550	by wonder.land id 3305
2551	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
2552Date: Mon, 29 Jul 2002 22:00:05 +0100
2553From: March Hare  <hare@wonder.land>
2554Message-Id: <200207292200.3305@wonder.land>
2555To: Alice  <alice@wonder.land>
2556Subject: Re: Invitation
2557Return-Path: hare@wonder.land
2558
2559It wasn't very civil of you to sit down without being invited
2560.
2561_ATEOF
2562
2563MAIL=./dmbx
2564export MAIL
2565mbop unseen
2566"
2567at_fn_check_prepare_notrace 'an embedded newline' "unseen.at:17"
2568( $at_check_trace; cat >dmbx <<'_ATEOF'
2569Return-Path: hare@wonder.land
2570Received: (from hare@wonder.land)
2571	by wonder.land id 3301
2572	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2573Date: Mon, 29 Jul 2002 22:00:01 +0100
2574From: March Hare  <hare@wonder.land>
2575Message-Id: <200207292200.3301@wonder.land>
2576To: Alice  <alice@wonder.land>
2577Subject: Invitation
2578Status: OR
2579
2580Have some wine
2581.
2582Return-Path: alice@wonder.land
2583Received: (from alice@wonder.land)
2584	by wonder.land id 3302
2585	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
2586Date: Mon, 29 Jul 2002 22:00:02 +0100
2587From: Alice  <alice@wonder.land>
2588Message-Id: <200207292200.3302@wonder.land>
2589To: March Hare  <hare@wonder.land>
2590Subject: Re: Invitation
2591Status: OR
2592
2593I don't see any wine
2594.
2595Return-Path: hare@wonder.land
2596Received: (from hare@wonder.land)
2597	by wonder.land id 3303
2598	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
2599Date: Mon, 29 Jul 2002 22:00:03 +0100
2600From: March Hare  <hare@wonder.land>
2601Message-Id: <200207292200.3303@wonder.land>
2602To: Alice  <alice@wonder.land>
2603Subject: Re: Invitation
2604Status: OR
2605
2606There isn't any
2607.
2608Received: (from alice@wonder.land)
2609	by wonder.land id 3304
2610	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
2611Date: Mon, 29 Jul 2002 22:00:04 +0100
2612From: Alice  <alice@wonder.land>
2613Message-Id: <200207292200.3304@wonder.land>
2614To: March Hare  <hare@wonder.land>
2615Subject: Re: Invitation
2616Return-Path: alice@wonder.land
2617
2618Then it wasn't very civil of you to offer it
2619.
2620Received: (from hare@wonder.land)
2621	by wonder.land id 3305
2622	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
2623Date: Mon, 29 Jul 2002 22:00:05 +0100
2624From: March Hare  <hare@wonder.land>
2625Message-Id: <200207292200.3305@wonder.land>
2626To: Alice  <alice@wonder.land>
2627Subject: Re: Invitation
2628Return-Path: hare@wonder.land
2629
2630It wasn't very civil of you to sit down without being invited
2631.
2632_ATEOF
2633
2634MAIL=./dmbx
2635export MAIL
2636mbop unseen
2637
2638) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2639at_status=$? at_failed=false
2640$at_check_filter
2641at_fn_diff_devnull "$at_stderr" || at_failed=:
2642echo >>"$at_stdout"; $as_echo "unseen: 4
2643" | \
2644  $at_diff - "$at_stdout" || at_failed=:
2645at_fn_check_status 0 $at_status "$at_srcdir/unseen.at:17"
2646$at_failed && at_fn_log_failure
2647$at_traceon; }
2648
2649  set +x
2650  $at_times_p && times >"$at_times_file"
2651) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2652read at_status <"$at_status_file"
2653#AT_STOP_5
2654#AT_START_6
2655at_fn_group_banner 6 'header.at:17' \
2656  "header" "                                         "
2657at_xfail=no
2658(
2659  $as_echo "6. $at_setup_line: testing $at_desc ..."
2660  $at_traceon
2661
2662{ set +x
2663$as_echo "$at_srcdir/header.at:17: cat >dmbx <<'_ATEOF'
2664Received: (from hare@wonder.land)
2665	by wonder.land id 3301
2666	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2667Date: Mon, 29 Jul 2002 22:00:01 +0100
2668From: March Hare  <hare@wonder.land>
2669Message-Id: <200207292200.3301@wonder.land>
2670To: Alice  <alice@wonder.land>
2671Subject: Invitation
2672Return-Path: hare@wonder.land
2673
2674Have some wine
2675.
2676Date: Mon, 29 Jul 2002 22:00:02 +0100
2677From: Alice  <alice@wonder.land>
2678Message-Id: <200207292200.3302@wonder.land>
2679To: March Hare  <hare@wonder.land>
2680Subject: Re: Invitation
2681Return-Path: alice@wonder.land
2682
2683I don't see any wine
2684.
2685_ATEOF
2686
2687cat >input <<'_ATEOF'
26881
2689header_lines
2690header_size
2691header_count
26922
2693header_lines
2694header_size
2695header_count
2696_ATEOF
2697
2698
2699MAIL=./dmbx
2700export MAIL
2701mbop < input
2702
2703"
2704at_fn_check_prepare_notrace 'an embedded newline' "header.at:17"
2705( $at_check_trace; cat >dmbx <<'_ATEOF'
2706Received: (from hare@wonder.land)
2707	by wonder.land id 3301
2708	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2709Date: Mon, 29 Jul 2002 22:00:01 +0100
2710From: March Hare  <hare@wonder.land>
2711Message-Id: <200207292200.3301@wonder.land>
2712To: Alice  <alice@wonder.land>
2713Subject: Invitation
2714Return-Path: hare@wonder.land
2715
2716Have some wine
2717.
2718Date: Mon, 29 Jul 2002 22:00:02 +0100
2719From: Alice  <alice@wonder.land>
2720Message-Id: <200207292200.3302@wonder.land>
2721To: March Hare  <hare@wonder.land>
2722Subject: Re: Invitation
2723Return-Path: alice@wonder.land
2724
2725I don't see any wine
2726.
2727_ATEOF
2728
2729cat >input <<'_ATEOF'
27301
2731header_lines
2732header_size
2733header_count
27342
2735header_lines
2736header_size
2737header_count
2738_ATEOF
2739
2740
2741MAIL=./dmbx
2742export MAIL
2743mbop < input
2744
2745
2746) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2747at_status=$? at_failed=false
2748$at_check_filter
2749at_fn_diff_devnull "$at_stderr" || at_failed=:
2750echo >>"$at_stdout"; $as_echo "1 current message
27511 header_lines: 10
27521 header_size: 315
27531 header_count: 7
27542 current message
27552 header_lines: 7
27562 header_size: 206
27572 header_count: 6
2758" | \
2759  $at_diff - "$at_stdout" || at_failed=:
2760at_fn_check_status 0 $at_status "$at_srcdir/header.at:17"
2761$at_failed && at_fn_log_failure
2762$at_traceon; }
2763
2764  set +x
2765  $at_times_p && times >"$at_times_file"
2766) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2767read at_status <"$at_status_file"
2768#AT_STOP_6
2769#AT_START_7
2770at_fn_group_banner 7 'header.at:60' \
2771  "headers" "                                        "
2772at_xfail=no
2773(
2774  $as_echo "7. $at_setup_line: testing $at_desc ..."
2775  $at_traceon
2776
2777{ set +x
2778$as_echo "$at_srcdir/header.at:60: cat >dmbx <<'_ATEOF'
2779Received: (from hare@wonder.land)
2780	by wonder.land id 3301
2781	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2782Date: Mon, 29 Jul 2002 22:00:01 +0100
2783From: March Hare  <hare@wonder.land>
2784Message-Id: <200207292200.3301@wonder.land>
2785To: Alice  <alice@wonder.land>
2786Subject: Invitation
2787Return-Path: hare@wonder.land
2788
2789Have some wine
2790.
2791Date: Mon, 29 Jul 2002 22:00:02 +0100
2792From: Alice  <alice@wonder.land>
2793Message-Id: <200207292200.3302@wonder.land>
2794To: March Hare  <hare@wonder.land>
2795Subject: Re: Invitation
2796Return-Path: alice@wonder.land
2797
2798I don't see any wine
2799.
2800_ATEOF
2801
2802cat >input <<'_ATEOF'
28031
2804headers
28052
2806headers
2807_ATEOF
2808
2809
2810MAIL=./dmbx
2811export MAIL
2812mbop < input
2813
2814"
2815at_fn_check_prepare_notrace 'an embedded newline' "header.at:60"
2816( $at_check_trace; cat >dmbx <<'_ATEOF'
2817Received: (from hare@wonder.land)
2818	by wonder.land id 3301
2819	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2820Date: Mon, 29 Jul 2002 22:00:01 +0100
2821From: March Hare  <hare@wonder.land>
2822Message-Id: <200207292200.3301@wonder.land>
2823To: Alice  <alice@wonder.land>
2824Subject: Invitation
2825Return-Path: hare@wonder.land
2826
2827Have some wine
2828.
2829Date: Mon, 29 Jul 2002 22:00:02 +0100
2830From: Alice  <alice@wonder.land>
2831Message-Id: <200207292200.3302@wonder.land>
2832To: March Hare  <hare@wonder.land>
2833Subject: Re: Invitation
2834Return-Path: alice@wonder.land
2835
2836I don't see any wine
2837.
2838_ATEOF
2839
2840cat >input <<'_ATEOF'
28411
2842headers
28432
2844headers
2845_ATEOF
2846
2847
2848MAIL=./dmbx
2849export MAIL
2850mbop < input
2851
2852
2853) >>"$at_stdout" 2>>"$at_stderr" 5>&-
2854at_status=$? at_failed=false
2855$at_check_filter
2856at_fn_diff_devnull "$at_stderr" || at_failed=:
2857echo >>"$at_stdout"; $as_echo "1 current message
28581 headers: Received:(from hare@wonder.land) by wonder.land id 3301 for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
2859Date:Mon, 29 Jul 2002 22:00:01 +0100
2860From:March Hare  <hare@wonder.land>
2861Message-Id:<200207292200.3301@wonder.land>
2862To:Alice  <alice@wonder.land>
2863Subject:Invitation
2864Return-Path:hare@wonder.land
2865
28662 current message
28672 headers: Date:Mon, 29 Jul 2002 22:00:02 +0100
2868From:Alice  <alice@wonder.land>
2869Message-Id:<200207292200.3302@wonder.land>
2870To:March Hare  <hare@wonder.land>
2871Subject:Re: Invitation
2872Return-Path:alice@wonder.land
2873
2874" | \
2875  $at_diff - "$at_stdout" || at_failed=:
2876at_fn_check_status 0 $at_status "$at_srcdir/header.at:60"
2877$at_failed && at_fn_log_failure
2878$at_traceon; }
2879
2880  set +x
2881  $at_times_p && times >"$at_times_file"
2882) 5>&1 2>&1 7>&- | eval $at_tee_pipe
2883read at_status <"$at_status_file"
2884#AT_STOP_7
2885#AT_START_8
2886at_fn_group_banner 8 'body.at:17' \
2887  "body" "                                           "
2888at_xfail=no
2889(
2890  $as_echo "8. $at_setup_line: testing $at_desc ..."
2891  $at_traceon
2892
2893{ set +x
2894$as_echo "$at_srcdir/body.at:17: cat >dmbx <<'_ATEOF'
2895Received: (from alice@wonder.land)
2896	by wonder.land id 3314
2897	for hare@wonder.land; Mon, 29 Jul 2002 22:00:19 +0100
2898Date: Mon, 29 Jul 2002 22:00:14 +0100
2899From: Alice  <alice@wonder.land>
2900Message-Id: <200207292200.3314@wonder.land>
2901To: March Hare  <hare@wonder.land>
2902Subject: Re: Be specific
2903Return-Path: alice@wonder.land
2904
2905I do, at least--at least I mean what
2906I say--that's the same thing, you know.
2907.
2908Received: (from hatter@wonder.land)
2909	by wonder.land id 3315
2910	for alice@wonder.land; Mon, 29 Jul 2002 22:00:20 +0100
2911Date: Mon, 29 Jul 2002 22:00:15 +0100
2912From: Hatter  <hatter@wonder.land>
2913Message-Id: <200207292200.3315@wonder.land>
2914To: Alice  <alice@wonder.land>
2915Subject: Re: Be specific
2916Return-Path: hatter@wonder.land
2917
2918Not the same thing a bit! You might just
2919as well say that \"I see what I eat\" is the same thing as \"I eat
2920what I see\"!
2921.
2922Received: (from hare@wonder.land)
2923	by wonder.land id 3316
2924	for alice@wonder.land; Mon, 29 Jul 2002 22:00:21 +0100
2925Date: Mon, 29 Jul 2002 22:00:16 +0100
2926From: March Hare  <hare@wonder.land>
2927Message-Id: <200207292200.3316@wonder.land>
2928To: Alice  <alice@wonder.land>
2929Subject: Re: Be specific
2930Return-Path: hare@wonder.land
2931
2932..
2933...
2934....
2935.....
2936......
2937.......
2938.
2939_ATEOF
2940
2941cat >input <<'_ATEOF'
29421
2943body_lines
2944body_size
2945body_text
29462
2947body_lines
2948body_size
2949body_text
29503
2951body_lines
2952body_size
2953body_text
2954_ATEOF
2955
2956
2957MAIL=./dmbx
2958export MAIL
2959mbop < input
2960
2961"
2962at_fn_check_prepare_notrace 'an embedded newline' "body.at:17"
2963( $at_check_trace; cat >dmbx <<'_ATEOF'
2964Received: (from alice@wonder.land)
2965	by wonder.land id 3314
2966	for hare@wonder.land; Mon, 29 Jul 2002 22:00:19 +0100
2967Date: Mon, 29 Jul 2002 22:00:14 +0100
2968From: Alice  <alice@wonder.land>
2969Message-Id: <200207292200.3314@wonder.land>
2970To: March Hare  <hare@wonder.land>
2971Subject: Re: Be specific
2972Return-Path: alice@wonder.land
2973
2974I do, at least--at least I mean what
2975I say--that's the same thing, you know.
2976.
2977Received: (from hatter@wonder.land)
2978	by wonder.land id 3315
2979	for alice@wonder.land; Mon, 29 Jul 2002 22:00:20 +0100
2980Date: Mon, 29 Jul 2002 22:00:15 +0100
2981From: Hatter  <hatter@wonder.land>
2982Message-Id: <200207292200.3315@wonder.land>
2983To: Alice  <alice@wonder.land>
2984Subject: Re: Be specific
2985Return-Path: hatter@wonder.land
2986
2987Not the same thing a bit! You might just
2988as well say that "I see what I eat" is the same thing as "I eat
2989what I see"!
2990.
2991Received: (from hare@wonder.land)
2992	by wonder.land id 3316
2993	for alice@wonder.land; Mon, 29 Jul 2002 22:00:21 +0100
2994Date: Mon, 29 Jul 2002 22:00:16 +0100
2995From: March Hare  <hare@wonder.land>
2996Message-Id: <200207292200.3316@wonder.land>
2997To: Alice  <alice@wonder.land>
2998Subject: Re: Be specific
2999Return-Path: hare@wonder.land
3000
3001..
3002...
3003....
3004.....
3005......
3006.......
3007.
3008_ATEOF
3009
3010cat >input <<'_ATEOF'
30111
3012body_lines
3013body_size
3014body_text
30152
3016body_lines
3017body_size
3018body_text
30193
3020body_lines
3021body_size
3022body_text
3023_ATEOF
3024
3025
3026MAIL=./dmbx
3027export MAIL
3028mbop < input
3029
3030
3031) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3032at_status=$? at_failed=false
3033$at_check_filter
3034at_fn_diff_devnull "$at_stderr" || at_failed=:
3035echo >>"$at_stdout"; $as_echo "1 current message
30361 body_lines: 2
30371 body_size: 77
30381 body_text: I do, at least--at least I mean what
3039I say--that's the same thing, you know.
3040
30412 current message
30422 body_lines: 3
30432 body_size: 118
30442 body_text: Not the same thing a bit! You might just
3045as well say that \"I see what I eat\" is the same thing as \"I eat
3046what I see\"!
3047
30483 current message
30493 body_lines: 6
30503 body_size: 27
30513 body_text: .
3052..
3053...
3054....
3055.....
3056......
3057
3058" | \
3059  $at_diff - "$at_stdout" || at_failed=:
3060at_fn_check_status 0 $at_status "$at_srcdir/body.at:17"
3061$at_failed && at_fn_log_failure
3062$at_traceon; }
3063
3064  set +x
3065  $at_times_p && times >"$at_times_file"
3066) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3067read at_status <"$at_status_file"
3068#AT_STOP_8
3069#AT_START_9
3070at_fn_group_banner 9 'uidvalidity.at:17' \
3071  "uidvalidity" "                                    "
3072at_xfail=no
3073(
3074  $as_echo "9. $at_setup_line: testing $at_desc ..."
3075  $at_traceon
3076
3077{ set +x
3078$as_echo "$at_srcdir/uidvalidity.at:17: cat >dmbx <<'_ATEOF'
3079Received: (from hare@wonder.land)
3080	by wonder.land id 3301
3081	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3082Date: Mon, 29 Jul 2002 22:00:01 +0100
3083From: March Hare  <hare@wonder.land>
3084Message-Id: <200207292200.3301@wonder.land>
3085To: Alice  <alice@wonder.land>
3086Subject: Invitation
3087Return-Path: hare@wonder.land
3088Status: O
3089X-UID: 1
3090X-IMAPbase: 1027976401 1001
3091
3092Have some wine
3093.
3094_ATEOF
3095
3096MAIL=./dmbx
3097export MAIL
3098mbop uidvalidity \\; uidnext
3099"
3100at_fn_check_prepare_notrace 'an embedded newline' "uidvalidity.at:17"
3101( $at_check_trace; cat >dmbx <<'_ATEOF'
3102Received: (from hare@wonder.land)
3103	by wonder.land id 3301
3104	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3105Date: Mon, 29 Jul 2002 22:00:01 +0100
3106From: March Hare  <hare@wonder.land>
3107Message-Id: <200207292200.3301@wonder.land>
3108To: Alice  <alice@wonder.land>
3109Subject: Invitation
3110Return-Path: hare@wonder.land
3111Status: O
3112X-UID: 1
3113X-IMAPbase: 1027976401 1001
3114
3115Have some wine
3116.
3117_ATEOF
3118
3119MAIL=./dmbx
3120export MAIL
3121mbop uidvalidity \; uidnext
3122
3123) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3124at_status=$? at_failed=false
3125$at_check_filter
3126at_fn_diff_devnull "$at_stderr" || at_failed=:
3127echo >>"$at_stdout"; $as_echo "uidvalidity: 1027976401
3128uidnext: 1001
3129" | \
3130  $at_diff - "$at_stdout" || at_failed=:
3131at_fn_check_status 0 $at_status "$at_srcdir/uidvalidity.at:17"
3132$at_failed && at_fn_log_failure
3133$at_traceon; }
3134
3135  set +x
3136  $at_times_p && times >"$at_times_file"
3137) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3138read at_status <"$at_status_file"
3139#AT_STOP_9
3140#AT_START_10
3141at_fn_group_banner 10 'uid.at:17' \
3142  "uid" "                                            "
3143at_xfail=no
3144(
3145  $as_echo "10. $at_setup_line: testing $at_desc ..."
3146  $at_traceon
3147
3148{ set +x
3149$as_echo "$at_srcdir/uid.at:17: cat >dmbx <<'_ATEOF'
3150Received: (from hare@wonder.land)
3151	by wonder.land id 3301
3152	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3153Date: Mon, 29 Jul 2002 22:00:01 +0100
3154From: March Hare  <hare@wonder.land>
3155Message-Id: <200207292200.3301@wonder.land>
3156To: Alice  <alice@wonder.land>
3157Subject: Invitation
3158X-UID: 1
3159X-IMAPbase: 1027976401 1001
3160Return-Path: hare@wonder.land
3161
3162Have some wine
3163.
3164Received: (from alice@wonder.land)
3165	by wonder.land id 3302
3166	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3167Date: Mon, 29 Jul 2002 22:00:02 +0100
3168From: Alice  <alice@wonder.land>
3169Message-Id: <200207292200.3302@wonder.land>
3170To: March Hare  <hare@wonder.land>
3171Subject: Re: Invitation
3172Return-Path: alice@wonder.land
3173X-UID: 2
3174
3175I don't see any wine
3176.
3177Received: (from hare@wonder.land)
3178	by wonder.land id 3303
3179	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3180Date: Mon, 29 Jul 2002 22:00:03 +0100
3181From: March Hare  <hare@wonder.land>
3182Message-Id: <200207292200.3303@wonder.land>
3183To: Alice  <alice@wonder.land>
3184Subject: Re: Invitation
3185Return-Path: hare@wonder.land
3186
3187There isn't any
3188.
3189_ATEOF
3190
3191cat >input <<'_ATEOF'
31921
3193uid
31942
3195uid
31963
3197uid
3198_ATEOF
3199
3200
3201MAIL=./dmbx
3202export MAIL
3203mbop < input
3204
3205"
3206at_fn_check_prepare_notrace 'an embedded newline' "uid.at:17"
3207( $at_check_trace; cat >dmbx <<'_ATEOF'
3208Received: (from hare@wonder.land)
3209	by wonder.land id 3301
3210	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3211Date: Mon, 29 Jul 2002 22:00:01 +0100
3212From: March Hare  <hare@wonder.land>
3213Message-Id: <200207292200.3301@wonder.land>
3214To: Alice  <alice@wonder.land>
3215Subject: Invitation
3216X-UID: 1
3217X-IMAPbase: 1027976401 1001
3218Return-Path: hare@wonder.land
3219
3220Have some wine
3221.
3222Received: (from alice@wonder.land)
3223	by wonder.land id 3302
3224	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3225Date: Mon, 29 Jul 2002 22:00:02 +0100
3226From: Alice  <alice@wonder.land>
3227Message-Id: <200207292200.3302@wonder.land>
3228To: March Hare  <hare@wonder.land>
3229Subject: Re: Invitation
3230Return-Path: alice@wonder.land
3231X-UID: 2
3232
3233I don't see any wine
3234.
3235Received: (from hare@wonder.land)
3236	by wonder.land id 3303
3237	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3238Date: Mon, 29 Jul 2002 22:00:03 +0100
3239From: March Hare  <hare@wonder.land>
3240Message-Id: <200207292200.3303@wonder.land>
3241To: Alice  <alice@wonder.land>
3242Subject: Re: Invitation
3243Return-Path: hare@wonder.land
3244
3245There isn't any
3246.
3247_ATEOF
3248
3249cat >input <<'_ATEOF'
32501
3251uid
32522
3253uid
32543
3255uid
3256_ATEOF
3257
3258
3259MAIL=./dmbx
3260export MAIL
3261mbop < input
3262
3263
3264) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3265at_status=$? at_failed=false
3266$at_check_filter
3267at_fn_diff_devnull "$at_stderr" || at_failed=:
3268echo >>"$at_stdout"; $as_echo "1 current message
32691 uid: 1
32702 current message
32712 uid: 2
32723 current message
32733 uid: 1001
3274" | \
3275  $at_diff - "$at_stdout" || at_failed=:
3276at_fn_check_status 0 $at_status "$at_srcdir/uid.at:17"
3277$at_failed && at_fn_log_failure
3278$at_traceon; }
3279
3280  set +x
3281  $at_times_p && times >"$at_times_file"
3282) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3283read at_status <"$at_status_file"
3284#AT_STOP_10
3285#AT_START_11
3286at_fn_group_banner 11 'qget.at:17' \
3287  "qget" "                                           "
3288at_xfail=no
3289(
3290  $as_echo "11. $at_setup_line: testing $at_desc ..."
3291  $at_traceon
3292
3293{ set +x
3294$as_echo "$at_srcdir/qget.at:17: cat >dmbx <<'_ATEOF'
3295Received: (from hare@wonder.land)
3296	by wonder.land id 3301
3297	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3298Date: Mon, 29 Jul 2002 22:00:01 +0100
3299From: March Hare  <hare@wonder.land>
3300Message-Id: <200207292200.3301@wonder.land>
3301To: Alice  <alice@wonder.land>
3302Subject: Invitation
3303X-UID: 1
3304X-IMAPbase: 1027976401 1001
3305Return-Path: hare@wonder.land
3306
3307Have some wine
3308.
3309Received: (from alice@wonder.land)
3310	by wonder.land id 3302
3311	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3312Date: Mon, 29 Jul 2002 22:00:02 +0100
3313From: Alice  <alice@wonder.land>
3314Message-Id: <200207292200.3302@wonder.land>
3315To: March Hare  <hare@wonder.land>
3316Subject: Re: Invitation
3317Return-Path: alice@wonder.land
3318X-UID: 2
3319
3320I don't see any wine
3321.
3322_ATEOF
3323
3324MAIL=./dmbx
3325export MAIL
3326mbop qget 369
3327"
3328at_fn_check_prepare_notrace 'an embedded newline' "qget.at:17"
3329( $at_check_trace; cat >dmbx <<'_ATEOF'
3330Received: (from hare@wonder.land)
3331	by wonder.land id 3301
3332	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3333Date: Mon, 29 Jul 2002 22:00:01 +0100
3334From: March Hare  <hare@wonder.land>
3335Message-Id: <200207292200.3301@wonder.land>
3336To: Alice  <alice@wonder.land>
3337Subject: Invitation
3338X-UID: 1
3339X-IMAPbase: 1027976401 1001
3340Return-Path: hare@wonder.land
3341
3342Have some wine
3343.
3344Received: (from alice@wonder.land)
3345	by wonder.land id 3302
3346	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3347Date: Mon, 29 Jul 2002 22:00:02 +0100
3348From: Alice  <alice@wonder.land>
3349Message-Id: <200207292200.3302@wonder.land>
3350To: March Hare  <hare@wonder.land>
3351Subject: Re: Invitation
3352Return-Path: alice@wonder.land
3353X-UID: 2
3354
3355I don't see any wine
3356.
3357_ATEOF
3358
3359MAIL=./dmbx
3360export MAIL
3361mbop qget 369
3362
3363) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3364at_status=$? at_failed=false
3365$at_check_filter
3366at_fn_diff_devnull "$at_stderr" || at_failed=:
3367echo >>"$at_stdout"; $as_echo "qget: Received: (from alice@wonder.land)
3368	by wonder.land id 3302
3369	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3370Date: Mon, 29 Jul 2002 22:00:02 +0100
3371From: Alice  <alice@wonder.land>
3372Message-Id: <200207292200.3302@wonder.land>
3373To: March Hare  <hare@wonder.land>
3374Subject: Re: Invitation
3375Return-Path: alice@wonder.land
3376X-UID: 2
3377
3378I don't see any wine
3379
3380" | \
3381  $at_diff - "$at_stdout" || at_failed=:
3382at_fn_check_status 0 $at_status "$at_srcdir/qget.at:17"
3383$at_failed && at_fn_log_failure
3384$at_traceon; }
3385
3386  set +x
3387  $at_times_p && times >"$at_times_file"
3388) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3389read at_status <"$at_status_file"
3390#AT_STOP_11
3391#AT_START_12
3392at_fn_group_banner 12 'append.at:17' \
3393  "append" "                                         "
3394at_xfail=no
3395(
3396  $as_echo "12. $at_setup_line: testing $at_desc ..."
3397  $at_traceon
3398
3399{ set +x
3400$as_echo "$at_srcdir/append.at:17: cat >dmbx <<'_ATEOF'
3401Received: (from hare@wonder.land)
3402	by wonder.land id 3301
3403	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3404Date: Mon, 29 Jul 2002 22:00:01 +0100
3405From: March Hare  <hare@wonder.land>
3406Message-Id: <200207292200.3301@wonder.land>
3407To: Alice  <alice@wonder.land>
3408Subject: Invitation
3409Return-Path: hare@wonder.land
3410
3411Have some wine
3412.
3413Received: (from alice@wonder.land)
3414	by wonder.land id 3302
3415	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3416Date: Mon, 29 Jul 2002 22:00:02 +0100
3417From: Alice  <alice@wonder.land>
3418Message-Id: <200207292200.3302@wonder.land>
3419To: March Hare  <hare@wonder.land>
3420Subject: Re: Invitation
3421Return-Path: alice@wonder.land
3422
3423I don't see any wine
3424.
3425Received: (from hare@wonder.land)
3426	by wonder.land id 3303
3427	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3428Date: Mon, 29 Jul 2002 22:00:03 +0100
3429From: March Hare  <hare@wonder.land>
3430Message-Id: <200207292200.3303@wonder.land>
3431To: Alice  <alice@wonder.land>
3432Subject: Re: Invitation
3433Return-Path: hare@wonder.land
3434
3435There isn't any
3436.
3437_ATEOF
3438
3439cat >input <<'_ATEOF'
3440# Append new message
3441append msg
3442# Select it
34434
3444# Check if it is scanned and loaded
3445env_date
3446env_sender
3447headers
3448body_text
3449_ATEOF
3450
3451cat >msg <<'_ATEOF'
3452Received: (from alice@wonder.land)
3453	by wonder.land id 3304
3454	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3455Date: Mon, 29 Jul 2002 22:00:04 +0100
3456From: Alice  <alice@wonder.land>
3457Message-Id: <200207292200.3304@wonder.land>
3458To: March Hare  <hare@wonder.land>
3459Subject: Re: Invitation
3460Return-Path: alice@wonder.land
3461X-UID: 1034
3462
3463Then it wasn't very civil of you to offer it
3464_ATEOF
3465
3466MAIL=./dmbx
3467export MAIL
3468mbop < input
3469mbop count
3470"
3471at_fn_check_prepare_notrace 'an embedded newline' "append.at:17"
3472( $at_check_trace; cat >dmbx <<'_ATEOF'
3473Received: (from hare@wonder.land)
3474	by wonder.land id 3301
3475	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3476Date: Mon, 29 Jul 2002 22:00:01 +0100
3477From: March Hare  <hare@wonder.land>
3478Message-Id: <200207292200.3301@wonder.land>
3479To: Alice  <alice@wonder.land>
3480Subject: Invitation
3481Return-Path: hare@wonder.land
3482
3483Have some wine
3484.
3485Received: (from alice@wonder.land)
3486	by wonder.land id 3302
3487	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3488Date: Mon, 29 Jul 2002 22:00:02 +0100
3489From: Alice  <alice@wonder.land>
3490Message-Id: <200207292200.3302@wonder.land>
3491To: March Hare  <hare@wonder.land>
3492Subject: Re: Invitation
3493Return-Path: alice@wonder.land
3494
3495I don't see any wine
3496.
3497Received: (from hare@wonder.land)
3498	by wonder.land id 3303
3499	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3500Date: Mon, 29 Jul 2002 22:00:03 +0100
3501From: March Hare  <hare@wonder.land>
3502Message-Id: <200207292200.3303@wonder.land>
3503To: Alice  <alice@wonder.land>
3504Subject: Re: Invitation
3505Return-Path: hare@wonder.land
3506
3507There isn't any
3508.
3509_ATEOF
3510
3511cat >input <<'_ATEOF'
3512# Append new message
3513append msg
3514# Select it
35154
3516# Check if it is scanned and loaded
3517env_date
3518env_sender
3519headers
3520body_text
3521_ATEOF
3522
3523cat >msg <<'_ATEOF'
3524Received: (from alice@wonder.land)
3525	by wonder.land id 3304
3526	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3527Date: Mon, 29 Jul 2002 22:00:04 +0100
3528From: Alice  <alice@wonder.land>
3529Message-Id: <200207292200.3304@wonder.land>
3530To: March Hare  <hare@wonder.land>
3531Subject: Re: Invitation
3532Return-Path: alice@wonder.land
3533X-UID: 1034
3534
3535Then it wasn't very civil of you to offer it
3536_ATEOF
3537
3538MAIL=./dmbx
3539export MAIL
3540mbop < input
3541mbop count
3542
3543) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3544at_status=$? at_failed=false
3545$at_check_filter
3546at_fn_diff_devnull "$at_stderr" || at_failed=:
3547echo >>"$at_stdout"; $as_echo "append: OK
35484 current message
35494 env_date: Mon Jul 29 21:00:09 2002
35504 env_sender: alice@wonder.land
35514 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3552Date:Mon, 29 Jul 2002 22:00:04 +0100
3553From:Alice  <alice@wonder.land>
3554Message-Id:<200207292200.3304@wonder.land>
3555To:March Hare  <hare@wonder.land>
3556Subject:Re: Invitation
3557Return-Path:alice@wonder.land
3558
35594 body_text: Then it wasn't very civil of you to offer it
3560
3561count: 4
3562" | \
3563  $at_diff - "$at_stdout" || at_failed=:
3564at_fn_check_status 0 $at_status "$at_srcdir/append.at:17"
3565$at_failed && at_fn_log_failure
3566$at_traceon; }
3567
3568  set +x
3569  $at_times_p && times >"$at_times_file"
3570) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3571read at_status <"$at_status_file"
3572#AT_STOP_12
3573#AT_START_13
3574at_fn_group_banner 13 'append.at:98' \
3575  "append with uid" "                                "
3576at_xfail=no
3577(
3578  $as_echo "13. $at_setup_line: testing $at_desc ..."
3579  $at_traceon
3580
3581{ set +x
3582$as_echo "$at_srcdir/append.at:98: cat >dmbx <<'_ATEOF'
3583Received: (from hare@wonder.land)
3584	by wonder.land id 3301
3585	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3586Date: Mon, 29 Jul 2002 22:00:01 +0100
3587From: March Hare  <hare@wonder.land>
3588Message-Id: <200207292200.3301@wonder.land>
3589To: Alice  <alice@wonder.land>
3590Subject: Invitation
3591Return-Path: hare@wonder.land
3592X-IMAPbase: 1027976406 140
3593X-UID: 137
3594
3595Have some wine
3596.
3597Received: (from alice@wonder.land)
3598	by wonder.land id 3302
3599	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3600Date: Mon, 29 Jul 2002 22:00:02 +0100
3601From: Alice  <alice@wonder.land>
3602Message-Id: <200207292200.3302@wonder.land>
3603To: March Hare  <hare@wonder.land>
3604Subject: Re: Invitation
3605Return-Path: alice@wonder.land
3606X-UID: 138
3607
3608I don't see any wine
3609.
3610Received: (from hare@wonder.land)
3611	by wonder.land id 3303
3612	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3613Date: Mon, 29 Jul 2002 22:00:03 +0100
3614From: March Hare  <hare@wonder.land>
3615Message-Id: <200207292200.3303@wonder.land>
3616To: Alice  <alice@wonder.land>
3617Subject: Re: Invitation
3618Return-Path: hare@wonder.land
3619X-UID: 139
3620
3621There isn't any
3622.
3623_ATEOF
3624
3625cat >input <<'_ATEOF'
3626# Append new message
3627append msg
3628# Select it
36294
3630# Check if it is scanned and loaded
3631env_date
3632env_sender
3633headers
3634body_text
3635# Check the uidvalidity and uidnext
3636uidvalidity
3637uidnext
3638sync
3639_ATEOF
3640
3641cat >msg <<'_ATEOF'
3642Received: (from alice@wonder.land)
3643	by wonder.land id 3304
3644	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3645Date: Mon, 29 Jul 2002 22:00:04 +0100
3646From: Alice  <alice@wonder.land>
3647Message-Id: <200207292200.3304@wonder.land>
3648To: March Hare  <hare@wonder.land>
3649Subject: Re: Invitation
3650Return-Path: alice@wonder.land
3651X-UID: 1034
3652
3653Then it wasn't very civil of you to offer it
3654_ATEOF
3655
3656MAIL=./dmbx
3657export MAIL
3658mbop < input
3659mbop count\\; uidvalidity\\; uidnext
3660"
3661at_fn_check_prepare_notrace 'an embedded newline' "append.at:98"
3662( $at_check_trace; cat >dmbx <<'_ATEOF'
3663Received: (from hare@wonder.land)
3664	by wonder.land id 3301
3665	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3666Date: Mon, 29 Jul 2002 22:00:01 +0100
3667From: March Hare  <hare@wonder.land>
3668Message-Id: <200207292200.3301@wonder.land>
3669To: Alice  <alice@wonder.land>
3670Subject: Invitation
3671Return-Path: hare@wonder.land
3672X-IMAPbase: 1027976406 140
3673X-UID: 137
3674
3675Have some wine
3676.
3677Received: (from alice@wonder.land)
3678	by wonder.land id 3302
3679	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3680Date: Mon, 29 Jul 2002 22:00:02 +0100
3681From: Alice  <alice@wonder.land>
3682Message-Id: <200207292200.3302@wonder.land>
3683To: March Hare  <hare@wonder.land>
3684Subject: Re: Invitation
3685Return-Path: alice@wonder.land
3686X-UID: 138
3687
3688I don't see any wine
3689.
3690Received: (from hare@wonder.land)
3691	by wonder.land id 3303
3692	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3693Date: Mon, 29 Jul 2002 22:00:03 +0100
3694From: March Hare  <hare@wonder.land>
3695Message-Id: <200207292200.3303@wonder.land>
3696To: Alice  <alice@wonder.land>
3697Subject: Re: Invitation
3698Return-Path: hare@wonder.land
3699X-UID: 139
3700
3701There isn't any
3702.
3703_ATEOF
3704
3705cat >input <<'_ATEOF'
3706# Append new message
3707append msg
3708# Select it
37094
3710# Check if it is scanned and loaded
3711env_date
3712env_sender
3713headers
3714body_text
3715# Check the uidvalidity and uidnext
3716uidvalidity
3717uidnext
3718sync
3719_ATEOF
3720
3721cat >msg <<'_ATEOF'
3722Received: (from alice@wonder.land)
3723	by wonder.land id 3304
3724	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3725Date: Mon, 29 Jul 2002 22:00:04 +0100
3726From: Alice  <alice@wonder.land>
3727Message-Id: <200207292200.3304@wonder.land>
3728To: March Hare  <hare@wonder.land>
3729Subject: Re: Invitation
3730Return-Path: alice@wonder.land
3731X-UID: 1034
3732
3733Then it wasn't very civil of you to offer it
3734_ATEOF
3735
3736MAIL=./dmbx
3737export MAIL
3738mbop < input
3739mbop count\; uidvalidity\; uidnext
3740
3741) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3742at_status=$? at_failed=false
3743$at_check_filter
3744at_fn_diff_devnull "$at_stderr" || at_failed=:
3745echo >>"$at_stdout"; $as_echo "append: OK
37464 current message
37474 env_date: Mon Jul 29 21:00:09 2002
37484 env_sender: alice@wonder.land
37494 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
3750Date:Mon, 29 Jul 2002 22:00:04 +0100
3751From:Alice  <alice@wonder.land>
3752Message-Id:<200207292200.3304@wonder.land>
3753To:March Hare  <hare@wonder.land>
3754Subject:Re: Invitation
3755Return-Path:alice@wonder.land
3756X-UID:140
3757
37584 body_text: Then it wasn't very civil of you to offer it
3759
3760uidvalidity: 1027976406
3761uidnext: 141
3762sync: OK
3763count: 4
3764uidvalidity: 1027976406
3765uidnext: 141
3766" | \
3767  $at_diff - "$at_stdout" || at_failed=:
3768at_fn_check_status 0 $at_status "$at_srcdir/append.at:98"
3769$at_failed && at_fn_log_failure
3770$at_traceon; }
3771
3772  set +x
3773  $at_times_p && times >"$at_times_file"
3774) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3775read at_status <"$at_status_file"
3776#AT_STOP_13
3777#AT_START_14
3778at_fn_group_banner 14 'append.at:193' \
3779  "append to empty mailbox" "                        "
3780at_xfail=no
3781(
3782  $as_echo "14. $at_setup_line: testing $at_desc ..."
3783  $at_traceon
3784
3785{ set +x
3786$as_echo "$at_srcdir/append.at:193: : >dmbx
3787cat >input <<'_ATEOF'
3788# Append new message
3789append msg
3790# Select it
37911
3792# Check if it is scanned and loaded
3793env_date
3794env_sender
3795headers
3796body_text
3797_ATEOF
3798
3799cat >msg <<'_ATEOF'
3800Received: (from hare@wonder.land)
3801	by wonder.land id 3301
3802	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3803Date: Mon, 29 Jul 2002 22:00:01 +0100
3804From: March Hare  <hare@wonder.land>
3805Message-Id: <200207292200.3301@wonder.land>
3806To: Alice  <alice@wonder.land>
3807Subject: Invitation
3808Return-Path: hare@wonder.land
3809
3810Have some wine
3811_ATEOF
3812
3813MAIL=./dmbx
3814export MAIL
3815mbop < input
3816
3817"
3818at_fn_check_prepare_notrace 'an embedded newline' "append.at:193"
3819( $at_check_trace; : >dmbx
3820cat >input <<'_ATEOF'
3821# Append new message
3822append msg
3823# Select it
38241
3825# Check if it is scanned and loaded
3826env_date
3827env_sender
3828headers
3829body_text
3830_ATEOF
3831
3832cat >msg <<'_ATEOF'
3833Received: (from hare@wonder.land)
3834	by wonder.land id 3301
3835	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3836Date: Mon, 29 Jul 2002 22:00:01 +0100
3837From: March Hare  <hare@wonder.land>
3838Message-Id: <200207292200.3301@wonder.land>
3839To: Alice  <alice@wonder.land>
3840Subject: Invitation
3841Return-Path: hare@wonder.land
3842
3843Have some wine
3844_ATEOF
3845
3846MAIL=./dmbx
3847export MAIL
3848mbop < input
3849
3850
3851) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3852at_status=$? at_failed=false
3853$at_check_filter
3854at_fn_diff_devnull "$at_stderr" || at_failed=:
3855echo >>"$at_stdout"; $as_echo "append: OK
38561 current message
38571 env_date: Mon Jul 29 21:00:06 2002
38581 env_sender: hare@wonder.land
38591 headers: Received:(from hare@wonder.land) by wonder.land id 3301 for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3860Date:Mon, 29 Jul 2002 22:00:01 +0100
3861From:March Hare  <hare@wonder.land>
3862Message-Id:<200207292200.3301@wonder.land>
3863To:Alice  <alice@wonder.land>
3864Subject:Invitation
3865Return-Path:hare@wonder.land
3866
38671 body_text: Have some wine
3868
3869" | \
3870  $at_diff - "$at_stdout" || at_failed=:
3871at_fn_check_status 0 $at_status "$at_srcdir/append.at:193"
3872$at_failed && at_fn_log_failure
3873$at_traceon; }
3874
3875  set +x
3876  $at_times_p && times >"$at_times_file"
3877) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3878read at_status <"$at_status_file"
3879#AT_STOP_14
3880#AT_START_15
3881at_fn_group_banner 15 'append.at:236' \
3882  "append mode" "                                    "
3883at_xfail=no
3884(
3885  $as_echo "15. $at_setup_line: testing $at_desc ..."
3886  $at_traceon
3887
3888cat >inbox <<'_ATEOF'
3889Received: (from hare@wonder.land)
3890	by wonder.land id 3301
3891	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3892Date: Mon, 29 Jul 2002 22:00:01 +0100
3893From: March Hare  <hare@wonder.land>
3894Message-Id: <200207292200.3301@wonder.land>
3895To: Alice  <alice@wonder.land>
3896Subject: Invitation
3897Return-Path: hare@wonder.land
3898X-IMAPbase: 10 3
3899X-UID: 1
3900
3901Have some wine
3902.
3903Received: (from alice@wonder.land)
3904	by wonder.land id 3302
3905	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
3906Date: Mon, 29 Jul 2002 22:00:02 +0100
3907From: Alice  <alice@wonder.land>
3908Message-Id: <200207292200.3302@wonder.land>
3909To: March Hare  <hare@wonder.land>
3910Subject: Re: Invitation
3911Return-Path: alice@wonder.land
3912X-UID: 2
3913
3914I don't see any wine
3915.
3916_ATEOF
3917
3918cat >msg <<'_ATEOF'
3919Received: (from hare@wonder.land)
3920	by wonder.land id 3303
3921	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
3922Date: Mon, 29 Jul 2002 22:00:03 +0100
3923From: March Hare  <hare@wonder.land>
3924Message-Id: <200207292200.3303@wonder.land>
3925To: Alice  <alice@wonder.land>
3926Subject: Re: Invitation
3927Return-Path: hare@wonder.land
3928
3929There isn't any
3930_ATEOF
3931
3932{ set +x
3933$as_echo "$at_srcdir/append.at:279: mbop -a -m inbox append msg"
3934at_fn_check_prepare_trace "append.at:279"
3935( $at_check_trace; mbop -a -m inbox append msg
3936) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3937at_status=$? at_failed=false
3938$at_check_filter
3939at_fn_diff_devnull "$at_stderr" || at_failed=:
3940echo >>"$at_stdout"; $as_echo "append: OK
3941" | \
3942  $at_diff - "$at_stdout" || at_failed=:
3943at_fn_check_status 0 $at_status "$at_srcdir/append.at:279"
3944$at_failed && at_fn_log_failure
3945$at_traceon; }
3946
3947{ set +x
3948$as_echo "$at_srcdir/append.at:283: grep X-UID inbox"
3949at_fn_check_prepare_trace "append.at:283"
3950( $at_check_trace; grep X-UID inbox
3951) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3952at_status=$? at_failed=false
3953$at_check_filter
3954at_fn_diff_devnull "$at_stderr" || at_failed=:
3955echo >>"$at_stdout"; $as_echo "X-UID: 1
3956X-UID: 2
3957X-UID: 3
3958" | \
3959  $at_diff - "$at_stdout" || at_failed=:
3960at_fn_check_status 0 $at_status "$at_srcdir/append.at:283"
3961$at_failed && at_fn_log_failure
3962$at_traceon; }
3963
3964{ set +x
3965$as_echo "$at_srcdir/append.at:289: grep X-IMAPbase inbox | tr -s ' '"
3966at_fn_check_prepare_notrace 'a shell pipeline' "append.at:289"
3967( $at_check_trace; grep X-IMAPbase inbox | tr -s ' '
3968) >>"$at_stdout" 2>>"$at_stderr" 5>&-
3969at_status=$? at_failed=false
3970$at_check_filter
3971at_fn_diff_devnull "$at_stderr" || at_failed=:
3972echo >>"$at_stdout"; $as_echo "X-IMAPbase: 10 4
3973" | \
3974  $at_diff - "$at_stdout" || at_failed=:
3975at_fn_check_status 0 $at_status "$at_srcdir/append.at:289"
3976$at_failed && at_fn_log_failure
3977$at_traceon; }
3978
3979  set +x
3980  $at_times_p && times >"$at_times_file"
3981) 5>&1 2>&1 7>&- | eval $at_tee_pipe
3982read at_status <"$at_status_file"
3983#AT_STOP_15
3984#AT_START_16
3985at_fn_group_banner 16 'notify.at:17' \
3986  "append notification" "                            "
3987at_xfail=no
3988(
3989  $as_echo "16. $at_setup_line: testing $at_desc ..."
3990  $at_traceon
3991
3992
3993cat >inbox <<'_ATEOF'
3994Received: (from hare@wonder.land)
3995	by wonder.land id 3301
3996	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
3997Date: Mon, 29 Jul 2002 22:00:01 +0100
3998From: March Hare  <hare@wonder.land>
3999Message-Id: <200207292200.3301@wonder.land>
4000To: Alice  <alice@wonder.land>
4001Subject: Invitation
4002Return-Path: hare@wonder.land
4003
4004Have some wine
4005.
4006Received: (from alice@wonder.land)
4007	by wonder.land id 3302
4008	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4009Date: Mon, 29 Jul 2002 22:00:02 +0100
4010From: Alice  <alice@wonder.land>
4011Message-Id: <200207292200.3302@wonder.land>
4012To: March Hare  <hare@wonder.land>
4013Subject: Re: Invitation
4014Return-Path: alice@wonder.land
4015
4016I don't see any wine
4017.
4018Received: (from hare@wonder.land)
4019	by wonder.land id 3303
4020	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4021Date: Mon, 29 Jul 2002 22:00:03 +0100
4022From: March Hare  <hare@wonder.land>
4023Message-Id: <200207292200.3303@wonder.land>
4024To: Alice  <alice@wonder.land>
4025Subject: Re: Invitation
4026Return-Path: hare@wonder.land
4027
4028There isn't any
4029.
4030_ATEOF
4031
4032cat >msg <<'_ATEOF'
4033Received: (from alice@wonder.land)
4034	by wonder.land id 3304
4035	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4036Date: Mon, 29 Jul 2002 22:00:04 +0100
4037From: Alice  <alice@wonder.land>
4038Message-Id: <200207292200.3304@wonder.land>
4039To: March Hare  <hare@wonder.land>
4040Subject: Re: Invitation
4041Return-Path: alice@wonder.land
4042X-UID: 1034
4043
4044Then it wasn't very civil of you to offer it
4045_ATEOF
4046
4047{ set +x
4048$as_echo "$at_srcdir/notify.at:71: mbop -m inbox --notify append msg
4049"
4050at_fn_check_prepare_notrace 'an embedded newline' "notify.at:71"
4051( $at_check_trace; mbop -m inbox --notify append msg
4052
4053) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4054at_status=$? at_failed=false
4055$at_check_filter
4056echo >>"$at_stderr"; $as_echo "mbop: new message: Alice  <alice@wonder.land> Re: Invitation
4057" | \
4058  $at_diff - "$at_stderr" || at_failed=:
4059echo >>"$at_stdout"; $as_echo "append: OK
4060" | \
4061  $at_diff - "$at_stdout" || at_failed=:
4062at_fn_check_status 0 $at_status "$at_srcdir/notify.at:71"
4063$at_failed && at_fn_log_failure
4064$at_traceon; }
4065
4066  set +x
4067  $at_times_p && times >"$at_times_file"
4068) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4069read at_status <"$at_status_file"
4070#AT_STOP_16
4071#AT_START_17
4072at_fn_group_banner 17 'delete.at:17' \
4073  "delete" "                                         "
4074at_xfail=no
4075(
4076  $as_echo "17. $at_setup_line: testing $at_desc ..."
4077  $at_traceon
4078
4079
4080cat >inbox <<'_ATEOF'
4081Received: (from hare@wonder.land)
4082	by wonder.land id 3301
4083	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4084Date: Mon, 29 Jul 2002 22:00:01 +0100
4085From: March Hare  <hare@wonder.land>
4086Message-Id: <200207292200.3301@wonder.land>
4087To: Alice  <alice@wonder.land>
4088Subject: Invitation
4089X-IMAPbase:                   10                    9
4090X-UID: 1
4091
4092Have some wine
4093.
4094Received: (from alice@wonder.land)
4095	by wonder.land id 3302
4096	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4097Date: Mon, 29 Jul 2002 22:00:02 +0100
4098From: Alice  <alice@wonder.land>
4099Message-Id: <200207292200.3302@wonder.land>
4100To: March Hare  <hare@wonder.land>
4101Subject: Re: Invitation
4102X-UID: 2
4103
4104I don't see any wine
4105.
4106Received: (from hare@wonder.land)
4107	by wonder.land id 3303
4108	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4109Date: Mon, 29 Jul 2002 22:00:03 +0100
4110From: March Hare  <hare@wonder.land>
4111Message-Id: <200207292200.3303@wonder.land>
4112To: Alice  <alice@wonder.land>
4113Subject: Re: Invitation
4114X-UID: 3
4115
4116There isn't any
4117.
4118Received: (from alice@wonder.land)
4119	by wonder.land id 3304
4120	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4121Date: Mon, 29 Jul 2002 22:00:04 +0100
4122From: Alice  <alice@wonder.land>
4123Message-Id: <200207292200.3304@wonder.land>
4124To: March Hare  <hare@wonder.land>
4125Subject: Re: Invitation
4126X-UID: 4
4127
4128Then it wasn't very civil of you to offer it
4129.
4130Received: (from hare@wonder.land)
4131	by wonder.land id 3305
4132	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
4133Date: Mon, 29 Jul 2002 22:00:05 +0100
4134From: March Hare  <hare@wonder.land>
4135Message-Id: <200207292200.3305@wonder.land>
4136To: Alice  <alice@wonder.land>
4137Subject: Re: Invitation
4138X-UID: 5
4139
4140It wasn't very civil of you to sit down without being invited
4141.
4142Received: (from alice@wonder.land)
4143	by wonder.land id 3306
4144	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4145Date: Mon, 29 Jul 2002 22:00:06 +0100
4146From: Alice  <alice@wonder.land>
4147Message-Id: <200207292200.3306@wonder.land>
4148To: March Hare  <hare@wonder.land>
4149Subject: Re: Invitation
4150X-UID: 6
4151
4152I didn't know it was YOUR table, it's laid for a
4153great many more than three.
4154.
4155_ATEOF
4156
4157# --------------------------
4158
4159cat >commands <<'_ATEOF'
41603
4161set_deleted
4162expunge
4163count
4164# Message 4 becomes 3 after expunge. Re-select it.
41653
4166uid
4167headers
4168_ATEOF
4169
4170
4171{ set +x
4172$as_echo "$at_srcdir/delete.at:108: cp inbox inbox1
4173cp inbox inbox2"
4174at_fn_check_prepare_notrace 'an embedded newline' "delete.at:108"
4175( $at_check_trace; cp inbox inbox1
4176cp inbox inbox2
4177) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4178at_status=$? at_failed=false
4179$at_check_filter
4180at_fn_diff_devnull "$at_stderr" || at_failed=:
4181at_fn_diff_devnull "$at_stdout" || at_failed=:
4182at_fn_check_status 0 $at_status "$at_srcdir/delete.at:108"
4183$at_failed && at_fn_log_failure
4184$at_traceon; }
4185
4186
4187{ set +x
4188$as_echo "$at_srcdir/delete.at:111: mbop -m inbox < commands"
4189at_fn_check_prepare_trace "delete.at:111"
4190( $at_check_trace; mbop -m inbox < commands
4191) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4192at_status=$? at_failed=false
4193$at_check_filter
4194at_fn_diff_devnull "$at_stderr" || at_failed=:
4195echo >>"$at_stdout"; $as_echo "3 current message
41963 set_deleted: OK
4197expunge: OK
4198count: 5
41993 current message
42003 uid: 4
42013 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4202Date:Mon, 29 Jul 2002 22:00:04 +0100
4203From:Alice  <alice@wonder.land>
4204Message-Id:<200207292200.3304@wonder.land>
4205To:March Hare  <hare@wonder.land>
4206Subject:Re: Invitation
4207X-UID:4
4208
4209" | \
4210  $at_diff - "$at_stdout" || at_failed=:
4211at_fn_check_status 0 $at_status "$at_srcdir/delete.at:111"
4212$at_failed && at_fn_log_failure
4213$at_traceon; }
4214
4215
4216cat >commands1 <<'_ATEOF'
42171
4218set_deleted
42192
4220set_deleted
42215
4222set_deleted
4223expunge
4224count
42251
4226uid
4227headers
42282
4229uid
4230headers
42313
4232uid
4233headers
4234_ATEOF
4235
4236
4237{ set +x
4238$as_echo "$at_srcdir/delete.at:149: mbop -m inbox1 < commands1|x_imapbase_normalize"
4239at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:149"
4240( $at_check_trace; mbop -m inbox1 < commands1|x_imapbase_normalize
4241) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4242at_status=$? at_failed=false
4243$at_check_filter
4244at_fn_diff_devnull "$at_stderr" || at_failed=:
4245echo >>"$at_stdout"; $as_echo "1 current message
42461 set_deleted: OK
42472 current message
42482 set_deleted: OK
42495 current message
42505 set_deleted: OK
4251expunge: OK
4252count: 3
42531 current message
42541 uid: 3
42551 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4256Date:Mon, 29 Jul 2002 22:00:03 +0100
4257From:March Hare  <hare@wonder.land>
4258Message-Id:<200207292200.3303@wonder.land>
4259To:Alice  <alice@wonder.land>
4260Subject:Re: Invitation
4261X-IMAPbase:10 9
4262X-UID:3
4263
42642 current message
42652 uid: 4
42662 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4267Date:Mon, 29 Jul 2002 22:00:04 +0100
4268From:Alice  <alice@wonder.land>
4269Message-Id:<200207292200.3304@wonder.land>
4270To:March Hare  <hare@wonder.land>
4271Subject:Re: Invitation
4272X-UID:4
4273
42743 current message
42753 uid: 6
42763 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4277Date:Mon, 29 Jul 2002 22:00:06 +0100
4278From:Alice  <alice@wonder.land>
4279Message-Id:<200207292200.3306@wonder.land>
4280To:March Hare  <hare@wonder.land>
4281Subject:Re: Invitation
4282X-UID:6
4283
4284" | \
4285  $at_diff - "$at_stdout" || at_failed=:
4286at_fn_check_status 0 $at_status "$at_srcdir/delete.at:149"
4287$at_failed && at_fn_log_failure
4288$at_traceon; }
4289
4290
4291# ##
4292cat >commands1a <<'_ATEOF'
4293count
42941
4295uid
4296headers
42972
4298uid
4299headers
43003
4301uid
4302headers
4303_ATEOF
4304
4305
4306{ set +x
4307$as_echo "$at_srcdir/delete.at:206: mbop -m inbox1 < commands1a|x_imapbase_normalize"
4308at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:206"
4309( $at_check_trace; mbop -m inbox1 < commands1a|x_imapbase_normalize
4310) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4311at_status=$? at_failed=false
4312$at_check_filter
4313at_fn_diff_devnull "$at_stderr" || at_failed=:
4314echo >>"$at_stdout"; $as_echo "count: 3
43151 current message
43161 uid: 3
43171 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4318Date:Mon, 29 Jul 2002 22:00:03 +0100
4319From:March Hare  <hare@wonder.land>
4320Message-Id:<200207292200.3303@wonder.land>
4321To:Alice  <alice@wonder.land>
4322Subject:Re: Invitation
4323X-IMAPbase:10 9
4324X-UID:3
4325
43262 current message
43272 uid: 4
43282 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4329Date:Mon, 29 Jul 2002 22:00:04 +0100
4330From:Alice  <alice@wonder.land>
4331Message-Id:<200207292200.3304@wonder.land>
4332To:March Hare  <hare@wonder.land>
4333Subject:Re: Invitation
4334X-UID:4
4335
43363 current message
43373 uid: 6
43383 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4339Date:Mon, 29 Jul 2002 22:00:06 +0100
4340From:Alice  <alice@wonder.land>
4341Message-Id:<200207292200.3306@wonder.land>
4342To:March Hare  <hare@wonder.land>
4343Subject:Re: Invitation
4344X-UID:6
4345
4346" | \
4347  $at_diff - "$at_stdout" || at_failed=:
4348at_fn_check_status 0 $at_status "$at_srcdir/delete.at:206"
4349$at_failed && at_fn_log_failure
4350$at_traceon; }
4351
4352
4353# ##
4354cat >commands2 <<'_ATEOF'
43551
4356set_deleted
43573
4358set_deleted
43595
4360set_deleted
4361expunge
4362count
43631
4364uid
4365headers
43662
4367uid
4368headers
43693
4370uid
4371headers
4372_ATEOF
4373
4374
4375{ set +x
4376$as_echo "$at_srcdir/delete.at:263: mbop -m inbox2 < commands2|x_imapbase_normalize"
4377at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:263"
4378( $at_check_trace; mbop -m inbox2 < commands2|x_imapbase_normalize
4379) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4380at_status=$? at_failed=false
4381$at_check_filter
4382at_fn_diff_devnull "$at_stderr" || at_failed=:
4383echo >>"$at_stdout"; $as_echo "1 current message
43841 set_deleted: OK
43853 current message
43863 set_deleted: OK
43875 current message
43885 set_deleted: OK
4389expunge: OK
4390count: 3
43911 current message
43921 uid: 2
43931 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4394Date:Mon, 29 Jul 2002 22:00:02 +0100
4395From:Alice  <alice@wonder.land>
4396Message-Id:<200207292200.3302@wonder.land>
4397To:March Hare  <hare@wonder.land>
4398Subject:Re: Invitation
4399X-IMAPbase:10 9
4400X-UID:2
4401
44022 current message
44032 uid: 4
44042 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4405Date:Mon, 29 Jul 2002 22:00:04 +0100
4406From:Alice  <alice@wonder.land>
4407Message-Id:<200207292200.3304@wonder.land>
4408To:March Hare  <hare@wonder.land>
4409Subject:Re: Invitation
4410X-UID:4
4411
44123 current message
44133 uid: 6
44143 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4415Date:Mon, 29 Jul 2002 22:00:06 +0100
4416From:Alice  <alice@wonder.land>
4417Message-Id:<200207292200.3306@wonder.land>
4418To:March Hare  <hare@wonder.land>
4419Subject:Re: Invitation
4420X-UID:6
4421
4422" | \
4423  $at_diff - "$at_stdout" || at_failed=:
4424at_fn_check_status 0 $at_status "$at_srcdir/delete.at:263"
4425$at_failed && at_fn_log_failure
4426$at_traceon; }
4427
4428
4429cat >commands2a <<'_ATEOF'
4430count
44311
4432uid
4433headers
44342
4435uid
4436headers
44373
4438uid
4439headers
4440_ATEOF
4441
4442
4443{ set +x
4444$as_echo "$at_srcdir/delete.at:319: mbop -m inbox2 < commands2a|x_imapbase_normalize"
4445at_fn_check_prepare_notrace 'a shell pipeline' "delete.at:319"
4446( $at_check_trace; mbop -m inbox2 < commands2a|x_imapbase_normalize
4447) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4448at_status=$? at_failed=false
4449$at_check_filter
4450at_fn_diff_devnull "$at_stderr" || at_failed=:
4451echo >>"$at_stdout"; $as_echo "count: 3
44521 current message
44531 uid: 2
44541 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4455Date:Mon, 29 Jul 2002 22:00:02 +0100
4456From:Alice  <alice@wonder.land>
4457Message-Id:<200207292200.3302@wonder.land>
4458To:March Hare  <hare@wonder.land>
4459Subject:Re: Invitation
4460X-IMAPbase:10 9
4461X-UID:2
4462
44632 current message
44642 uid: 4
44652 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
4466Date:Mon, 29 Jul 2002 22:00:04 +0100
4467From:Alice  <alice@wonder.land>
4468Message-Id:<200207292200.3304@wonder.land>
4469To:March Hare  <hare@wonder.land>
4470Subject:Re: Invitation
4471X-UID:4
4472
44733 current message
44743 uid: 6
44753 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
4476Date:Mon, 29 Jul 2002 22:00:06 +0100
4477From:Alice  <alice@wonder.land>
4478Message-Id:<200207292200.3306@wonder.land>
4479To:March Hare  <hare@wonder.land>
4480Subject:Re: Invitation
4481X-UID:6
4482
4483" | \
4484  $at_diff - "$at_stdout" || at_failed=:
4485at_fn_check_status 0 $at_status "$at_srcdir/delete.at:319"
4486$at_failed && at_fn_log_failure
4487$at_traceon; }
4488
4489
4490  set +x
4491  $at_times_p && times >"$at_times_file"
4492) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4493read at_status <"$at_status_file"
4494#AT_STOP_17
4495#AT_START_18
4496at_fn_group_banner 18 'uidnext.at:17' \
4497  "UID monotonicity" "                               "
4498at_xfail=no
4499(
4500  $as_echo "18. $at_setup_line: testing $at_desc ..."
4501  $at_traceon
4502
4503cat >inbox <<'_ATEOF'
4504Received: (from hare@wonder.land)
4505	by wonder.land id 3301
4506	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4507Date: Mon, 29 Jul 2002 22:00:01 +0100
4508From: March Hare  <hare@wonder.land>
4509Message-Id: <200207292200.3301@wonder.land>
4510To: Alice  <alice@wonder.land>
4511Subject: Invitation
4512Return-Path: hare@wonder.land
4513Status: O
4514X-UID: 10
4515X-IMAPbase: 10 1001
4516
4517Have some wine
4518.
4519Received: (from alice@wonder.land)
4520	by wonder.land id 3302
4521	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4522Date: Mon, 29 Jul 2002 22:00:02 +0100
4523From: Alice  <alice@wonder.land>
4524Message-Id: <200207292200.3302@wonder.land>
4525To: March Hare  <hare@wonder.land>
4526Subject: Re: Invitation
4527Return-Path: alice@wonder.land
4528X-UID: 11
4529
4530I don't see any wine
4531.
4532_ATEOF
4533
4534
4535# Test initial mailbox status
4536{ set +x
4537$as_echo "$at_srcdir/uidnext.at:50: mbop -m inbox count \\; uidnext \\; uidvalidity"
4538at_fn_check_prepare_trace "uidnext.at:50"
4539( $at_check_trace; mbop -m inbox count \; uidnext \; uidvalidity
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: 2
4545uidnext: 1001
4546uidvalidity: 10
4547" | \
4548  $at_diff - "$at_stdout" || at_failed=:
4549at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:50"
4550$at_failed && at_fn_log_failure
4551$at_traceon; }
4552
4553
4554# Prepare the message to append.
4555cat >msg1 <<'_ATEOF'
4556Received: (from hare@wonder.land)
4557	by wonder.land id 3303
4558	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
4559Date: Mon, 29 Jul 2002 22:00:03 +0100
4560From: March Hare  <hare@wonder.land>
4561Message-Id: <200207292200.3303@wonder.land>
4562To: Alice  <alice@wonder.land>
4563Subject: Re: Invitation
4564Return-Path: hare@wonder.land
4565
4566There isn't any
4567_ATEOF
4568
4569
4570# Append message; check mailbox status
4571{ set +x
4572$as_echo "$at_srcdir/uidnext.at:73: mbop -m inbox append msg1 \\; 3 \\; uid \\; uidnext \\; uidvalidity"
4573at_fn_check_prepare_trace "uidnext.at:73"
4574( $at_check_trace; mbop -m inbox append msg1 \; 3 \; uid \; uidnext \; uidvalidity
4575) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4576at_status=$? at_failed=false
4577$at_check_filter
4578at_fn_diff_devnull "$at_stderr" || at_failed=:
4579echo >>"$at_stdout"; $as_echo "append: OK
45803 current message
45813 uid: 1001
4582uidnext: 1002
4583uidvalidity: 10
4584" | \
4585  $at_diff - "$at_stdout" || at_failed=:
4586at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:73"
4587$at_failed && at_fn_log_failure
4588$at_traceon; }
4589
4590
4591# Test mailbox status after close.
4592{ set +x
4593$as_echo "$at_srcdir/uidnext.at:83: mbop -m inbox count \\; uidnext \\; uidvalidity"
4594at_fn_check_prepare_trace "uidnext.at:83"
4595( $at_check_trace; mbop -m inbox count \; uidnext \; uidvalidity
4596) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4597at_status=$? at_failed=false
4598$at_check_filter
4599at_fn_diff_devnull "$at_stderr" || at_failed=:
4600echo >>"$at_stdout"; $as_echo "count: 3
4601uidnext: 1002
4602uidvalidity: 10
4603" | \
4604  $at_diff - "$at_stdout" || at_failed=:
4605at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:83"
4606$at_failed && at_fn_log_failure
4607$at_traceon; }
4608
4609
4610# Delete the message
4611{ set +x
4612$as_echo "$at_srcdir/uidnext.at:91: mbop -m inbox 3 \\; set_deleted \\; expunge"
4613at_fn_check_prepare_trace "uidnext.at:91"
4614( $at_check_trace; mbop -m inbox 3 \; set_deleted \; expunge
4615) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4616at_status=$? at_failed=false
4617$at_check_filter
4618at_fn_diff_devnull "$at_stderr" || at_failed=:
4619echo >>"$at_stdout"; $as_echo "3 current message
46203 set_deleted: OK
4621expunge: OK
4622" | \
4623  $at_diff - "$at_stdout" || at_failed=:
4624at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:91"
4625$at_failed && at_fn_log_failure
4626$at_traceon; }
4627
4628
4629# Test mailbox status after delete
4630{ set +x
4631$as_echo "$at_srcdir/uidnext.at:99: mbop -m inbox count \\; uidnext \\; uidvalidity"
4632at_fn_check_prepare_trace "uidnext.at:99"
4633( $at_check_trace; mbop -m inbox count \; uidnext \; uidvalidity
4634) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4635at_status=$? at_failed=false
4636$at_check_filter
4637at_fn_diff_devnull "$at_stderr" || at_failed=:
4638echo >>"$at_stdout"; $as_echo "count: 2
4639uidnext: 1002
4640uidvalidity: 10
4641" | \
4642  $at_diff - "$at_stdout" || at_failed=:
4643at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:99"
4644$at_failed && at_fn_log_failure
4645$at_traceon; }
4646
4647
4648# Append the message again and check status
4649{ set +x
4650$as_echo "$at_srcdir/uidnext.at:107: mbop -m inbox append msg1 \\; 3 \\; uid \\; uidnext \\; uidvalidity"
4651at_fn_check_prepare_trace "uidnext.at:107"
4652( $at_check_trace; mbop -m inbox append msg1 \; 3 \; uid \; uidnext \; uidvalidity
4653) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4654at_status=$? at_failed=false
4655$at_check_filter
4656at_fn_diff_devnull "$at_stderr" || at_failed=:
4657echo >>"$at_stdout"; $as_echo "append: OK
46583 current message
46593 uid: 1002
4660uidnext: 1003
4661uidvalidity: 10
4662" | \
4663  $at_diff - "$at_stdout" || at_failed=:
4664at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:107"
4665$at_failed && at_fn_log_failure
4666$at_traceon; }
4667
4668
4669# Test mailbox status after append
4670{ set +x
4671$as_echo "$at_srcdir/uidnext.at:117: mbop -m inbox count \\; uidnext \\; uidvalidity"
4672at_fn_check_prepare_trace "uidnext.at:117"
4673( $at_check_trace; mbop -m inbox count \; uidnext \; uidvalidity
4674) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4675at_status=$? at_failed=false
4676$at_check_filter
4677at_fn_diff_devnull "$at_stderr" || at_failed=:
4678echo >>"$at_stdout"; $as_echo "count: 3
4679uidnext: 1003
4680uidvalidity: 10
4681" | \
4682  $at_diff - "$at_stdout" || at_failed=:
4683at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:117"
4684$at_failed && at_fn_log_failure
4685$at_traceon; }
4686
4687
4688# Retry all in one session.
4689cat >cmd <<'_ATEOF'
46903
4691set_deleted
4692expunge
4693uidnext
4694uidvalidity
4695append msg1
46963
4697uid
4698uidnext
4699uidvalidity
4700_ATEOF
4701
4702
4703{ set +x
4704$as_echo "$at_srcdir/uidnext.at:138: mbop -m inbox < cmd"
4705at_fn_check_prepare_trace "uidnext.at:138"
4706( $at_check_trace; mbop -m inbox < cmd
4707) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4708at_status=$? at_failed=false
4709$at_check_filter
4710at_fn_diff_devnull "$at_stderr" || at_failed=:
4711echo >>"$at_stdout"; $as_echo "3 current message
47123 set_deleted: OK
4713expunge: OK
4714uidnext: 1003
4715uidvalidity: 10
4716append: OK
47173 current message
47183 uid: 1003
4719uidnext: 1004
4720uidvalidity: 10
4721" | \
4722  $at_diff - "$at_stdout" || at_failed=:
4723at_fn_check_status 0 $at_status "$at_srcdir/uidnext.at:138"
4724$at_failed && at_fn_log_failure
4725$at_traceon; }
4726
4727
4728  set +x
4729  $at_times_p && times >"$at_times_file"
4730) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4731read at_status <"$at_status_file"
4732#AT_STOP_18
4733#AT_START_19
4734at_fn_group_banner 19 'autodetect.at:17' \
4735  "format detection" "                               "
4736at_xfail=no
4737(
4738  $as_echo "19. $at_setup_line: testing $at_desc ..."
4739  $at_traceon
4740
4741
4742{ set +x
4743$as_echo "$at_srcdir/autodetect.at:19: : >empty
4744
4745# Valid dotmail mailbox
4746cat >dotmail <<'_ATEOF'
4747Received: (from hare@wonder.land)
4748	by wonder.land id 3301
4749	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4750Date: Mon, 29 Jul 2002 22:00:01 +0100
4751From: March Hare  <hare@wonder.land>
4752Message-Id: <200207292200.3301@wonder.land>
4753To: Alice  <alice@wonder.land>
4754Subject: Invitation
4755Return-Path: hare@wonder.land
4756
4757Have some wine
4758.
4759Received: (from alice@wonder.land)
4760	by wonder.land id 3302
4761	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4762Date: Mon, 29 Jul 2002 22:00:02 +0100
4763From: Alice  <alice@wonder.land>
4764Message-Id: <200207292200.3302@wonder.land>
4765To: March Hare  <hare@wonder.land>
4766Subject: Re: Invitation
4767Return-Path: alice@wonder.land
4768
4769I don't see any wine
4770.
4771_ATEOF
4772
4773
4774# Valid mbox mailbox
4775cat >mbox <<'_ATEOF'
4776From hare@wonder.land Mon Jul 29 22:00:08 2002
4777Received: (from hare@wonder.land)
4778        by wonder.land id 3301
4779        for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4780Date: Mon, 29 Jul 2002 22:00:01 +0100
4781From: March Hare  <hare@wonder.land>
4782Message-Id: <200207292200.3301@wonder.land>
4783To: Alice  <alice@wonder.land>
4784Subject: Invitation
4785
4786Have some wine
4787
4788_ATEOF
4789
4790
4791# Malformed dotmail: no final dot
4792cat >nodot <<'_ATEOF'
4793Received: (from hare@wonder.land)
4794	by wonder.land id 3301
4795	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4796Date: Mon, 29 Jul 2002 22:00:01 +0100
4797From: March Hare  <hare@wonder.land>
4798Message-Id: <200207292200.3301@wonder.land>
4799To: Alice  <alice@wonder.land>
4800Subject: Invitation
4801Return-Path: hare@wonder.land
4802
4803Have some wine
4804.
4805Received: (from alice@wonder.land)
4806	by wonder.land id 3302
4807	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4808Date: Mon, 29 Jul 2002 22:00:02 +0100
4809From: Alice  <alice@wonder.land>
4810Message-Id: <200207292200.3302@wonder.land>
4811To: March Hare  <hare@wonder.land>
4812Subject: Re: Invitation
4813Return-Path: alice@wonder.land
4814
4815I don't see any wine
4816_ATEOF
4817
4818
4819# Garbage input that is similar to header line
4820cat >badheader <<'_ATEOF'
4821Something-that-looks-like-A%: header
4822text
4823.
4824_ATEOF
4825
4826
4827# Garbage input
4828cat >garbage <<'_ATEOF'
4829ZZKTJVLRF97GGVYv+hMsbO2gHUe/4ra31zXffN9vS10FG8lUBixFJJ9kv+F1/5muYhG6n2JrrLC9ZScpn9zNRrMqLVH/9slNBadT6fZL9hAmxyYQUMbqcCmsmn3A7rNVfKgfubufBpsUg/dzqsJWN4DOPQACSVYMY2DIGmEYt2Rdt3s1/VdpJZhaHEETWQzXyaG0iAZn4r2iD2InJHPOalG7WJhj1cCHHToEA029GRMx6uHhOWBjXT5P0H3ebhEujbIBj9e6aX5u42jg/+YuCoVpy8fbESHiB3gc9ijKgyGrVLBQLkikc6sK7E8xjwGhu75G4LKVTctff8UyqRjgUR5eA7TuI9+VmCnO7pf5LR/QDFzV1smrfR1BzX3dudbjdCyR3xW2oYFyWRJDlycFULVuRmG87u795P4DOeH6/+I32AnJeJNX40vEzprqQwdxdkifBtcDiKvhcecFgbQLIw4OKrOEuFBMraViHC6ZFkLBNf6aXBk+xiv6U8ogDH4a1+
4830_ATEOF
4831
4832export MU_AUTODETECT_ACCURACY
4833for MU_AUTODETECT_ACCURACY in 0 1 2
4834do
4835  echo \"MU_AUTODETECT_ACCURACY=\$MU_AUTODETECT_ACCURACY\"
4836  for mbox in empty dotmail mbox nodot badheader garbage
4837  do
4838    mbop --mailbox \$mbox --detect
4839  done
4840done
4841exit 0
4842"
4843at_fn_check_prepare_notrace 'an embedded newline' "autodetect.at:19"
4844( $at_check_trace; : >empty
4845
4846# Valid dotmail mailbox
4847cat >dotmail <<'_ATEOF'
4848Received: (from hare@wonder.land)
4849	by wonder.land id 3301
4850	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4851Date: Mon, 29 Jul 2002 22:00:01 +0100
4852From: March Hare  <hare@wonder.land>
4853Message-Id: <200207292200.3301@wonder.land>
4854To: Alice  <alice@wonder.land>
4855Subject: Invitation
4856Return-Path: hare@wonder.land
4857
4858Have some wine
4859.
4860Received: (from alice@wonder.land)
4861	by wonder.land id 3302
4862	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4863Date: Mon, 29 Jul 2002 22:00:02 +0100
4864From: Alice  <alice@wonder.land>
4865Message-Id: <200207292200.3302@wonder.land>
4866To: March Hare  <hare@wonder.land>
4867Subject: Re: Invitation
4868Return-Path: alice@wonder.land
4869
4870I don't see any wine
4871.
4872_ATEOF
4873
4874
4875# Valid mbox mailbox
4876cat >mbox <<'_ATEOF'
4877From hare@wonder.land Mon Jul 29 22:00:08 2002
4878Received: (from hare@wonder.land)
4879        by wonder.land id 3301
4880        for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4881Date: Mon, 29 Jul 2002 22:00:01 +0100
4882From: March Hare  <hare@wonder.land>
4883Message-Id: <200207292200.3301@wonder.land>
4884To: Alice  <alice@wonder.land>
4885Subject: Invitation
4886
4887Have some wine
4888
4889_ATEOF
4890
4891
4892# Malformed dotmail: no final dot
4893cat >nodot <<'_ATEOF'
4894Received: (from hare@wonder.land)
4895	by wonder.land id 3301
4896	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4897Date: Mon, 29 Jul 2002 22:00:01 +0100
4898From: March Hare  <hare@wonder.land>
4899Message-Id: <200207292200.3301@wonder.land>
4900To: Alice  <alice@wonder.land>
4901Subject: Invitation
4902Return-Path: hare@wonder.land
4903
4904Have some wine
4905.
4906Received: (from alice@wonder.land)
4907	by wonder.land id 3302
4908	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
4909Date: Mon, 29 Jul 2002 22:00:02 +0100
4910From: Alice  <alice@wonder.land>
4911Message-Id: <200207292200.3302@wonder.land>
4912To: March Hare  <hare@wonder.land>
4913Subject: Re: Invitation
4914Return-Path: alice@wonder.land
4915
4916I don't see any wine
4917_ATEOF
4918
4919
4920# Garbage input that is similar to header line
4921cat >badheader <<'_ATEOF'
4922Something-that-looks-like-A%: header
4923text
4924.
4925_ATEOF
4926
4927
4928# Garbage input
4929cat >garbage <<'_ATEOF'
4930ZZKTJVLRF97GGVYv+hMsbO2gHUe/4ra31zXffN9vS10FG8lUBixFJJ9kv+F1/5muYhG6n2JrrLC9ZScpn9zNRrMqLVH/9slNBadT6fZL9hAmxyYQUMbqcCmsmn3A7rNVfKgfubufBpsUg/dzqsJWN4DOPQACSVYMY2DIGmEYt2Rdt3s1/VdpJZhaHEETWQzXyaG0iAZn4r2iD2InJHPOalG7WJhj1cCHHToEA029GRMx6uHhOWBjXT5P0H3ebhEujbIBj9e6aX5u42jg/+YuCoVpy8fbESHiB3gc9ijKgyGrVLBQLkikc6sK7E8xjwGhu75G4LKVTctff8UyqRjgUR5eA7TuI9+VmCnO7pf5LR/QDFzV1smrfR1BzX3dudbjdCyR3xW2oYFyWRJDlycFULVuRmG87u795P4DOeH6/+I32AnJeJNX40vEzprqQwdxdkifBtcDiKvhcecFgbQLIw4OKrOEuFBMraViHC6ZFkLBNf6aXBk+xiv6U8ogDH4a1+
4931_ATEOF
4932
4933export MU_AUTODETECT_ACCURACY
4934for MU_AUTODETECT_ACCURACY in 0 1 2
4935do
4936  echo "MU_AUTODETECT_ACCURACY=$MU_AUTODETECT_ACCURACY"
4937  for mbox in empty dotmail mbox nodot badheader garbage
4938  do
4939    mbop --mailbox $mbox --detect
4940  done
4941done
4942exit 0
4943
4944) >>"$at_stdout" 2>>"$at_stderr" 5>&-
4945at_status=$? at_failed=false
4946$at_check_filter
4947at_fn_diff_devnull "$at_stderr" || at_failed=:
4948echo >>"$at_stdout"; $as_echo "MU_AUTODETECT_ACCURACY=0
4949empty: 2
4950dotmail: 2
4951mbox: 2
4952nodot: 2
4953badheader: 2
4954garbage: 2
4955MU_AUTODETECT_ACCURACY=1
4956empty: 2
4957dotmail: 2
4958mbox: 0
4959nodot: 2
4960badheader: 0
4961garbage: 0
4962MU_AUTODETECT_ACCURACY=2
4963empty: 2
4964dotmail: 2
4965mbox: 0
4966nodot: 0
4967badheader: 0
4968garbage: 0
4969" | \
4970  $at_diff - "$at_stdout" || at_failed=:
4971at_fn_check_status 0 $at_status "$at_srcdir/autodetect.at:19"
4972$at_failed && at_fn_log_failure
4973$at_traceon; }
4974
4975  set +x
4976  $at_times_p && times >"$at_times_file"
4977) 5>&1 2>&1 7>&- | eval $at_tee_pipe
4978read at_status <"$at_status_file"
4979#AT_STOP_19
4980#AT_START_20
4981at_fn_group_banner 20 'setattr.at:17' \
4982  "set attributes" "                                 "
4983at_xfail=no
4984(
4985  $as_echo "20. $at_setup_line: testing $at_desc ..."
4986  $at_traceon
4987
4988{ set +x
4989$as_echo "$at_srcdir/setattr.at:17: cat >dmbx <<'_ATEOF'
4990Received: (from hare@wonder.land)
4991	by wonder.land id 3301
4992	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
4993Date: Mon, 29 Jul 2002 22:00:01 +0100
4994From: March Hare  <hare@wonder.land>
4995Message-Id: <200207292200.3301@wonder.land>
4996To: Alice  <alice@wonder.land>
4997Subject: Invitation
4998Return-Path: hare@wonder.land
4999
5000Have some wine
5001.
5002Received: (from alice@wonder.land)
5003	by wonder.land id 3302
5004	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5005Date: Mon, 29 Jul 2002 22:00:02 +0100
5006From: Alice  <alice@wonder.land>
5007Message-Id: <200207292200.3302@wonder.land>
5008To: March Hare  <hare@wonder.land>
5009Subject: Re: Invitation
5010Return-Path: alice@wonder.land
5011
5012I don't see any wine
5013.
5014Received: (from hare@wonder.land)
5015	by wonder.land id 3303
5016	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5017Date: Mon, 29 Jul 2002 22:00:03 +0100
5018From: March Hare  <hare@wonder.land>
5019Message-Id: <200207292200.3303@wonder.land>
5020To: Alice  <alice@wonder.land>
5021Subject: Re: Invitation
5022Return-Path: hare@wonder.land
5023
5024There isn't any
5025.
5026Received: (from alice@wonder.land)
5027	by wonder.land id 3304
5028	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5029Date: Mon, 29 Jul 2002 22:00:04 +0100
5030From: Alice  <alice@wonder.land>
5031Message-Id: <200207292200.3304@wonder.land>
5032To: March Hare  <hare@wonder.land>
5033Subject: Re: Invitation
5034Return-Path: alice@wonder.land
5035
5036Then it wasn't very civil of you to offer it
5037.
5038Received: (from hare@wonder.land)
5039	by wonder.land id 3305
5040	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
5041Date: Mon, 29 Jul 2002 22:00:05 +0100
5042From: March Hare  <hare@wonder.land>
5043Message-Id: <200207292200.3305@wonder.land>
5044To: Alice  <alice@wonder.land>
5045Subject: Re: Invitation
5046Return-Path: hare@wonder.land
5047
5048It wasn't very civil of you to sit down without being invited
5049.
5050_ATEOF
5051
5052cat >input <<'_ATEOF'
5053# Select 3rd message
50543
5055# Display its attributes
5056attr
5057# Set the Read attribute
5058set_read
5059# Set the Draft attribute
5060set_draft
5061# Display modified attributes
5062attr
5063# Synchronize the mailbox with disk storage
5064sync
5065# Display modified attributes: should be the same as before
5066attr
5067# Display all headers; the Status header is missing, because
5068# the mu_header_t object was not notified about the change.
5069# Not sure if that's right, but that's the way the library works now.
5070headers
5071# Display the message text; this is to make sure all offsets
5072# in the mu_dotmail_message structure have been updated correctly
5073# after the change.
5074body_text
5075# Select fourth message
50764
5077# The following two commands make sure offsets in the subsequent messages
5078# are all fixed up.
5079headers
5080body_text
5081_ATEOF
5082
5083
5084MAIL=./dmbx
5085export MAIL
5086mbop < input
5087
5088"
5089at_fn_check_prepare_notrace 'an embedded newline' "setattr.at:17"
5090( $at_check_trace; cat >dmbx <<'_ATEOF'
5091Received: (from hare@wonder.land)
5092	by wonder.land id 3301
5093	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
5094Date: Mon, 29 Jul 2002 22:00:01 +0100
5095From: March Hare  <hare@wonder.land>
5096Message-Id: <200207292200.3301@wonder.land>
5097To: Alice  <alice@wonder.land>
5098Subject: Invitation
5099Return-Path: hare@wonder.land
5100
5101Have some wine
5102.
5103Received: (from alice@wonder.land)
5104	by wonder.land id 3302
5105	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5106Date: Mon, 29 Jul 2002 22:00:02 +0100
5107From: Alice  <alice@wonder.land>
5108Message-Id: <200207292200.3302@wonder.land>
5109To: March Hare  <hare@wonder.land>
5110Subject: Re: Invitation
5111Return-Path: alice@wonder.land
5112
5113I don't see any wine
5114.
5115Received: (from hare@wonder.land)
5116	by wonder.land id 3303
5117	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5118Date: Mon, 29 Jul 2002 22:00:03 +0100
5119From: March Hare  <hare@wonder.land>
5120Message-Id: <200207292200.3303@wonder.land>
5121To: Alice  <alice@wonder.land>
5122Subject: Re: Invitation
5123Return-Path: hare@wonder.land
5124
5125There isn't any
5126.
5127Received: (from alice@wonder.land)
5128	by wonder.land id 3304
5129	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5130Date: Mon, 29 Jul 2002 22:00:04 +0100
5131From: Alice  <alice@wonder.land>
5132Message-Id: <200207292200.3304@wonder.land>
5133To: March Hare  <hare@wonder.land>
5134Subject: Re: Invitation
5135Return-Path: alice@wonder.land
5136
5137Then it wasn't very civil of you to offer it
5138.
5139Received: (from hare@wonder.land)
5140	by wonder.land id 3305
5141	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
5142Date: Mon, 29 Jul 2002 22:00:05 +0100
5143From: March Hare  <hare@wonder.land>
5144Message-Id: <200207292200.3305@wonder.land>
5145To: Alice  <alice@wonder.land>
5146Subject: Re: Invitation
5147Return-Path: hare@wonder.land
5148
5149It wasn't very civil of you to sit down without being invited
5150.
5151_ATEOF
5152
5153cat >input <<'_ATEOF'
5154# Select 3rd message
51553
5156# Display its attributes
5157attr
5158# Set the Read attribute
5159set_read
5160# Set the Draft attribute
5161set_draft
5162# Display modified attributes
5163attr
5164# Synchronize the mailbox with disk storage
5165sync
5166# Display modified attributes: should be the same as before
5167attr
5168# Display all headers; the Status header is missing, because
5169# the mu_header_t object was not notified about the change.
5170# Not sure if that's right, but that's the way the library works now.
5171headers
5172# Display the message text; this is to make sure all offsets
5173# in the mu_dotmail_message structure have been updated correctly
5174# after the change.
5175body_text
5176# Select fourth message
51774
5178# The following two commands make sure offsets in the subsequent messages
5179# are all fixed up.
5180headers
5181body_text
5182_ATEOF
5183
5184
5185MAIL=./dmbx
5186export MAIL
5187mbop < input
5188
5189
5190) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5191at_status=$? at_failed=false
5192$at_check_filter
5193at_fn_diff_devnull "$at_stderr" || at_failed=:
5194echo >>"$at_stdout"; $as_echo "3 current message
51953 attr: -
51963 set_read: OK
51973 set_draft: OK
51983 attr: dR
5199sync: OK
52003 attr: dR
52013 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5202Date:Mon, 29 Jul 2002 22:00:03 +0100
5203From:March Hare  <hare@wonder.land>
5204Message-Id:<200207292200.3303@wonder.land>
5205To:Alice  <alice@wonder.land>
5206Subject:Re: Invitation
5207Return-Path:hare@wonder.land
5208
52093 body_text: There isn't any
5210
52114 current message
52124 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5213Date:Mon, 29 Jul 2002 22:00:04 +0100
5214From:Alice  <alice@wonder.land>
5215Message-Id:<200207292200.3304@wonder.land>
5216To:March Hare  <hare@wonder.land>
5217Subject:Re: Invitation
5218Return-Path:alice@wonder.land
5219
52204 body_text: Then it wasn't very civil of you to offer it
5221
5222" | \
5223  $at_diff - "$at_stdout" || at_failed=:
5224at_fn_check_status 0 $at_status "$at_srcdir/setattr.at:17"
5225$at_failed && at_fn_log_failure
5226$at_traceon; }
5227
5228  set +x
5229  $at_times_p && times >"$at_times_file"
5230) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5231read at_status <"$at_status_file"
5232#AT_STOP_20
5233#AT_START_21
5234at_fn_group_banner 21 'rospool.at:17' \
5235  "read-only spool directory" "                      "
5236at_xfail=no
5237(
5238  $as_echo "21. $at_setup_line: testing $at_desc ..."
5239  $at_traceon
5240
5241
5242{ set +x
5243$as_echo "$at_srcdir/rospool.at:19:
5244mkdir mailspool
5245cat >mailspool/inbox <<'_ATEOF'
5246Received: (from hare@wonder.land)
5247	by wonder.land id 3301
5248	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
5249Date: Mon, 29 Jul 2002 22:00:01 +0100
5250From: March Hare  <hare@wonder.land>
5251Message-Id: <200207292200.3301@wonder.land>
5252To: Alice  <alice@wonder.land>
5253Subject: Invitation
5254X-IMAPbase:                   10                    9
5255X-UID: 1
5256
5257Have some wine
5258.
5259Received: (from alice@wonder.land)
5260	by wonder.land id 3302
5261	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5262Date: Mon, 29 Jul 2002 22:00:02 +0100
5263From: Alice  <alice@wonder.land>
5264Message-Id: <200207292200.3302@wonder.land>
5265To: March Hare  <hare@wonder.land>
5266Subject: Re: Invitation
5267X-UID: 2
5268
5269I don't see any wine
5270.
5271Received: (from hare@wonder.land)
5272	by wonder.land id 3303
5273	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5274Date: Mon, 29 Jul 2002 22:00:03 +0100
5275From: March Hare  <hare@wonder.land>
5276Message-Id: <200207292200.3303@wonder.land>
5277To: Alice  <alice@wonder.land>
5278Subject: Re: Invitation
5279X-UID: 3
5280
5281There isn't any
5282.
5283Received: (from alice@wonder.land)
5284	by wonder.land id 3304
5285	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5286Date: Mon, 29 Jul 2002 22:00:04 +0100
5287From: Alice  <alice@wonder.land>
5288Message-Id: <200207292200.3304@wonder.land>
5289To: March Hare  <hare@wonder.land>
5290Subject: Re: Invitation
5291X-UID: 4
5292
5293Then it wasn't very civil of you to offer it
5294.
5295Received: (from hare@wonder.land)
5296	by wonder.land id 3305
5297	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
5298Date: Mon, 29 Jul 2002 22:00:05 +0100
5299From: March Hare  <hare@wonder.land>
5300Message-Id: <200207292200.3305@wonder.land>
5301To: Alice  <alice@wonder.land>
5302Subject: Re: Invitation
5303X-UID: 5
5304
5305It wasn't very civil of you to sit down without being invited
5306.
5307Received: (from alice@wonder.land)
5308	by wonder.land id 3306
5309	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5310Date: Mon, 29 Jul 2002 22:00:06 +0100
5311From: Alice  <alice@wonder.land>
5312Message-Id: <200207292200.3306@wonder.land>
5313To: March Hare  <hare@wonder.land>
5314Subject: Re: Invitation
5315X-UID: 6
5316
5317I didn't know it was YOUR table, it's laid for a
5318great many more than three.
5319.
5320_ATEOF
5321
5322cp mailspool/inbox mailspool/inbox1
5323cp mailspool/inbox mailspool/inbox2
5324chmod -w mailspool
5325"
5326at_fn_check_prepare_notrace 'an embedded newline' "rospool.at:19"
5327( $at_check_trace;
5328mkdir mailspool
5329cat >mailspool/inbox <<'_ATEOF'
5330Received: (from hare@wonder.land)
5331	by wonder.land id 3301
5332	for alice@wonder.land; Mon, 29 Jul 2002 22:00:06 +0100
5333Date: Mon, 29 Jul 2002 22:00:01 +0100
5334From: March Hare  <hare@wonder.land>
5335Message-Id: <200207292200.3301@wonder.land>
5336To: Alice  <alice@wonder.land>
5337Subject: Invitation
5338X-IMAPbase:                   10                    9
5339X-UID: 1
5340
5341Have some wine
5342.
5343Received: (from alice@wonder.land)
5344	by wonder.land id 3302
5345	for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5346Date: Mon, 29 Jul 2002 22:00:02 +0100
5347From: Alice  <alice@wonder.land>
5348Message-Id: <200207292200.3302@wonder.land>
5349To: March Hare  <hare@wonder.land>
5350Subject: Re: Invitation
5351X-UID: 2
5352
5353I don't see any wine
5354.
5355Received: (from hare@wonder.land)
5356	by wonder.land id 3303
5357	for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5358Date: Mon, 29 Jul 2002 22:00:03 +0100
5359From: March Hare  <hare@wonder.land>
5360Message-Id: <200207292200.3303@wonder.land>
5361To: Alice  <alice@wonder.land>
5362Subject: Re: Invitation
5363X-UID: 3
5364
5365There isn't any
5366.
5367Received: (from alice@wonder.land)
5368	by wonder.land id 3304
5369	for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5370Date: Mon, 29 Jul 2002 22:00:04 +0100
5371From: Alice  <alice@wonder.land>
5372Message-Id: <200207292200.3304@wonder.land>
5373To: March Hare  <hare@wonder.land>
5374Subject: Re: Invitation
5375X-UID: 4
5376
5377Then it wasn't very civil of you to offer it
5378.
5379Received: (from hare@wonder.land)
5380	by wonder.land id 3305
5381	for alice@wonder.land; Mon, 29 Jul 2002 22:00:10 +0100
5382Date: Mon, 29 Jul 2002 22:00:05 +0100
5383From: March Hare  <hare@wonder.land>
5384Message-Id: <200207292200.3305@wonder.land>
5385To: Alice  <alice@wonder.land>
5386Subject: Re: Invitation
5387X-UID: 5
5388
5389It wasn't very civil of you to sit down without being invited
5390.
5391Received: (from alice@wonder.land)
5392	by wonder.land id 3306
5393	for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5394Date: Mon, 29 Jul 2002 22:00:06 +0100
5395From: Alice  <alice@wonder.land>
5396Message-Id: <200207292200.3306@wonder.land>
5397To: March Hare  <hare@wonder.land>
5398Subject: Re: Invitation
5399X-UID: 6
5400
5401I didn't know it was YOUR table, it's laid for a
5402great many more than three.
5403.
5404_ATEOF
5405
5406cp mailspool/inbox mailspool/inbox1
5407cp mailspool/inbox mailspool/inbox2
5408chmod -w mailspool
5409
5410) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5411at_status=$? at_failed=false
5412$at_check_filter
5413at_fn_diff_devnull "$at_stderr" || at_failed=:
5414at_fn_diff_devnull "$at_stdout" || at_failed=:
5415at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:19"
5416$at_failed && at_fn_log_failure
5417$at_traceon; }
5418
5419# --------------------------
5420
5421cat >commands <<'_ATEOF'
54223
5423set_deleted
5424expunge
5425count
5426# Message 4 becomes 3 after expunge. Re-select it.
54273
5428uid
5429headers
5430_ATEOF
5431
5432
5433{ set +x
5434$as_echo "$at_srcdir/rospool.at:114: mbop -m mailspool/inbox < commands"
5435at_fn_check_prepare_trace "rospool.at:114"
5436( $at_check_trace; mbop -m mailspool/inbox < commands
5437) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5438at_status=$? at_failed=false
5439$at_check_filter
5440at_fn_diff_devnull "$at_stderr" || at_failed=:
5441echo >>"$at_stdout"; $as_echo "3 current message
54423 set_deleted: OK
5443expunge: OK
5444count: 5
54453 current message
54463 uid: 4
54473 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5448Date:Mon, 29 Jul 2002 22:00:04 +0100
5449From:Alice  <alice@wonder.land>
5450Message-Id:<200207292200.3304@wonder.land>
5451To:March Hare  <hare@wonder.land>
5452Subject:Re: Invitation
5453X-UID:4
5454
5455" | \
5456  $at_diff - "$at_stdout" || at_failed=:
5457at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:114"
5458$at_failed && at_fn_log_failure
5459$at_traceon; }
5460
5461
5462cat >commands1 <<'_ATEOF'
54631
5464set_deleted
54652
5466set_deleted
54675
5468set_deleted
5469expunge
5470count
54711
5472uid
5473headers
54742
5475uid
5476headers
54773
5478uid
5479headers
5480_ATEOF
5481
5482
5483{ set +x
5484$as_echo "$at_srcdir/rospool.at:152: mbop -m mailspool/inbox1 < commands1|x_imapbase_normalize"
5485at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:152"
5486( $at_check_trace; mbop -m mailspool/inbox1 < commands1|x_imapbase_normalize
5487) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5488at_status=$? at_failed=false
5489$at_check_filter
5490at_fn_diff_devnull "$at_stderr" || at_failed=:
5491echo >>"$at_stdout"; $as_echo "1 current message
54921 set_deleted: OK
54932 current message
54942 set_deleted: OK
54955 current message
54965 set_deleted: OK
5497expunge: OK
5498count: 3
54991 current message
55001 uid: 3
55011 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5502Date:Mon, 29 Jul 2002 22:00:03 +0100
5503From:March Hare  <hare@wonder.land>
5504Message-Id:<200207292200.3303@wonder.land>
5505To:Alice  <alice@wonder.land>
5506Subject:Re: Invitation
5507X-IMAPbase:10 9
5508X-UID:3
5509
55102 current message
55112 uid: 4
55122 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5513Date:Mon, 29 Jul 2002 22:00:04 +0100
5514From:Alice  <alice@wonder.land>
5515Message-Id:<200207292200.3304@wonder.land>
5516To:March Hare  <hare@wonder.land>
5517Subject:Re: Invitation
5518X-UID:4
5519
55203 current message
55213 uid: 6
55223 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5523Date:Mon, 29 Jul 2002 22:00:06 +0100
5524From:Alice  <alice@wonder.land>
5525Message-Id:<200207292200.3306@wonder.land>
5526To:March Hare  <hare@wonder.land>
5527Subject:Re: Invitation
5528X-UID:6
5529
5530" | \
5531  $at_diff - "$at_stdout" || at_failed=:
5532at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:152"
5533$at_failed && at_fn_log_failure
5534$at_traceon; }
5535
5536
5537# ##
5538cat >commands1a <<'_ATEOF'
5539count
55401
5541uid
5542headers
55432
5544uid
5545headers
55463
5547uid
5548headers
5549_ATEOF
5550
5551
5552{ set +x
5553$as_echo "$at_srcdir/rospool.at:209: mbop -m mailspool/inbox1 < commands1a|x_imapbase_normalize"
5554at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:209"
5555( $at_check_trace; mbop -m mailspool/inbox1 < commands1a|x_imapbase_normalize
5556) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5557at_status=$? at_failed=false
5558$at_check_filter
5559at_fn_diff_devnull "$at_stderr" || at_failed=:
5560echo >>"$at_stdout"; $as_echo "count: 3
55611 current message
55621 uid: 3
55631 headers: Received:(from hare@wonder.land) by wonder.land id 3303 for alice@wonder.land; Mon, 29 Jul 2002 22:00:08 +0100
5564Date:Mon, 29 Jul 2002 22:00:03 +0100
5565From:March Hare  <hare@wonder.land>
5566Message-Id:<200207292200.3303@wonder.land>
5567To:Alice  <alice@wonder.land>
5568Subject:Re: Invitation
5569X-IMAPbase:10 9
5570X-UID:3
5571
55722 current message
55732 uid: 4
55742 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5575Date:Mon, 29 Jul 2002 22:00:04 +0100
5576From:Alice  <alice@wonder.land>
5577Message-Id:<200207292200.3304@wonder.land>
5578To:March Hare  <hare@wonder.land>
5579Subject:Re: Invitation
5580X-UID:4
5581
55823 current message
55833 uid: 6
55843 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5585Date:Mon, 29 Jul 2002 22:00:06 +0100
5586From:Alice  <alice@wonder.land>
5587Message-Id:<200207292200.3306@wonder.land>
5588To:March Hare  <hare@wonder.land>
5589Subject:Re: Invitation
5590X-UID:6
5591
5592" | \
5593  $at_diff - "$at_stdout" || at_failed=:
5594at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:209"
5595$at_failed && at_fn_log_failure
5596$at_traceon; }
5597
5598
5599# ##
5600cat >commands2 <<'_ATEOF'
56011
5602set_deleted
56033
5604set_deleted
56055
5606set_deleted
5607expunge
5608count
56091
5610uid
5611headers
56122
5613uid
5614headers
56153
5616uid
5617headers
5618_ATEOF
5619
5620
5621{ set +x
5622$as_echo "$at_srcdir/rospool.at:266: mbop -m mailspool/inbox2 < commands2|x_imapbase_normalize"
5623at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:266"
5624( $at_check_trace; mbop -m mailspool/inbox2 < commands2|x_imapbase_normalize
5625) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5626at_status=$? at_failed=false
5627$at_check_filter
5628at_fn_diff_devnull "$at_stderr" || at_failed=:
5629echo >>"$at_stdout"; $as_echo "1 current message
56301 set_deleted: OK
56313 current message
56323 set_deleted: OK
56335 current message
56345 set_deleted: OK
5635expunge: OK
5636count: 3
56371 current message
56381 uid: 2
56391 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5640Date:Mon, 29 Jul 2002 22:00:02 +0100
5641From:Alice  <alice@wonder.land>
5642Message-Id:<200207292200.3302@wonder.land>
5643To:March Hare  <hare@wonder.land>
5644Subject:Re: Invitation
5645X-IMAPbase:10 9
5646X-UID:2
5647
56482 current message
56492 uid: 4
56502 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5651Date:Mon, 29 Jul 2002 22:00:04 +0100
5652From:Alice  <alice@wonder.land>
5653Message-Id:<200207292200.3304@wonder.land>
5654To:March Hare  <hare@wonder.land>
5655Subject:Re: Invitation
5656X-UID:4
5657
56583 current message
56593 uid: 6
56603 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5661Date:Mon, 29 Jul 2002 22:00:06 +0100
5662From:Alice  <alice@wonder.land>
5663Message-Id:<200207292200.3306@wonder.land>
5664To:March Hare  <hare@wonder.land>
5665Subject:Re: Invitation
5666X-UID:6
5667
5668" | \
5669  $at_diff - "$at_stdout" || at_failed=:
5670at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:266"
5671$at_failed && at_fn_log_failure
5672$at_traceon; }
5673
5674
5675cat >commands2a <<'_ATEOF'
5676count
56771
5678uid
5679headers
56802
5681uid
5682headers
56833
5684uid
5685headers
5686_ATEOF
5687
5688
5689{ set +x
5690$as_echo "$at_srcdir/rospool.at:322: mbop -m mailspool/inbox2 < commands2a|x_imapbase_normalize"
5691at_fn_check_prepare_notrace 'a shell pipeline' "rospool.at:322"
5692( $at_check_trace; mbop -m mailspool/inbox2 < commands2a|x_imapbase_normalize
5693) >>"$at_stdout" 2>>"$at_stderr" 5>&-
5694at_status=$? at_failed=false
5695$at_check_filter
5696at_fn_diff_devnull "$at_stderr" || at_failed=:
5697echo >>"$at_stdout"; $as_echo "count: 3
56981 current message
56991 uid: 2
57001 headers: Received:(from alice@wonder.land) by wonder.land id 3302 for hare@wonder.land; Mon, 29 Jul 2002 22:00:07 +0100
5701Date:Mon, 29 Jul 2002 22:00:02 +0100
5702From:Alice  <alice@wonder.land>
5703Message-Id:<200207292200.3302@wonder.land>
5704To:March Hare  <hare@wonder.land>
5705Subject:Re: Invitation
5706X-IMAPbase:10 9
5707X-UID:2
5708
57092 current message
57102 uid: 4
57112 headers: Received:(from alice@wonder.land) by wonder.land id 3304 for hare@wonder.land; Mon, 29 Jul 2002 22:00:09 +0100
5712Date:Mon, 29 Jul 2002 22:00:04 +0100
5713From:Alice  <alice@wonder.land>
5714Message-Id:<200207292200.3304@wonder.land>
5715To:March Hare  <hare@wonder.land>
5716Subject:Re: Invitation
5717X-UID:4
5718
57193 current message
57203 uid: 6
57213 headers: Received:(from alice@wonder.land) by wonder.land id 3306 for hare@wonder.land; Mon, 29 Jul 2002 22:00:11 +0100
5722Date:Mon, 29 Jul 2002 22:00:06 +0100
5723From:Alice  <alice@wonder.land>
5724Message-Id:<200207292200.3306@wonder.land>
5725To:March Hare  <hare@wonder.land>
5726Subject:Re: Invitation
5727X-UID:6
5728
5729" | \
5730  $at_diff - "$at_stdout" || at_failed=:
5731at_fn_check_status 0 $at_status "$at_srcdir/rospool.at:322"
5732$at_failed && at_fn_log_failure
5733$at_traceon; }
5734
5735
5736  set +x
5737  $at_times_p && times >"$at_times_file"
5738) 5>&1 2>&1 7>&- | eval $at_tee_pipe
5739read at_status <"$at_status_file"
5740#AT_STOP_21
5741