#! /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='../src/grepmap'
# 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46'
# 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;pcimap.at:3;pcimap finds module;;
2;pcimap.at:16;pcimap works without 0x prefixes;;
3;pcimap.at:29;pcimap works with wildcard ids;;
4;pcimap.at:41;pcimap applies class mask to both sides;;
5;pcimap.at:53;pcimap returns all matching modules;;
6;pcimap.at:69;pcimap exits false with no match;;
7;pcimap.at:79;pcimap ignores comments and blank lines;;
8;pcimap.at:93;pcimap works from udev event;;
9;usbmap.at:3;usbmap finds module;;
10;usbmap.at:16;usbmap works without 0x prefixes;;
11;usbmap.at:29;usbmap obeys match_flags;;
12;usbmap.at:41;usbmap obeys device range;;
13;usbmap.at:60;usbmap returns all matching modules;;
14;usbmap.at:78;usbmap exits false with no match;;
15;usbmap.at:88;usbmap ignores comments and blank lines;;
16;usbmap.at:102;usbmap works from udev event;;
17;inputmap.at:3;inputmap finds module;;
18;inputmap.at:16;inputmap works without 0x prefixes;;
19;inputmap.at:29;inputmap obeys match_flags;;
20;inputmap.at:43;inputmap performs exact verson match;;
21;inputmap.at:57;inputmap correctly compares array bit fields;;
22;inputmap.at:75;inputmap returns all matching modules;;
23;inputmap.at:89;inputmap exits false with no match;;
24;inputmap.at:99;inputmap ignores comments and blank lines;;
25;inputmap.at:113;inputmap works from udev event;;
26;ieee1394map.at:3;ieee1394map finds module;;
27;ieee1394map.at:16;ieee1394map works without 0x prefixes;;
28;ieee1394map.at:29;ieee1394map obeys match_flags;;
29;ieee1394map.at:41;ieee1394map returns all matching modules;;
30;ieee1394map.at:63;ieee1394map exits false with no match;;
31;ieee1394map.at:73;ieee1394map ignores comments and blank lines;;
32;ieee1394map.at:87;ieee1394map works from udev event;;
33;ccwmap.at:3;ccwmap finds module;;
34;ccwmap.at:16;ccwmap works without 0x prefixes;;
35;ccwmap.at:29;ccwmap obeys match_flags;;
36;ccwmap.at:41;ccwmap returns all matching modules;;
37;ccwmap.at:63;ccwmap exits false with no match;;
38;ccwmap.at:73;ccwmap ignores comments and blank lines;;
39;ccwmap.at:87;ccwmap works from udev event;;
40;seriomap.at:3;seriomap finds module;;
41;seriomap.at:16;seriomap works without 0x prefixes;;
42;seriomap.at:29;seriomap works with wildcard ids;;
43;seriomap.at:41;seriomap returns all matching modules;;
44;seriomap.at:55;seriomap exits false with no match;;
45;seriomap.at:65;seriomap ignores comments and blank lines;;
46;seriomap.at:79;seriomap works from udev event;;
'

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 (grepmap 1.1.0)"
	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 <ubuntu-devel@lists.ubuntu.com>.
_ATEOF
  exit 0
fi

# List of tests.
if $at_list_p; then
  cat <<_ATEOF
grepmap 1.1.0 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
## ------------------------- ##
## grepmap 1.1.0 test suite. ##
## ------------------------- ##
_ASBOX
{
  cat <<\_ASBOX
## ------------------------- ##
## grepmap 1.1.0 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:3: $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. pcimap.at:3: pcimap finds module
    at_setup_line='pcimap.at:3'
    at_desc='pcimap finds module'
    $at_quiet $ECHO_N "  1: pcimap finds module                          $ECHO_C"
    at_xfail=no
    (
      echo "1. pcimap.at:3: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0x1234 0x5678 0x0 0x0 0x1000 0xffff
not-this  0x1234 0x9999 0x012a 0x013b 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:12:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.at:12: 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`
    ;;

  2 ) # 2. pcimap.at:16: pcimap works without 0x prefixes
    at_setup_line='pcimap.at:16'
    at_desc='pcimap works without 0x prefixes'
    $at_quiet $ECHO_N "  2: pcimap works without 0x prefixes             $ECHO_C"
    at_xfail=no
    (
      echo "2. pcimap.at:16: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  1234 5678 0 0 1000 ffff
not-this  1234 9999 012a 013b 1000 ffff
_ATEOF

$at_traceoff
echo "pcimap.at:25:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.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. pcimap.at:29: pcimap works with wildcard ids
    at_setup_line='pcimap.at:29'
    at_desc='pcimap works with wildcard ids'
    $at_quiet $ECHO_N "  3: pcimap works with wildcard ids               $ECHO_C"
    at_xfail=no
    (
      echo "3. pcimap.at:29: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0xffffffff 0xffffffff 0xffffffff 0xffffffff 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:37:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:37 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.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`
    ;;

  4 ) # 4. pcimap.at:41: pcimap applies class mask to both sides
    at_setup_line='pcimap.at:41'
    at_desc='pcimap applies class mask to both sides'
    $at_quiet $ECHO_N "  4: pcimap applies class mask to both sides      $ECHO_C"
    at_xfail=no
    (
      echo "4. pcimap.at:41: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0x1234 0x5678 0x0 0x0 0x1023 0xff00
_ATEOF

$at_traceoff
echo "pcimap.at:49:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1099
"
echo pcimap.at:49 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1099
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.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`
    ;;

  5 ) # 5. pcimap.at:53: pcimap returns all matching modules
    at_setup_line='pcimap.at:53'
    at_desc='pcimap returns all matching modules'
    $at_quiet $ECHO_N "  5: pcimap returns all matching modules          $ECHO_C"
    at_xfail=no
    (
      echo "5. pcimap.at:53: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0x1234 0x5678 0x0 0x0 0x1000 0xffff
classless 0x1234 0x5678 0x0 0x0 0x0 0x0
default   0xffffffff 0xffffffff 0xffffffff 0xffffffff 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:65:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:65 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
 ) >$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 "example
classless
default
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.at:65: 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. pcimap.at:69: pcimap exits false with no match
    at_setup_line='pcimap.at:69'
    at_desc='pcimap exits false with no match'
    $at_quiet $ECHO_N "  6: pcimap exits false with no match             $ECHO_C"
    at_xfail=no
    (
      echo "6. pcimap.at:69: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0x1234 0x5678 0x0 0x0 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:75:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x9999 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:75 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x9999 0x5678 0x0 0x0 0x1000
 ) >$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;;
   1) ;;
   *) echo "pcimap.at:75: exit code was $at_status, expected 1"
      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. pcimap.at:79: pcimap ignores comments and blank lines
    at_setup_line='pcimap.at:79'
    at_desc='pcimap ignores comments and blank lines'
    $at_quiet $ECHO_N "  7: pcimap ignores comments and blank lines      $ECHO_C"
    at_xfail=no
    (
      echo "7. pcimap.at:79: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
#comment  0x1234 0x5678 0x0 0x0 0x1000 0xffff

example  0x1234 0x5678 0x0 0x0 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:89:
\$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
"
echo pcimap.at:89 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --pcimap --file=test.pcimap 0x1234 0x5678 0x0 0x0 0x1000
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.at:89: 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. pcimap.at:93: pcimap works from udev event
    at_setup_line='pcimap.at:93'
    at_desc='pcimap works from udev event'
    $at_quiet $ECHO_N "  8: pcimap works from udev event                 $ECHO_C"
    at_xfail=no
    (
      echo "8. pcimap.at:93: testing ..."
      $at_traceon

cat >test.pcimap <<'_ATEOF'
example  0x1234 0x5678 0x0 0x0 0x1000 0xffff
not-this  0x1234 0x9999 0x012a 0x013b 0x1000 0xffff
_ATEOF

$at_traceoff
echo "pcimap.at:103:
env - SUBSYSTEM=pci PCI_ID=1234:5678 PCI_SUBSYS_ID=0000:0000 PCI_CLASS=1000 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.pcimap
"
echo pcimap.at:103 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=pci PCI_ID=1234:5678 PCI_SUBSYS_ID=0000:0000 PCI_CLASS=1000 \
	$abs_top_builddir/src/grepmap --udev --file=test.pcimap
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "pcimap.at:103: 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. usbmap.at:3: usbmap finds module
    at_setup_line='usbmap.at:3'
    at_desc='usbmap finds module'
    $at_quiet $ECHO_N "  9: usbmap finds module                          $ECHO_C"
    at_xfail=no
    (
      echo "9. usbmap.at:3: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
not-this  0x0003 0x044f 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:12:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.at:12: 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. usbmap.at:16: usbmap works without 0x prefixes
    at_setup_line='usbmap.at:16'
    at_desc='usbmap works without 0x prefixes'
    $at_quiet $ECHO_N " 10: usbmap works without 0x prefixes             $ECHO_C"
    at_xfail=no
    (
      echo "10. usbmap.at:16: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0003 045e 001e 0 0 0 0 0 0 0 0
not-this  0003 044f 001e 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "usbmap.at:25:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.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`
    ;;

  11 ) # 11. usbmap.at:29: usbmap obeys match_flags
    at_setup_line='usbmap.at:29'
    at_desc='usbmap obeys match_flags'
    $at_quiet $ECHO_N " 11: usbmap obeys match_flags                     $ECHO_C"
    at_xfail=no
    (
      echo "11. usbmap.at:29: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x3 0x1 0x2
_ATEOF

$at_traceoff
echo "usbmap.at:37:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x9 0x8 0x7 0x6 0x5 0x4
"
echo usbmap.at:37 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x9 0x8 0x7 0x6 0x5 0x4
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.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`
    ;;

  12 ) # 12. usbmap.at:41: usbmap obeys device range
    at_setup_line='usbmap.at:41'
    at_desc='usbmap obeys device range'
    $at_quiet $ECHO_N " 12: usbmap obeys device range                    $ECHO_C"
    at_xfail=no
    (
      echo "12. usbmap.at:41: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
match    0x000f 0x045e 0x001e 0x0100 0x0200 0x0 0x0 0x0 0x0 0x0 0x0
too-old   0x000f 0x045e 0x001e 0x0000 0x0100 0x0 0x0 0x0 0x0 0x0 0x0
too-new   0x000f 0x045e 0x001e 0x0200 0x0300 0x0 0x0 0x0 0x0 0x0 0x0
more-than 0x0007 0x045e 0x001e 0x0100 0xffff 0x0 0x0 0x0 0x0 0x0 0x0
less-than 0x000b 0x045e 0x001e 0xffff 0x0300 0x0 0x0 0x0 0x0 0x0 0x0
exact     0x000f 0x045e 0x001e 0x0150 0x0150 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:56:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0105 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:56 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0105 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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 "match
more-than
less-than
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.at:56: 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. usbmap.at:60: usbmap returns all matching modules
    at_setup_line='usbmap.at:60'
    at_desc='usbmap returns all matching modules'
    $at_quiet $ECHO_N " 13: usbmap returns all matching modules          $ECHO_C"
    at_xfail=no
    (
      echo "13. usbmap.at:60: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
vendor    0x0001 0x045e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
product   0x0002 0x0 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
default   0x0000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:74:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:74 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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 "example
vendor
product
default
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.at:74: 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`
    ;;

  14 ) # 14. usbmap.at:78: usbmap exits false with no match
    at_setup_line='usbmap.at:78'
    at_desc='usbmap exits false with no match'
    $at_quiet $ECHO_N " 14: usbmap exits false with no match             $ECHO_C"
    at_xfail=no
    (
      echo "14. usbmap.at:78: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:84:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x0020 0x0 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:84 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x0020 0x0 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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;;
   1) ;;
   *) echo "usbmap.at:84: exit code was $at_status, expected 1"
      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. usbmap.at:88: usbmap ignores comments and blank lines
    at_setup_line='usbmap.at:88'
    at_desc='usbmap ignores comments and blank lines'
    $at_quiet $ECHO_N " 15: usbmap ignores comments and blank lines      $ECHO_C"
    at_xfail=no
    (
      echo "15. usbmap.at:88: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
#comment  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0

example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:98:
\$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
"
echo usbmap.at:98 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --usbmap --file=test.usbmap 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.at:98: 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. usbmap.at:102: usbmap works from udev event
    at_setup_line='usbmap.at:102'
    at_desc='usbmap works from udev event'
    $at_quiet $ECHO_N " 16: usbmap works from udev event                 $ECHO_C"
    at_xfail=no
    (
      echo "16. usbmap.at:102: testing ..."
      $at_traceon

cat >test.usbmap <<'_ATEOF'
example  0x0003 0x045e 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
not-this  0x0003 0x044f 0x001e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "usbmap.at:112:
env - SUBSYSTEM=usb PRODUCT=45e/1e/0 TYPE=0/0/0 INTERFACE=0/0/0 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.usbmap
"
echo usbmap.at:112 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=usb PRODUCT=45e/1e/0 TYPE=0/0/0 INTERFACE=0/0/0 \
	$abs_top_builddir/src/grepmap --udev --file=test.usbmap
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "usbmap.at:112: 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. inputmap.at:3: inputmap finds module
    at_setup_line='inputmap.at:3'
    at_desc='inputmap finds module'
    $at_quiet $ECHO_N " 17: inputmap finds module                        $ECHO_C"
    at_xfail=no
    (
      echo "17. inputmap.at:3: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0x0f 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
not-this  0x0f 0x004 0x045f 0x001f 0x0100 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:12:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:12: 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. inputmap.at:16: inputmap works without 0x prefixes
    at_setup_line='inputmap.at:16'
    at_desc='inputmap works without 0x prefixes'
    $at_quiet $ECHO_N " 18: inputmap works without 0x prefixes           $ECHO_C"
    at_xfail=no
    (
      echo "18. inputmap.at:16: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0f 003 045e 001e 0100 0 0 0 0 0 0 0 0 0
not-this  0f 004 045f 001f 0100 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:25:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.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`
    ;;

  19 ) # 19. inputmap.at:29: inputmap obeys match_flags
    at_setup_line='inputmap.at:29'
    at_desc='inputmap obeys match_flags'
    $at_quiet $ECHO_N " 19: inputmap obeys match_flags                   $ECHO_C"
    at_xfail=no
    (
      echo "19. inputmap.at:29: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0x0f 0x003 0x045e 0x001e 0x0100 f 0 0 0 0 0 0 0 4
swbit  0x1000 0x013 0x0999 0x0 0x0 f 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:39:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0xe
"
echo inputmap.at:39 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0xe
 ) >$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 "example
swbit
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.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

      $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. inputmap.at:43: inputmap performs exact verson match
    at_setup_line='inputmap.at:43'
    at_desc='inputmap performs exact verson match'
    $at_quiet $ECHO_N " 20: inputmap performs exact verson match         $ECHO_C"
    at_xfail=no
    (
      echo "20. inputmap.at:43: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
match    0x08 0x0 0x0 0x0 0x100 0 0 0 0 0 0 0 0 0
too-low   0x08 0x0 0x0 0x0 0x050 0 0 0 0 0 0 0 0 0
too-high  0x08 0x0 0x0 0x0 0x150 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:53:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x0 0x0 0x0 0x100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:53 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x0 0x0 0x0 0x100 0 0 0 0 0 0 0 0 0
 ) >$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 "match
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:53: 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. inputmap.at:57: inputmap correctly compares array bit fields
    at_setup_line='inputmap.at:57'
    at_desc='inputmap correctly compares array bit fields'
    $at_quiet $ECHO_N " 21: inputmap correctly compares array bit fields $ECHO_C"
    at_xfail=no
    (
      echo "21. inputmap.at:57: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
match       0x20 0x0 0x0 0x0 0x0 0 4fe0:0 0 0 0 0 0 0 0
too-short    0x20 0x0 0x0 0x0 0x0 0 4fe0 0 0 0 0 0 0 0
too-long     0x20 0x0 0x0 0x0 0x0 0 4fe0:0:0 0 0 0 0 0 0 0
all-bits     0x20 0x0 0x0 0x0 0x0 0 40e0:0 0 0 0 0 0 0 0
not-all-bits 0x20 0x0 0x0 0x0 0x0 0 4fe0:ffff 0 0 0 0 0 0 0
also-not-all 0x20 0x0 0x0 0x0 0x0 0 ffff:0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:71:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x0 0x0 0x0 0x0 0 4fe0:0 0 0 0 0 0 0 0
"
echo inputmap.at:71 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x0 0x0 0x0 0x0 0 4fe0:0 0 0 0 0 0 0 0
 ) >$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 "match
all-bits
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:71: 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. inputmap.at:75: inputmap returns all matching modules
    at_setup_line='inputmap.at:75'
    at_desc='inputmap returns all matching modules'
    $at_quiet $ECHO_N " 22: inputmap returns all matching modules        $ECHO_C"
    at_xfail=no
    (
      echo "22. inputmap.at:75: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0x0f 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
vendor    0x02 0x0 0x045e 0x0 0x0 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:85:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:85 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
 ) >$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 "example
vendor
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:85: 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`
    ;;

  23 ) # 23. inputmap.at:89: inputmap exits false with no match
    at_setup_line='inputmap.at:89'
    at_desc='inputmap exits false with no match'
    $at_quiet $ECHO_N " 23: inputmap exits false with no match           $ECHO_C"
    at_xfail=no
    (
      echo "23. inputmap.at:89: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0x0f 0x103 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:95:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:95 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
 ) >$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;;
   1) ;;
   *) echo "inputmap.at:95: exit code was $at_status, expected 1"
      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. inputmap.at:99: inputmap ignores comments and blank lines
    at_setup_line='inputmap.at:99'
    at_desc='inputmap ignores comments and blank lines'
    $at_quiet $ECHO_N " 24: inputmap ignores comments and blank lines    $ECHO_C"
    at_xfail=no
    (
      echo "24. inputmap.at:99: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
#comment  0x0f 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0

example  0x0f 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:109:
\$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
"
echo inputmap.at:109 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --inputmap --file=test.inputmap 0x003 0x045e 0x001e 0x0100 0 0 0 0 0 0 0 0 0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:109: 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. inputmap.at:113: inputmap works from udev event
    at_setup_line='inputmap.at:113'
    at_desc='inputmap works from udev event'
    $at_quiet $ECHO_N " 25: inputmap works from udev event               $ECHO_C"
    at_xfail=no
    (
      echo "25. inputmap.at:113: testing ..."
      $at_traceon

cat >test.inputmap <<'_ATEOF'
example  0x2f 0x003 0x045e 0x001e 0x0100 0 4fe0:0 0 0 0 0 0 0 0
too-short 0x20 0x0 0x0 0x0 0x0 0 4fe0 0 0 0 0 0 0 0
not-this  0x0f 0x004 0x045f 0x001f 0x0100 0 0 0 0 0 0 0 0 0
_ATEOF

$at_traceoff
echo "inputmap.at:124:
env - SUBSYSTEM=input PRODUCT=3/45e/1e/100 EV=0 KEY=\"4fe0 0\" REL=0 ABS=0 MSC=0 LED=0 SND=0 FF=0 SW=0 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.inputmap
"
echo inputmap.at:124 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=input PRODUCT=3/45e/1e/100 EV=0 KEY="4fe0 0" REL=0 ABS=0 MSC=0 LED=0 SND=0 FF=0 SW=0 \
	$abs_top_builddir/src/grepmap --udev --file=test.inputmap
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "inputmap.at:124: 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. ieee1394map.at:3: ieee1394map finds module
    at_setup_line='ieee1394map.at:3'
    at_desc='ieee1394map finds module'
    $at_quiet $ECHO_N " 26: ieee1394map finds module                     $ECHO_C"
    at_xfail=no
    (
      echo "26. ieee1394map.at:3: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0x0c 0x0 0x0 0x609e 0x010483
not-this  0x0c 0x0 0x0 0x619e 0x010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:12:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.at:12: 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`
    ;;

  27 ) # 27. ieee1394map.at:16: ieee1394map works without 0x prefixes
    at_setup_line='ieee1394map.at:16'
    at_desc='ieee1394map works without 0x prefixes'
    $at_quiet $ECHO_N " 27: ieee1394map works without 0x prefixes        $ECHO_C"
    at_xfail=no
    (
      echo "27. ieee1394map.at:16: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0c 0 0 609e 010483
not-this  0c 0 0 619e 010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:25:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.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. ieee1394map.at:29: ieee1394map obeys match_flags
    at_setup_line='ieee1394map.at:29'
    at_desc='ieee1394map obeys match_flags'
    $at_quiet $ECHO_N " 28: ieee1394map obeys match_flags                $ECHO_C"
    at_xfail=no
    (
      echo "28. ieee1394map.at:29: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0x0c 0xff 0x0 0x609e 0x010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:37:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:37 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.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`
    ;;

  29 ) # 29. ieee1394map.at:41: ieee1394map returns all matching modules
    at_setup_line='ieee1394map.at:41'
    at_desc='ieee1394map returns all matching modules'
    $at_quiet $ECHO_N " 29: ieee1394map returns all matching modules     $ECHO_C"
    at_xfail=no
    (
      echo "29. ieee1394map.at:41: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0x0c 0xff 0x0 0x609e 0x010483
vendor    0x01 0x0 0x0 0x0 0x0
model     0x02 0x0 0x0 0x0 0x0
specifier 0x04 0x0 0x0 0x609e 0x0
version   0x08 0x0 0x0 0x0 0x010483
default   0x00 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "ieee1394map.at:59:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:59 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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 "example
vendor
model
specifier
version
default
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.at:59: 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. ieee1394map.at:63: ieee1394map exits false with no match
    at_setup_line='ieee1394map.at:63'
    at_desc='ieee1394map exits false with no match'
    $at_quiet $ECHO_N " 30: ieee1394map exits false with no match        $ECHO_C"
    at_xfail=no
    (
      echo "30. ieee1394map.at:63: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0x0c 0x0 0x0 0x619e 0x010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:69:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:69 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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;;
   1) ;;
   *) echo "ieee1394map.at:69: exit code was $at_status, expected 1"
      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`
    ;;

  31 ) # 31. ieee1394map.at:73: ieee1394map ignores comments and blank lines
    at_setup_line='ieee1394map.at:73'
    at_desc='ieee1394map ignores comments and blank lines'
    $at_quiet $ECHO_N " 31: ieee1394map ignores comments and blank lines $ECHO_C"
    at_xfail=no
    (
      echo "31. ieee1394map.at:73: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
#comment  0x0c 0x0 0x0 0x609e 0x010483

example  0x0c 0x0 0x0 0x609e 0x010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:83:
\$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
"
echo ieee1394map.at:83 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ieee1394map --file=test.ieee1394map 0x0 0x0 0x609e 0x010483
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.at:83: 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`
    ;;

  32 ) # 32. ieee1394map.at:87: ieee1394map works from udev event
    at_setup_line='ieee1394map.at:87'
    at_desc='ieee1394map works from udev event'
    $at_quiet $ECHO_N " 32: ieee1394map works from udev event            $ECHO_C"
    at_xfail=no
    (
      echo "32. ieee1394map.at:87: testing ..."
      $at_traceon

cat >test.ieee1394map <<'_ATEOF'
example  0x0c 0x0 0x0 0x609e 0x010483
not-this  0x0c 0x0 0x0 0x619e 0x010483
_ATEOF

$at_traceoff
echo "ieee1394map.at:97:
env - SUBSYSTEM=ieee1394 VENDOR_ID=0 MODEL_ID=0 SPECIFIER_ID=609e VERSION=010483 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.ieee1394map
"
echo ieee1394map.at:97 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=ieee1394 VENDOR_ID=0 MODEL_ID=0 SPECIFIER_ID=609e VERSION=010483 \
	$abs_top_builddir/src/grepmap --udev --file=test.ieee1394map
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ieee1394map.at:97: 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`
    ;;

  33 ) # 33. ccwmap.at:3: ccwmap finds module
    at_setup_line='ccwmap.at:3'
    at_desc='ccwmap finds module'
    $at_quiet $ECHO_N " 33: ccwmap finds module                          $ECHO_C"
    at_xfail=no
    (
      echo "33. ccwmap.at:3: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  0x03 0x10 0xef 0x0 0x0
not-this  0x03 0x99 0xef 0x0 0x0
_ATEOF

$at_traceoff
echo "ccwmap.at:12:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
"
echo ccwmap.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.at:12: 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`
    ;;

  34 ) # 34. ccwmap.at:16: ccwmap works without 0x prefixes
    at_setup_line='ccwmap.at:16'
    at_desc='ccwmap works without 0x prefixes'
    $at_quiet $ECHO_N " 34: ccwmap works without 0x prefixes             $ECHO_C"
    at_xfail=no
    (
      echo "34. ccwmap.at:16: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  03 10 ef 0 0
not-this  03 99 ef 0 0
_ATEOF

$at_traceoff
echo "ccwmap.at:25:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
"
echo ccwmap.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.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`
    ;;

  35 ) # 35. ccwmap.at:29: ccwmap obeys match_flags
    at_setup_line='ccwmap.at:29'
    at_desc='ccwmap obeys match_flags'
    $at_quiet $ECHO_N " 35: ccwmap obeys match_flags                     $ECHO_C"
    at_xfail=no
    (
      echo "35. ccwmap.at:29: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  0x03 0x10 0xef 0x1 0x2
_ATEOF

$at_traceoff
echo "ccwmap.at:37:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x9 0x8
"
echo ccwmap.at:37 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x9 0x8
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.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`
    ;;

  36 ) # 36. ccwmap.at:41: ccwmap returns all matching modules
    at_setup_line='ccwmap.at:41'
    at_desc='ccwmap returns all matching modules'
    $at_quiet $ECHO_N " 36: ccwmap returns all matching modules          $ECHO_C"
    at_xfail=no
    (
      echo "36. ccwmap.at:41: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  0x0003 0x10 0xef 0x0 0x0
cu_type    0x0001 0x10 0x0 0x0 0x0
cu_model   0x0002 0x0 0xef 0x0 0x0
dev_type   0x0004 0x0 0x0 0x90 0x0
dev_model  0x0008 0x0 0x0 0x0 0xf7
default   0x0000 0x0 0x0 0x0 0x0
_ATEOF

$at_traceoff
echo "ccwmap.at:59:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x90 0xf7
"
echo ccwmap.at:59 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x90 0xf7
 ) >$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 "example
cu_type
cu_model
dev_type
dev_model
default
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.at:59: 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`
    ;;

  37 ) # 37. ccwmap.at:63: ccwmap exits false with no match
    at_setup_line='ccwmap.at:63'
    at_desc='ccwmap exits false with no match'
    $at_quiet $ECHO_N " 37: ccwmap exits false with no match             $ECHO_C"
    at_xfail=no
    (
      echo "37. ccwmap.at:63: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  0x03 0x10 0xef 0x0 0x0
_ATEOF

$at_traceoff
echo "ccwmap.at:69:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0x20 0x0 0x0
"
echo ccwmap.at:69 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0x20 0x0 0x0
 ) >$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;;
   1) ;;
   *) echo "ccwmap.at:69: exit code was $at_status, expected 1"
      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`
    ;;

  38 ) # 38. ccwmap.at:73: ccwmap ignores comments and blank lines
    at_setup_line='ccwmap.at:73'
    at_desc='ccwmap ignores comments and blank lines'
    $at_quiet $ECHO_N " 38: ccwmap ignores comments and blank lines      $ECHO_C"
    at_xfail=no
    (
      echo "38. ccwmap.at:73: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
#comment  0x03 0x10 0xef 0x0 0x0

example  0x03 0x10 0xef 0x0 0x0
_ATEOF

$at_traceoff
echo "ccwmap.at:83:
\$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
"
echo ccwmap.at:83 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --ccwmap --file=test.ccwmap 0x10 0xef 0x0 0x0
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.at:83: 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`
    ;;

  39 ) # 39. ccwmap.at:87: ccwmap works from udev event
    at_setup_line='ccwmap.at:87'
    at_desc='ccwmap works from udev event'
    $at_quiet $ECHO_N " 39: ccwmap works from udev event                 $ECHO_C"
    at_xfail=no
    (
      echo "39. ccwmap.at:87: testing ..."
      $at_traceon

cat >test.ccwmap <<'_ATEOF'
example  0x03 0x10 0xef 0x0 0x0
not-this  0x03 0x99 0xef 0x0 0x0
_ATEOF

$at_traceoff
echo "ccwmap.at:97:
env - SUBSYSTEM=ccw CU_TYPE=10 CU_MODEL=ef DEV_TYPE=0 DEV_MODEL=0 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.ccwmap
"
echo ccwmap.at:97 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=ccw CU_TYPE=10 CU_MODEL=ef DEV_TYPE=0 DEV_MODEL=0 \
	$abs_top_builddir/src/grepmap --udev --file=test.ccwmap
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "ccwmap.at:97: 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`
    ;;

  40 ) # 40. seriomap.at:3: seriomap finds module
    at_setup_line='seriomap.at:3'
    at_desc='seriomap finds module'
    $at_quiet $ECHO_N " 40: seriomap finds module                        $ECHO_C"
    at_xfail=no
    (
      echo "40. seriomap.at:3: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  0x02 0xff 0xff 0x07
not-this  0x01 0xff 0xff 0xff
_ATEOF

$at_traceoff
echo "seriomap.at:12:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
"
echo seriomap.at:12 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.at:12: 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`
    ;;

  41 ) # 41. seriomap.at:16: seriomap works without 0x prefixes
    at_setup_line='seriomap.at:16'
    at_desc='seriomap works without 0x prefixes'
    $at_quiet $ECHO_N " 41: seriomap works without 0x prefixes           $ECHO_C"
    at_xfail=no
    (
      echo "41. seriomap.at:16: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  02 ff ff 07
not-this  01 ff ff ff
_ATEOF

$at_traceoff
echo "seriomap.at:25:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
"
echo seriomap.at:25 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.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`
    ;;

  42 ) # 42. seriomap.at:29: seriomap works with wildcard ids
    at_setup_line='seriomap.at:29'
    at_desc='seriomap works with wildcard ids'
    $at_quiet $ECHO_N " 42: seriomap works with wildcard ids             $ECHO_C"
    at_xfail=no
    (
      echo "42. seriomap.at:29: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  0xff 0xff 0xff 0x07
_ATEOF

$at_traceoff
echo "seriomap.at:37:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
"
echo seriomap.at:37 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.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`
    ;;

  43 ) # 43. seriomap.at:41: seriomap returns all matching modules
    at_setup_line='seriomap.at:41'
    at_desc='seriomap returns all matching modules'
    $at_quiet $ECHO_N " 43: seriomap returns all matching modules        $ECHO_C"
    at_xfail=no
    (
      echo "43. seriomap.at:41: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  0x02 0xff 0xff 0x07
default   0xff 0xff 0xff 0xff
_ATEOF

$at_traceoff
echo "seriomap.at:51:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
"
echo seriomap.at:51 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0x0 0x0 0x07
 ) >$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 "example
default
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.at:51: 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`
    ;;

  44 ) # 44. seriomap.at:55: seriomap exits false with no match
    at_setup_line='seriomap.at:55'
    at_desc='seriomap exits false with no match'
    $at_quiet $ECHO_N " 44: seriomap exits false with no match           $ECHO_C"
    at_xfail=no
    (
      echo "44. seriomap.at:55: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  0x02 0xff 0xff 0x07
_ATEOF

$at_traceoff
echo "seriomap.at:61:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x99 0x0 0x0 0x10
"
echo seriomap.at:61 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x99 0x0 0x0 0x10
 ) >$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;;
   1) ;;
   *) echo "seriomap.at:61: exit code was $at_status, expected 1"
      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`
    ;;

  45 ) # 45. seriomap.at:65: seriomap ignores comments and blank lines
    at_setup_line='seriomap.at:65'
    at_desc='seriomap ignores comments and blank lines'
    $at_quiet $ECHO_N " 45: seriomap ignores comments and blank lines    $ECHO_C"
    at_xfail=no
    (
      echo "45. seriomap.at:65: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
#comment  0x02 0xff 0xff 0x07

example  0x02 0xff 0xff 0x07
_ATEOF

$at_traceoff
echo "seriomap.at:75:
\$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0xff 0xff 0x07
"
echo seriomap.at:75 >$at_check_line_file
( $at_traceon;
$abs_top_builddir/src/grepmap --seriomap --file=test.seriomap 0x02 0xff 0xff 0x07
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.at:75: 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`
    ;;

  46 ) # 46. seriomap.at:79: seriomap works from udev event
    at_setup_line='seriomap.at:79'
    at_desc='seriomap works from udev event'
    $at_quiet $ECHO_N " 46: seriomap works from udev event               $ECHO_C"
    at_xfail=no
    (
      echo "46. seriomap.at:79: testing ..."
      $at_traceon

cat >test.seriomap <<'_ATEOF'
example  0x02 0xff 0xff 0x07
not-this  0x01 0xff 0xff 0xff
_ATEOF

$at_traceoff
echo "seriomap.at:89:
env - SUBSYSTEM=serio SERIO_TYPE=2 SERIO_EXTRA=0 SERIO_ID=0 SERIO_PROTO=7 \\
	\$abs_top_builddir/src/grepmap --udev --file=test.seriomap
"
echo seriomap.at:89 >$at_check_line_file
( $at_traceon;
env - SUBSYSTEM=serio SERIO_TYPE=2 SERIO_EXTRA=0 SERIO_ID=0 SERIO_PROTO=7 \
	$abs_top_builddir/src/grepmap --udev --file=test.seriomap
 ) >$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 "example
" | $at_diff - $at_stdout || at_failed=:
case $at_status in
   77) echo 77 > $at_status_file
            exit 77;;
   0) ;;
   *) echo "seriomap.at:89: 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 <ubuntu-devel@lists.ubuntu.com>.
_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: <ubuntu-devel@lists.ubuntu.com>"
  echo "   Subject: [grepmap 1.1.0] $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


