#! /bin/sh
# Generated from testsuite.at by GNU Autoconf 2.69.
#
# Copyright (C) 2009-2012 Free Software Foundation, Inc.
#
# This test suite is free software; the Free Software Foundation gives
# unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

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


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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


} # as_fn_mkdir_p

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

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


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

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

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

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

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

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


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

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

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

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

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

as_test_x='test -x'
as_executable_p=as_fn_executable_p

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

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





SHELL=${CONFIG_SHELL-/bin/sh}

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


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

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

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

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

# Whether to enable colored test results.
at_color=no
# List of the tested programs.
at_tested=''
# As many question marks as there are digits in the last test group number.
# Used to normalize the test group numbers so that `ls' lists them in
# numerical order.
at_format='??'
# Description of all the test groups.
at_help_all="1;hmac01.at:17;hmac01;hmac hmac01;
2;hmac02.at:17;hmac02;hmac hmac02;
3;hmac03.at:17;hmac03;hmac hmac03;
4;urlenc01.at:17;url encode;urlenc urlent01;
5;xml01.at:17;xml01;xml xml01;
6;forlan01.at:17;parse tree;forlan forlan01;
7;exit.at:17;the exit function;;
8;dump01.at:17;dump all;forlan dump dump01;
9;dump02.at:17;dump subtree;forlan dump dump02;
10;print01.at:17;print text;forlan print print01;
11;print02.at:17;print node;forlan print print02;
12;print03.at:17;print several arguments;forlan print print03;
13;decode.at:17;base64 decode function;;
14;last.at:17;the last statement;forlan last;
15;let.at:17;let statement;forlan let;
16;listall.at:17;listall;forlan listall;
17;tagshairy.at:17;complex format;forlan tagshairy;
18;allocate-address.at:17;AllocateAddress;format dflfmt allocateaddress;
19;associate-address.at:17;AssociateAddress;format dflfmt associateaddress;
20;create-snapshot.at:17;CreateSnapshot;format dflfmt createsnapshot;
21;delete-snapshot.at:17;DeleteSnapshot;format dflfmt deletesnapshot;
22;describe-addresses.at:17;DescribeAddresses (standard);format dflfmt describeaddresses, describeaddresses-standard;
23;describe-addresses.at:40;DescribeAddresses (vpc);format dflfmt describeaddresses, describeaddresses-vpc;
24;describe-availability-zones.at:17;DescribeAvailabilityZones;format dflfmt describeavailabilityzones;
25;describe-instance-attribute.at:17;DescribeInstanceAttribute instanceType;format dflfmt describeinstanceattribute describeinstanceattribute-instancetype;
26;describe-instance-attribute.at:31;DescribeInstanceAttribute kernel;format dflfmt describeinstanceattribute describeinstanceattribute-kernel;
27;describe-instance-attribute.at:45;DescribeInstanceAttribute blockDeviceMapping;format dflfmt describeinstanceattribute describeinstanceattribute-blockdevicemapping;
28;describe-instance-attribute.at:77;DescribeInstanceAttribute groupSet;format dflfmt describeinstanceattribute describeinstanceattribute-groupset;
29;describe-instance-status.at:17;DescribeInstanceStatus;format dflfmt describeinstancestatus;
30;describe-instances.at:17;DescribeInstances;format dflfmt describeinstances;
31;describe-security-groups.at:17;DescribeSecurityGroups;format dflfmt describesecuritygroups;
32;describe-snapshots.at:17;DescribeSnapshots;format dflfmt describesnapshots;
33;describe-tags.at:17;DescribeTags;format dflfmt describetags;
34;describe-volumes.at:17;DescribeVolumes;format dflfmt describevolumes;
35;get-console-output.at:17;GetConsoleOutput;format dflfmt getconsoleoutput;
36;start-instances.at:17;StartInstances;format dflfmt startinstances;
37;stop-instances.at:17;StopInstances;format dflfmt stopinstances;
38;sortstring.at:17;String sort;sort sortstring;
39;sortnum.at:17;Numeric sort;sort sortnum;
40;sortrevnum.at:17;Reverse numeric sort;sort sortrev sortrevnum;
41;sortts.at:17;Timestamp sort;sort sortts;
42;nullmap.at:17;null;map nullmap;
43;filemap.at:17;file;map filemap;
44;gdbmmap.at:17;gdbm;map gdbmmap;
45;seqmap.at:17;sequence;map seqmap;
46;bidimap.at:17;bidi;map bidimap;
"
# List of the all the test groups.
at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  $ $0 AUTOTEST_PATH=bin

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

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

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

Execution tuning:
  -C, --directory=DIR
                 change to directory DIR before starting
      --color[=never|auto|always]
                 enable colored test results on terminal, or always
  -j, --jobs[=N]
                 Allow N jobs at once; infinite jobs with no arg (default 1)
  -k, --keywords=KEYWORDS
                 select the tests matching all the comma-separated KEYWORDS
                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
      --recheck  select all tests that failed or passed unexpectedly last time
  -e, --errexit  abort as soon as a test fails; implies --debug
  -v, --verbose  force more detailed output
                 default for debugging scripts
  -d, --debug    inhibit clean up and top-level logging
                 default for debugging scripts
  -x, --trace    enable tests shell tracing
_ATEOF
cat <<_ATEOF || at_write_fail=1

Report bugs to <bug-eclat@gnu.org.ua>.
_ATEOF
  exit $at_write_fail
fi

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

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

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

Copyright (C) 2012 Free Software Foundation, Inc.
This test suite is free software; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
_ATEOF
  exit $at_write_fail
fi

# Should we print banners?  Yes if more than one test is run.
case $at_groups in #(
  *$as_nl* )
      at_print_banners=: ;; #(
  * ) at_print_banners=false ;;
esac
# Text for banner N, set to a single space once printed.
# Banner 1. testsuite.at:32
# Category starts at test group 1.
at_banner_text_1="HMAC-SHA1"
# Banner 2. testsuite.at:37
# Category starts at test group 4.
at_banner_text_2="URL Encode"
# Banner 3. testsuite.at:40
# Category starts at test group 5.
at_banner_text_3="XML Processing"
# Banner 4. testsuite.at:43
# Category starts at test group 6.
at_banner_text_4="Forlan"
# Banner 5. testsuite.at:57
# Category starts at test group 18.
at_banner_text_5="Default formats"
# Banner 6. testsuite.at:75
# Category starts at test group 38.
at_banner_text_6="Sort"
# Banner 7. testsuite.at:81
# Category starts at test group 42.
at_banner_text_7="Maps"

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

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

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

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

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

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

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

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

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

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


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

PATH=$at_new_path
export PATH

# Setting up the FDs.



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

# Banners and logs.
$as_echo "## --------------------- ##
## eclat 1.0 test suite. ##
## --------------------- ##"
{
  $as_echo "## --------------------- ##
## eclat 1.0 test suite. ##
## --------------------- ##"
  echo

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

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

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

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

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

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

_ASUNAME

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

}
  echo

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  at_group_normalized=$at_group

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


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

  echo 0 > "$at_status_file"

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

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

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

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

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

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


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


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

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

rm -f "$at_stop_file"
at_first=:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   To: <bug-eclat@gnu.org.ua>
   Subject: [eclat 1.0] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}

You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point.  Its output may
be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
"
  exit 1
fi

exit 0

## ------------- ##
## Actual tests. ##
## ------------- ##
#AT_START_1
at_fn_group_banner 1 'hmac01.at:17' \
  "hmac01" "                                         " 1
at_xfail=no
(
  $as_echo "1. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/hmac01.at:20: thmac 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b \"Hi There\""
at_fn_check_prepare_trace "hmac01.at:20"
( $at_check_trace; thmac 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b "Hi There"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0x492ce020fe2534a5789dc3848806c78f4f6711397f08e7e7a12ca5a4483c8aa6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/hmac01.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


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



{ set +x
$as_echo "$at_srcdir/hmac02.at:20: thmac Jefe \"what do ya want for nothing?\""
at_fn_check_prepare_trace "hmac02.at:20"
( $at_check_trace; thmac Jefe "what do ya want for nothing?"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0x5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/hmac02.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


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



{ set +x
$as_echo "$at_srcdir/hmac03.at:20: thmac \"0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" \\
 \"0xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\""
at_fn_check_prepare_notrace 'an embedded newline' "hmac03.at:20"
( $at_check_trace; thmac "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
 "0xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0x7dda3cc169743a6484649f94f0eda0f9f2ff496a9733fb796ed5adb40a44c3c1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/hmac03.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


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



{ set +x
$as_echo "$at_srcdir/urlenc01.at:20:
turlenc 'http://example.com/~us.er?a-string=\"a b\"&n_1=10'
"
at_fn_check_prepare_notrace 'an embedded newline' "urlenc01.at:20"
( $at_check_trace;
turlenc 'http://example.com/~us.er?a-string="a b"&n_1=10'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "69
http%3A%2F%2Fexample.com%2F~us.er%3Fa-string%3D%22a%20b%22%26n_1%3D10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/urlenc01.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
<?xml version="1.0" encoding="UTF-8"?>
<DescribeTagsResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
    <requestId>beefdead-57rt-ffea-e4ac-deadbeefbeef</requestId>
    <tagSet>
        <item>
            <resourceId>i-00000000</resourceId>
            <resourceType>instance</resourceType>
            <key>foo</key>
mkdir             <value>bar</value>
        </item>
        <item>
            <resourceId>i-11111111</resourceId>
            <resourceType>instance</resourceType>
            <key>baz</key>
            <value>quux</value>
        </item>
        <item>
            <resourceId>i-22222222</resourceId>
            <resourceType>instance</resourceType>
            <key>Name</key>
            <value>test</value>
        </item>
    </tagSet>
</DescribeTagsResponse>
_ATEOF


{ set +x
$as_echo "$at_srcdir/xml01.at:46: txml input"
at_fn_check_prepare_trace "xml01.at:46"
( $at_check_trace; txml input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".DescribeTagsResponse.requestId: \"beefdead-57rt-ffea-e4ac-deadbeefbeef\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-00000000\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"foo\"
.DescribeTagsResponse.tagSet.item.value: \"bar\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-11111111\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"baz\"
.DescribeTagsResponse.tagSet.item.value: \"quux\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-22222222\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"test\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xml01.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
// test format for DescribeTags
if (.DescribeTagsResponse) {
  if (.DescribeTagsResponse.tagSet.item.resourceId[i-deadbeef] &&
      parent(last).key[hostname])
  print(parent(last).value);
} else if (.Response.Errors)
  error(.Response.Errors.Error.Message);
else
  dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/forlan01.at:31: tforlan -D input"
at_fn_check_prepare_trace "forlan01.at:31"
( $at_check_trace; tforlan -D input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0001: COND
0002:  NODE
0003:   COMP.DescribeTagsResponse
0004: IFTRUE 0001
0005:  COND
0006:   AND
0007:    NODE
0008:     COMP.DescribeTagsResponse.tagSet.item.resourceId[i-deadbeef]
0009:    NODE
0010:     COMP
0011:     ROOT
0012:      CALL: parent
0013:       LAST
0014:     COMP: .key[hostname]
0015:  IFTRUE 0005
0016:   CALL: print
0017:    COMP
0018:    ROOT
0019:     CALL: parent
0020:      LAST
0021:    COMP: .value
0022:  IFFALSE 0005
0023: IFFALSE 0001
0024:  COND
0025:   NODE
0026:    COMP.Response.Errors
0027:  IFTRUE 0024
0028:   CALL: error
0029:    COMP.Response.Errors.Error.Message
0030:  IFFALSE 0024
0031:   CALL: dump
0032:    COMP
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/forlan01.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_6
#AT_START_7
at_fn_group_banner 7 'exit.at:17' \
  "the exit function" "                              " 4
at_xfail=no
(
  $as_echo "7. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog <<'_ATEOF'

exit(25);
_ATEOF


{ set +x
$as_echo "$at_srcdir/exit.at:23: tforlan prog /dev/null"
at_fn_check_prepare_trace "exit.at:23"
( $at_check_trace; tforlan prog /dev/null
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 25 $at_status "$at_srcdir/exit.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
// Dump everything
dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/dump01.at:24: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "dump01.at:24"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".DescribeTagsResponse.requestId: \"beefdead-1234-abcd-efab-deadbeef1234\"
.DescribeTagsResponse.tagSet.item.resourceId: \"ami-12312312\"
.DescribeTagsResponse.tagSet.item.resourceType: \"image\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"Some important image\"
.DescribeTagsResponse.tagSet.item.resourceId: \"snap-abcdefef\"
.DescribeTagsResponse.tagSet.item.resourceType: \"snapshot\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"Not so important snapshot\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-deadbeef\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"backup\"
.DescribeTagsResponse.tagSet.item.value: \"goes to /dev/null\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-deadbeef\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"Primary server\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-deadbeef\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"ipaddr\"
.DescribeTagsResponse.tagSet.item.value: \"192.168.1.1\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-12345678\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"Secondary server\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-12345678\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"hostname\"
.DescribeTagsResponse.tagSet.item.value: \"secondary.example.org\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-deadbeef\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"hostname\"
.DescribeTagsResponse.tagSet.item.value: \"primary.example.org\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-12345678\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"ipaddr\"
.DescribeTagsResponse.tagSet.item.value: \"192.168.1.2\"
.DescribeTagsResponse.tagSet.item.resourceId: \"i-12345678\"
.DescribeTagsResponse.tagSet.item.resourceType: \"instance\"
.DescribeTagsResponse.tagSet.item.key: \"backup\"
.DescribeTagsResponse.tagSet.item.value: \"Somewhere else\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dump01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_8
#AT_START_9
at_fn_group_banner 9 'dump02.at:17' \
  "dump subtree" "                                   " 4
at_xfail=no
(
  $as_echo "9. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
// Dump a sub-tree
dump(.DescribeTagsResponse.tagSet.item);
_ATEOF


{ set +x
$as_echo "$at_srcdir/dump02.at:24: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "dump02.at:24"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".DescribeTagsResponse.tagSet.item.resourceId: \"ami-12312312\"
.DescribeTagsResponse.tagSet.item.resourceType: \"image\"
.DescribeTagsResponse.tagSet.item.key: \"Name\"
.DescribeTagsResponse.tagSet.item.value: \"Some important image\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dump02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
// Print a string of text
print("text\n");
_ATEOF


{ set +x
$as_echo "$at_srcdir/print01.at:24: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "print01.at:24"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "text
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/print01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
// Print a node
print(.DescribeTagsResponse.requestId);
_ATEOF


{ set +x
$as_echo "$at_srcdir/print02.at:24: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "print02.at:24"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "beefdead-1234-abcd-efab-deadbeef1234" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/print02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_11
#AT_START_12
at_fn_group_banner 12 'print03.at:17' \
  "print several arguments" "                        " 4
at_xfail=no
(
  $as_echo "12. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
// Print a node
print("Request id is ", .DescribeTagsResponse.requestId, "\n");
_ATEOF


{ set +x
$as_echo "$at_srcdir/print03.at:24: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "print03.at:24"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Request id is beefdead-1234-abcd-efab-deadbeef1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/print03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }


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


cat >prog <<'_ATEOF'

print(decode("RXN0ZSBlcyB1biBudWV2byBkaWEgcGEnIGVtcGV6YXIgZGUgbnVldm8K"));
_ATEOF


{ set +x
$as_echo "$at_srcdir/decode.at:23: tforlan prog /dev/null"
at_fn_check_prepare_trace "decode.at:23"
( $at_check_trace; tforlan prog /dev/null
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Este es un nuevo dia pa' empezar de nuevo
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/decode.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_13
#AT_START_14
at_fn_group_banner 14 'last.at:17' \
  "the last statement" "                             " 4
at_xfail=no
(
  $as_echo "14. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
//
if (.DescribeTagsResponse.tagSet.item.resourceId[i-deadbeef])
  dump(parent(last).key);
_ATEOF


{ set +x
$as_echo "$at_srcdir/last.at:25: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "last.at:25"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".DescribeTagsResponse.tagSet.item.key: \"backup\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/last.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_14
#AT_START_15
at_fn_group_banner 15 'let.at:17' \
  "let statement" "                                  " 4
at_xfail=no
(
  $as_echo "15. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
// Let statement
let x = .DescribeTagsResponse.tagSet.item.resourceId[snap-abcdefef];
dump(x);
_ATEOF


{ set +x
$as_echo "$at_srcdir/let.at:25: tforlan input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan input $abs_srcdir/tags.xml" "let.at:25"
( $at_check_trace; tforlan input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".DescribeTagsResponse.tagSet.item.resourceId: \"snap-abcdefef\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/let.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_15
#AT_START_16
at_fn_group_banner 16 'listall.at:17' \
  "listall" "                                        " 4
at_xfail=no
(
  $as_echo "16. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
// List all matching tags
for (var in .*.item.resourceId) {
  print(var, "\n");
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/listall.at:26: tforlan -s input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan -s input $abs_srcdir/tags.xml" "listall.at:26"
( $at_check_trace; tforlan -s input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ami-12312312
snap-abcdefef
i-deadbeef
i-deadbeef
i-deadbeef
i-12345678
i-12345678
i-deadbeef
i-12345678
i-12345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listall.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_16
#AT_START_17
at_fn_group_banner 17 'tagshairy.at:17' \
  "complex format" "                                 " 4
at_xfail=no
(
  $as_echo "17. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
// Almost real-life format for DescribeTags
if (.DescribeTagsResponse) {
  for (var in .DescribeTagsResponse.tagSet.item) {
    print(var.resourceId," ",
         var.resourceType," ",
	 var.key," ",
	 var.value,"\n");
  }
} else if (.Response.Errors)
  error("Error: ",.Response.Errors.Error.Message);
else {
  error("Unrecognized response:\n");
  dump(.);
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/tagshairy.at:36: tforlan -s input \$abs_srcdir/tags.xml"
at_fn_check_prepare_dynamic "tforlan -s input $abs_srcdir/tags.xml" "tagshairy.at:36"
( $at_check_trace; tforlan -s input $abs_srcdir/tags.xml
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ami-12312312 image Name \"Some important image\"
snap-abcdefef snapshot Name \"Not so important snapshot\"
i-deadbeef instance backup \"goes to /dev/null\"
i-deadbeef instance Name \"Primary server\"
i-deadbeef instance ipaddr 192.168.1.1
i-12345678 instance Name \"Secondary server\"
i-12345678 instance hostname secondary.example.org
i-deadbeef instance hostname primary.example.org
i-12345678 instance ipaddr 192.168.1.2
i-12345678 instance backup \"Somewhere else\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tagshairy.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }


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


cat >result <<'_ATEOF'
<AllocateAddressResponse xmlns="http://ec2.amazonaws.com/doc/2012-10-01/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <publicIp>192.0.2.1</publicIp>
   <domain>standard</domain>
</AllocateAddressResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/allocate-address.at:17: tforlan \$abs_top_srcdir/etc/allocate-address.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "allocate-address.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/allocate-address.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "192.0.2.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/allocate-address.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_18
#AT_START_19
at_fn_group_banner 19 'associate-address.at:17' \
  "AssociateAddress" "                               " 5
at_xfail=no
(
  $as_echo "19. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<AssociateAddressResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <return>true</return>
   <associationId>eipassoc-fc5ca095</associationId>
</AssociateAddressResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/associate-address.at:17: tforlan \$abs_top_srcdir/etc/associate-address.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "associate-address.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/associate-address.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/associate-address.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_19
#AT_START_20
at_fn_group_banner 20 'create-snapshot.at:17' \
  "CreateSnapshot" "                                 " 5
at_xfail=no
(
  $as_echo "20. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<CreateSnapshotResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <snapshotId>snap-78a54011</snapshotId>
  <volumeId>vol-4d826724</volumeId>
  <status>pending</status>
  <startTime>2008-05-07T12:51:50.000Z</startTime>
  <progress>60%</progress>
  <ownerId>111122223333</ownerId>
  <volumeSize>10</volumeSize>
  <description>Daily Backup</description>
</CreateSnapshotResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/create-snapshot.at:17: tforlan \$abs_top_srcdir/etc/create-snapshot.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "create-snapshot.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/create-snapshot.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "snap-78a54011	vol-4d826724 10	pending	60%	2008-05-07T12:51:50.000Z
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/create-snapshot.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_20
#AT_START_21
at_fn_group_banner 21 'delete-snapshot.at:17' \
  "DeleteSnapshot" "                                 " 5
at_xfail=no
(
  $as_echo "21. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DeleteSnapshotResponse xmlns="http://ec2.amazonaws.com/doc/2012-10-01/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <return>true</return>
</DeleteSnapshotResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/delete-snapshot.at:17: tforlan \$abs_top_srcdir/etc/delete-snapshot.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "delete-snapshot.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/delete-snapshot.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete-snapshot.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<DescribeAddressesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <addressesSet>
      <item>
         <publicIp>192.0.2.1</publicIp>
         <domain>standard</domain>
         <instanceId>i-f15ebb98</instanceId>
      </item>
      <item>
         <publicIp>198.51.100.2</publicIp>
         <domain>standard</domain>
         <instanceId/>
      </item>
   </addressesSet>
</DescribeAddressesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-addresses.at:17: tforlan \$abs_top_srcdir/etc/describe-addresses.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-addresses.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-addresses.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "standard	192.0.2.1	i-f15ebb98
standard	198.51.100.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-addresses.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_22
#AT_START_23
at_fn_group_banner 23 'describe-addresses.at:40' \
  "DescribeAddresses (vpc)" "                        " 5
at_xfail=no
(
  $as_echo "23. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeAddressesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>0782c68a-5f24-4dce-93c0-b5a066d6e0d0</requestId>
   <addressesSet>
     <item>
       <publicIp>203.0.113.12</publicIp>
       <allocationId>eipalloc-08229861</allocationId>
       <domain>vpc</domain>
       <instanceId>i-64600030</instanceId>
       <associationId>eipassoc-f0229899</associationId>
       <networkInterfaceId>eni-ef229886</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.228</privateIpAddress>
     </item>
     <item>
       <publicIp>46.51.221.164</publicIp>
       <allocationId>eipalloc-1b5fe072</allocationId>
       <domain>vpc</domain>
     </item>
     <item>
       <publicIp>203.0.113.14</publicIp>
       <allocationId>eipalloc-f38a359a</allocationId>
       <domain>vpc</domain>
       <instanceId>i-7a00642e</instanceId>
       <associationId>eipassoc-1f239876</associationId>
       <networkInterfaceId>eni-d83388b1</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.12</privateIpAddress>
     </item>
     <item>
       <publicIp>203.0.113.33</publicIp>
       <allocationId>eipalloc-282d9641</allocationId>
       <domain>vpc</domain>
       <instanceId>i-7a00642e</instanceId>
       <associationId>eipassoc-252d964c</associationId>
       <networkInterfaceId>eni-d83388b1</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.14</privateIpAddress>
     </item>
     <item>
       <publicIp>203.0.113.22</publicIp>
       <allocationId>eipalloc-1266dd7b</allocationId>
       <domain>vpc</domain>
       <instanceId>i-880f6fdc</instanceId>
       <associationId>eipassoc-832e94ea</associationId>
       <networkInterfaceId>eni-af2e94c6</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.47</privateIpAddress>
     </item>
     <item>
       <publicIp>203.0.113.42</publicIp>
       <allocationId>eipalloc-ff229896</allocationId>
       <domain>vpc</domain>
     </item>
     <item>
       <publicIp>203.0.113.53</publicIp>
       <allocationId>eipalloc-b463dcdd</allocationId>
       <domain>vpc</domain>
       <instanceId>i-c844219c</instanceId>
       <associationId>eipassoc-d667ddbf</associationId>
       <networkInterfaceId>eni-ea67dc83</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.174</privateIpAddress>
     </item>
     <item>
       <publicIp>203.0.113.61</publicIp>
       <allocationId>eipalloc-bf66dcd6</allocationId>
       <domain>vpc</domain>
       <instanceId>i-ba6a0dee</instanceId>
       <associationId>eipassoc-9c66dcf5</associationId>
       <networkInterfaceId>eni-73e05a1a</networkInterfaceId>
       <networkInterfaceOwnerId>053230519467</networkInterfaceOwnerId>
       <privateIpAddress>10.0.0.85</privateIpAddress>
     </item>
   </addressesSet>
</DescribeAddressesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-addresses.at:40: tforlan \$abs_top_srcdir/etc/describe-addresses.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-addresses.at:40"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-addresses.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vpc	203.0.113.12	i-64600030	eni-ef229886	053230519467	10.0.0.228	eipalloc-08229861	eipassoc-f0229899
vpc	46.51.221.164					eipalloc-1b5fe072
vpc	203.0.113.14	i-7a00642e	eni-d83388b1	053230519467	10.0.0.12	eipalloc-f38a359a	eipassoc-1f239876
vpc	203.0.113.33	i-7a00642e	eni-d83388b1	053230519467	10.0.0.14	eipalloc-282d9641	eipassoc-252d964c
vpc	203.0.113.22	i-880f6fdc	eni-af2e94c6	053230519467	10.0.0.47	eipalloc-1266dd7b	eipassoc-832e94ea
vpc	203.0.113.42					eipalloc-ff229896
vpc	203.0.113.53	i-c844219c	eni-ea67dc83	053230519467	10.0.0.174	eipalloc-b463dcdd	eipassoc-d667ddbf
vpc	203.0.113.61	i-ba6a0dee	eni-73e05a1a	053230519467	10.0.0.85	eipalloc-bf66dcd6	eipassoc-9c66dcf5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-addresses.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_23
#AT_START_24
at_fn_group_banner 24 'describe-availability-zones.at:17' \
  "DescribeAvailabilityZones" "                      " 5
at_xfail=no
(
  $as_echo "24. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<?xml version="1.0" encoding="UTF-8"?>
<DescribeAvailabilityZonesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
    <requestId>5f309b29-fbbe-4c56-a319-2e68e0138dcb</requestId>
    <availabilityZoneInfo>
        <item>
            <zoneName>eu-west-1a</zoneName>
            <zoneState>available</zoneState>
            <regionName>eu-west-1</regionName>
            <messageSet/>
        </item>
        <item>
            <zoneName>eu-west-1b</zoneName>
            <zoneState>available</zoneState>
            <regionName>eu-west-1</regionName>
            <messageSet>
	      <item>
	        <message>Message text 1</message>
	      </item>
	      <item>
	        <message>Message text 2</message>
	      </item>
	    </messageSet>
        </item>
        <item>
            <zoneName>eu-west-1c</zoneName>
            <zoneState>available</zoneState>
            <regionName>eu-west-1</regionName>
            <messageSet/>
        </item>
    </availabilityZoneInfo>
</DescribeAvailabilityZonesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-availability-zones.at:17: tforlan \$abs_top_srcdir/etc/describe-availability-zones.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-availability-zones.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-availability-zones.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eu-west-1a	available
eu-west-1b	available
	\"Message text 1\"
	\"Message text 2\"
eu-west-1c	available
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-availability-zones.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_24
#AT_START_25
at_fn_group_banner 25 'describe-instance-attribute.at:17' \
  "DescribeInstanceAttribute instanceType" "         " 5
at_xfail=no
(
  $as_echo "25. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
    <requestId>07bdd73d-d1d0-4c07-b8d8-a50a24e737ad</requestId>
    <instanceId>i-12345678</instanceId>
    <instanceType>
        <value>m1.medium</value>
    </instanceType>
</DescribeInstanceAttributeResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instance-attribute.at:17: tforlan \$abs_top_srcdir/etc/describe-instance-attribute.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instance-attribute.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instance-attribute.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "m1.medium
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instance-attribute.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_25
#AT_START_26
at_fn_group_banner 26 'describe-instance-attribute.at:31' \
  "DescribeInstanceAttribute kernel" "               " 5
at_xfail=no
(
  $as_echo "26. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <instanceId>i-10a64379</instanceId>
  <kernel>
    <value>aki-f70657b2</value>
  </kernel>
</DescribeInstanceAttributeResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instance-attribute.at:31: tforlan \$abs_top_srcdir/etc/describe-instance-attribute.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instance-attribute.at:31"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instance-attribute.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "aki-f70657b2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instance-attribute.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_26
#AT_START_27
at_fn_group_banner 27 'describe-instance-attribute.at:45' \
  "DescribeInstanceAttribute blockDeviceMapping" "   " 5
at_xfail=no
(
  $as_echo "27. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
    <requestId>dba8e015-a520-43f2-a7f9-63bd337f83bf</requestId>
    <instanceId>i-12345678</instanceId>
    <blockDeviceMapping>
        <item>
            <deviceName>/dev/sda1</deviceName>
            <ebs>
                <volumeId>vol-deadbeef</volumeId>
                <status>attached</status>
                <attachTime>2012-03-30T14:04:26.000Z</attachTime>
                <deleteOnTermination>true</deleteOnTermination>
            </ebs>
        </item>
        <item>
            <deviceName>/dev/sdf</deviceName>
            <ebs>
                <volumeId>vol-beefdead</volumeId>
                <status>attached</status>
                <attachTime>2012-03-30T16:11:14.000Z</attachTime>
                <deleteOnTermination>false</deleteOnTermination>
            </ebs>
        </item>
    </blockDeviceMapping>
</DescribeInstanceAttributeResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instance-attribute.at:45: tforlan \$abs_top_srcdir/etc/describe-instance-attribute.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instance-attribute.at:45"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instance-attribute.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/dev/sda1	vol-deadbeef	attached	true	2012-03-30T14:04:26.000Z
/dev/sdf	vol-beefdead	attached	false	2012-03-30T16:11:14.000Z
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instance-attribute.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_27
#AT_START_28
at_fn_group_banner 28 'describe-instance-attribute.at:77' \
  "DescribeInstanceAttribute groupSet" "             " 5
at_xfail=no
(
  $as_echo "28. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
    <requestId>42507af2-227a-4f76-b8c4-55bb0c2f1384</requestId>
    <instanceId>i-12345678</instanceId>
    <groupSet>
        <item>
            <groupId>sg-deadbeef</groupId>
        </item>
    </groupSet>
</DescribeInstanceAttributeResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instance-attribute.at:77: tforlan \$abs_top_srcdir/etc/describe-instance-attribute.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instance-attribute.at:77"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instance-attribute.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "sg-deadbeef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instance-attribute.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<DescribeInstanceStatusResponse xmlns='http://ec2.amazonaws.com/doc/2012-04-01/'>
    <requestId>3be1508e-c444-4fef-89cc-0b1223c4f02f</requestId>
    <instanceStatusSet>
        <item>
            <instanceId>i-283f9f47</instanceId>
            <availabilityZone>us-east-1d</availabilityZone>
            <instanceState>
                <code>16</code>
                <name>running</name>
            </instanceState>
            <systemStatus>
                <status>impaired</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>failed</status>
                        <impairedSince>2012-03-27T16:10:46.000Z</impairedSince>
                    </item>
                </details>
            </systemStatus>
            <instanceStatus>
                <status>impaired</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>failed</status>
                        <impairedSince>2012-03-27T16:10:46.000Z</impairedSince>
                    </item>
                </details>
            </instanceStatus>
            <eventsSet>
	        <item>
                    <code>instance-retirement</code>
                    <notBefore>2011-12-05T13:00:00+0000</notBefore>
                    <notAfter>2011-12-06T13:00:00+000</notAfter>
                    <description>The instance is running on degraded hardware</description>
		</item>
            </eventsSet>
        </item>
        <item>
            <instanceId>i-d2e36dbd</instanceId>
            <availabilityZone>us-east-1d</availabilityZone>
            <instanceState>
                <code>16</code>
                <name>running</name>
            </instanceState>
            <systemStatus>
                <status>ok</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>passed</status>
                    </item>
                </details>
            </systemStatus>
            <instanceStatus>
                <status>ok</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>passed</status>
                    </item>
                </details>
            </instanceStatus>
            <eventsSet>
	        <item>
                    <code>instance-reboot</code>
                    <notBefore>2011-12-05T13:00:00+0000</notBefore>
                    <notAfter>2011-12-06T13:00:00+000</notAfter>
                    <description>The instance is scheduled for a reboot</description>
	        </item>
            </eventsSet>
        </item>
        <item>
            <instanceId>i-9fa454f1</instanceId>
            <availabilityZone>us-east-1c</availabilityZone>
            <instanceState>
                <code>16</code>
                <name>running</name>
            </instanceState>
            <systemStatus>
                <status>ok</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>passed</status>
                    </item>
                </details>
            </systemStatus>
            <instanceStatus>
                <status>ok</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>passed</status>
                    </item>
                </details>
            </instanceStatus>
        </item>
        <item>
            <instanceId>i-0ed2936e</instanceId>
            <availabilityZone>us-east-1c</availabilityZone>
            <instanceState>
                <code>16</code>
                <name>running</name>
            </instanceState>
            <systemStatus>
                <status>ok</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>passed</status>
                    </item>
                </details>
            </systemStatus>
            <instanceStatus>
                <status>insufficient-data</status>
                <details>
                    <item>
                        <name>reachability</name>
                        <status>insufficient-data</status>
                    </item>
                </details>
            </instanceStatus>
         </item>
    </instanceStatusSet>
</DescribeInstanceStatusResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instance-status.at:17: tforlan \$abs_top_srcdir/etc/describe-instance-status.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instance-status.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instance-status.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "i-283f9f47	Event: \"The instance is running on degraded hardware\"
i-d2e36dbd	Event: \"The instance is scheduled for a reboot\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-283f9f47	us-east-1d	running	impaired	Sys.reachability=failed	Inst.reachability=failed
i-d2e36dbd	us-east-1d	running	ok	Sys.reachability=passed	Inst.reachability=passed
i-9fa454f1	us-east-1c	running	ok	Sys.reachability=passed	Inst.reachability=passed
i-0ed2936e	us-east-1c	running	ok	Sys.reachability=passed	Inst.reachability=insufficient-data
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instance-status.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_29
#AT_START_30
at_fn_group_banner 30 'describe-instances.at:17' \
  "DescribeInstances" "                              " 5
at_xfail=no
(
  $as_echo "30. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeInstancesResponse xmlns='http://ec2.amazonaws.com/doc/2012-08-15/'>
  <requestId>fdcdcab1-ae5c-489e-9c33-4637c5dda355</requestId>
      <reservationSet>
        <item>
          <reservationId>r-0ece705a</reservationId>
          <ownerId>053230519467</ownerId>
          <groupSet/>
          <instancesSet>
            <item>
              <instanceId>i-7a00642e</instanceId>
              <imageId>ami-1cd4924e</imageId>
              <instanceState>
                <code>16</code>
                <name>running</name>
              </instanceState>
              <privateDnsName/>
              <dnsName/>
              <reason/>
              <keyName>VPCKey</keyName>
              <amiLaunchIndex>0</amiLaunchIndex>
              <productCodes/>
              <instanceType>c1.medium</instanceType>
              <launchTime>2012-06-28T17:41:48.000Z</launchTime>
              <placement>
                <availabilityZone>ap-southeast-1b</availabilityZone>
                <groupName/>
                <tenancy>default</tenancy>
              </placement>
              <platform>windows</platform>
              <monitoring>
                <state>disabled</state>
              </monitoring>
              <subnetId>subnet-c53c87ac</subnetId>
              <vpcId>vpc-cc3c87a5</vpcId>
              <privateIpAddress>10.0.0.12</privateIpAddress>
              <ipAddress>46.51.219.63</ipAddress>
              <sourceDestCheck>true</sourceDestCheck>
              <groupSet>
                <item>
                  <groupId>sg-374b565b</groupId>
                  <groupName>quick-start-3</groupName>
                </item>
              </groupSet>
              <architecture>x86_64</architecture>
              <rootDeviceType>ebs</rootDeviceType>
              <rootDeviceName>/dev/sda1</rootDeviceName>
              <blockDeviceMapping>
                <item>
                  <deviceName>/dev/sda1</deviceName>
                  <ebs>
                    <volumeId>vol-9e151bfc</volumeId>
                    <status>attached</status>
                    <attachTime>2012-06-28T17:42:05.000Z</attachTime>
                    <deleteOnTermination>true</deleteOnTermination>
                  </ebs>
                </item>
              </blockDeviceMapping>
              <virtualizationType>hvm</virtualizationType>
              <clientToken>JNlxa1340905307390</clientToken>
              <tagSet>
                <item>
                  <key>Name</key>
                  <value>SingleENI</value>
                </item>
              </tagSet>
              <hypervisor>xen</hypervisor>
              <networkInterfaceSet>
                <item>
                  <networkInterfaceId>eni-d83388b1</networkInterfaceId>
                  <subnetId>subnet-c53c87ac</subnetId>
                  <vpcId>vpc-cc3c87a5</vpcId>
                  <description>Primary network interface</description>
                  <ownerId>053230519467</ownerId>
                  <status>in-use</status>
                  <privateIpAddress>10.0.0.12</privateIpAddress>
                  <sourceDestCheck>true</sourceDestCheck>
                  <groupSet>
                    <item>
                      <groupId>sg-374b565b</groupId>
                      <groupName>quick-start-3</groupName>
                    </item>
                  </groupSet>
                  <attachment>
                    <attachmentId>eni-attach-31b87358</attachmentId>
                    <deviceIndex>0</deviceIndex>
                    <status>attached</status>
                    <attachTime>2012-06-28T17:41:48.000Z</attachTime>
                    <deleteOnTermination>true</deleteOnTermination>
                  </attachment>
                  <association>
                    <publicIp>46.51.219.63</publicIp>
                    <ipOwnerId>053230519467</ipOwnerId>
                  </association>
                  <privateIpAddressesSet>
                    <item>
                      <privateIpAddress>10.0.0.12</privateIpAddress>
                      <primary>true</primary>
                      <association>
                        <publicIp>46.51.219.63</publicIp>
                        <ipOwnerId>053230519467</ipOwnerId>
                      </association>
                    </item>
                    <item>
                      <privateIpAddress>10.0.0.14</privateIpAddress>
                      <primary>false</primary>
                      <association>
                        <publicIp>46.51.221.177</publicIp>
                        <ipOwnerId>053230519467</ipOwnerId>
                      </association>
                    </item>
                  </privateIpAddressesSet>
                </item>
              </networkInterfaceSet>
            </item>
          </instancesSet>
        </item>
        <item>
          <reservationId>r-58b30a0c</reservationId>
          <ownerId>053230519467</ownerId>
          <groupSet>
            <item>
              <groupId>sg-aa4170f8</groupId>
              <groupName>quick-start-5</groupName>
            </item>
          </groupSet>
          <instancesSet>
            <item>
              <instanceId>i-507f1804</instanceId>
              <imageId>ami-70d49222</imageId>
              <instanceState>
                <code>16</code>
                <name>running</name>
              </instanceState>
              <privateDnsName>ip-10-139-34-251.ap-southeast-1.compute.internal</privateDnsName>
              <dnsName>ec2-122-248-233-255.ap-southeast-1.compute.amazonaws.com</dnsName>
              <reason/>
              <keyName>EC2Key</keyName>
              <amiLaunchIndex>0</amiLaunchIndex>
              <productCodes/>
              <instanceType>t1.micro</instanceType>
              <launchTime>2012-06-29T22:53:42.000Z</launchTime>
              <placement>
                <availabilityZone>ap-southeast-1a</availabilityZone>
                <groupName/>
                <tenancy>default</tenancy>
              </placement>
              <platform>windows</platform>
              <monitoring>
                <state>disabled</state>
              </monitoring>
              <privateIpAddress>10.139.34.251</privateIpAddress>
              <ipAddress>122.248.233.255</ipAddress>
              <groupSet>
                <item>
                  <groupId>sg-aa4170f8</groupId>
                  <groupName>quick-start-5</groupName>
                </item>
              </groupSet>
              <architecture>x86_64</architecture>
              <rootDeviceType>ebs</rootDeviceType>
              <rootDeviceName>/dev/sda1</rootDeviceName>
              <blockDeviceMapping>
                <item>
                  <deviceName>/dev/sda1</deviceName>
                  <ebs>
                    <volumeId>vol-a22b3ac0</volumeId>
                    <status>attached</status>
                    <attachTime>2012-06-29T22:54:02.000Z</attachTime>
                    <deleteOnTermination>true</deleteOnTermination>
                  </ebs>
                </item>
              </blockDeviceMapping>
              <virtualizationType>hvm</virtualizationType>
              <clientToken>clNwH1341010421443</clientToken>
              <tagSet>
                <item>
                  <key>Name</key>
                  <value>EC2 Instance</value>
                </item>
              </tagSet>
              <hypervisor>xen</hypervisor>
              <networkInterfaceSet/>
            </item>
          </instancesSet>
        </item>
      </reservationSet>
</DescribeInstancesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-instances.at:17: tforlan \$abs_top_srcdir/etc/describe-instances.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-instances.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-instances.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Reservation ID: r-0ece705a
Owner ID: 053230519467
Groups:

Instance: i-7a00642e
	Image ID: ami-1cd4924e
	State: running
	Kernel ID:
	Architecture: x86_64
	Private DNS:
	Public DNS:
	Key: VPCKey
	Type: c1.medium
	Launch Time: 2012-06-28T17:41:48.000Z
	Availability Zone: ap-southeast-1b
	Group Name:
	Tenancy: default
	Private IP: 10.0.0.12
	Public IP: 46.51.219.63
	Groups:
		sg-374b565b -- quick-start-3
	Root Device Type: ebs
	Root Device Name: /dev/sda1
	Device mapping:
		/dev/sda1 vol-9e151bfc attached 2012-06-28T17:42:05.000Z true
	Virtualization: hvm
	Tag Set:
		Name=SingleENI
	Hypervisor: xen
	EBS Optimized:
End of instance

Reservation ID: r-58b30a0c
Owner ID: 053230519467
Groups:
	sg-aa4170f8	quick-start-5

Instance: i-507f1804
	Image ID: ami-70d49222
	State: running
	Kernel ID:
	Architecture: x86_64
	Private DNS: ip-10-139-34-251.ap-southeast-1.compute.internal
	Public DNS: ec2-122-248-233-255.ap-southeast-1.compute.amazonaws.com
	Key: EC2Key
	Type: t1.micro
	Launch Time: 2012-06-29T22:53:42.000Z
	Availability Zone: ap-southeast-1a
	Group Name:
	Tenancy: default
	Private IP: 10.139.34.251
	Public IP: 122.248.233.255
	Groups:
		sg-aa4170f8 -- quick-start-5
	Root Device Type: ebs
	Root Device Name: /dev/sda1
	Device mapping:
		/dev/sda1 vol-a22b3ac0 attached 2012-06-29T22:54:02.000Z true
	Virtualization: hvm
	Tag Set:
		Name=\"EC2 Instance\"
	Hypervisor: xen
	EBS Optimized:
End of instance

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-instances.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_30
#AT_START_31
at_fn_group_banner 31 'describe-security-groups.at:17' \
  "DescribeSecurityGroups" "                         " 5
at_xfail=no
(
  $as_echo "31. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeSecurityGroupsResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <securityGroupInfo>
      <item>
         <ownerId>111122223333</ownerId>
         <groupId>sg-443d0a12</groupId>
         <groupName>WebServers</groupName>
         <groupDescription>Web Servers</groupDescription>
         <vpcId/>
         <ipPermissions>
            <item>
               <ipProtocol>tcp</ipProtocol>
               <fromPort>80</fromPort>
               <toPort>80</toPort>
               <groups/>
               <ipRanges>
                  <item>
                     <cidrIp>0.0.0.0/0</cidrIp>
                  </item>
               </ipRanges>
            </item>
         </ipPermissions>
         <ipPermissionsEgress/>
         <tagSet/>
      </item>
      <item>
         <ownerId>111122223333</ownerId>
         <groupId>sg-5ff8a023</groupId>
         <groupName>RangedPortsBySource</groupName>
         <groupDescription>Group A</groupDescription>
         <ipPermissions>
            <item>
               <ipProtocol>tcp</ipProtocol>
               <fromPort>6000</fromPort>
               <toPort>7000</toPort>
               <groups>
                  <item>
                     <userId>111122223333</userId>
                     <groupId>sg-99gh4012</groupId>
                     <groupName>Group B</groupName>
                  </item>
               </groups>
               <ipRanges/>
            </item>
         </ipPermissions>
         <ipPermissionsEgress/>
         <tagSet/>
      </item>
   </securityGroupInfo>
</DescribeSecurityGroupsResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-security-groups.at:17: tforlan \$abs_top_srcdir/etc/describe-security-groups.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-security-groups.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-security-groups.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Group sg-443d0a12	WebServers	\"Web Servers\"
VPC ID:
Incoming:
tcp	0.0.0.0/0	80
Outgoing:
Group sg-5ff8a023	RangedPortsBySource	\"Group A\"
VPC ID:
Incoming:
user 111122223333, group sg-99gh4012 (\"Group B\")	6000-7000
Outgoing:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-security-groups.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'describe-snapshots.at:17' \
  "DescribeSnapshots" "                              " 5
at_xfail=no
(
  $as_echo "32. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >result <<'_ATEOF'
<DescribeSnapshotsResponse xmlns="http://ec2.amazonaws.com/doc/2012-10-01/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <snapshotSet>
      <item>
         <snapshotId>snap-78a54011</snapshotId>
         <volumeId>vol-4d826724</volumeId>
         <status>pending</status>
         <startTime>2012-05-07T12:51:50.000Z</startTime>
         <progress>80&#x0025;</progress>
         <ownerId>111122223333</ownerId>
         <volumeSize>10</volumeSize>
         <description>Daily Backup</description>
         <tagSet/>
      </item>
      <item>
         <snapshotId>snap-12345678</snapshotId>
         <volumeId>vol-4d826724</volumeId>
         <status>completed</status>
         <startTime>2012-04-07T00:00:00.000Z</startTime>
         <progress>100&#x0025;</progress>
         <ownerId>111122223333</ownerId>
         <volumeSize>10</volumeSize>
         <description>Full Backup</description>
         <tagSet>
	   <item>
	     <key>comment</key>
	     <value>Taken before switching to new kernel</value>
	   </item>
	   <item>
	     <key>rand</key>
	     <value>E34AF890</value>
	   </item>
	 </tagSet>
      </item>
   </snapshotSet>
</DescribeSnapshotsResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-snapshots.at:17: tforlan \$abs_top_srcdir/etc/describe-snapshots.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-snapshots.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-snapshots.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "snap-78a54011	vol-4d826724 10	pending	80%	2012-05-07T12:51:50.000Z	\"Daily Backup\"
snap-12345678	vol-4d826724 10	completed	100%	2012-04-07T00:00:00.000Z	\"Full Backup\"
	comment=\"Taken before switching to new kernel\"
	rand=E34AF890
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-snapshots.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<DescribeTagsResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
   <tagSet>
      <item>
         <resourceId>ami-1a2b3c4d</resourceId>
         <resourceType>image</resourceType>
         <key>webserver</key>
         <value/>
      </item>
       <item>
         <resourceId>ami-1a2b3c4d</resourceId>
         <resourceType>image</resourceType>
         <key>stack</key>
         <value>Production</value>
      </item>
      <item>
         <resourceId>i-5f4e3d2a</resourceId>
         <resourceType>instance</resourceType>
         <key>webserver</key>
         <value/>
      </item>
       <item>
         <resourceId>i-5f4e3d2a</resourceId>
         <resourceType>instance</resourceType>
         <key>stack</key>
         <value>Production</value>
      </item>
      <item>
         <resourceId>i-12345678</resourceId>
         <resourceType>instance</resourceType>
         <key>database_server</key>
         <value/>
      </item>
       <item>
         <resourceId>i-12345678</resourceId>
         <resourceType>instance</resourceType>
         <key>stack</key>
         <value>Test</value>
      </item>
    </tagSet>
</DescribeTagsResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-tags.at:17: tforlan \$abs_top_srcdir/etc/describe-tags.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-tags.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-tags.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ami-1a2b3c4d	image	webserver
ami-1a2b3c4d	image	stack	Production
i-5f4e3d2a	instance	webserver
i-5f4e3d2a	instance	stack	Production
i-12345678	instance	database_server
i-12345678	instance	stack	Test
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-tags.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<DescribeVolumesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
   <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
   <volumeSet>
      <item>
         <volumeId>vol-4282672b</volumeId>
         <size>80</size>
         <snapshotId/>
         <availabilityZone>us-east-1a</availabilityZone>
         <status>in-use</status>
         <createTime>2008-05-07T11:51:50.000Z</createTime>
         <attachmentSet>
            <item>
               <volumeId>vol-4282672b</volumeId>
               <instanceId>i-6058a509</instanceId>
               <device>/dev/sdh</device>
               <status>attached</status>
               <attachTime>2008-05-07T12:51:50.000Z</attachTime>
               <deleteOnTermination>false</deleteOnTermination>
            </item>
         </attachmentSet>
         <volumeType>standard</volumeType>
      </item>
   </volumeSet>
</DescribeVolumesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/describe-volumes.at:17: tforlan \$abs_top_srcdir/etc/describe-volumes.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "describe-volumes.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/describe-volumes.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vol-4282672b	80	in-use	vol-4282672b	i-6058a509	/dev/sdh	attached
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/describe-volumes.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<GetConsoleOutputResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <instanceId>i-28a64341</instanceId>
  <timestamp>2010-10-14T01:12:41.000Z</timestamp>
  <output>TGludXggdmVyc2lvbiAyLjYuMTYteGVuVSAoYnVpbGRlckBwYXRjaGJhdC5hbWF6b25zYSkgKGdj
YyB2ZXJzaW9uIDQuMC4xIDIwMDUwNzI3IChSZWQgSGF0IDQuMC4xLTUpKSAjMSBTTVAgVGh1IE9j
dCAyNiAwODo0MToyNiBTQVNUIDIwMDYKQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0gbWFwOgpY
ZW46IDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAwMDZhNDAwMDAwICh1c2FibGUpCjk4ME1CIEhJ
R0hNRU0gYXZhaWxhYmxlLgo3MjdNQiBMT1dNRU0gYXZhaWxhYmxlLgpOWCAoRXhlY3V0ZSBEaXNh
YmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKSVJRIGxvY2t1cCBkZXRlY3Rpb24gZGlzYWJsZWQKQnVp
bHQgMSB6b25lbGlzdHMKS2VybmVsIGNvbW1hbmQgbGluZTogcm9vdD0vZGV2L3NkYTEgcm8gNApF
bmFibGluZyBmYXN0IEZQVSBzYXZlIGFuZCByZXN0b3JlLi4uIGRvbmUuCg==</output>
</GetConsoleOutputResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/get-console-output.at:17: tforlan \$abs_top_srcdir/etc/get-console-output.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "get-console-output.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/get-console-output.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Linux version 2.6.16-xenU (builder@patchbat.amazonsa) (gcc version 4.0.1 20050727 (Red Hat 4.0.1-5)) #1 SMP Thu Oct 26 08:41:26 SAST 2006
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 000000006a400000 (usable)
980MB HIGHMEM available.
727MB LOWMEM available.
NX (Execute Disable) protection: active
IRQ lockup detection disabled
Built 1 zonelists
Kernel command line: root=/dev/sda1 ro 4
Enabling fast FPU save and restore... done.

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/get-console-output.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<StartInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <instancesSet>
    <item>
      <instanceId>i-10a64379</instanceId>
      <currentState>
          <code>0</code>
          <name>pending</name>
      </currentState>
      <previousState>
          <code>80</code>
          <name>stopped</name>
      </previousState>
    </item>
  </instancesSet>
</StartInstancesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/start-instances.at:17: tforlan \$abs_top_srcdir/etc/start-instances.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "start-instances.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/start-instances.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-10a64379: stopped => pending
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/start-instances.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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


cat >result <<'_ATEOF'
<StopInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2012-08-15/">
  <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
  <instancesSet>
    <item>
      <instanceId>i-10a64379</instanceId>
      <currentState>
          <code>64</code>
          <name>stopping</name>
      </currentState>
      <previousState>
          <code>16</code>
          <name>running</name>
      </previousState>
    </item>
 </instancesSet>
</StopInstancesResponse>
_ATEOF

{ set +x
$as_echo "$at_srcdir/stop-instances.at:17: tforlan \$abs_top_srcdir/etc/stop-instances.fln result|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "stop-instances.at:17"
( $at_check_trace; tforlan $abs_top_srcdir/etc/stop-instances.fln result|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-10a64379: running => stopping
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stop-instances.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

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



cat >input <<'_ATEOF'
<input>
  <collection>
    <item>
      <key>7</key>
      <value>syv</value>
    </item>
    <item>
      <key>3</key>
      <value>tre</value>
    </item>
    <item>
      <key>10</key>
      <value>ti</value>
    </item>
    <item>
      <key>6</key>
      <value>seks</value>
    </item>
    <item>
      <key>1</key>
      <value>en</value>
    </item>
  </collection>
</input>
_ATEOF


cat >prog <<'_ATEOF'
sort(.input.collection,".item.key");
dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/sortstring.at:51: tforlan prog input|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "sortstring.at:51"
( $at_check_trace; tforlan prog input|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".input.collection.item.key: \"1\"
.input.collection.item.value: \"en\"
.input.collection.item.key: \"10\"
.input.collection.item.value: \"ti\"
.input.collection.item.key: \"3\"
.input.collection.item.value: \"tre\"
.input.collection.item.key: \"6\"
.input.collection.item.value: \"seks\"
.input.collection.item.key: \"7\"
.input.collection.item.value: \"syv\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sortstring.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
<input>
  <collection>
    <item>
      <key>7</key>
      <value>syv</value>
    </item>
    <item>
      <key>3</key>
      <value>tre</value>
    </item>
    <item>
      <key>10</key>
      <value>ti</value>
    </item>
    <item>
      <key>6</key>
      <value>seks</value>
    </item>
    <item>
      <key>1</key>
      <value>en</value>
    </item>
  </collection>
</input>
_ATEOF


cat >prog <<'_ATEOF'
sort(.input.collection,".item.key","n");
dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/sortnum.at:51: tforlan prog input|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "sortnum.at:51"
( $at_check_trace; tforlan prog input|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".input.collection.item.key: \"1\"
.input.collection.item.value: \"en\"
.input.collection.item.key: \"3\"
.input.collection.item.value: \"tre\"
.input.collection.item.key: \"6\"
.input.collection.item.value: \"seks\"
.input.collection.item.key: \"7\"
.input.collection.item.value: \"syv\"
.input.collection.item.key: \"10\"
.input.collection.item.value: \"ti\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sortnum.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_39
#AT_START_40
at_fn_group_banner 40 'sortrevnum.at:17' \
  "Reverse numeric sort" "                           " 6
at_xfail=no
(
  $as_echo "40. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >input <<'_ATEOF'
<input>
  <collection>
    <item>
      <key>7</key>
      <value>syv</value>
    </item>
    <item>
      <key>3</key>
      <value>tre</value>
    </item>
    <item>
      <key>10</key>
      <value>ti</value>
    </item>
    <item>
      <key>6</key>
      <value>seks</value>
    </item>
    <item>
      <key>1</key>
      <value>en</value>
    </item>
  </collection>
</input>
_ATEOF


cat >prog <<'_ATEOF'
sort(.input.collection,".item.key","nr");
dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/sortrevnum.at:51: tforlan prog input|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "sortrevnum.at:51"
( $at_check_trace; tforlan prog input|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".input.collection.item.key: \"10\"
.input.collection.item.value: \"ti\"
.input.collection.item.key: \"7\"
.input.collection.item.value: \"syv\"
.input.collection.item.key: \"6\"
.input.collection.item.value: \"seks\"
.input.collection.item.key: \"3\"
.input.collection.item.value: \"tre\"
.input.collection.item.key: \"1\"
.input.collection.item.value: \"en\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sortrevnum.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >input <<'_ATEOF'
<input>
  <collection>
    <item>
      <key>2012-02-20T16:27:51.000Z</key>
      <value>tolvte februar 2012, seksten tjuefem femtien</value>
    </item>
    <item>
      <key>2012-10-14T15:51:00.000Z</key>
      <value>fjortende oktober 2012, femten femtien</value>
    </item>
    <item>
      <key>2011-01-22T00:00:00.000Z</key>
      <value>tjueandre januar 2011, null null</value>
    </item>
    <item>
      <key>2012-02-20T16:25:34.000Z</key>
      <value>tjuende februar 2012, seksten tjuefem trettifire</value>
    </item>
    <item>
      <key>2012-02-22T01:21:22.000Z</key>
      <value>tjueandre februar 2012, ett tjueen tjueto</value>
    </item>
  </collection>
</input>
_ATEOF


cat >prog <<'_ATEOF'
sort(.input.collection,".item.key","t");
dump(.);
_ATEOF


{ set +x
$as_echo "$at_srcdir/sortts.at:51: tforlan prog input|trws"
at_fn_check_prepare_notrace 'a shell pipeline' "sortts.at:51"
( $at_check_trace; tforlan prog input|trws
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".input.collection.item.key: \"2011-01-22T00:00:00.000Z\"
.input.collection.item.value: \"tjueandre januar 2011, null null\"
.input.collection.item.key: \"2012-02-20T16:25:34.000Z\"
.input.collection.item.value: \"tjuende februar 2012, seksten tjuefem trettifire\"
.input.collection.item.key: \"2012-02-20T16:27:51.000Z\"
.input.collection.item.value: \"tolvte februar 2012, seksten tjuefem femtien\"
.input.collection.item.key: \"2012-02-22T01:21:22.000Z\"
.input.collection.item.value: \"tjueandre februar 2012, ett tjueen tjueto\"
.input.collection.item.key: \"2012-10-14T15:51:00.000Z\"
.input.collection.item.value: \"fjortende oktober 2012, femten femtien\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sortts.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >test.conf <<'_ATEOF'
map null {
	type null;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/nullmap.at:26: eclat --config-file test.conf --test-map null i-deadbeef"
at_fn_check_prepare_trace "nullmap.at:26"
( $at_check_trace; eclat --config-file test.conf --test-map null i-deadbeef
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-deadbeef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nullmap.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >test.conf <<'_ATEOF'
map file {
	type file;
	file "instances.txt";
}
_ATEOF


cat >instances.txt <<'_ATEOF'
web:i-feed1234
dbserver:i-12345678
dbserv:i-deadbeef
_ATEOF


{ set +x
$as_echo "$at_srcdir/filemap.at:33: eclat --config-file test.conf --test-map file dbserv"
at_fn_check_prepare_trace "filemap.at:33"
( $at_check_trace; eclat --config-file test.conf --test-map file dbserv
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-deadbeef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/filemap.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/filemap.at:38: eclat --config-file test.conf --test-map file:rev i-feed1234"
at_fn_check_prepare_trace "filemap.at:38"
( $at_check_trace; eclat --config-file test.conf --test-map file:rev i-feed1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "web
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/filemap.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/filemap.at:43: eclat --config-file test.conf --test-map file:rev i-12345678"
at_fn_check_prepare_trace "filemap.at:43"
( $at_check_trace; eclat --config-file test.conf --test-map file:rev i-12345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dbserver
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/filemap.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/filemap.at:48: eclat --config-file test.conf --test-map file:rev i-deadbeef"
at_fn_check_prepare_trace "filemap.at:48"
( $at_check_trace; eclat --config-file test.conf --test-map file:rev i-deadbeef
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dbserv
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/filemap.at:48"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >test.conf <<'_ATEOF'
map instances {
	type gdbm;
	file "instances.db";
}
_ATEOF


cat >instances.txt <<'_ATEOF'
web:i-feed1234
dbserver:i-12345678
dbserv:i-deadbeef
_ATEOF


{ set +x
$as_echo "$at_srcdir/gdbmmap.at:33: test -x \"\$GDBMLOAD\" || exit 77
\$GDBMLOAD instances.db < instances.txt
eclat --config-file test.conf --test-map instances dbserv"
at_fn_check_prepare_notrace 'an embedded newline' "gdbmmap.at:33"
( $at_check_trace; test -x "$GDBMLOAD" || exit 77
$GDBMLOAD instances.db < instances.txt
eclat --config-file test.conf --test-map instances dbserv
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-deadbeef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/gdbmmap.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >test.conf <<'_ATEOF'
map name2key {
	type file;
	file "keys.txt";
}

map key2inst {
	type file;
	file "instances.txt";
};

map inst {
	type sequence;
	sequence (name2key, key2inst);
}
_ATEOF


cat >keys.txt <<'_ATEOF'
web:1
db:2
_ATEOF


cat >instances.txt <<'_ATEOF'
1:i-deadbeef
2:i-feed1234
_ATEOF


{ set +x
$as_echo "$at_srcdir/seqmap.at:47: eclat --config-file test.conf --test-map inst db"
at_fn_check_prepare_trace "seqmap.at:47"
( $at_check_trace; eclat --config-file test.conf --test-map inst db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-feed1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/seqmap.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }


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



cat >test.conf <<'_ATEOF'
map dir {
	type file;
	file "dir.txt";
}

map rev {
	type file;
	file "rev.txt";
};

map inst {
	type bidi;
	direct-map dir;
	reverse-map rev;
}
_ATEOF


cat >dir.txt <<'_ATEOF'
db:i-feed1234
web:i-deadbeef
_ATEOF


cat >rev.txt <<'_ATEOF'
i-deadbeef:web
i-feed1234:db
_ATEOF


{ set +x
$as_echo "$at_srcdir/bidimap.at:48: eclat --config-file test.conf --test-map inst:0 db"
at_fn_check_prepare_trace "bidimap.at:48"
( $at_check_trace; eclat --config-file test.conf --test-map inst:0 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "i-feed1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bidimap.at:48"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bidimap.at:53: eclat --config-file test.conf --test-map inst:1 i-feed1234"
at_fn_check_prepare_trace "bidimap.at:53"
( $at_check_trace; eclat --config-file test.conf --test-map inst:1 i-feed1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "db
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bidimap.at:53"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_46
