#! /bin/sh
## --------------------- ##
## M4sh Initialization.  ##
## --------------------- ##

# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  emulate sh
  NULLCMD=:
  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
  set -o posix
fi
DUALCASE=1; export DUALCASE # for MKS sh

# Support unset when possible.
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
  as_unset=unset
else
  as_unset=false
fi


# Work around bugs in pre-3.0 UWIN ksh.
$as_unset ENV MAIL MAILPATH
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
for as_var in \
  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
  LC_TELEPHONE LC_TIME
do
  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
    eval $as_var=C; export $as_var
  else
    $as_unset $as_var
  fi
done

# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1; 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


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


# PATH needs CR, and LINENO needs CR and PATH.
# 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

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  echo "#! /bin/sh" >conf$$.sh
  echo  "exit 0"   >>conf$$.sh
  chmod +x conf$$.sh
  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
    PATH_SEPARATOR=';'
  else
    PATH_SEPARATOR=:
  fi
  rm -f conf$$.sh
fi


  as_lineno_1=$LINENO
  as_lineno_2=$LINENO
  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
  test "x$as_lineno_1" != "x$as_lineno_2" &&
  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
  # Find who we are.  Look in the path if we contain no path at all
  # relative or not.
  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

       ;;
  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
    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
   { (exit 1); exit 1; }; }
  fi
  case $CONFIG_SHELL in
  '')
    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
  for as_base in sh bash ksh sh5; do
	 case $as_dir in
	 /*)
	   if ("$as_dir/$as_base" -c '
  as_lineno_1=$LINENO
  as_lineno_2=$LINENO
  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
  test "x$as_lineno_1" != "x$as_lineno_2" &&
  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
	     CONFIG_SHELL=$as_dir/$as_base
	     export CONFIG_SHELL
	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
	   fi;;
	 esac
       done
done
;;
  esac

  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
  # uniformly replaced by the line number.  The first 'sed' inserts a
  # line-number line before each line; the second 'sed' does the real
  # work.  The second script uses 'N' to pair each line-number line
  # with the numbered line, and appends trailing '-' during
  # substitution so that $LINENO is not a special case at line end.
  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
  sed '=' <$as_myself |
    sed '
      N
      s,$,-,
      : loop
      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
      t loop
      s,-$,,
      s,^['$as_cr_digits']*\n,,
    ' >$as_me.lineno &&
  chmod +x $as_me.lineno ||
    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
   { (exit 1); exit 1; }; }

  # 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 sensible to this).
  . ./$as_me.lineno
  # Exit status is that of the last command.
  exit
}


case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
  *c*,-n*) ECHO_N= ECHO_C='
' ECHO_T='	' ;;
  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
esac

if expr a : '\(a\)' >/dev/null 2>&1; then
  as_expr=expr
else
  as_expr=false
fi

rm -f conf$$ conf$$.exe conf$$.file
echo >conf$$.file
if ln -s conf$$.file conf$$ 2>/dev/null; then
  # We could just check for DJGPP; but this test a) works b) is more generic
  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
  if test -f conf$$.exe; then
    # Don't use ln at all; we don't have any links
    as_ln_s='cp -p'
  else
    as_ln_s='ln -s'
  fi
elif ln conf$$.file conf$$ 2>/dev/null; then
  as_ln_s=ln
else
  as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.file

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

as_executable_p="test -f"

# 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'"


# IFS
# We need space, tab and new line, in precisely that order.
as_nl='
'
IFS=" 	$as_nl"

# CDPATH.
$as_unset CDPATH


SHELL=${CONFIG_SHELL-/bin/sh}

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

# Load the config file.
for at_file in atconfig atlocal
do
  test -r $at_file || continue
  . ./$at_file || { echo "$as_me: error: invalid content: $at_file" >&2
   { (exit 1); exit 1; }; }
done

# atconfig delivers paths 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 in srcdir top_srcdir top_builddir
  do
    at_val=`eval echo '${'at_$at_dir'}'`
    eval "$at_dir=\$at_val/../.."
  done
fi

# 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?
at_verbose=:
at_quiet=echo

# 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
# List test groups?
at_list_p=false
# Test groups to run
at_groups=

# The directory we are in.
at_dir=`pwd`
# The directory the whole suite works in.
# Should be absolutely to let the user `cd' at will.
at_suite_dir=$at_dir/$as_me.dir
# The file containing the suite.
at_suite_log=$at_dir/$as_me.log
# The file containing the location of the last AT_CHECK.
at_check_line_file=$at_suite_dir/at-check-line
# The file containing the exit status of the last command.
at_status_file=$at_suite_dir/at-status
# The files containing the output of the tested commands.
at_stdout=$at_suite_dir/at-stdout
at_stder1=$at_suite_dir/at-stder1
at_stderr=$at_suite_dir/at-stderr
# The file containing dates.
at_times_file=$at_suite_dir/at-times

# List of the tested programs.
at_tested='radiusd'
# List of the all the test groups.
at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
# As many dots 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;begin.at:21;Starting radius server;begin status-server basic-auth reply begin-kw default-kw match-profile hints huntgroups scheme-auth acl expiration menu acct rewrite execwait filter scheme-acct tunnel log-mode;
2;status-server.at:21;Status-Server;status-server;
3;basic-auth.at:21;Basic Authentication Types;basic-auth;
4;reply.at:21;Reply attributes;reply;
5;begin-kw.at:21;BEGIN Keyword;begin-kw;
6;default-kw.at:21;DEFAULT Keyword;default-kw;
7;match-profile.at:21;Match-Profile;match-profile;
8;hints.at:21;hints;hints;
9;huntgroups.at:21;huntgroups;huntgroups;
10;scheme-auth.at:21;Scheme authentication;scheme-auth;
11;acl.at:21;Access control lists;acl;
12;expiration.at:21;Expiration attribute;expiration;
13;menu.at:21;menus;menu;
14;acct.at:21;accounting and simultaneous use control;acct-start;
15;rewrite.at:21;rewrite rules;rewrite;
16;execwait.at:21;external procedures;execwait;
17;filter.at:21;filters;filter;
18;scheme-acct.at:21;Scheme accounting;scheme-acct;
19;tunnel.at:21;tunnel attributes;tunnel;
20;log-mode.at:21;Log-Mode-Mask attribute;log-mode;
21;end.at:21;Shutting down radius server;status-server basic-auth reply begin-kw default-kw match-profile hints huntgroups scheme-auth acl expiration menu acct rewrite execwait filter scheme-acct tunnel log-mode;
22;begin-proxy.at:21;Starting radius server;begin-proxy proxy-basic-auth proxy-ignorecase proxy-vsa proxy-menu proxy-nested proxy-acct proxy-tunnel;
23;proxy-basic-auth.at:21;Basic Authentication Types (proxy);proxy-basic-auth;
24;proxy-ignorecase.at:21;Case-insensitive realms;proxy-ignorecase;
25;proxy-vsa.at:21;VSA propagation;proxy-vsa;
26;proxy-menu.at:21;menus (proxy);proxy-menu;
27;proxy-nested.at:21;nested realms;proxy-nested;
28;proxy-acct.at:21;proxy accounting;proxy-acct;
29;proxy-tunnel.at:21;tunnel attributes (proxy);proxy-tunnel;
30;end-proxy.at:21;Shutting down radius server;proxy-basic-auth proxy-ignorecase proxy-vsa proxy-menu proxy-nested proxy-acct proxy-tunnel;
'

at_keywords=
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

  at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'`

  # 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 )
	echo "$as_me (GNU Radius 1.3)"
	exit 0
	;;

    --clean | -c )
	rm -rf $at_suite_dir $at_suite_log
	exit 0
	;;

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

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

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

    --trace | -x )
	at_traceon='set -vx'; at_traceoff='set +vx'
	;;

    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
	at_groups="$at_groups$at_option "
	;;

    # 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 '-'`
	at_range=`echo " $at_groups_all " | \
	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,'`
	at_groups="$at_groups$at_range "
	;;

    -[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 '-'`
	at_range=`echo " $at_groups_all " | \
	  sed -e 's, '$at_range_end' .*$, '$at_range_end','`
	at_groups="$at_groups$at_range "
	;;

    [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=`echo $at_option |sed 's,-.*,,'`
	at_range_end=`echo $at_option |sed 's,.*-,,'`
	# FIXME: Maybe test to make sure start <= end?
	at_range=`echo " $at_groups_all " | \
	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,' \
	      -e 's, '$at_range_end' .*$, '$at_range_end','`
	at_groups="$at_groups$at_range "
	;;

    # Keywords.
    --keywords | -k )
	at_prev=--keywords
	;;
    --keywords=* )
	at_keywords="$at_keywords,$at_optarg"
	;;

    *=*)
  	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
  	# Reject names that are not valid shell variable names.
  	expr "x$at_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
  	  { echo "$as_me: error: invalid variable name: $at_envvar" >&2
   { (exit 1); exit 1; }; }
  	at_value=`echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
  	eval "$at_envvar='$at_value'"
  	export $at_envvar
	# Propagate to debug scripts.
  	at_debug_args="$at_debug_args $at_option"
  	;;

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

# Process the --keywords
if test -n "$at_keywords"; then
  at_groups_selected=$at_help_all
  for at_keyword in `IFS=,; set X $at_keywords; shift; echo ${1+$@}`
  do
    # It is on purpose that we match the test group titles too.
    at_groups_selected=`echo "$at_groups_selected" |
			grep -i "^[^;]*;[^;]*.*[; ]$at_keyword[ ;]"`
  done
  at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'`
  # Smash the end of lines.
  at_groups_selected=`echo $at_groups_selected`
  at_groups="$at_groups$at_groups_selected "
fi

# Selected test groups.
test -z "$at_groups" && at_groups=$at_groups_all

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

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

You should not change environment variables unless explicitly passed
as command line arguments.  Set \`AUTOTEST_PATH' to select the executables
to exercise.  Each relative directory is expanded as build and source
directories relatively to the top level of this distribution.  E.g.,

  $ $0 AUTOTEST_PATH=bin

possibly amounts into

  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH
_ATEOF
cat <<_ATEOF

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

Execution tuning:
  -k, --keywords=KEYWORDS
	         select the tests matching all the comma separated KEYWORDS
	         accumulates
  -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 debug script creation
	         default for debugging scripts
  -x, --trace    enable tests shell tracing
_ATEOF
cat <<_ATEOF

Report bugs to <bug-gnu-radius@gnu.org>.
_ATEOF
  exit 0
fi

# List of tests.
if $at_list_p; then
  cat <<_ATEOF
GNU Radius 1.3 test suite test groups:

 NUM: FILENAME:LINE      TEST-GROUP-NAME
      KEYWORDS

_ATEOF
  # "  1 42  45 " => "^(1|42|45);".
  at_groups_pattern=`echo "$at_groups" | sed 's/^  *//;s/  *$//;s/  */|/g'`
  echo "$at_help_all" |
    awk 'BEGIN { FS = ";" }
	 { if ($1 !~ /^('"$at_groups_pattern"')$/) next }
	 { if ($1) printf " %3d: %-18s %s\n", $1, $2, $3
	   if ($4) printf "      %s\n", $4 } '
  exit 0
fi

# Don't take risks: use only absolute directories in PATH.
#
# For stand-alone test suites, 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.
#
# There might be directories that don't exist, but don't redirect
# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`
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=.
  case $as_dir in
  [\\/]* | ?:[\\/]* )
    at_path=$at_path$PATH_SEPARATOR$as_dir
    ;;
  * )
    if test -z "$at_top_builddir"; then
      # Stand-alone test suite.
      at_path=$at_path$PATH_SEPARATOR$as_dir
    else
      # Embedded test suite.
      at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir
      at_path=$at_path$PATH_SEPARATOR$at_top_srcdir/$as_dir
    fi
    ;;
esac
done


# Now build and simplify PATH.
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=.
  as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`
test -d "$as_dir" || continue
case $PATH in
	          $as_dir                 | \
	          $as_dir$PATH_SEPARATOR* | \
  *$PATH_SEPARATOR$as_dir                 | \
  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;;

  '') PATH=$as_dir ;;
   *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;
esac
done

export PATH

# Setting up the FDs.
# 5 is the log file.  Not to be overwritten if `-d'.

$at_debug_p && at_suite_log=/dev/null
exec 5>$at_suite_log

# Banners and logs.
cat <<\_ASBOX
## -------------------------- ##
## GNU Radius 1.3 test suite. ##
## -------------------------- ##
_ASBOX
{
  cat <<\_ASBOX
## -------------------------- ##
## GNU Radius 1.3 test suite. ##
## -------------------------- ##
_ASBOX
  echo

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

  # Try to find a few ChangeLogs in case it might help determining the
  # exact version.  Use the relative dir: if the top dir is a symlink,
  # find will not follow it (and options to follow the links are not
  # portable), which would result in no output here.
  if test -n "$at_top_srcdir"; then
    cat <<\_ASBOX
## ----------- ##
## ChangeLogs. ##
## ----------- ##
_ASBOX
    echo
    for at_file in `find "$at_top_srcdir" -name ChangeLog -print`
    do
      echo "$as_me: $at_file:"
      sed 's/^/| /;10q' $at_file
      echo
    done

    {
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`
hostinfo               = `(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=.
  echo "PATH: $as_dir"
done

}
    echo
  fi

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

  cat <<\_ASBOX
## ---------------- ##
## Tested programs. ##
## ---------------- ##
_ASBOX
  echo
} >&5

# Report what programs are being tested.
for at_program in : $at_tested
do
  test "$at_program" = : && continue
  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

  if test -f $as_dir/$at_program; then
    {
      echo "testsuite.at:24: $as_dir/$at_program --version"
      $as_dir/$at_program --version
      echo
    } >&5 2>&1
  else
    { { echo "$as_me:$LINENO: error: cannot find $at_program" >&5
echo "$as_me: error: cannot find $at_program" >&2;}
   { (exit 1); exit 1; }; }
  fi
done

{
  cat <<\_ASBOX
## ------------------ ##
## Running the tests. ##
## ------------------ ##
_ASBOX
} >&5

at_start_date=`date`
at_start_time=`(date +%s) 2>/dev/null`
echo "$as_me: starting at: $at_start_date" >&5
at_xpass_list=
at_xfail_list=
at_pass_list=
at_fail_list=
at_skip_list=
at_group_count=0

# Create the master directory if it doesn't already exist.
test -d $at_suite_dir ||
  mkdir $at_suite_dir ||
  { { echo "$as_me:$LINENO: error: cannot create $at_suite_dir" >&5
echo "$as_me: error: cannot create $at_suite_dir" >&2;}
   { (exit 1); exit 1; }; }

# 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
  cp /dev/null $at_devnull
fi

# Use `diff -u' when possible.
if diff -u $at_devnull $at_devnull >/dev/null 2>&1; then
  at_diff='diff -u'
else
  at_diff=diff
fi


for at_group in $at_groups
do
  # Be sure to come back to the top test directory.
  cd $at_suite_dir

  case $at_group in
    banner-*)
      at_group_log=$at_suite_log
      ;;

    *)
      # Skip tests we already run (using --keywords makes it easy to get
      # duplication).
      case " $at_pass_test $at_skip_test $at_fail_test " in
	*" $at_group "* ) continue;;
      esac

      # Normalize the test group number.
      at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`

      # Create a fresh directory for the next test group, and enter.
      at_group_dir=$at_suite_dir/$at_group_normalized
      at_group_log=$at_group_dir/$as_me.log
      rm -rf $at_group_dir
      mkdir $at_group_dir ||
	{ { echo "$as_me:$LINENO: error: cannot create $at_group_dir" >&5
echo "$as_me: error: cannot create $at_group_dir" >&2;}
   { (exit 1); exit 1; }; }
      cd $at_group_dir
      ;;
  esac

  echo 0 > $at_status_file

  # Clearly separate the test groups when verbose.
  test $at_group_count != 0 && $at_verbose

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

  case $at_group in
  1 ) # 1. begin.at:21: Starting radius server
    at_setup_line='begin.at:21'
    at_desc='Starting radius server'
    $at_quiet $ECHO_N "  1: Starting radius server                       $ECHO_C"
    at_xfail=no
    (
      echo "1. begin.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "begin.at:29: begin_server"
echo begin.at:29 >$at_check_line_file
( $at_traceon; begin_server ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
$at_diff $at_devnull $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "begin.at:29: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
else
  exit 1
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  2 ) # 2. status-server.at:21: Status-Server
    at_setup_line='status-server.at:21'
    at_desc='Status-Server'
    $at_quiet $ECHO_N "  2: Status-Server                                $ECHO_C"
    at_xfail=no
    (
      echo "2. status-server.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Status-Server
          expect Access-Accept Reply-Message = "GNU Radius server fully operational"
_ATEOF

 $at_traceoff
echo "status-server.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo status-server.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "status-server.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  3 ) # 3. basic-auth.at:21: Basic Authentication Types
    at_setup_line='basic-auth.at:21'
    at_desc='Basic Authentication Types'
    $at_quiet $ECHO_N "  3: Basic Authentication Types                   $ECHO_C"
    at_xfail=no
    (
      echo "3. basic-auth.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept"
          expect Access-Accept

          send auth Access-Request User-Name = "reject"
          expect Access-Reject

          send auth Access-Request User-Name = "local" \
             User-Password = "guessme"
          expect Access-Accept

          send auth Access-Request \
             User-Name = "local" User-Password = "bad"
          expect Access-Reject

          send auth Access-Request \
             User-Name = "crypt" User-Password = "hamlet"
          expect Access-Accept

          send auth Access-Request User-Name = "chap" \
             CHAP-Password = "\001\357\213\343\126\266\311\072\202\020\176\017\121\101\227\155\244" \
             CHAP-Challenge = "0123456789abcdef"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "basic-auth.at:52: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo basic-auth.at:52 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
PASS
PASS
PASS
PASS
PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "basic-auth.at:52: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  4 ) # 4. reply.at:21: Reply attributes
    at_setup_line='reply.at:21'
    at_desc='Reply attributes'
    $at_quiet $ECHO_N "  4: Reply attributes                             $ECHO_C"
    at_xfail=no
    (
      echo "4. reply.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request \
             User-Name = "reply" \
             User-Password = "guessme"
          expect Access-Accept Service-Type = 2 Framed-Protocol = 1
_ATEOF

 $at_traceoff
echo "reply.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo reply.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "reply.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "framed-ip" \
             NAS-Port-Id = 10
          expect Access-Accept Service-Type = 2 Framed-Protocol = 1 Framed-IP-Address = 127.0.0.11

_ATEOF

 $at_traceoff
echo "reply.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo reply.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "reply.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  5 ) # 5. begin-kw.at:21: BEGIN Keyword
    at_setup_line='begin-kw.at:21'
    at_desc='BEGIN Keyword'
    $at_quiet $ECHO_N "  5: BEGIN Keyword                                $ECHO_C"
    at_xfail=no
    (
      echo "5. begin-kw.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept" \
             NAS-IP-Address = 127.0.0.2 NAS-Port-Id = 2
          expect Access-Accept Framed-IP-Address = 127.10.0.3
_ATEOF

 $at_traceoff
echo "begin-kw.at:26: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo begin-kw.at:26 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "begin-kw.at:26: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  6 ) # 6. default-kw.at:21: DEFAULT Keyword
    at_setup_line='default-kw.at:21'
    at_desc='DEFAULT Keyword'
    $at_quiet $ECHO_N "  6: DEFAULT Keyword                              $ECHO_C"
    at_xfail=no
    (
      echo "6. default-kw.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "no-such-user" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 2
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "default-kw.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo default-kw.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "default-kw.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "no-such-user" \
                    NAS-IP-Address = 127.0.0.3 \
                    NAS-Port-Id = 2
          expect Access-Accept Reply-Message = "OK. Come in."
_ATEOF

 $at_traceoff
echo "default-kw.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo default-kw.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "default-kw.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "no-such-user" \
                    NAS-IP-Address = 127.0.0.4 \
                    NAS-Port-Id = 2
          expect Access-Reject Reply-Message = "Wrong NAS"
_ATEOF

 $at_traceoff
echo "default-kw.at:37: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo default-kw.at:37 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "default-kw.at:37: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  7 ) # 7. match-profile.at:21: Match-Profile
    at_setup_line='match-profile.at:21'
    at_desc='Match-Profile'
    $at_quiet $ECHO_N "  7: Match-Profile                                $ECHO_C"
    at_xfail=no
    (
      echo "7. match-profile.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "match1" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 1 \
                    NAS-Identifier = "en"
          expect Access-Accept Service-Type = Framed-User \
               Framed-Protocol = PPP \
               Framed-IP-Address = 127.10.10.1
_ATEOF

 $at_traceoff
echo "match-profile.at:30: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo match-profile.at:30 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "match-profile.at:30: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "match1" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 1 \
                    NAS-Identifier = "to"
          expect Access-Accept Service-Type = Framed-User \
               Framed-Protocol = PPP \
               Framed-IP-Address = 127.10.10.2
_ATEOF

 $at_traceoff
echo "match-profile.at:38: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo match-profile.at:38 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "match-profile.at:38: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "match1" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 2 \
                    NAS-Identifier = "een"
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "match-profile.at:44: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo match-profile.at:44 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "match-profile.at:44: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "match1" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Identifier = "een"
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "match-profile.at:49: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo match-profile.at:49 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "match-profile.at:49: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  8 ) # 8. hints.at:21: hints
    at_setup_line='hints.at:21'
    at_desc='hints'
    $at_quiet $ECHO_N "  8: hints                                        $ECHO_C"
    at_xfail=no
    (
      echo "8. hints.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "hint.1"
          expect Access-Accept Reply-Message = "Hint 1"
_ATEOF

 $at_traceoff
echo "hints.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo hints.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "hints.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "hint.2"
          expect Access-Accept Reply-Message = "Hint 2"
_ATEOF

 $at_traceoff
echo "hints.at:28: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo hints.at:28 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "hints.at:28: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "hint"
          expect Access-Reject Reply-Message = "No suffix"
_ATEOF

 $at_traceoff
echo "hints.at:31: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo hints.at:31 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "hints.at:31: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  9 ) # 9. huntgroups.at:21: huntgroups
    at_setup_line='huntgroups.at:21'
    at_desc='huntgroups'
    $at_quiet $ECHO_N "  9: huntgroups                                   $ECHO_C"
    at_xfail=no
    (
      echo "9. huntgroups.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept" \
             NAS-IP-Address = 127.0.0.4 \
	     NAS-Port-Id = 2
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "huntgroups.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo huntgroups.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "huntgroups.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept" \
             NAS-IP-Address = 127.0.0.4 \
	     NAS-Port-Id = 5
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "huntgroups.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo huntgroups.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "huntgroups.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  10 ) # 10. scheme-auth.at:21: Scheme authentication
    at_setup_line='scheme-auth.at:21'
    at_desc='Scheme authentication'
    $at_quiet $ECHO_N " 10: Scheme authentication                        $ECHO_C"
    at_xfail=no
    (
      echo "10. scheme-auth.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "scheme-auth.at:32: radiusd --show-defaults|grep \"USE_SERVER_GUILE\" || exit 77"
echo scheme-auth.at:32 >$at_check_line_file
( $at_traceon; radiusd --show-defaults|grep "USE_SERVER_GUILE" || exit 77 ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "USE_SERVER_GUILE
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "scheme-auth.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then
  exit 77
  echo 1 > $at_status_file
  exit 1
else

 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "scheme" \
	             NAS-IP-Address = 127.0.0.1
           expect Access-Accept Framed-MTU = 8096
_ATEOF

 $at_traceoff
echo "scheme-auth.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo scheme-auth.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "scheme-auth.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "scheme" \
	      NAS-IP-Address = 127.0.0.2
           expect Access-Accept Framed-MTU = 256
_ATEOF

 $at_traceoff
echo "scheme-auth.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo scheme-auth.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "scheme-auth.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  11 ) # 11. acl.at:21: Access control lists
    at_setup_line='acl.at:21'
    at_desc='Access control lists'
    $at_quiet $ECHO_N " 11: Access control lists                         $ECHO_C"
    at_xfail=no
    (
      echo "11. acl.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "bad-one"
          expect Access-Reject Reply-Message = "Sorry, your account is currently closed\r\n"
_ATEOF

 $at_traceoff
echo "acl.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo acl.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "acl.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  12 ) # 12. expiration.at:21: Expiration attribute
    at_setup_line='expiration.at:21'
    at_desc='Expiration attribute'
    $at_quiet $ECHO_N " 12: Expiration attribute                         $ECHO_C"
    at_xfail=no
    (
      echo "12. expiration.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "expire" \
              User-Password = "expire"
          expect Access-Reject Reply-Message = "Password has expired\r\n"
_ATEOF

 $at_traceoff
echo "expiration.at:26: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo expiration.at:26 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "expiration.at:26: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "no-expire" \
             User-Password = "expire"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "expiration.at:30: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo expiration.at:30 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "expiration.at:30: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  13 ) # 13. menu.at:21: menus
    at_setup_line='menu.at:21'
    at_desc='menus'
    $at_quiet $ECHO_N " 13: menus                                        $ECHO_C"
    at_xfail=no
    (
      echo "13. menu.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "menu.at:42: radiusd --show-defaults|grep \"USE_LIVINGSTON_MENUS\" || exit 77"
echo menu.at:42 >$at_check_line_file
( $at_traceon; radiusd --show-defaults|grep "USE_LIVINGSTON_MENUS" || exit 77 ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "USE_LIVINGSTON_MENUS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then
  exit 77
  echo 1 > $at_status_file
  exit 1
else

 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu"
	   print $REPLY[Reply-Message*]
_ATEOF

 $at_traceoff
echo "menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "MENU1(1-PPP, 2-CSLIP, 3-SLIP, 4-Login, 5-Second, 6-Exit)" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu" \
	           User-Password = "5" \
		   State = "MENU=menu1"
           print $REPLY[Reply-Message*]
_ATEOF

 $at_traceoff
echo "menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "MENU2(ra,sol,weevil,top,quit)" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu" \
                   User-Password = "sol" \
                   State = "MENU=menu2"
           expect Access-Accept Service-Type = 1 \
                   Login-IP-Host = 127.0.0.1 \
                   State = "MENU=menu2" \
                   Termination-Action = 1
_ATEOF

 $at_traceoff
echo "menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  14 ) # 14. acct.at:21: accounting and simultaneous use control
    at_setup_line='acct.at:21'
    at_desc='accounting and simultaneous use control'
    $at_quiet $ECHO_N " 14: accounting and simultaneous use control      $ECHO_C"
    at_xfail=no
    (
      echo "14. acct.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "simuse" \
                  NAS-IP-Address = 127.0.0.1 \
                  NAS-Port-Id = 1 \
                  Acct-Session-Id = "0001" \
                  Acct-Status-Type = Start
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "acct.at:29: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo acct.at:29 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "acct.at:29: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "simuse"
          expect Access-Reject Reply-Message = "\r\nYou are already logged in - access denied\r\n"
_ATEOF

 $at_traceoff
echo "acct.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo acct.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "acct.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "simuse" \
                  NAS-IP-Address = 127.0.0.1 \
                  NAS-Port-Id = 1 \
                  Acct-Session-Id = "0001" \
                  Acct-Status-Type = Stop
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "acct.at:39: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo acct.at:39 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "acct.at:39: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "simuse"
          expect Access-Accept Service-Type = 2
_ATEOF

 $at_traceoff
echo "acct.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo acct.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "acct.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  15 ) # 15. rewrite.at:21: rewrite rules
    at_setup_line='rewrite.at:21'
    at_desc='rewrite rules'
    $at_quiet $ECHO_N " 15: rewrite rules                                $ECHO_C"
    at_xfail=no
    (
      echo "15. rewrite.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = rewrite_max \
	          NAS-IP-Address = 127.0.0.5 \
	          NAS-Port-Id = 20212
          expect Access-Accept Reply-Message = OK
_ATEOF

 $at_traceoff
echo "rewrite.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo rewrite.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "rewrite.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "WGROUP\\rewrite_nt" \
	          NAS-IP-Address = 127.0.0.5 \
	          NAS-Port-Id = 2
          expect Access-Accept Reply-Message = OK
_ATEOF

 $at_traceoff
echo "rewrite.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo rewrite.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "rewrite.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "rewrite_je/tstream" \
	            NAS-IP-Address = 127.0.0.5 \
		    NAS-Port-Id = 3
          expect Access-Accept Reply-Message = OK
_ATEOF

 $at_traceoff
echo "rewrite.at:37: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo rewrite.at:37 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "rewrite.at:37: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "rewrite_cisco" \
	          NAS-IP-Address = 127.0.0.5 \
	          Cisco-PRI-Circuit = "ISDN 2:D:123" \
Acct-Session-Id = "120104/18:02:06.020 EEST Thu Dec 7 2000/hostname/1B22539E 86E6603F 0 19C974C0/answer/Telephony////"
          expect Access-Accept Reply-Message = OK
_ATEOF

 $at_traceoff
echo "rewrite.at:43: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo rewrite.at:43 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "rewrite.at:43: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  16 ) # 16. execwait.at:21: external procedures
    at_setup_line='execwait.at:21'
    at_desc='external procedures'
    $at_quiet $ECHO_N " 16: external procedures                          $ECHO_C"
    at_xfail=no
    (
      echo "16. execwait.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request \
               User-Name = "execwait" NAS-Port-Id = 0
          expect Access-Accept Service-Type = 1 \
                    Reply-Message = "Welcome, execwait"
_ATEOF

 $at_traceoff
echo "execwait.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo execwait.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "execwait.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request \
               User-Name = "execwait" NAS-Port-Id = 1
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "execwait.at:31: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo execwait.at:31 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "execwait.at:31: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "execwait1"
          expect Access-Accept Service-Type = 2\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\000\006\000\040\006\000\000\000\000\120\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\000\005\000\040\006\000\000\000\000\024\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\000\005\000\040\006\000\000\000\000\025\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\000\001\000\040\006\000\000\000\000\065\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\000\001\000\040\021\000\000\000\000\065\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\004\001\000\040\006\000\000\000\000\065\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\001\001\000\000\000\000\000\012\012\004\001\000\040\021\000\000\000\000\065\000\002\000\000\000\000\000\000\000\000\000\000"\
  Ascend-Data-Filter = "\001\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
_ATEOF

 $at_traceoff
echo "execwait.at:43: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo execwait.at:43 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "execwait.at:43: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  17 ) # 17. filter.at:21: filters
    at_setup_line='filter.at:21'
    at_desc='filters'
    $at_quiet $ECHO_N " 17: filters                                      $ECHO_C"
    at_xfail=no
    (
      echo "17. filter.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "filter-ok"
          expect Access-Accept Reply-Message = "Filter allows access"
_ATEOF

 $at_traceoff
echo "filter.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = filter-bad
          expect Access-Reject Reply-Message = "Filter denies access"
_ATEOF

 $at_traceoff
echo "filter.at:28: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:28 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:28: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request \
                        User-Name = "filter-ok" \
	                NAS-IP-Address = 127.0.0.1 \
                        NAS-Port-Id = 1 \
                        Acct-Status-Type = Start \
			Acct-Session-Id = "0001"
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "filter.at:36: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:36 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:36: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "frw-ok"
          expect Access-Accept Reply-Message = "Filter allows access"
_ATEOF

 $at_traceoff
echo "filter.at:39: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:39 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:39: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "frw-bad"
          expect Access-Reject Reply-Message = "Filter denies access"
_ATEOF

 $at_traceoff
echo "filter.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "frw-ok" \
	                NAS-IP-Address = 127.0.0.1 \
                        NAS-Port-Id = 1 \
                        Acct-Status-Type = Start \
			Acct-Session-Id = "0001"
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "filter.at:49: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo filter.at:49 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "filter.at:49: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  18 ) # 18. scheme-acct.at:21: Scheme accounting
    at_setup_line='scheme-acct.at:21'
    at_desc='Scheme accounting'
    $at_quiet $ECHO_N " 18: Scheme accounting                            $ECHO_C"
    at_xfail=no
    (
      echo "18. scheme-acct.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "scheme-acct.at:40: radiusd --show-defaults|grep \"USE_SERVER_GUILE\" || exit 77"
echo scheme-acct.at:40 >$at_check_line_file
( $at_traceon; radiusd --show-defaults|grep "USE_SERVER_GUILE" || exit 77 ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "USE_SERVER_GUILE
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "scheme-acct.at:40: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then
  exit 77
  echo 1 > $at_status_file
  exit 1
else
  cat >scheme-out <<'_ATEOF'
User-Name=scheme
NAS-IP-Address=2130706433
NAS-Port-Id=1
Acct-Status-Type=1
Acct-Session-Id=0001
Scheme-Acct-Procedure=acct
Orig-User-Name=scheme

_ATEOF


 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "scheme" \
	                NAS-IP-Address = 127.0.0.1 \
                        NAS-Port-Id = 1 \
                        Acct-Status-Type = Start \
			Acct-Session-Id = "0001"
	    expect Accounting-Response
_ATEOF

 $at_traceoff
echo "scheme-acct.at:40: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo scheme-acct.at:40 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "scheme-acct.at:40: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon


  cmp $BUILDDIR/raddb/acct/scheme scheme-out
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  19 ) # 19. tunnel.at:21: tunnel attributes
    at_setup_line='tunnel.at:21'
    at_desc='tunnel attributes'
    $at_quiet $ECHO_N " 19: tunnel attributes                            $ECHO_C"
    at_xfail=no
    (
      echo "19. tunnel.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "tunnel" \
                         User-Password = "test"
          expect Access-Accept Service-Type = Framed-User \
		       Framed-Protocol = PPTP \
		       Tunnel-Password = tUnnEl
_ATEOF

 $at_traceoff
echo "tunnel.at:28: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo tunnel.at:28 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "tunnel.at:28: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  20 ) # 20. log-mode.at:21: Log-Mode-Mask attribute
    at_setup_line='log-mode.at:21'
    at_desc='Log-Mode-Mask attribute'
    $at_quiet $ECHO_N " 20: Log-Mode-Mask attribute                      $ECHO_C"
    at_xfail=no
    (
      echo "20. log-mode.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "log-mode-mask" \
                         User-Password = "test"
          expect Access-Accept  Service-Type = Framed-User \
		       Framed-Protocol = PPP
_ATEOF

 $at_traceoff
echo "log-mode.at:27: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo log-mode.at:27 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "log-mode.at:27: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "log-mode-mask" \
                         User-Password = "wrong"
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "log-mode.at:31: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo log-mode.at:31 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "log-mode.at:31: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  21 ) # 21. end.at:21: Shutting down radius server
    at_setup_line='end.at:21'
    at_desc='Shutting down radius server'
    $at_quiet $ECHO_N " 21: Shutting down radius server                  $ECHO_C"
    at_xfail=no
    (
      echo "21. end.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "end.at:24: end_server"
echo end.at:24 >$at_check_line_file
( $at_traceon; end_server ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
$at_diff $at_devnull $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "end.at:24: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  22 ) # 22. begin-proxy.at:21: Starting radius server
    at_setup_line='begin-proxy.at:21'
    at_desc='Starting radius server'
    $at_quiet $ECHO_N " 22: Starting radius server                       $ECHO_C"
    at_xfail=no
    (
      echo "22. begin-proxy.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "begin-proxy.at:29: begin_server proxy"
echo begin-proxy.at:29 >$at_check_line_file
( $at_traceon; begin_server proxy ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
$at_diff $at_devnull $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "begin-proxy.at:29: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
else
  exit 1
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  23 ) # 23. proxy-basic-auth.at:21: Basic Authentication Types (proxy)
    at_setup_line='proxy-basic-auth.at:21'
    at_desc='Basic Authentication Types (proxy)'
    $at_quiet $ECHO_N " 23: Basic Authentication Types (proxy)           $ECHO_C"
    at_xfail=no
    (
      echo "23. proxy-basic-auth.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept@remote"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "reject@remote"
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:28: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:28 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:28: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "local@remote" \
              User-Password = "guessme"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:32: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:32 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:32: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "local@remote" \
              User-Password = "bad"
          expect Access-Reject
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:36: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:36 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:36: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "crypt@remote" \
              User-Password = "hamlet"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:40: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:40 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:40: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "chap@remote" \
             CHAP-Password = "\001\357\213\343\126\266\311\072\202\020\176\017\121\101\227\155\244" \
             CHAP-Challenge = "0123456789abcdef"
           expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-basic-auth.at:45: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-basic-auth.at:45 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-basic-auth.at:45: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  24 ) # 24. proxy-ignorecase.at:21: Case-insensitive realms
    at_setup_line='proxy-ignorecase.at:21'
    at_desc='Case-insensitive realms'
    $at_quiet $ECHO_N " 24: Case-insensitive realms                      $ECHO_C"
    at_xfail=no
    (
      echo "24. proxy-ignorecase.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept@iGnoReCaSE"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-ignorecase.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-ignorecase.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-ignorecase.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  25 ) # 25. proxy-vsa.at:21: VSA propagation
    at_setup_line='proxy-vsa.at:21'
    at_desc='VSA propagation'
    $at_quiet $ECHO_N " 25: VSA propagation                              $ECHO_C"
    at_xfail=no
    (
      echo "25. proxy-vsa.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "vsa-propagation@remote"
          expect Access-Accept Cisco-AVPair = "variable=value"
_ATEOF

 $at_traceoff
echo "proxy-vsa.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-vsa.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-vsa.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  26 ) # 26. proxy-menu.at:21: menus (proxy)
    at_setup_line='proxy-menu.at:21'
    at_desc='menus (proxy)'
    $at_quiet $ECHO_N " 26: menus (proxy)                                $ECHO_C"
    at_xfail=no
    (
      echo "26. proxy-menu.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "proxy-menu.at:42: radiusd --show-defaults|grep \"USE_LIVINGSTON_MENUS\" || exit 77"
echo proxy-menu.at:42 >$at_check_line_file
( $at_traceon; radiusd --show-defaults|grep "USE_LIVINGSTON_MENUS" || exit 77 ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "USE_LIVINGSTON_MENUS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then
  exit 77
  echo 1 > $at_status_file
  exit 1
else

 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu"
	   print $REPLY[Reply-Message*]
_ATEOF

 $at_traceoff
echo "proxy-menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "MENU1(1-PPP, 2-CSLIP, 3-SLIP, 4-Login, 5-Second, 6-Exit)" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu" \
                  User-Password = "5" \
		  State = "MENU=menu1"
	   print $REPLY[Reply-Message*]
_ATEOF

 $at_traceoff
echo "proxy-menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "MENU2(ra,sol,weevil,top,quit)" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "menu" \
                  User-Password = "sol" \
                  State = "MENU=menu2"
           expect Access-Accept Service-Type = 1 \
                  Login-IP-Host = 127.0.0.1 \
                  State = "MENU=menu2" \
                  Termination-Action = 1
_ATEOF

 $at_traceoff
echo "proxy-menu.at:42: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-menu.at:42 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-menu.at:42: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  27 ) # 27. proxy-nested.at:21: nested realms
    at_setup_line='proxy-nested.at:21'
    at_desc='nested realms'
    $at_quiet $ECHO_N " 27: nested realms                                $ECHO_C"
    at_xfail=no
    (
      echo "27. proxy-nested.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "accept@local@remote"
          expect Access-Accept
_ATEOF

 $at_traceoff
echo "proxy-nested.at:25: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-nested.at:25 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-nested.at:25: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  28 ) # 28. proxy-acct.at:21: proxy accounting
    at_setup_line='proxy-acct.at:21'
    at_desc='proxy accounting'
    $at_quiet $ECHO_N " 28: proxy accounting                             $ECHO_C"
    at_xfail=no
    (
      echo "28. proxy-acct.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "simuse@remote" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 1 \
                    Acct-Session-Id = "0001" \
                    Acct-Status-Type = Start
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "proxy-acct.at:29: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-acct.at:29 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-acct.at:29: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon




 cat >script <<'_ATEOF'

send acct Accounting-Request User-Name = "simuse@remote" \
                    NAS-IP-Address = 127.0.0.1 \
                    NAS-Port-Id = 1 \
                    Acct-Session-Id = "0001" \
                    Acct-Status-Type = Stop
          expect Accounting-Response
_ATEOF

 $at_traceoff
echo "proxy-acct.at:36: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-acct.at:36 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-acct.at:36: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  29 ) # 29. proxy-tunnel.at:21: tunnel attributes (proxy)
    at_setup_line='proxy-tunnel.at:21'
    at_desc='tunnel attributes (proxy)'
    $at_quiet $ECHO_N " 29: tunnel attributes (proxy)                    $ECHO_C"
    at_xfail=no
    (
      echo "29. proxy-tunnel.at:21: testing ..."
      $at_traceon




 cat >script <<'_ATEOF'

send auth Access-Request User-Name = "tunnel" \
                         User-Password = "test"
          expect Access-Accept Service-Type = Framed-User \
		       Framed-Protocol = PPTP \
		       Tunnel-Password = tUnnEl
_ATEOF

 $at_traceoff
echo "proxy-tunnel.at:28: radtest -d \`cat \$BUILDDIR/confdir\` --no-interactive -f script"
echo proxy-tunnel.at:28 >$at_check_line_file
( $at_traceon; radtest -d `cat $BUILDDIR/confdir` --no-interactive -f script ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
echo >>$at_stdout; echo "PASS
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "proxy-tunnel.at:28: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon



      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;

  30 ) # 30. end-proxy.at:21: Shutting down radius server
    at_setup_line='end-proxy.at:21'
    at_desc='Shutting down radius server'
    $at_quiet $ECHO_N " 30: Shutting down radius server                  $ECHO_C"
    at_xfail=no
    (
      echo "30. end-proxy.at:21: testing ..."
      $at_traceon



$at_traceoff
echo "end-proxy.at:24: end_server"
echo end-proxy.at:24 >$at_check_line_file
( $at_traceon; end_server ) >$at_stdout 2>$at_stder1
at_status=$?
grep '^ *+' $at_stder1 >&2
grep -v '^ *+' $at_stder1 >$at_stderr
at_failed=false
$at_diff $at_devnull $at_stderr || at_failed=:
$at_diff $at_devnull $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "end-proxy.at:24: exit code was $at_status, expected 0"
      at_failed=:;;
esac
if $at_failed; then

  echo 1 > $at_status_file
  exit 1
fi

$at_traceon


      $at_traceoff
      $at_times_p && times >$at_times_file
    ) 5>&1 2>&1 | eval $at_tee_pipe
    at_status=`cat $at_status_file`
    ;;


  * )
    echo "$as_me: no such test group: $at_group" >&2
    continue
    ;;
  esac

  # 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

  case $at_group in
    banner-*) ;;
    *)
      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-gnu-radius@gnu.org>.
_ATEOF
    	echo "$at_setup_line" >$at_check_line_file
      fi
      at_group_count=`expr 1 + $at_group_count`
      $at_verbose $ECHO_N "$at_group. $at_setup_line: $ECHO_C"
      echo $ECHO_N "$at_group. $at_setup_line: $ECHO_C" >> $at_group_log
      case $at_xfail:$at_status in
	yes:0)
	    at_msg="UNEXPECTED PASS"
	    at_xpass_list="$at_xpass_list $at_group"
	    at_errexit=$at_errexit_p
	    ;;
	no:0)
	    at_msg="ok"
	    at_pass_list="$at_pass_list $at_group"
	    at_errexit=false
	    ;;
	*:77)
	    at_msg="skipped (`cat $at_check_line_file`)"
	    at_skip_list="$at_skip_list $at_group"
	    at_errexit=false
	    ;;
	yes:*)
	    at_msg="expected failure (`cat $at_check_line_file`)"
	    at_xfail_list="$at_xfail_list $at_group"
	    at_errexit=false
	    ;;
	no:*)
	    at_msg="FAILED (`cat $at_check_line_file`)"
	    at_fail_list="$at_fail_list $at_group"
	    at_errexit=$at_errexit_p
	    ;;
      esac
      echo $at_msg
      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
	  echo "$at_log_msg" >> $at_group_log
	  echo "$at_log_msg" >&5

	  # Cleanup the group directory, unless the user wants the files.
	  $at_debug_p || rm -rf $at_group_dir
	  ;;
	*)
	  # 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.
	  echo "$at_log_msg" >> $at_group_log

	  # Upon failure, keep the group directory for autopsy, and
	  # create the debugging script.
	  {
	    echo "#! /bin/sh"
	    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\'''
	    echo "cd $at_dir"
	    echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$0" \
	         '-v -d' "$at_debug_args" "$at_group" '${1+"$@"}'
	    echo 'exit 1'
	  } >$at_group_dir/run
	  chmod +x $at_group_dir/run
	  $at_errexit && break
	  ;;
      esac
      ;;
  esac
done

# Back to the top directory.
cd $at_dir

# Compute the duration of the suite.
at_stop_date=`date`
at_stop_time=`(date +%s) 2>/dev/null`
echo "$as_me: ending at: $at_stop_date" >&5
at_duration_s=`(expr $at_stop_time - $at_start_time) 2>/dev/null`
at_duration_m=`(expr $at_duration_s / 60) 2>/dev/null`
at_duration_h=`(expr $at_duration_m / 60) 2>/dev/null`
at_duration_s=`(expr $at_duration_s % 60) 2>/dev/null`
at_duration_m=`(expr $at_duration_m % 60) 2>/dev/null`
at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
if test "$at_duration" != "h m s"; then
  echo "$as_me: test suite duration: $at_duration" >&5
fi

# Wrap up the test suite with summary statistics.
at_skip_count=`set dummy $at_skip_list; shift; echo $#`
at_fail_count=`set dummy $at_fail_list; shift; echo $#`
at_xpass_count=`set dummy $at_xpass_list; shift; echo $#`
at_xfail_count=`set dummy $at_xfail_list; shift; echo $#`

at_run_count=`expr $at_group_count - $at_skip_count`
at_unexpected_count=`expr $at_xpass_count + $at_fail_count`
at_total_fail_count=`expr $at_xfail_count + $at_fail_count`

echo
cat <<\_ASBOX
## ------------- ##
## Test results. ##
## ------------- ##
_ASBOX
echo
{
  echo
  cat <<\_ASBOX
## ------------- ##
## Test results. ##
## ------------- ##
_ASBOX
  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."
else
  # Don't you just love exponential explosion of the number of cases?
  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." ;;
    0:0:*) at_result="$at_result behaved as expected." ;;

    # 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_result"
  echo "$at_result" >&5
else
  echo "ERROR: $at_result" >&2
  echo "ERROR: $at_result" >&5
  {
    echo
    cat <<\_ASBOX
## ------------------------ ##
## Summary of the failures. ##
## ------------------------ ##
_ASBOX

    # Summary of failed and skipped tests.
    if test $at_fail_count != 0; then
      echo "Failed tests:"
      $SHELL $0 $at_fail_list --list
      echo
    fi
    if test $at_skip_count != 0; then
      echo "Skipped tests:"
      $SHELL $0 $at_skip_list --list
      echo
    fi
    if test $at_xpass_count != 0; then
      echo "Unexpected passes:"
      $SHELL $0 $at_xpass_list --list
      echo
    fi
    if test $at_fail_count != 0; then
      cat <<\_ASBOX
## ---------------------- ##
## Detailed failed tests. ##
## ---------------------- ##
_ASBOX
      echo
      for at_group in $at_fail_list
      do
        # Normalize the test group number.
        at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
        # Create a fresh directory for the next test group, and enter.
        at_group_dir=$at_suite_dir/$at_group_normalized
        at_group_log=$at_group_dir/$as_me.log
        cat $at_group_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_builddir/config.log ##
_ASBOX
      sed 's/^/| /' $at_top_builddir/config.log
      echo
    fi
  } >&5

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

  echo
  echo "Please send \`$as_me.log' and all information you think might help:"
  echo
  echo "   To: <bug-gnu-radius@gnu.org>"
  echo "   Subject: [GNU Radius 1.3] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}"
  echo
  if test $at_debug_p = false; then
    echo
    echo 'You may investigate any problem if you feel able to do so, in which'
    echo 'case the test suite provides a good starting point.'
    echo
  fi
    exit 1
fi

exit 0


